主题中讨论的其他器件:DP83825EVM
大家好、
我们有 TI 演示板、并连接了应用板、当我们接收/传输一个大数据包时、我们将失去以太网链路。 我们检查了晶体时钟和电源是否正常、并进行了寄存器检查。
问题是随机的。
最初,我轮询 BMSR 寄存器,Link_Status 位随机读取为‘0’。
在传输许多连续数据包时、情况会更糟。 RMII 上的数据流量增加似乎会导致链路中断。
然后,我在 PHYSTS 寄存器中找到了相同的 Link_Status 标志,但如果链路 LED 闪烁且一切正常,读取该标志就不会返回‘1’。
PHYSTS 寄存器仅在读取 BMSR 后返回有效链接(Link_Status = 1)。
现在的总结是:
- 连接电缆 不会设置 PHYSTS Link_Status。 为了在 PHYSTS 上获得良好的链路状态、需要读取 BMSR。
断开电缆会导致 PHYSTS Link_Status = 0。 我不需要读取 BMSR。 - 建立良好的链路后、轮询 BMSR 会随机返回 Link_Status = 0。
- 建立良好的链路后、仅当我断开以太网电缆时、轮询 PHYSTS Link_Status 返回0。 在 BMSR 中读取的随机下行链路不在 PHYSTS 中得到反映。
因此,现在我将轮询 PHYSTS 而不是 BMSR,如果 Link_State 为‘0’,我将读取 BMSR 以复位 PHYSTS 标志。
它看起来很稳定、但我需要问您:
- 如果我断开以太网电缆而未反映数据传输期间的随机链路压降、为什么 PHYSTS 反映 BMSR?
- 如何正确地对链接状态进行池处理。
此致、
RJ