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:Xilinx Versal Premium 和 DP83869HM PHY 问题

Guru**** 2603695 points
Other Parts Discussed in Thread: DP83869HM, DP83869EVM

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1573885/dp83869hm-xilinx-versal-premium-and-dp83869hm-phy-issues

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

工具/软件:

我在使用连接到 TI DP83869HM PHY 的 Xilinx Versal Premium GEM 0 MAC 时遇到两个问题。

问题 1: 无法从 Linux 笔记本电脑 ping 通以太网接口。

问题 2:PHY 环回模式似乎无法在 100Mbps 或 1Gbps 速度下工作。

随附原理图模型。  PHY 通过板对板连接器连接到磁性元件和 RJ45 连接器。  MAC PHY 接口为 RGMII。

e2e.ti.com/.../ti_5F00_dp83869hm_5F00_schematic.pdf

Excel 3324.DP83869_PHY.xlsx 工作表中的 Schematic_Design_Review_Checklist Strap 配置设置:

MDIO 接口可以正常工作、我能够从器件转储 PHY 寄存器。 该寄存器转储还显示了 GEM0 MAC 设置。

e2e.ti.com/.../Ethernet_5F00_mac_5F00_phy_5F00_default_5F00_values.txt

Linux 测试笔记本电脑和嵌入式平台之间有一个到交换机的连接。  链路状态确实反映了嵌入式平台的当前设置 (100Mb/s 或 1Gb/s,具体取决于我们尝试测试的模式 — 表示自动协商似乎正常工作)。  注意:为 PHY 执行外部环回测试时、我们从开关断开连接、并使用 PHY 数据表中所示的环回软件狗。

问题 1

  • ping 会强制显示 ARP 消息(通过 Wireshark 观察)、询问谁具有 IP 地址、Versal 代码永远不会接收到进行处理的 ARP 请求(通过调试器观察到)。
  • Xilinx 的代码(emacps 驱动程序)可与其开发套件上的不同 PHY 配合使用。

