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.

[参考译文] AM4376:以太网 PHY 时钟的 CLKOUT2稳定性

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1505649/am4376-clkout2-stability-for-ethernet-phy-clocking

器件型号:AM4376

工具/软件:

您好专家!


对于使用 DP83826 PHY 的基于 AM4376的设计、我们在以太网链路稳定性方面存在一个奇怪的问题。


我们有一个基本上是 AM4376的设计、它具有两个以太网端口、通过 MII 连接在 DP83826上实现。
端口1 PHY 由 AM4376 CLKOUT1信号计时、端口2 PHY 由 AM4376 CLKOUT2信号计时。
AM4376输入时钟是一个具有+/-50ppm 的25MHz 振荡器。

链路有时会丢失(~每10秒到每小时)。

仅当两个设备使用每个设备的端口2直接连接、但不涉及端口1时、才会出现此问题:


连接到设备2端口1的设备1端口1正常
连接到设备#2端口1的设备#1端口2正常
连接到设备#2端口2的设备#1端口1正常
连接到设备#2端口#2的设备#1端口2不正常


带有"自身"的链路(将 PHY 端口2 RX 连接到端口2 TX)也很稳定:

连接到设备1端口2的设备1端口2正常

我调查了 PHY 寄存器、发现端口2上的寄存器0x14 (虚假载波计数器)和寄存器0x15 (接收错误计数器)正在递增。
在某些时候、有足够的错误会触发 PHY 的" RX 上的快速链路断开"功能。

链路中断后、会自动再次建立链路。 结果是100M 全双工。

通过 MDIO 进行的搭接和配置与两个 PHY 相同、因此我研究了两个端口的差异、并尝试通过 CLKOUT1引脚为两个 PHY 计时。

这消除了所有错误、链路稳定、无错误寄存器计数。

因此、问题似乎与"CLKOUT2"相关。

n´t 使用 CLKOUT2计时的 PHY 自身具有稳定的链路(TX 连接到 RX)、因此它看起来不像时钟中断或类似的中断。


我假设是 CLKOUT2上的频率容差/抖动。 有时、两个 CLKOUT2增加的容差/抖动太大而无法保持链路。


CLKOUT2由 AM4376内部低抖动 PLL (EXTDEV_PLL)控制。

设置:

CLKINP:25MHz (主 osc 时钟输入)
分隔符 N:9
乘数 M:200
后分频器 M2:10
SD_DIV:2.

CLKOUT2分频器:2.

