This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM3359:ICEv2上的 CPSW 处于 RMII 模式

Guru**** 2547020 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/604203/am3359-cpsw-in-rmii-mode-on-icev2

器件型号:AM3359
主题中讨论的其他器件:TMDSSK3358

我正在尝试将基于 TMDSSK3358的 LWIP 堆栈的应用移植到 AM335x ICE v2.1。  主要区别似乎是 PHY 接口:在 TMDSSK3358上、使用 CPSW EMAC 的 GMII 接口。  这与 AM335x ICE v2.1不兼容、其中使用 RMII 接口从 CPSW 驱动 PHY。

因此、我的第一个问题是:是否有配置 CPSW 以连接到 ICE 电路板上的 PHY 的示例(包括引脚复用、配置电路板上的 RMII/MII 多路复用器、设置 MAC 控制寄存器等)。  理想情况下、这将是一个像美妙的 LWIP 堆栈这样的基本示例-仅调用 API 信息较少。

我的第二个问题是:PDK 随附 EMAC 驱动程序(在我的安装中、它位于 C:\ti\pdk_am335x_1_0_5\packages/ti\drv\emac)。  这可能是回答我的第一个问题的良好起点、但我看不出它对硬件做出了什么假设。  它是否打算直接在 ICE v2.1板上工作?  该示例在实际操作上非常不清楚、因为它会调用 PDK 代码的许多其他部分。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RTOS 团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    垫、

    pdk_am335x_1_0_6\packages/ti\transport \ndk\Nimu 是您可以参考的 AM335x ICE v2 CPSW 示例。

    可以使用 pdk_am335x_1_0_6\packages 中的 pdkProjectCreate.bat 脚本构建示例 CCS 工程、请参阅此处的构建说明- processors.wiki.ti.com/.../Rebuilding_The_PDK

    此致、
    Garrett
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、感谢您的链接。 我从 NIMU 示例中确认、ICE v2.1A 板上的 PHY 地址为1和3 (与原理图相匹配)。

    那么、我的下一个问题是:为什么 MDIOALIVE 寄存器读数为0x00080008? 这表明 PHY 正在响应地址3和19。 有什么想法吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    也许真正的问题是:ICE 硬件记录在哪里? 例如、NIMU 示例包括以下内容:

    void PhySetupAndReset (void)(空)

    /* PR1_MII_CTL */
    GPIO_WRITE (GPIO_PIN_PR1_MII_CTRL、GPIO_PIN_VAL_HIGH);

    /* MUX MII 控制*/
    GPIO_WRITE (GPIO_PIN_MUX_MII_CTRL、GPIO_PIN_VAL_HIGH);

    /* FET 开关控制*/
    GPIO_WRITE (GPIO_PIN_FET_SWITCH_CTRL、GPIO_PIN_VAL_HIGH);

    /* DDR VTT 使能*/
    GPIO_WRITE (GPIO_PIN_DDR_VTT_EN、GPIO_PIN_VAL_HIGH);

    /* PHY 0和1复位*/
    GPIO_WRITE (GPIO_PIN_PHY_0_1_RST、GPIO_PIN_VAL_LOW);
    延迟(100);
    GPIO_WRITE (GPIO_PIN_PHY_0_1_RST、GPIO_PIN_VAL_HIGH);
    延迟(100);


    这些设置中的每一项都需要一段时间才能从原理图中弄清。 是否描述了这些信号的用途以及应如何设置这些信号以使电路板以不同的方式工作?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    垫、

    您实际上应该在 MDIOALIVE 寄存器中看到0x0000000A、如下所示。

    HW 用户指南位于以下链接中:

    此致、Garrett

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、感谢您的回复。  我现在已经把它全部解决了。  我遇到的问题是硬件用户指南中没有包含操作电路板所需的所有信息。  也许可以将这些信息添加到 Wiki 中?

    用户需要了解以下内容:

    启动后需要停用系统引导缓冲器(U37和 U38)、以允许 PHY 读取地址选择行。  否则、它们将 从 SYSBOOT 上拉/下拉电阻器中取值 (这就是我的 PHY 选择错误地址的具体原因)。  之后、需要对 PHY 进行硬复位以重新读取地址选择行。

    2.需要停用 FET 开关(U4)(我想断开一些与 PRU-CSS 共享的线路)

    需要正确设置 MII 多路复用器(U9和 U11)-输入"S"应为高电平。

    需要设置 PHY 时钟(U12)- NIMU 示例中的 ClockSynthesizerSetup 函数就是这样做的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Mat、

    感谢您对硬件用户指南的反馈! 我已将您的建议转发给硬件团队、以供审查并考虑添加到 wiki 中。

    此致、
    Garrett