问题 2

  • 我们尝试了 100Mb/秒和 1000Mb/秒  
  • RGMII 根据速度正确更改时钟((25MHz 时钟在 100Mb/s 模式下运行、<xmt-block1>125MHz</xmt-block> 时钟在 1000Mb/s 模式下运行)</s>125MHz
  • 在示波器上观察时、RGMII 信号看起来相对干净(未捕获任何信号,但在需要时可能捕获)。
  • 环回测试限制为 100Mb/s 模式、以便在切换到 1000Mb/s 之前首先使其正常工作
    • 100Mb/s 在 MII 环回中没有要求像 PHY 中的 1000Mb/s 引擎那样设置下游环回模式的要求。
  • 中断线路未连接、但 PHY 状态和中断状态显示在 PHY 中接收到页。
  • 但是、问题是在任何环回模式下都没有任何东西发送回 MAC(跳过模拟环回模式,因为我们连接到磁性元件,无法满足终端器要求)
  • 最初的 PHY 地址为 0、但无法使 PHY 响应 MDIO 命令、因此更改为地址 3 Strap 配置。
  • MAC 内部环回按照设计运行(但 PHY 不在其环路中)。
  • 将 UDP 用于无连接协议。  已尝试使用相同的 SRC/DST IP 地址、不同的 SRC/DST 地址和广播模式。
    • 已注意到、同一 SRC/DST 地址测试可能在 Xilinx 代码中短路、并且从不会碰到硬件。

感谢您的帮助!

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

    您好、Jim、

    我认为 解决这个问题的第一步是了解 RGMII 环回测试失败的原因。 如果 RGMII 接口出现问题、则无法 ping 通以太网连接。

    在任何环回模式下都不会将任何内容发送回 MAC

    对于 MII 环回、您在使用示波器进行探测时看到一个信号进入 PHY 的 RGMII TX 引脚、但没有信号从 PHY 的 RGMII RX 引脚发出?  

    • 这是意外情况、因为 MII 环回应将数据从 TX 引脚循环到 RX 引脚。
    • 需要确保我的理解是正确的

    您是否在多个电路板上看到了这一点?

    • 这会排除特定的故障器件或焊接问题。

    此致、

    Shane

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

    嗨、Shane、

    所以 ping 确实是我们尝试的第一件事、然后按照您的建议返回到环回。

    对于 MII 环回、我们确实可以看到进入 PHY 的 RGMII TX 线上的流量。  我们在 RGMII RX 线上没有看到流量、包括时钟线路和 CTRL 线路。  这始终与 MAC 看到的内容相匹配。  这就是为什么调试工作集中在 PHY 端(只有 MAC 上的旋钮用于调整、是 RX 是否启用,我们已经验证它是否启用 — 请参阅第一个寄存器中的 MAC 寄存器解码)。

    我有两个电路板设置、两者上也会出现相同的问题。  我还有另外 3 个电路板可供测试、但由于前两个电路板发生了这种情况、我没有尝试其他三个电路板。  在我执行的每次测试后、我都有寄存器捕获。  例如、我在上面提供的是选择环回模式之前的设置。  每次环回测试后、我还会转储 MAC 和 PHY 的寄存器、以查看两个器件看到的内容。  如果您想查看、我可以提供这些资源。

    感谢您的快速答复。

    Jim

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

    为完整起见、我想添加寄存器写入序列。

    PHY 的引导初始化(100Mb/s 模式):

    • 将 BMCR (0x00) 设置为 0x2100
    • 将 ANAR (0x04) 设置为 0x181(仅广播 100Mb/s 模式)
    • 将 GEN_CFG1 (0x09) 设置为 0x0000

    环回模式 MII:

    • 设置 BMCR (0x00) 以禁用环回前的自动协商(根据数据表)
    • 将 PHY_LOOPCR(扩展寄存器 0xFE)设置为 0xE720
    • 读取 PHY_LOOPCR 并检查将其与写入的值进行比较
    • 将 PHY_CONTROL (0x10) 设置为 0x5028(根据数据表更改环回模式之前禁用自动 MDI/MDIX)
    • 将 BMCR 设置为 0x6100 以实现 MII 环回模式
    • 将 BIST_CONTROL (0x16) 设置为 0x0004
    • 软复位 PHY 以保持寄存器值(将 PHY_GEN_CTRL (0x1F) 设置为 0x8000)
    • 已尝试在此处等待链接而不是等待链接
    • 在此处尝试设置/不设置 RGMII 调整值(使用 emacps 驱动程序 Xilinx 示例代码中提供的 PHY_TI_RGMII_VERSALEMU 0xAB 值)

    针对 PC 的环回:

    • 上述 MII 环回模式使用的序列相同、BMCR 设置为 0x2100、BIST_CONTROL 设置为 0x0001

    数字环回:

    • MII 环回模式使用的序列与上述相同、BMCR 设置为 0x2100 且 BIST_CONTROL 设置为 0x0004

    外部模式的环回:

    • 上述 MII 环回模式使用的序列相同、BMCR 设置为 0x2100、BIST_CONTROL 设置为 0x0010
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jim、

    我在实验室中使用我们的 DP83869EVM 对 TX_CTRL -> RX_CTRL 信号进行了 1000Mbps MII 环回测试。 通过以下设置、我可以看到 RX_CTRL 信号从器件发出(右侧 EVM 处于 MII 环回模式):

    为了获得信号输出、需要在 PHY 的 GTX_CLK 引脚上存在 125MHz 时钟。 为了将右侧 EVM 置于环回模式、我将 0x4140 写入寄存器 0x0000。 您能否确认 GTX_CLK 上存在时钟? 如果没有这一点、我想象 PHY 不会返回数据。

    • 如果您可以在 PHY 附近显示 TX_CLK、TX_CTRL 和 RX_CTRL 波形、这将有助于查看。

    此致、

    Shane

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

    您好、Jim、

    希望您做得好。 您是否能够使 MII 环回在您的系统上正常工作?

    如果您有任何其他问题、请告知我。

    此致、

    Shane

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

    嗨、Shane、

    我们的电路板上放置了一些导线、

    我今天能够进行测试、并简化了 PHY 环回模式功能、只需更改 BMCR 和 BIST_CONTROL 寄存器、而不是遵循我在数据表上面列出的顺序。

    在 100MB 模式下:MII、PCS、数字和外部环回 典型工作原理 1 安培。  我看到 25MHz 和 TX 与 RX CTRL 线路上的两个时钟都开始闸控消息传输。

    在 1Gb 模式下:MII、PCS 和数字环回 典型工作原理 现在(1Gb 模式下不支持外部环回)。  我看到 125MHz 的时钟和 TX 和 RX CTRL 线路都开始移动以门控消息传输。

    此外、我要发送的消息会返回、并与每次以两种速度发送的消息相匹配。


    然后、我进入并将 MAC/PHY 设置为正常运行模式(无环回模式)、并尝试对嵌入式板执行 ping 操作、此操作仍然失败。  现在检查代码、将于明天重试。  我今天只尝试了 100Mb 模式下的 ping。  明天我会尝试这两种速度。

    如果您想查看所有环回模式的示波器捕获图片、它们可以正常工作。

    谢谢、

    Jim

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

    您好、Jim、

    很高兴听到 MII 环回现在正常工作。 如果 ping 仍然不起作用、您可能还需要尝试反向环回测试。

    • MII 环回将验证 PHY 和 MAC 之间的接口
    • 反向环回将验证 PHY 和链路伙伴之间的接口。

    如果 MII 环回正常运行、则我认为 PHY 到 MAC 连接正常。 要排除 MDI 侧问题、最好尝试反向环回。  并联时、您可以使用不同的电缆或链路伙伴进行测试、以了解它是否可以隔离到信号路径中的一段。

    此致、

    Shane

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

    您好、Jim、

    只是检查一下、您是否能够在您的系统中测试反向环回?

    此致、

    Shane