Other Parts Discussed in Thread: DP83867IR
完成1000BASE-T 自协商链路后、我将尝试以 RGMII 模式发送和接收数据。
RX_D0至 RX_D3仅输出"1101"。
原因可能是什么?
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.
Sreenivasa San、您好
>您能否提供一些有关数据发送和接收方式的其他详细信息。
您能否检查电路板上的所有基本硬件诊断测试是否都正常工作。
⇒与1000BASE-T、RGMII 链接。 以下是寄存器设置。
基本模式控制寄存器(BMCR)、地址0x0000
reg0_set (15)<='0';-复位
reg0_set (14)<="0";--loopback
reg0_set (13)<="0";-速度选择 LSB
reg0_set (12)<='1';-自协商使能
reg0_set (11)<="0";-断电
reg0_set (10)<="0";-隔离
reg0_set (9)<='0';--restart 自动协商
reg0_set (8)<='1';-双工模式
reg0_set (7)<='0';--collision test
reg0_set (6)<='1';-速度选择 MSB
reg0_set (5)<='0';--↓保留
reg0_set (4)<='0';
reg0_set (3)<='0';
reg0_set (2)<='0';
reg0_set (1)<='0';
reg0_set (0)<='0';
自协商通告寄存器(ANAR)、地址0x0004
reg4_set (15)<='0';-np
reg4_set (14)<='0';-保留
reg4_set (13)<="0";-rf
reg4_set (12)<="0";-保留
reg4_set (11)<="0";-asm_DIR
reg4_set (10)<='0';-暂停
reg4_set (9)<='0';-T4
reg4_set (8)<='0';-TX_FD
reg4_set (7)<='0';-TX
reg4_set (6)<='0';-10_fd
reg4_set (5)<='0';-10BASETe_EN
reg4_set(4)<='0';--↓选择器
reg4_set (3)<='0';
reg4_set (2)<='0';
reg4_set(1)<='0';
reg4_set (0)<='1';
配置寄存器1 (CFG1)、地址0x0009
reg9_set (15)<="0";-↓测试模式
reg9_set (14)<='0';
reg9_set (13)<='0';
reg9_set (12)<="0";-主器件/从器件手动配置
reg9_set (11)<="0";-主器件/从器件配置值
reg9_set (10)<="0";--port 类型
reg9_set (9)<='1';-1000BASE-T 全双工
reg9_set (8)<="0";-1000BASE-T 半双工
reg9_set (7)<='0';--TDR 自动运行
reg9_set (6)<='0';--↓保留
reg9_set (5)<='0';
reg9_set (4)<='0';
reg9_set (3)<='0';
reg9_set (2)<='0';
reg9_set (1)<='0';
reg9_set (0)<='0';
寄存器控制寄存器(REGCR)、地址0x000D
reg13_0_set (15)<='0';-↓函数
reg13_0_set (14)<='0';
reg13_0_set (13)<='0';--↓保留
reg13_0_set (12)<="0";
reg13_0_set (11)<='0';
reg13_0_set (10)<="0";
reg13_0_set (9)<='0';
reg13_0_set (8)<='0';
reg13_0_set (7)<='0';
reg13_0_set (6)<='0';
reg13_0_set (5)<='0';
reg13_0_set (4)<='1';--↓DEVAD
reg13_0_set (3)<='1';
reg13_0_set (2)<='1';
reg13_0_set (1)<='1';
reg13_0_set (0)<='1';
地址或数据寄存器(ADAR)地址0x000E
reg14_0_set (15)<='0';--↓地址/数据
reg14_0_set (14)<='0';
reg14_0_set (13)<="0";
reg14_0_set (12)<="0";
reg14_0_set (11)<='0';
reg14_0_set (10)<="0";
reg14_0_set (9)<='0';
reg14_0_set (8)<='0';
reg14_0_set (7)<='0';
reg14_0_set (6)<='0';
reg14_0_set (5)<='1';
reg14_0_set (4)<='1';
reg14_0_set (3)<='0';
reg14_0_set (2)<='0';
reg14_0_set (1)<='1';
reg14_0_set (0)<='0';
寄存器控制寄存器(REGCR)、地址0x000D
reg13_1_set (15)<='1';-↓函数
reg13_1_set (14)<="0";
reg13_1_set (13)<="0";-↓保留
reg13_1_set (12)<="0";
reg13_1_set (11)<="0";
reg13_1_set (10)<="0";
reg13_1_set (9)<='0';
reg13_1_set (8)<='0';
reg13_1_set (7)<='0';
reg13_1_set (6)<='0';
reg13_1_set (5)<='0';
reg13_1_set (4)<='1';--↓DEVAD
reg13_1_set (3)<='1';
reg13_1_set (2)<='1';
reg13_1_set (1)<='1';
reg13_1_set (0)<='1';
地址或数据寄存器(ADAR)地址0x000E
reg14_1_set (15)<="0";-↓Address / Data↓Reserved
reg14_1_set (14)<="0";
reg14_1_set (13)<="0";
reg14_1_set (12)<="0";
reg14_1_set (11)<="0";
reg14_1_set (10)<="0";
reg14_1_set (9)<='0';
reg14_1_set (8)<='0';
reg14_1_set (7)<='1';-- RGMII_EN
reg14_1_set (6)<="1";-↓RGMII_RX_Half_full_THR
reg14_1_set (5)<='0';
reg14_1_set (4)<="1";-↓RGMII_TX_Half_full_THR
reg14_1_set (3)<='0';
reg14_1_set (2)<='0';--保留
reg14_1_set (1)<="0";-- RGMII_TX_CLK_DELAY
reg14_1_set (0)<="0";-- RGMII_RX_CLK_DELAY
PHY 控制寄存器(PHYCR)、地址0x0010
reg16_set (15)<="0";-- TX FIFO 深度
reg16_set (14)<="0";-- TX FIFO 深度
reg16_set (13)<="0";--↓保留
reg16_set (12)<="0";
reg16_set (11)<="0";
reg16_set (10)<="0";-- FORCE_LINK_Good
reg16_set (9)<="0";-- power_save_mode
reg16_set (8)<="0";-- power_save_mode
reg16_set (7)<="0";-- DEEP_POWER_DOWN_EN
reg16_set(6)<='1';-- MDI_cross
reg16_set(5)<="0";-- MDI_cross
reg16_set (4)<="0";-- disable_clk_125
reg16_set (3)<='0';--保留
reg16_set (2)<="0";-- STANDBY_MODE
reg16_set (1)<="0";-- LINE_DRIVER_INV_EN
reg16_set (0)<="0";-- disable_Jabber
硬件使用 Xilinx sp701评估板。
安装了两个 DP83867IR。
每个 DP83867IR 均连接到 FPGA。 DP83867IR 中的应用
DP83867IR① DP83867IR② μ A
・RxD →TXD
・rx_clk→GTX_clk
・rx_dv_rx_ctrl→TX_en_TX_ctrl
・TXD ←RxD
・GTX_CLK ←Rx_clk
・TX_en_TX_Ctrl←Rx_dv_Rx_Ctrl
连接和使用 PC、
DP83867IR ①⇔DP83867IR②
我正在尝试确认他们之间的通信。
・发送 ping
・使用[ iperf2]进行吞吐量确认
但两者都是错误。
上述 DP83867IR 寄存器设置由来自 FPGA 的 MDIO 控制。
每个 DP83867IR 执行该操作。
>您是否有要查看的原理图。
⇒μ A
关于 DP83867IR 的电路连接、所附评估板的电路图请参阅第8-10页。
已确认在100BASE-T 时 RX_clk 变为25MHz、在1000BASE-T 时变为125MHz、并且在链接后也会输出 RX_dv_RX_Ctrl。
只有 RX_d 固定为"1101"。
・INT_PDWN 固定为"H"且 IC 启用。
・RESET_B 通常为"H",复位"L"。
・、外部时钟25MHz 也是输入。
由于我使用的是我购买的评估板、
原因是 DP83867IR 或的寄存器设置
假设 DP83867IR 之间的信号连接存在问题。
我必须紧急解决这个问题。
我们期待您的建议。
此致、
Takahashi
你好 Takahashi
感谢您的参与。
几个点
RGMII 延迟
您能不能检查 Xilinx 参考板使用的延迟是多少、并确认您是否使用相同的延迟。
有关 RGMII 延迟调整的更多信息、请参阅以下内容
您是否还能检查客户是否准备执行 MII 回送和数字回送测试。
此致、
Sreenivasa
Sreenivasa San、您好
最诚挚的歉意。
由于我的错误,来自 RX_D 的数据[0... DP83867IR 的[3]
它是在 FPGA 中捕获的。
但是、
在我之前联系过的连接条件下检查回送时、将会发生错误。
>能否检查 Xilinx 参考板使用的延迟是多少并确认是否使用相同的延迟。
⇒是的。 我将确认。
>您是否还可以检查客户是否准备好执行 MII 回送和数字回送测试。
⇒我很抱歉。 我不是很了解。
这是否意味着再次确认环境以确认回送?
此致、
Takahashi
Sreenivasa San、您好
我们将再次与您联系。
我们还没有解决这个问题。
您已要求我确认以下关于此问题的两点。
(1)环回方法
(2) RGMII 延迟
(1)没有问题。
让我向您询问有关(2)的问题。
查看我当天发送的电路图、我认识到由于安装了 DP83867IR PAP、因此无法通过硬件绑定来设置延迟。
换言之、此 sp701评估板的 RGMII 延迟为
必须使用来自 FPGA 的 MDIO 设置以下寄存器。
寄存器0x0032
寄存器0x0086
这种感觉是否正确?
此致、
Takahashi
Sreenivasa San、您好
以下内容是什么意思?
>根据输入、我能否假设客户已经完成 SGMII 测试并正常工作。
MII 环回测试
寄存器"0"
数字回送测试
寄存器"16"
您是否使用了上述内容、从 MAC 侧发送参考数据、将其与环回数据进行比较、并确认没有问题? 这是什么意思吗?
>我建议使用Xilinx 与电路板一起开始的延迟值。
⇒不幸的是,我无法确认。
目前、我将尝试各种延迟设置、
您能想到有关此问题的其他因素吗?
此致、
Takahashi
Takahashi-San、您好!
使用了以下寄存器
环路
0x0000、0X0016、0X00FE
对于延迟控制、如果您没有默认值、请参阅以下指南
http://www.ti.com/lit/an/snla243/snla243.pdf
我将告诉您是否有任何其他输入。
此致、
Sreenivasa
Sreenivasa San、您好
感谢你的答复。
此问题已解决。
毕竟、这是由于 RGMII 的延迟。
我能够找到清除 ping 的延迟设置。
感谢您的宝贵建议。
我想再次确认一点。
对于1000BASE-T、从 PHY 到 MAC、为125MHz CLK
我认为4位数据将出现在上升沿和下降沿。
数据的开头(第一个前导码)始终为 CLK
它是否从头开始?
是否存在数据从 CLK 下降沿开始的情况?
请确认。
此致、
Takahashi
Sreenivasa San、您好
打扰一下。
我不理解以下消息的含义。
-------------------------- --------------------------
>任何关于-2ns 设置的想法
-------------------------- --------------------------
>由于时钟为125M、因此该数据需要在上升沿和下降沿进行传输。
我看不到根据数据表更改时钟相位的选项。
我将与团队进行检查。
⇒根据
数据表 P 33 [8.4.1.1.1 1000Mbps 模式运行]
125MHz DDR 8位、
在 CLK [3_0]的上升沿、
在 CLK 的下降沿[7_4]
它是一个传输。
换句话说、8位(1Byte)数据始终位于上升沿。
我们认识到、我们将开始发送和接收。
对吧?
此致、
Takahashi
Sreenivasa San、您好
我认为这取决于具体情况、因此不是可靠的信息。
RX_CLK:0.25ns
TX_CLK:2ns
安装在 Xilinx sp701评估板上的两个 dp83867ir
将评估板上 FPGA 中的 CLK、DATA、CTRL 信号短路、
这是一个延迟设置、使用两台 PC 确认 ping 清除。
DP83867IR ① DP83867IR ②
RXD → TXD
RX_CLK → GTX_CLK
RX_dv_RX_Ctrl → TX_en_TX_Ctrl
TXD ← RxD
GTX_CLK ← Rx_clk
TX_en_TX_Ctrl ← Rx_dv_Rx_Ctrl
如果我找到最初在评估板上设置的 RGMII 延迟设置、我将在此处添加它。
非常感谢。
此致、
Takahashi