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.

[参考译文] DP83869HM:MDIO 读取会返回无效的寄存器值

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1418599/dp83869hm-mdio-reads-are-returning-invalid-register-values

器件型号:DP83869HM
主题中讨论的其他器件: DP83869

工具与软件:

我有一个带有连接到 DP83869HM 的微处理器的定制电路板、当我执行 MDIO 总线事务时、我得到的响应无效。 在 PHY 上物理切换 RESET 后、我在硬件上初始化 ETH 驱动程序、并从包含 OUI 的寄存器2和3读回0x9815、0x9055或0x9855。 我修改了以读取前32个寄存器、它们都返回该值、但寄存器0xd 和0xe 除外、它们返回0。

如果我删除并重新安装该模块、这在整个下电上电过程中始终保持不变、例如我将始终收到0x9815。 如果我仅复位 PHY、该数字将保持不变。 如果我执行了完整的系统下电上电、那么返回值 可能会更改为上面列出的其他值之一。 这很不一致。

我们将逻辑分析仪连接到了 MDIO/MDC 引脚、并通过放在 Linux MDIO 子系统中的 printk 语句验证了这是我们在上述引脚上看到的情况。  

有什么物理原因可能导致这种情况吗? 信号看起来非常干净、肯定会返回这些值、我只是不明白为什么。

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

    尊敬的 Jason:

    进行一些比较。 该问题最有可能发生在软件方面。

    我们要检查的一件事是确保 MDIO 线路上有上拉电阻器。

    ——

    此致、

    Hillman Lin

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

    尊敬的 Hillman:

    我们在 MDIO 线路上有上拉电阻器。 我不确定在我们刚刚开始探测实际的 MDIO 总线时如何会成为一个软件问题。 下图显示了请求从处理器读取 PHY 的数据。



    DP83869数据表中的时序图表明 PHY 将其数据置于相对于 MDC 上升沿的 MDIO 总线上、输出延迟为0至10ns。 您能否确认该数据时序相对于 MDC 上升沿? 我们的处理器会相对于时钟的下降沿输出数据、从而使 PHY 以足够的设置和保持时间裕度实现正确的采样居中。

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

    尊敬的 Jason:

    根据逻辑分析仪、MDIO 总线似乎按预期运行。

    这很可能是由于软件无法识别正确的 PHY ID。 我想问一下您系统的方框图是什么吗? 或者、MDIO 总线上连接了哪个器件?

    ——

    此致、

    Hillman Lin

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

    我们使用 NXP S32G3处理器连接到 PHY。 根据 DP 数据表、我们希望返回0x2000、但看到返回了其他值。  

    我们刚刚尝试了在系统(0-15)寻址的所有可能的 PHY 上进行迭代、但是除了0xFFFF、其他任何 PHY 都不返回任何值。

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

    问题是 RBIAS 未正确拉至接地。