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.
您好!
我们有一个 TMS320F28388D controlCARD (具有使用 MII 接口的板载 PHY)、一个带 TMS320F28388D 的定制 PCB 和一个带 RMII 接口的 TI DP83640 PHY。 我无法使后者正常工作、例如使用 ethernet_ex4_ptp_basic_master。 您能帮助我对 RMII 进行必要的更改并调试它不工作的原因吗?
我所做的:
通过 SMI、我可以验证是否协商了100Mbit 全双工链路(有效链路标志变为高电平)。 我还可以测量 TX_EN、TXD_0、TXD_1 (示例预期每秒一次)和 RMII_CLK/X0上的活动。 但是、唉、Wireshark 中看不到任何内容。
将代码从 MII 迁移到 RMII 时、我是否错过了一些事情?
可以使用 EMAC 的任何寄存器来调试问题吗?
我们检查了 PHY 的所有搭接引脚、并通过 SMI 验证了配置(RMII 模式、RMII 从时钟模式)。
如果有任何提示,我们将不胜感激。
此致、Nils
Nils、
从软件方面来看,对 RMII 所做的更改似乎是正确的。
1.您验证了 RMII 时钟吗? 您已将其配置为内部。 确保相应地设置时钟源和分频器以提供50MHz 时钟。
2.是否能够读取/写入 PHY 寄存器? 请在 PHY 寄存器 BMSR 中检查链路状态。
此致
西达尔特
感谢您发送编修。 是的、我们已验证 C2000在 GPIO_73上输出50MHz。 我没有更改示例中的时钟源和分频器。 我描述了我所做的所有与时钟相关的更改(所有其他内容都保留在原始示例中)、这些更改是 USE_20MHz_XTAL 和 ETHERNET_SS_CLK_SRC_INTERNAL 填充。
另外、我们可以通过 SMI 读取 PHY 寄存器、并在 BMSR 的链路状态中获取有效链路。 我想如果时钟不正确、这是不可能的?
您有进一步的想法吗?
此致、Nils
Nils、
此时、我没有任何其他输入。 您对 RMII 所做的更改似乎没有问题。
我将此问题转发给 PHY 团队、看看他们是否有任何输入或建议。
此致
西达尔特
嗨、Nils:
我在深夜看到了这个,没有时间进行全面的审查,请允许另一天去。 明天会再次响应。
此致、
阿尔瓦罗
好的、谢谢。 非常感谢您的帮助。
嗨、Nils:
在过于深入探究任何内容之前、我们可以对 PHY 进行几次健康检查吗?
此致、
阿尔瓦罗
您好 Alvaro、
当然可以! 这是来自 CLKOUT 的输出。
是的、正如我在第一篇文章中所写的、我们可以读取 SMI 寄存器、 远近 就会出现问题。
此致、
尼尔斯
嗨、Nils:
我想指出的是、DP83640是一种较旧的器件、其支持程度非常有限。 我这样说是因为我无法访问包含该器件的电路板、并且无法验证器件的某些行为。
我 可能忽略了一些内容、您是否要将 PHY 配置为 RMII 从模式? 如果是这样的话、PHY 需要一个50 MHz 输入时钟、这将使我从 CLKOUT 中等待一个50 MHz 波形。 您是否能够确认输入时钟为50 MHz?
无论如何、您都可以从 CLKOUT 测量波形、这意味着 PHY 开启。 当 PHY 建立链路 但没有数据吞吐量时、通常表明 MAC 接口中存在连接问题。 PHY 和 MAC 可能无法正常通信。 我们可以通过将 PHY 置于 MII 环回模式来测试此情况。 您必须对 TMS320F28388D 上的 MAC 进行编程以开始传输数据并查看它是否收到返回的数据。 如果接收到数据、则 MAC 接口正常、问题出在其他地方。 有关环回配置的更多信息(需要寄存器写入访问)、请参阅 DP83640数据表中的第5.3.5节内部环回。
此致、
阿尔瓦罗
谢谢您的提示。
是的、PHY 配置为 RMII 从模式(我们已验证它的 X1引脚上从 Delfino 接收到50MHz 时钟)。
根据您的提示、我启用了 PHY 内部回送、这样产生了一个非常有趣的结果:Rx_Multicast_Packets_Good 计数器对发送和循环的数据包进行计数而不会丢失。 因此、RMII 通信无法(完全)中断。
该 PHY 还具有远程环回模式。 如果我启用它、从连接的 Windows PC 发送到 PHY 的数据包在 Wireshark 中会显示加倍-它们全部由 PHY 环回-因此我假定 PHY 的以太网侧也在工作。
令我们感到困惑的是、为什么在两个方向上都没有数据包在 RMII 侧和 PHY 的以太网侧之间传递。 它看起来像"隔离模式"、但该模式当然是禁用的。
明天我们将对 RMII 信号进行一些测量、比较中的波形(尤其是、ENET_RX、RMII CLK、RX_DV)、其中 a)从正在工作的以太网器件接收数据包(不工作)以及 b)以环回模式接收数据包(工作)。
如果能得到更多的提示,我们将不胜感激。 此致、Nils
谢谢 Nils。
我等待这些波形、并咨询我的团队以了解进一步的调试策略。
此致、
阿尔瓦罗
测量结果让我们找到了解决方案:100Mbit (50MHz)的时钟正确、位 RX0和 RX1信号太慢。 因为 MAC 在10Mbit 模式下运行 。 MAC_Configuration 寄存器中链路速度的默认设置为10Mbit、driverlib-examples 不会触摸任何位置的该位(FES)(关于改进的强烈建议!)。 我想在使用 controlCARD (MII 模式和外部时钟、与我们的 RMII 模式和内部时钟不同)时、没有必要改变这个位、这就是为什么"没有人"注意到的原因。
因此、如果任何其他人想要使用 RMII 模式和内部时钟: