Other Parts Discussed in Thread: SYSCONFIG
器件型号: 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 引脚)的引脚多路复用配置。 不确定这是否与问题有关? 还有其他建议吗?