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.

[参考译文] DP83869HM:PHY 未连接基于 FPGA 的 MAC

Guru**** 2455360 points


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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/941306/dp83869hm-phy-not-interfacing-with-fpga-based-mac

器件型号:DP83869HM
主题中讨论的其他器件:DP83869

FPGA 之间有2个 DP83869 PHY、其中包含千兆位以太网 IP 内核。  我有一个 PHY 硬件将 RGMII 绑定到铜、另一个硬件将 RGMII 绑定到1000Base-X  我已确认每个 PHY 上的自举正确、并且我有一个 UART 模块、该模块输出 MAC 和 PHY 寄存器值、这也确认 PHY 自举有效。  在 FPGA 内部、我有一个主要配置 MAC 寄存器的 FSM、但我也向寄存器0x18 (LEDS_CFG1)写入数据、以使以太网插孔 LED 正常工作。  连接以太网电缆时、链路指示灯稳定亮起、活动指示灯闪烁。   

我的问题是、我没有得到任何 RGMII 数据在 MAC 和 PHY 之间传输的证据。  读取寄存器0x11时、即使主机 PC 将该链路视为有效的千兆链路、也不会获得有效的速度、双工或链路。  我已验证所有电源线、resetn 为高电平、25MHz 时钟。   

如何进行调试、如何确定系统问题的位置? 我知道这可能是 MAC 的问题、但我正在尝试探讨所有可能的问题。

谢谢

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

    您好、Raymond、  

    首先、我将使用环回测试来确定问题在数据路径中的位置。 您可以将 PHY 设置为反向回送、以验证您是否在 PHY 和链路伙伴之间进行了链路和成功数据传输。 然后、您可以使用数字或模拟环回模式来验证 MAC 接口。 这些通过寄存器0x0016进行配置。  

    此致、
    Justin  

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

    感谢您的输入。

    我确实运行了一个实验、在 FPGA 中、我将 RGMII Rx 信号映射回同一 PHY 的 RGMII TX 信号、并运行了一个信号分析工具、匹配的 RGMII 信号。  这基本上是一个欺骗回路测试。

    然后、我尝试了 BIST 寄存器、为环回测试写入0xF0A0、但实际上看不到任何东西。  运行程序并将以太网电缆插入电路板、另一端连接到计算机也插入的交换机、删除了计算机的以太网接口、 此时、我必须重新启动计算机并重新安装 Wireshark、才能再次查看以太网接口。  再次尝试、这一次电路板直接插入我的计算机、我没有看到任何回路指示、但 Wireshark 只会在电路板连接和编程时显示流量。   

    我的计算机在运行命令  wmic NIC 时会显示有一个有效的千兆位链路、其中"NetEnabled='true"在   Windows 上获取"名称"、"速度"

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

    我确实对寄存器0x11有另一个问题、其中报告了链路状态、速度和双工。  当我连接到设备时、我看不到与我的主机计算机上相同的信息。  我从该寄存器读取10Mbps、半双工且未检测到链路。  我关闭了除1000Base-T 半双工和全双工之外的所有广播模式、因此我不应该看到10Mbps 链路。  是否有任何关于如何在此处继续的建议?

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

    您好、Raymond、

    当器件处于故障状态时、您能否提供寄存器0x0000-0x001F、0x006E、0x01DF 的寄存器信息? 您提到您正在测试多个 PHY、哪个 PHY 显示了链路错误? 您用于测试的设置的方框图也很有帮助。  

    此致、
    Justin  

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

    当然、

    0x00 11 40

    0x01 79 49

    0x02 20 00  

    0x03 A0 F1

    0x04 00 01  

    0x05 00 00  

    0x06 00 64

    0x07 20 01

    0x08 00 00

    0x09 03 00

    0x0A 00 00

    0x0D 00 00

    0x0E 00 00  

    0x0F F0 00

    0x10 50 48

    0x11 03 00

    0x12 00 00

    0x13 00 42.

    0x14 29 C7

    0x15 00 00  

    0x16 00 00  

    0x17 00 40.

    0x18 00 10 (手动写入)

    0x1b 00 00  

    0x1E 00 12.

    0x1f 00

    遗憾的是、我们无法在当前配置中读取高于1F 的寄存器。  寄存器6E 和1DF 是否对使其正常工作至关重要?

    此 PHY 是为 RGMII 连接到铜缆的 PHY、其中我有一个以太网端口连接到它。  在清除第一个 PHY/MAC 接口问题后、我想第二个问题将是类似的修复。

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

    您好、Raymond、  

    寄存器0x6E 和0x1DF 是 DP83869中的扩展寄存器。 可按照 DP83869数据表第9.4.9.1节中的说明进行访问。 这些寄存器对于确定 PHY 的模式和通过自举设置器件的状态非常重要。  

    提供的寄存器数据显示 PHY 中的链路未建立、这是在您的 PC 显示链路时吗? 我还看到寄存器0x0005和0x000A 中的连接方没有通告任何自协商能力、这可能是 PHY 无法建立链路的原因。  

    您能否确认 FPGA 上没有连接 DP83869的内部上拉/下拉引脚? 连接到 DP83869引脚的 FPGA 拉电阻器可能会影响 DP83869的自举状态、从而导致其进入您不期望的模式。  

    此致、
    Justin  

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

    好的、我进行了扩展读取、我尝试了该部分给出的示例、并从寄存器 x170读回 xC0F

    0x6E 00

    0x1DF 00 40

    我还应该提到、我通过将0x0001写入寄存器0x04来禁用10/100自动协商、因为我只关心这个 PHY 上的1000Base T/X。  这些寄存器读取仅适用于 RGMII 中的 PHY、因为这是我目前正在处理的内容。

    我不这么认为。  我查看了器件的数据表、并没有真正看到任何有关内部拉电阻器的信息。  不过,我会继续研究这个问题

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

    您好、Raymond、

    您可以尝试通过设置或寄存器设置(0x0031[0]= 1)启用镜像模式吗? DP83869无法识别链路伙伴的自动协商能力、我想看看 FLPS 是否通过相反通道发送。

    正确、DP83869无法识别您的 PC 似乎指示的链接。 您能否尝试不同的链接合作伙伴来确定他们是否能够链接到 DP83869?  

    此致、
    Justin  

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

    我执行了与读取扩展寄存器相同的步骤、这次除了地址 x32、并添加了对 x0001寄存器0xE 的写入、并通过从 UART 读取寄存器0xE 的 x0001进行确认。  这导致我的计算机在运行前面提到的命令时无法看到有效的链接。  删除此扩展寄存器写入确实会返回我的计算机与设备的链接。   

    我已经尝试过其他一台 Windows 计算机、结果相同。 我很快就可以在 Linux 机器上试用它、但我不会期望有任何不同

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

    您好、Raymond、  

    是否可以确认您尝试了寄存器0x0031=0x0001 (非地址0x0032)?

    您能否分享该应用的原理图?

    此致、
    Justin  

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

    是的、这是一个拼写错误、它肯定是地址0x31。

    我目前无法分享原理图。

    现在、我能够看到设备在 Wireshark 中显示在 MAC 控制协议下、源 MAC 地址与我的设备匹配、但是、每当向其发送数据包时、错误计数器都会递增、表示它看到数据包、但会出于任何原因丢弃这些数据包。  MAC 设置与 FPGA 开发板相同、我们的板和开发板之间的主要区别在于 PHY。  该配置在开发板上工作、因此仍有与2的连接方式有关的内容