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.

[参考译文] TMS570LC4357:MDIOPhyRegRead

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/612990/tms570lc4357-mdiophyregread

器件型号:TMS570LC4357

大家好、

我尝试设置以太网通信、代码卡在 MDIOPhyRegRead 函数的以下循环中:

HWREG (baseAddr + MDIO_USERACCESS0)
=(((UINT32) MDIO_USERACCESS0_READ)| MDIO_USERACCESS0_GO
|((RegNum & PHY_REG_MASK)<< PHY_REG_SHIFT)
|((phyAddr & PHY_ADDR_MASK)<< PHY_ADDR_SHIFT);

/*等待命令完成*/
/*SAFETYMCUSW 28 D MR:NA "硬件状态位读取检查"*/
while ((HWREG (baseAddr + MDIO_USERACCESS0)& MDIO_USERACCESS0_GO)== MDIO_USERACCESS0_GO)
{
}/*等待*/ 

有什么想法我会遗漏什么? tracecall 如下所示:


MDIOPhyRegRead
Dp83640LinkStatusGet
EMACHWInit

提前感谢您、此致、

Javier Guzman

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

    调用此 PHY 寄存器读取函数时、可能会使用错误的寄存器编号(RegNum)或错误的 phyAddr。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、再说一次、Wang、

    regnum 和 phyAddr 最初为1、我尝试了0和组合、但没有成功。 大概该代码是由卤素自动生成的、所以我认为应该可以。 还有什么其他想法可能会出错吗?

    谢谢!

    此致、
    Javier Guzman
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    还有其他建议吗? 我们尚未解决这一问题。

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

    您好 Javier、

    您在哪个电路板上进行了测试?

    如果您使用 TI Launchpad、则需要配置引脚多路复用器:

    1.启用 MII 驱动器

    2. Pinmux 面板:

      1.检查 MII 以启用 MII 模式

      2.取消选中 A14、B4、B11、D19、E18、 F3、G3、G19、H18、H19、 J18、J19、K19、N19、P1、 R2和 V5

    2.输入管脚复用面板: 检查 MII 和 MDIO 信号是否为默认值(左列):

      MDIO=F4、  MII_COL=W4、 MII_CRS=V4、 MII_RX_DV=U6、 MII_RX_ER=U5、  MII_RXCLK=T4、 MII_RXD[0]=U4、 MII_RXD[1]=T3、 MII_RXD[2]=U3、

      MII_RXD[3]=V3、 MII_TX_CLK=U7

    如果您使用 TI HDK、它将使用 MII 信号的交替状态

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

    感谢您的回答。 我使用的是 TMS570LC4357、具体而言、这一个:
    www.ti.com/.../launchxl2-570lc43

    我已按照您的步骤重新生成代码、但遗憾的是、它未能正常工作。 我已经尝试过 MII 信号的默认值以及交替状态。

    还有什么想法吗?

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

    Javier、您很可能错过了用于初始化/启用 MDIO 模块的调用 MDIOInit...)。

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

    您好 Javier、

    请使用 TMS570LC43x Launchpad 上随附的项目进行测试。 我在 RM57x Launchpad 上创建了 RM57Lx 器件的测试用例、并进行了测试、没有问题、然后转换了 TMS570LC43x Launchpad 的项目。  它应该起作用。

    e2e.ti.com/.../8726.TMS570LC4357_5F00_LaunchPad_5F00_EMAC_5F00_Loopback.zip