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.
大家好,
我的客户在其带有光纤端口的项目中使用DP8.3822万。 但是,他们遇到了异常的通信问题:通电后,通信正常,如果他们拔出光纤端口并重新插入,则有时通信将失败,失败图片如下图所示:
以下是正常通信和异常通信时的寄存器值:
正常情况寄存器:
MII PHY #1收发器寄存器(从 第一个寄存器 到32个寄存器):
210.0784万d 2000 a240 01e10000 0004 2001
0000 0000 4100 1000 0000 0000 0000 0000 0000
0005 0108 e0万0 0000 0100 00e5
0400 8001 0.0007万D 05ee 0000 0002 0000。
基本模式控制寄存器0x2100:自动协商已禁用!
速度固定为100 Mbps,全双工。
基本模式状态寄存器0x784d... 784d.
链路状态:已建立。
支持100BaseTX-FD 100BaseTX 10baseT-FD 10baseT。
能够执行自动协商,协商未完成。
供应商ID为08:00:28:--:--:--,型号36修订版0。
关于此收发器类型,没有已知的特定信息。
我正在做广告011:100BaseTX-FD 100BaseTX 10baseT-FD 10baseT
无附加信息页广告。
IEEE 802.3 CSMA/CD协议。
链接伙伴能力为0000:。
协商未完成。
#
对于异常情况:
MII PHY #1收发器寄存器(从 第一个寄存器 到32个寄存器):
210.0784万d 2000 a240 01e10000 0004 2001
0000 0000 4100 1000 0000 0000 0000 0000 0000
2a050108 8300 0000 00ff FFFF 0100 00e5
0400 8001 0.0007万D 05ee 0000 0002 0000。
基本模式控制寄存器0x2100:自动协商已禁用!
速度固定为100 Mbps,全双工。
基本模式状态寄存器0x784d... 784d.
链路状态:已建立。
支持100BaseTX-FD 100BaseTX 10baseT-FD 10baseT。
能够执行自动协商,协商未完成。
供应商ID为08:00:28:--:--:--,型号36修订版0。
关于此收发器类型,没有已知的特定信息。
我正在做广告011:100BaseTX-FD 100BaseTX 10baseT-FD 10baseT
无附加信息页广告。
IEEE 802.3 CSMA/CD协议。
链接伙伴能力为0000:。
协商未完成。:
以下是客户使用的示意图:
请注意(客户以前使用我们的TLK105L,因此在这里他们使用相同的TLK105L用于DP8.3822万,因此有些引脚名称有点混淆)。 我们还尝试移除R1014和R1015, 问题仍然 存在。
由于客户可能会进入MP阶段,您能否帮助调查此问题,非常感谢您对此问题的大力支持!
此致,
Sulyn
您好,
我相信您已将光纤收发器的信号检测连接到DP8.3822万 (LED_1)。 什么是光学接收器信号检测极性?
是否可以确认RX_ER上的手提带配置? 我们需要它是模式3 (如果禁用RGMII)或模式4 (如果启用RGMII)
此致,
很棒
Geet,您好!
感谢您的支持! 事实上,客户没有使用信号检测(如您所见,他们将LED1引脚拉得太高)。 它们无法检测来自光学模块的信号。
对于RX_ER,当我们进行测试时 ,我们让此引脚打开,根据我们的数据表,这应该是模式4。
非常感谢您的支持!
此致
Sulyn
Geet,您好!
客户方面的事实是,他们不能使用LED_1检测来自SFP的信号,他们不想检查状态,而是始终将其拉高,使其始终"检测到信号"。 这是客户的要求。
对于RX_ER模式,我们将此引脚浮点,即模式4。
根据客户的要求,这些软件解决方案是否需要避免(不要考虑REST解决方案)? 谢谢。
此致,
Sulyn
Geet,您好!
您能否帮助提供问题反馈,因为它处于MP阶段,因此支持这一问题非常重要,谢谢! 如果没有,他们将快速切换回BCM5421解决方案。
此致,
Sulyn
Geet,您好!
感谢您的支持! 因此,如果我们建议客户执行软重置,客户如何知道何时执行软重置? 他们应该监控哪些寄存器以确定在拔下电缆后何时执行软复位?
此致,
Sulyn
Geet,您好!
感谢您提供信息,我们现在计划使用0x0012寄存器的第9位来判断和执行软重置以重新同步phy,详情如下:
监视器0x0012寄存器,当0x0012的位9被检测为1时,将执行软重置以重新同步通信。 这在多次测试后效果很好,以避免在插上电源后出现不稳定的通信问题,但我需要您的帮助,以检查此解决方案是否可以使用以及可能存在的任何其他潜在问题?
PHY_DATA = phy_read (phydev, 0x0012);
IF (phy_data和0x0200)
{
printk ("phy reset \n");
phydev->link =0;
phydev->speed = speed_10;
phydev->duplex = duplex_half;
PHY_WRITE (phydev,0,0x8000);
Udelay (100);
dp8.3822万_config_init(pydev);
PHY_WRITE (phydev,0,0x2100);
}
另一个需要说明的导入问题是,在测试期间,寄存器0x0001似乎总是显示0x784D,即使在移动光纤电缆时(位2为1),这应该不会显示链接,但它仍然显示链接良好?为什么会这样? 这是否是因为SD_DIS是您提到的EN_DIS?
此致,
Sulyn
您好,Sulyn,
是的,使用来自光纤收发器的信号检测信号有助于修复寄存器0x0001中的错误链路状态。 DP8.3822万使用该信号重置信号上的链路状态机。
使用位9:为什么选择此中断位? 拔下并重新插入电缆时,您是否观察到此中断位为n?
此致,
很棒