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.

[参考译文] DP83867CR:在 MDIO 总线上使用多个 PHY 读取的数据无效

Guru**** 2535750 points


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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/987883/dp83867cr-invalid-read-data-with-multiple-phys-on-mdio-bus

器件型号:DP83867CR

您好!

自定义电路板设计中存在与此帖子中描述的类似问题:

https://e2e.ti.com/support/interface/f/interface-forum/951336/dp83867cr-failure-with-multiple-phys-sharing-the-mdio-bus

在我们的设计中、我们使用 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

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

    下面是一个 MDIO 读取 PHY 地址2、寄存器0x0002 (PHYIDR1)和 PHY 以0x1140进行响应的示例、这恰好是 BMCR 寄存器0x0000的默认值。

    这是在 PHY 地址0之后、BMCR 位11被置为有效。  PHYIDR1/2对 PHY0的读取仍然正常、但对 PHY 地址2和3的 PHYIDR1/2的读取都回答了相同的0x1140。  每个 MDIO 事务中的 PHY 地址和寄存器地址都正确、但每个都以0x1140回答。

    谢谢、

    Mike

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

    尊敬的 Mike:

    每个 PHY 在 MDIO 线路上是否都有自己的上拉电阻、或者整个总线是否只有一个上拉电阻?

    当 GND 连接不足时、我们发现了连接问题。 如果使用导线将 Zynq 连接到 MDIO 线、我们可以尝试使用多根导线连接 GND。 如果 Zynq 和 DP83867s 位于同一电路板上、这不应成为问题、因为我假设有 GND 平面连接器件的 GND。  

    我们正在研究 其他可能性、并将在本周星期三之前提供更多反馈。  

    谢谢、

    Nikhil

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

    您好、Nikhil、

    感谢您对此的帮助、这似乎有点奇怪。   公共 MDIO 总线上有四个 PHY、每个 MDC/MDIO 上有一个4.7K 上拉电阻器。  这是一个高技术16层 PCB、具有7个接地层、贯穿整个 PCBA。

    如果您担心上述示波器图中的振铃、这不是真实的、而是 DSO 缩放采样功能的伪影、我尝试在一个示波器触发器中获取三个 PHY 的 PHYIDR1/2读取。  您可以看到、"振铃"出现在信号边沿的开始和结束处、表明它是示波器的上采样 FIR 的伪影。  我尝试在较短的时间范围内附加一个图、其中的布线都很干净、但现在似乎无法粘贴。

    谢谢、

    Mike

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

    尊敬的 Mike:  

    我想尝试收集更多信息、以便更好地了解问题的范围。

    您提到、如果 PHY 通过 BMCR 寄存器断电、则可以访问已断电 PHY 的寄存器、但无法访问其他器件的寄存器。 当您读回寄存器时、您是否看到了垃圾值或根本没有数据? 对于每个单独的 PHY (不能读取 PHY Y1、PHY 2-3的断电、不能读取 PHY Y2、PHY 1和 PHY 2-3的断电等)、这种情况是否正确?

    将其他器件保持在复位状态是否有助于解决此问题?

    PHY 当前是否连接 到 MDI 侧的链路伙伴? 如果卸下电缆、则有任何改进

    保持 PWDN 引脚为低电平时是否会出现同样的问题、而不是使用寄存器设置器件断电?

    谢谢、

    Nikhil