您好!
自定义电路板设计中存在与此帖子中描述的类似问题:
在我们的设计中、我们使用 Zynq UltraScale+、通过共享的 MDIO 总线连接四个 DP83867。
我已经检查并验证了自举、MDIO 寻址、MDIO 时序以及与 MDIO 总线上 PHY 之间的实际 MDIO 通信、并可以提供相关的示波器图。 我还检查了电源、没有发现任何明显的问题。
四个 PHY 的时钟输入由单个25MHz 时钟驱动、该时钟进入1.8V 1:4时钟扇出缓冲器。 每个 PHY 从扇出缓冲器获取自己的时钟。
在最简单的情况下、我们为4个 PHY 供电、然后在其中一个 PHY 中将 BCMR 位11置为有效、以将其转换为断电状态。 随后、MDIO 与掉电 PHY 的事务处理正常、但对 MDIO 总线上其他 PHY 的查询会返回无效寄存器数据、这些数据可在总线事务中看到。
我已经验证了 MDIO 总线事务处理和其他 PHY 正在被寻址并且正在发送正确的寄存器地址、但有时会返回0xFFFF、0x00FF、0x1140 (供参考:这恰好是默认的 BCMR 寄存器值)、有时也会返回其他值。 一旦单个 PHY 的断电状态恢复或复位、所有 MDIO 接口开始正常工作。
问题出在 PHY 或 PHY 的 MDIO 接口状态 、而不是主机控制器或 FW 驱动程序。
是否有人熟悉此问题或 MDIO 接口的状态、并能提供如何解决此问题?
谢谢、
Mike
