工具/软件:
您好专家!
对于使用 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 锁定频率较高/较低、尝试旁路模式…)?
谢谢!
基督教