ZHCABZ7B October   2015  – December 2022 DP83867CR , DP83867CS , DP83867E , DP83867IR , DP83867IS

 

  1. 1商标
  2. 2DP83867 应用概述
  3. 3排查应用问题
    1. 3.1 读取并检查寄存器值
    2. 3.2 原理图和布局检查清单
    3. 3.3 元件检查清单
    4. 3.4 外设引脚检查
      1. 3.4.1 电源
      2. 3.4.2 RBIAS 电压和电阻
      3. 3.4.3 探测 XI 时钟
      4. 3.4.4 探测 RESET_N 信号
      5. 3.4.5 在初始化期间探测配置引脚
      6. 3.4.6 探测串行管理接口信号(MDC、MDIO)
      7. 3.4.7 探测 MDI 信号
    5. 3.5 链路质量检查
    6. 3.6 具有各种环回模式的内置自检
    7. 3.7 调试 MAC 接口
    8. 3.8 应用特定调试
    9. 3.9 工具和参考
      1. 3.9.1 DP83867 寄存器访问
      2. 3.9.2 扩展寄存器访问
      3. 3.9.3 应用手册参考
  4. 4结论
  5. 5修订历史记录

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

该器件包含内部 PRBS 内置自检 (BIST) 电路,可适应电路内测试或诊断。BIST 电路可用于测试发送和接收数据路径的完整性。BIST 可使用各种环回模式来执行,以便隔离数据路径特定部分的任何问题。BIST 会生成包含可变内容和 IPG 的封包化数据。下图说明了每个环回模式可用于验证的各种数据路径:

GUID-AAD60700-A163-4089-952A-61389BCEE136-low.gif图 3-8 方框图、环回模式
GUID-7B5AB2A6-1B53-4E6F-A288-DC1C2A649FC7-low.gif图 3-9 方框图、反向环回模式

模拟环回通常用于验证 PHY 的完整内部数据路径,而反向环回则用于与链路伙伴一起验证沿 MDI 的数据路径。

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

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

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

如果 MAC 接收到相同的测试数据包而未出现问题,则通过 MAC → PHY → MDI 的完整数据路径是有效的。如果此测试未通过,则执行模拟环回以隔离数据路径上的问题:

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

如果 MAC 接收到相同的测试数据包,则通过 MAC → PHY 的数据路径有效,并且问题已与 MDI 数据路径隔离。如果此测试未通过,则问题可能出在 MAC 接口或内部数据路径上。要验证 MAC 接口,请参阅调试 MAC 接口。要验证内部数据路径,请使用以下脚本执行带有模拟环回的 PRBS。

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

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

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

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

下面是寄存器读取和写入的示例序列,用于以 10Mbps 速率执行带有模拟环回的 BIST:

// This is how you make a comment.所有脚本都必须以“begin”开头
begin
// hard reset
001F 8000
// disable auto-neg, force 10Mbps (1)
0000 0100
// enable analog loopback (2)
0016 0008
// force mdi mode for 10/100 Mbps (not relevant for 1000Mbps)
0010 5008
// loopback configuration register required
00FE E720
// enable packet gen, keep analog loopback (3)
0016 5008

// (1)
// for 100Mbps, write 0000 to 2100
// for 1000Mbps, write 0000 to 0140
// (2) 
// for digital loopback, write 0016 to 0004
// for PCS loopback, write 0016 to 0003
// (3)  
// for packet generation with digital loopback, write 0016 to 5004
// for packet generation with PCS loopback, write 0016 to 5003
end

如果在不同的环回模式或速度下进行测试,则参考注释 (1-3) 寄存器写入。
在以下读取/写入操作之前至少等待一秒钟,以便允许 PRBS 发送数据包。

begin
// lock byte count
0072 0201
// check lock status, # of packets received, and # of errors
0017
0071
0072
// enable continuous mode packet counting
0016 D004
// update packet counter with current value (4)
0072 0201
// read packet counter (5)
0071
// soft reset
001F 4000
// Repeat (4) and (5) as desired to verify packet count changing for each counter update
end

寄存器 0x17[11] 指示 PRBS 是否能够通过给定的数据路径成功接收相同的已传输数据。