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.

[参考译文] TMDS64EVM:MDIO CAN't 从 PHY 读取

Guru**** 2868380 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1637903/tmds64evm-mdio-can-t-read-from-phy

器件型号: TMDS64EVM
主题中讨论的其他器件: SysConfig

我正在为 PRU 编写自定义固件、到目前为止无法使用 MDIO 寄存器接口从 PHY 读取数据。 我可以看到对 MDIO 寄存器的更新、从而启用 MDIO 并设置其他配置设置、但每次我尝试使用 MDIO 用户访问寄存器从 PHY 寄存器读取时、GO 位在我设置命令后永远不会被清除、因此我会无限期地等待响应。 我尝试在 R5F 上运行或多或少相似的自定义驱动程序代码、但结果同样不成功。

尝试隔离问题时、我现在将 R5F 内核 0 使用空演示工程、我克隆了 SDK 示例、并使用 SysConfig 工具在 Arm 内核 MDIO 接口和 PHY 器件之间生成接口/驱动程序代码。 我遇到的问题完全相同:MDIO 用户访问寄存器中的 GO 位从不清除、因此我永远不会得到任何回复。  

我的 SysConfig 文件会创建单个脚本 PRU (ICSS) ICSSG1 上的 TI 驱动程序实例和单个 ETHPHY (ICSS-EMAC) TI 板驱动程序、也用于 ICSSG1。 单步执行代码、我可以看到调用的 PHY 器件驱动器和调用的 MDIO 初始化例程。 我可以在 INIT 调用期间看到 MDIO 控制寄存器设置正确。 我在我的主代码中添加了一个调用:

ETHPHY_command (gEthPhyHandle[0]、ETHPHY_CMD_SOFT_RESTART、&STATUS、1);

跟踪调用树、我被困在 PHY 读取寄存器例程的同一点、GO 位从不清除。

我注意到、对于现在定义的设置、没有生成用于连接 PHY 器件(RMII 引脚或 MDIO 引脚)的引脚多路复用配置。 不确定这是否与问题有关? 还有其他建议吗?

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

    感谢您发送编修。

    一些其他问题:

    • 在步骤 2 中、如何配置 IO 扩展器? 它在您提供的手册参考中多次引用、但不清楚我需要在代码(或其他代码)中执行哪些操作才能正确设置它。
    • 在第 3 步(读取提供的引文)中、不清楚我需要具体执行/读取哪些操作来验证器件的 PHY 地址。 请详细说明或提供更多文档、说明我必须执行的程序。
    • 在步骤 6 中、我将探测 TP21 以检查 MDIO 时钟正常运行的波形、对吗?

    再次感谢。