大家好、
我们尝试通过环回测试来验证硬件设计。 具体而言、我们正在尝试根据数据表/论坛帖子中的信息设置近端数字回路。
我们的系统:
- 使用 DP83869HM 收发器
- SGMII 至铜线模式
- 在 Intel FPGA 中实例化的 MAC
- MAC 到 PHY 的连接是 SGMII
- 以1gig 的速度运行
设置数字回送所采取的步骤:
Write 0x8000 to reg 0x001F<-执行软件重启(将 PHY 寄存器值重置为默认值)Write 0x0140 to reg 0x0000<-设置1000Base-T、禁用自动协商Write 0x5028 to reg 0x0010关闭自动 MDI-X、进入手动模式、选择 MDI-XWrite 0xF004 to reg 0x0016<-启用数字回送、将 PRBS 置于连续模式Write 0x4000 to reg 0x001F<-执行软件复位(保留 PHY 寄存器值)
注意:我们已经开发了一些定制代码来根据 TI 和 Intel 数据表设置 PHY。 此自定义代码在上述块之前执行。 我们已经使用和不使用此自定义代码进行了测试。
验证环回是否正常工作所采取的步骤:
- 检查寄存器0x001 (BMSR)、查找 LINK_STS1为1 (链路打开)
- 另一个论坛的帖子建议了这一点: e2e.ti.com/.../3888709
- 检查寄存器0x0039 (PRBS_TX_CHK_CTRL)、查找任意数量的错误字节
- 检查寄存器0x003A (PRBS_TX_CHK_BYTE_CNT)、查找任意数量的错误字节
在所有情况下、链路状态(LINK_STS1)均已关闭
在所有情况下、PRBS_TX_CHK_CTRL 和 PRBS_TX_CHK_BYTE_CNT 寄存器都为0
因此、我现在的问题是:
- 上面列出的设置数字回送的步骤是否正确? 我们是否缺少了什么?
- 是否有其他方法可以验证数字回路是否正常工作?
下面是尝试设置数字回送的运行的寄存器转储。 请注意、下面的 BMSR 指示 PHY 链路未启动、并且两个 PRBS 寄存器都指示接收到0 (错误或正确)字节。