因此、PLL 应锁定在500MHz (25MHz /(9+1)* 200、PLL 输出为50MHz (500MHz / 10)、在 CLKOUT2分频器中除以2、为 CLKOUT2提供25MHz。
SSC 已停用。

EXTDEV_PLL 配置的寄存器内容:
[0x44DF2E60]= 0x7
[0x44DF2E64]= 0x1
[0x44DF2E6C]= 0x200c809
[0x44DF2E70]= 0x38a
[0x44DF2E84]= 0x80000
[0x44DF2E88]= 0x0
[0x44DF2E8C]= 0x0


我´m 想知道这一点、因为在参考手册中明确指出、CLKOUT2可用于为外部 PHY 计时。


问题:
您过去看到过类似这样的东西吗? CLKOUT2频率精度是否存在已知问题? 还是 DP83826对 CLK 容差的特殊敏感度?
您可以查看 PLL 设置吗? 是否有需要优化的地方(例如、PLL 锁定频率较高/较低、尝试旁路模式…)?

谢谢!

基督教

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

    您似乎没有使用经过优化的 PLL 配置来实现低抖动。 仅在预分频基准时钟的每个周期检查与25MHz 基准时钟的 PLL 输出相位关系。 将25MHz 基准时钟除以10可使 PLL 输出在更新之间产生过多的漂移。 我请我们的 PLL 专家回复说、这应该会  降低抖动。

    此致、
    Paul

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

    您似乎已为 EXTDEV_PLL 实现了最佳配置。  您是否还可以尝试以下方法、这会增加内部 DCO 频率

    N=9

    M=800

    M2 = 40

    SD_DIV = 8

    FREQSEL_DCO = 4

    这将在更高的 DCO (DCO 频率规格为500MHz -2Ghz)和不同的 Σ-Δ 分频器下产生相同的频率、从而提供更好的性能。

    您也可以尝试旁路频率。

    此致、

    James

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

    谢谢!

    ´ll 尝试建议的设置。

    我´ll 回到你的身边。

    此致、

    基督教

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

    我们根据您的建议更改了 PLL 设置、并取得了显著的改进。 但我们仍然存在链路损失(1周内有3次)。 是否还有进一步的优化可能性?

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

    当您尝试使用 CLKOUT1但没有发现错误时、哪个 PLL 是 CLKOUT1的来源?  以下是器件中的时钟结构

    您是否尝试过 CLKOUT2的其他来源之一。  例如、您应该能够对 L3F_CLK 进行分频以获得25MHz。  该时钟实际上来自不同类型的 PLL、可能会为您提供更好的性能。

    我认为这是 EXTDEV_PLL 最优的设置    

    此致、

    James

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

    您好、James。

    对于 CLKOUT1、我们使用分频因子1的"CLK_M_OSC"、因此应使用 PRCM 周围的旁路。

    我为 CLKOUT2尝试了 EXTDEV_PLL 以外的其他源、结果变得越来越差。  

    Br、Christian

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

    詹姆斯离开办公室,直到星期一。 您能否提供用于创建 L3F_CLK 的内核 PLL 配置?  这将允许 James 检查您是否配置了内核 PLL 以尽可能减少抖动。 您需要减小预分频器、从而将 PLL 基准时钟频率尽可能高、并使用倍  频器/后分频器 组合  在接近上限的情况下运行 PLL VCO、以从 PLL 实现最低抖动曲线。

    我忘记了低抖动 PLL 的实现会限制 PLL 参考时钟频率。 我认为其他 PLL 实现没有相同的参考时钟频率限制。  因此、请检查核心 PLL 的配置、确保其已针对低抖动进行了优化。

    某些以太网 PHY 不喜欢在 AM437x 器件中实现的 PLL 的 N 周期抖动分布。 如果是、您可能需要使用并非由 PLL 生成的25 MHz 基准时钟。

    您可能需要 将一个1输入至2输出缓冲器连接到 CLKOUT1输出、并 从其中一个 缓冲器 输出为每个 PHY 供电。

    此致、
    Paul

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

    您好、Paul。

    CORE_PLL 设置:  

    N=24、M=1000、M4=10。  

    当 I Δ I´m L3F 作为 CLKOUT2的时钟源(div=8)时、结果比原始设置差得多。 我将"Core PLL"更改为:

    N=0、M=40、M4=10。

    结果比之前的测试要好、但与原始设置相比仍然差得多。 所以使用 L3F 似乎不是一个好的选择。

    应届毕业生、

    基督教

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

    根据此结果、 以太网 PHY 的抖动灵敏度似乎太低、您无法将任何 AM437x PLL 时钟源用作 PHY 参考时钟。

    我建议 将一个1输入至2输出缓冲器连接到 AM437x CLKOUT1输出、并 从每个 PHY 的其中一个缓冲器 输出提供信号。 您可能可以使用两个单独的缓冲器、但其 PCB 布局需要允许两个输入彼此非常靠近、其中 CLKOUT1信号可通过非常短的平衡 T 连接拓扑连接到每个缓冲器输入。

    此致、
    Paul

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

    谢谢!

    ´ll 考虑这一方案。 在´s 表中提及这一缺陷可能是个好主意。

    此致、

    基督教

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

    该器件组合的弱点在哪里?是在 AM437x 器件还是以太网 PHY 中?

    之所以会出现这 种情况、是因为以太网标准仅定义长期频率误差。 它们没有定义短期频率误差限值。 在没有短期频率误差限制的情况下、设计人员不知道制作用于将数据从一个时钟域移动到另一个时钟域的弹性缓冲器有多大。 如果一个器件中的 PLL 快速运行、而另一个器件在尝试保持锁定到各自的基准时钟时运行缓慢、如果没有足够大的弹性缓冲器、则可能会导致问题。  该频率误差可能会导致弹性缓冲器欠运行或过运行。

    与连接到以太网电缆另一端的器件相关的频率误差也可能 影响该 问题、因为以太网 PHY 正在从接收数据流中恢复时钟、并且接收数据正在从恢复的时钟域传输到 MAC 时钟域。

    大约15年前、我们在较旧的 TI 处理器上才发现这种情况发生过一次。 因此、问题的发生似乎很低。

    此致、
    Paul

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

    您好、Paul。

    到目前为止、尚不清楚这种组合的弱点来自 AM4376或 DP83826。 ´ll 可以使用 KSZ8081、因为它与封装兼容。

    您是对的、这种错误很少发生。 我们只有在直接将两个器件与它们的"CLKOUT2"时钟 PHY 连接时才会看到这种情况。 如果我们在之间插入一个网络交换机、错误就消失了。  

    但目前我们正在为我们的设备实施新功能、正是在该设备中使用了这种直接连接的网络拓扑。

    此致、

    基督教

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

    您好、Paul。

    我认为、与 DP83822相比、DP83826对时钟变化更敏感。

    我使用 DP38822测试了非常相似的设计、但我看不到任何问题。

    此致、基督教