ZHCABZ7C October   2015  – April 2024 DP83867CR , DP83867CS , DP83867E , DP83867IR , DP83867IS

 

  1.   1
  2.   商标
  3. 1简介
  4. 2排查应用问题
    1. 2.1 读取并检查寄存器值以进行基本运行状况检查
    2. 2.2 原理图和布局检查清单
    3. 2.3 元件检查清单
      1. 2.3.1 磁性元件
      2. 2.3.2 晶体/振荡器
    4. 2.4 外设引脚检查
      1. 2.4.1 电源
      2. 2.4.2 RBIAS 电压和电阻
      3. 2.4.3 探测 XI 时钟
      4. 2.4.4 探测 RESET_N 信号
      5. 2.4.5 在初始化期间探测配置 (strap) 引脚
      6. 2.4.6 探测串行管理接口信号(MDC、MDIO)
      7. 2.4.7 探测 MDI 信号
    5. 2.5 链路质量检查
    6. 2.6 使用各种环回模式进行内置自检
    7. 2.7 调试 MAC 接口
      1. 2.7.1 RGMII 调试
      2. 2.7.2 SGMII 调试
  5. 3应用特定调试
    1. 3.1 提高短电缆的链路裕度
    2. 3.2 提高不同通道的链路裕度
    3. 3.3 在 100Mbps 全双工强制模式下建立链路
    4. 3.4 1Gbps 通信中的链路建立不稳定问题调试
    5. 3.5 DP83867PHY 和 DP83867PHY 无法以 1Gbps 建立链路
    6. 3.6 合规性调试
    7. 3.7 EMC 调试
    8. 3.8 工具和参考
      1. 3.8.1 DP83867 寄存器访问
      2. 3.8.2 扩展寄存器访问
  6. 4结论
  7. 5参考资料
  8. 6修订历史记录

使用各种环回模式进行内置自检

用于调试的环回功能:

环回模式可以确定 MAC < -- > PHY 或 PHY < -- > PHY 上发生的通信问题。MII 环回、PCS 环回、数字环回和模拟环回都可以隔离 PHY < -- > PHY 通信。反向环回可以隔离 MAC < -- > PHY 通信。下图展示了 DP83867 具有的各种环回模式:

DP83867 方框图,环回模式图 2-9 方框图,环回模式
DP83867 方框图,反向环回模式图 2-10 方框图,反向环回模式

模拟环回通常用于验证 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 发送和接收数据包:

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

DP83867

如果无法通过 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. All scripts must start with '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 是否能够通过给定的数据路径成功接收相同的已传输数据。