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.

[参考译文] DP83848J:MDIO 消息后 PHY 未响应。

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/924222/dp83848j-no-reponse-from-phy-after-mdio-message

器件型号:DP83848J

我使用的是 Arty 板(Digilent)、我尝试通过 FPGA 与 DP83848JSQ 进行通信。

我已经确认 PHY 在另一个设计中工作正常、但我特别尝试通过 MDIO/MDC 读取和写入 PHY 寄存器、我在其他地方没有测试过这种情况。

但是、我看到出现了一些有趣的行为。

我正在尝试发送消息线[13:0]消息= 14'b00000100000110;该消息应指示地址00001处的 PHY 将寄存器0的内容发送回 FPGA。 我只有一个 PHY 连接到 FPGA、根据 Digilent 的说法、PHY 在加电时设置为地址0001。

我现在的过程是通过 RESET 引脚向 PHY 发送复位信号、并在不久之后跟踪32个时钟周期。 实际上、为了确保安全、我要发送更多像60这样的数据、因为我知道在复位和同步之间需要等待一段时间。

同步后、我将在每个 MDC 时钟周期的边缘通过 MDIO 一次发送1位消息。  

在我发送消息的最后一位后、我将 MDIO 置于高阻态以进行接收。 问题是、我似乎没有收到任何东西。 MDIO 不会像它应该的那样被 PHY 下拉。  

下面是这种情况的屏幕截图(在本示例中、MDC 为10MHz。 我没有注意到使用较慢/较快时钟时的变化):  

放大:

但是、如果我发送消息 线[13:0] 消息= 14'b0000000110;该消息发送到 PHY 地址0x0、这不是 ARTY 所期望的那样、MDIO 会在一段时间内被 PHY 下拉、但我看不到任何数据。  

下面是这种情况的屏幕截图 (在本示例中、MDC 为10MHz。 我没有注意到使用较慢/较快时钟时的变化):  

它会变得更加混乱、就像我将消息更改为发送到 PHY 不应响应的无效地址、 接线[13:0] 消息= 14'b00000110000110;MDIO 永远不会被下拉、这表明在使用正确的地址时 PHY 正在执行某些操作。  

下面是这种情况的屏幕截图(在本示例中、MDC 为10MHz。 我没有注意到使用较慢/较快时钟时的变化):  

以及同一波形的更放大版本:

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

    您好!

    只是想了解一些典型的调试问题、但为了确认您是否已将 PHY 地址绑定到预期值? 您是否还能够使用我们的 USB2MDIO 工具来确保读取和写入正常进行? 我们的工具可从网上下载、并确认是否可以下载。

    谢谢

    Cecilia

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

    您好!

    我无法使用 USB2MDIO、因为我使用 FPGA 控制 PHY。 地址应该正确捆绑、因为这是一个众所周知的 FPGA 开发板、我有两个显示相同症状、因此硬件似乎不太可能出现问题。

    根据 IEEE 规范、无论捆绑地址如何、器件是否应像应有的那样响应地址00000?

    我唯一能想到的是我不会重置 MDC 时钟。 MDC 是否应仅在 PHY 硬复位后的某个时间才变为有效?

    谢谢、

    麦克斯韦·库内斯

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

    尊敬的麦克斯韦、

    正确的是、在 MDC 前导码之前、我们有使 XI 时钟稳定的最短时间。 您是否已确认您的时钟至少保持167ms 的稳定? 该规格位于我们的数据表的加电时序部分。

    谢谢、

    Cecilia

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

    塞西莉亚

    我很确定 X1在加电时是稳定的、因为这是由 Digilent 制造的开发板、PHY 的其他功能正常工作、而不是 MDIO。  

    如果我读数正确、另一个标准是 X1需要在 MDC 出现前保持稳定167ms。 我很可能会过早发送 MDC 前导码。

    但是、在上电后使用 RESET 引脚复位 PHY 是否会覆盖此问题? 因为我已经测试过使用复位引脚复位 PHY、并在发送前导码之前等待3-4 us、但问题与上述相同。 即使在这种情况下、X1也必须在启动时保持稳定167ms、然后 MDC 才会发生?

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

    更新:

    我的印象是 X1被组装在 Arty 开发板上。 不是。 我想我需要从 FPGA 馈送它。 很抱歉。 这几乎肯定是我的 MDIO 无法正常工作的原因。

    谢谢、

    麦克斯韦·库内斯