ZHCADI8 December   2023 DP83822H , DP83822HF , DP83822I , DP83822IF , DP83826I

 

  1.   1
  2.   摘要
  3.   商标
  4. 1DP83822 应用概述
  5. 2排查 PHY 应用问题
    1. 2.1  原理图和布局检查清单
    2. 2.2  验证 PHY 是否成功上电
    3. 2.3  读取并检查寄存器值
    4. 2.4  外设引脚检查
      1. 2.4.1 探测 RESET_N 信号
      2. 2.4.2 探测 RBIAS 引脚
      3. 2.4.3 探测串行管理接口(MDC、MDIO)信号
      4. 2.4.4 探测 MDI 信号
    5. 2.5  在初始化期间验证 Strap 配置
    6. 2.6  调试链路质量
    7. 2.7  具有各种环回模式的内置自检
    8. 2.8  调试光纤连接
    9. 2.9  调试 MAC 接口
    10. 2.10 调试帧起始检测
    11. 2.11 工具和参考
      1. 2.11.1 DP83822 寄存器访问
      2. 2.11.2 扩展寄存器访问
      3. 2.11.3 Linux 上的软件和驱动程序调试
        1. 2.11.3.1 普通端子输出和解决方案
  6. 3参考资料

具有各种环回模式的内置自检

提供了多个环回测试选项,可用于测试和验证 PHY 中的各种功能块。通过启用环回模式,您可以使用 xMII/PCS/Digital/AFE 环回检查 MAC 与 PHY 之间的连接,以及使用反向环回检查 PHY 与 MDI 之间的连接。

GUID-47E48519-88BC-41E1-B257-BE9CB6CAB1D3-low.svg图 2-8 MAC 侧模拟环回模式示例
GUID-FF7A2998-0745-4E36-878B-EF3870791530-low.svg图 2-9 方框图、反向(电缆侧)环回模式

建议使用模拟环回来检查 MAC 和 PHY 之间的完整数据路径,而反向环回与链路伙伴一起使用以验证 PHY 和 MDI(链路伙伴)之间的数据路径。

该器件还包含内部 PRBS 内置自检 (BIST) 电路,可适应电路内测试或诊断。可以使用各种环回模式执行 BIST,以通过生成包含可变内容的封包化数据来隔离数据路径特定部分的任何问题。提供了脚本来启用数据生成器/校验器以及各种环回模式。

GUID-170D135E-7B41-4409-BFD0-73BA6A052550-low.svg图 2-10 具有环回功能的数据生成器和校验器

通过 MAC 发送和接收数据包:

如果可以使用 MAC 生成和检查数据包,并且 PHY 有一个具有反向环回功能的工作链路伙伴,请按如下方式验证完整数据路径:

  1. 为 PHY 供电并将其连接到 MAC 和一个正常工作的链路伙伴。
  2. 在链路伙伴上启用反向环回。
  3. 将测试数据包从 MAC 发送到 PHY。
  4. 验证 MAC 是否接收相同的测试数据包。

如果 MAC 接收到相同的测试数据包而未出现问题,则通过 MAC → PHY → 链路伙伴 (MDI) 的完整数据路径是有效的。如果此测试未通过,则执行模拟环回以隔离数据路径上的问题(在运行模拟环回之前断开电缆侧连接):

  1. 为 PHY 供电并将其连接到 MAC。
  2. 在 PHY 上启用模拟环回(写入寄存器 0x0016 = 0x0108)。
  3. 将测试数据包从 MAC 发送到 PHY。
  4. 验证 MAC 是否接收相同的测试数据包。

如果 MAC 接收到相同的测试数据包,则通过 MAC → PHY 的数据路径有效,并且问题已与 MDI 数据路径隔离。如果此测试未通过,则问题可能出在 MAC 接口上。要检查 MAC 接口,请参阅调试 MAC 接口

下面是执行模拟环回的寄存器读取和写入的示例序列:

// Analog Loopback

begin

001F 8000 //Hard Reset
0000 2100 //Disables Auto-Neg, Selects 100 Mbps
0016 0108 //Select Analog Loopback
030B 3380 //This helps PRBS LOCK

0016 3108 //Enables PRBS Checker Config & Packet Generation Enable
 //After you write '3108' the register should Read 3b04. (Bit 11 & 9 go high)
001B 807D //Lock Error Counter's Value
001B

//after running this test check register 0010 bit 0 should be 1 
end

通过 BIST 发送和接收数据包:

如果无法通过 MAC 生成和检查数据包,请使用外部数据包生成器或内部 PRBS 数据包生成和检查功能来验证数据路径。使用 PRBS 和正常工作的链路伙伴执行反向环回,如下所示:

  1. 为 PHY 供电并将其连接到链路伙伴。
  2. 在 PHY 上启用 PRBS 数据包生成(将 0x16 写入 5000)。
  3. 在链路伙伴上启用反向环回
  4. 等待至少一秒钟,然后检查 PHY 上的 PRBS 锁定状态(读取寄存器 0x17[11:10])。

如果寄存器 0x17[11] 为高电平,则通过 PHY → MDI 的数据路径有效。如果此测试未通过,则问题可能出在 PHY 的内部数据路径或 MDI 上。要验证内部数据路径,请使用以下脚本执行带有模拟环回的 PRBS。如果内部数据路径有效,则问题将与 MDI 隔离(假设链路伙伴正常工作)。

以下是使用两个 DP83822 PHY 时,为执行 BIST 而进行的寄存器读取和写入的示例序列:

// Reverse Loopback on PHY

begin

001F 8000 //Hard Reset
0000 2100 //Disables Auto-Neg, Selects 100 Mbps
0016 5000 //Enables PRBS packet generation
0017 // check PRBS lock status

end

// Reverse Loopback on Link Partner

begin

001F 8000 //Hard Reset
0000 2100 //Disables Auto-Neg, Selects 100 Mbps
0016 0110 //Select Reverse Loopback

end