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.

[参考译文] DP83822I:与 ESP32配合使用的 RMII 上的时序问题

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1490315/dp83822i-timing-issue-on-rmii-in-combination-with-the-esp32

器件型号:DP83822I

工具与软件:

您好!

在当前设计中、我将 DP83822I 物理器件与 ESP32-MINI-1-N4结合使用。 PHY 通过 RMII 与 ESP32通信。
然而、在我的原型设计中、RMII 似乎存在50MHz 时钟以及 TX 和/或 RX 线路的时序问题。  
当我 ping IP 地址时、设备偶尔会正确 ping、并且偶尔会丢失数据包。
对于每个原型、发生的数据包丢失的频率不同。
一个永远不会返回丢包、另一个始终返回丢包。  
当我在示波器上测量时序时、时序似乎正确。 见附图。
如果接收建立时间为13ns、保持时间为7ns;如果发送、设置时间为10ns、保持时间也为10ns。
这些值符合数据表中提供的值。
然而、ESP32技术参考手册介绍了输入和输出延迟。 这些延迟可能是导致此问题的原因、因为它们因模块而异、这可能导致时间紧迫。
软件是否可以通过50MHz RMII 时钟上的寄存器添加额外的延迟、或者是否需要将串行时钟缓冲器添加到50MHz?

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

    您好!

    在 RMII 设置/保持上没有一组可操控性。 唯一的寄存器将是寄存器0x17[8]。 然而、这只会调整 RMII 的 TX 总线。

    如果这不起作用、则需要通过旋转电路板来校正 ESP32施加的延迟。

    此致、

    Gerome.

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

    Gerome、您好!

    感谢您的答复。
    由寄存器0x17[8]准确移位什么?
    这种做法仅在 PHY 内部移位时钟、还是也移位输出时钟。
    当 PHY 处于 RMII 主模式、还是仅处于 RMII 从模式时、这种情况有可能?
    TI PHY 在我们的设计中 RMII 主模式下的运行速率。  
    因此、我不确定时钟移位是否可以在 PHY 内实现、因为移位是由其自身的芯片生成的。
    当我们将该位设置为1时、我们不会测量 GPIO3 [引脚1]上的时钟移位。

    此致、
    Kane

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

    Kane、您好!

    此位仅适用于 RMII 从器件、它将在内部延迟50MHz 的输入、因此此权变措施似乎不可行。 从 PHY 端没有其他可解决此问题的方法。 如果有方法可以更改延迟、我建议检查 MAC。 否则、需要旋转电路板来校正设置/保持时间。

    此致、

    Gerome.

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

    Gerome、您好!

    经过进一步的调查、我发现问题出在 PHY 的接收端。
    当数据包无效时、将触发 RX_ER 线路、指示来自 MAC 的数据不正确。  
    触发 RX_ER 时、不会在 RX_D0线路上发送数据。

    TX_D0上的数据仍从 MAC 发送到 PHY。

    在此设计中、提供了两个用于 GND 和50MHz 的测试焊盘。
    当我将手指放在两个焊盘上时、RX_ER 不会被触发、数据在 RX_D0线路上发送。  
    这一事件更加注重时序问题、因为我会用手指增加电容。

    仅 RX_ER 的触发原因不明确。 此线路是否由从 MAC 到 PHY (TX_D)的不可读数据(可能由时序引起)或从 PHY 到 MAC (RX_D)的不可读数据触发。
    或者 RX_ER 的其他触发原因是什么?

    此致、
    Kane

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

    尊敬的 Gerome:

    我们还在寻找如何使用 RMII 从模式、并让 ESP32发送50MHz 时钟。  
    在大多数参考设计中、我们看到使用时钟反相器(180度)。
    我们是否还可以为此使用时钟移位、以及使用此寄存器的时钟移位了多少?

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

    尊敬的 Kane:

    仅当 PHY 在 MDI 上检测到不良数据包时才会触发 RX_ER。这可能表示 MDI (而不是 MII)有问题。当 DUT 上电但已发生数据包错误时、您能否对寄存器0x15进行一些读取?

    关于从模式运行、从我的经验来看、使用逆变器是看不到的、但从理论上讲、如果正确操作、它有助于解决任何设置/保持问题。 请注意、可能需要在 TX 线路上执行更多计算、因为在 RX 线路上进行建立/保持时间非常简单。 TX 线可能需要重新调整、因为它们将在传入的 XI 时钟上发送、所以这在理论上相对于正常运行而言会过度延迟180度。

    此致、

    Gerome.

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

    尊敬的 Gerome:

    目前、Esp32作为 RMII 时钟主器件而 DP83822I 作为 RMII 时钟从器件、时钟延迟似乎可行。
    我们仍需要进行有关时序的推进器计算。
    因此、我想根据您之前的消息、知道时钟延迟给时钟信号增加了多少 ns。
    它与 RGMII 一样、其中将3.5ns 添加到时钟?

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

    您好!

    该 RMII 从器件内部移位在 PHY 中实际上是4ns。

    此致、

    Gerome.

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

    Gerome、您好!

    为 Esp32和 PHY 使用外部振荡器看起来都可行。 不推荐使用 ESP32作为 espressif 的时钟主控器。
    噪声和时序计算。 时机似乎相符。
    但是、我仍然想知道 DP83822I 的时钟移位。  
    时钟是否在时间上向前或向后移动?

    此致、
    Kane

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

    尊敬的 Kane:

    时钟将在 DP83822I 内部延迟。 为了回答您的问题、它会等效地在时间上倒退。

    此致、

    Gerome.