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.

[参考译文] DP83825I:无法与 DP83825I 以太网 PHY 建立 100Mbps 链路。

Guru**** 2693915 points

Other Parts Discussed in Thread: DP83825I, DP83825EVM

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1588099/dp83825i-unable-to-establish-100mbps-link-with-dp83825i-ethernet-phy

器件型号: DP83825I
Thread 中讨论的其他器件: DP83825EVM

尊敬的 TI 团队:  

由于我们在启动 DP83825I ETH PHY 模块时遇到问题、我希望获得一些指导或调试技巧。  

我们当前的情况是、DP83825I 无法使用 100Mbps 速度建立链路。 它可以与多个 链路伙伴(我们尝试的任何商业以太网器件)或与我们自己设计的另一个实例建立 10Mbps 的链路。

我会尽量公开我们认为合适的所有相关信息。 如果事情不清楚、请随时询问更多信息。   

电流行为

  1. 使用默认上电配置(广播 ON、100Mbps 全双工功能)- PHY 无法达到“建立链路“状态、即 BMSR 寄存器 (0x1) 中的位 2 和 5 从不置为有效。 使用此配置时、似乎从未完成。 这与我们尝试的每个链路伙伴都是一致的。  
  2. 当通过在链路任一侧将 0x61 写入寄存器 0x4 来将广播的速度设置为 10Mbps 时、在使用与而不使用的情况下强制实现该速度时、会正确建立链路。
  3. 禁用并尝试强制 100Mbps 链路不会建立链路。
  4. 使用为广播的半双工 100Mbps、或者在禁用并尝试强制使用时、也不会产生有效链路。



所采取的调试步骤和结果

  1. 所有环回模式都能够在 10Mbps 和 100Mbps 全双工模式下建立链路、即 BMSR 寄存器中的位 2、5 置为有效。
  2. 当使用环回以太网电缆(即焊接了导线 1-3 和 2-6、长度为~10cm 的电缆)时、“链路建立“指示在全双工模式下以 100Mbps 速度正确置为有效。 即、器件可以使用我们尝试的任何电气设计(如下所述)通过并与其自身建立链路。
  3. 使用 PRBS 数据包生成的 BIST 测试通过模拟环回而没有错误 — 即寄存器 0x16 显示 PRBS 为有效且锁定、寄存器 0x18 中没有计数错误。
  4. 连接两个相同的 DP83825I PHY 设计(下面所述的任一设计 1-5)时、我们可以验证两个 PHY 是否在其相应的 ALNPAR 寄存器(寄存器 0x5 位 5:8)中正确锁存链路伙伴的功能。 我们由此得出的结论是、两侧均会正确广播和解码这些功能、但链路建立在地址 0x1 位 5 处的 BMSR 寄存器中失败、表明 AN 未完成。

电气设计信息和所采取的步骤
根据广播的规格验证外设的电压电平、电阻和容差值。
基准时钟是 RMII 主模式下由外部 CMOS 电平振荡器提供的 25MHz。  
我们尝试了 5 种不同的电气设计、在 RJ-45 连接器和 PHY 本身之间使用不同的连接类型(已连接并在附加的 PDF 中标记为 eth1-5):

  1. 根据我们的参考设计、采用磁性元件和扼流圈的完整设置已得到充分理解。  
  2. 相同、没有扼流圈器件。
  3. 仅扼流圈连接。
  4. 使用 100nF 电容器  
  5. 使用 33nF 电容器   

所有描述的设计都显示完全相同的行为。

我们的设计文档:

2025年10月13日 PHY_Test_RJ45_v1 — 原理图(修订版 3)。PDF  


我们还尝试了在没有成功的情况下禁用自动 MDIX 和强制交换 (CR3 寄存器 0xB 中的位 5)。
未成功尝试稳健的自动 MDIX 模式。
VOD 级别 — 尝试了 50/150%的值 — 未成功。
SOR1 和 SOR2 寄存器都按预期显示所有 0。  

到目前为止、我们尚未找到任何寄存器配置或电气设计更改、因而能够与任何链路伙伴建立 100Mbps 链路。  
附加我们的电气设计以供参考、我们很乐意提供任何可以尝试克服这一问题的指针或调试建议。

提前感谢、  
跑了。   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 RAN:

    感谢您的详细说明。 如果所有环回模式都在 100M 工作、则 DUT 本身应该正常。 我有几个问题来更好地了解问题:

    1.您是否使用已知良好的 100M 链路伙伴和电缆测试了此设计? DUT 似乎可以、因此我想排除电缆问题或链路伙伴问题。 DP83825EVM 可以一个很好的例子、它经过测试、可以在 100m 的电流下工作。

    2.当 PHY 连接到链路伙伴但没有出现链路时、您可以共享寄存器转储吗? 特别是寄存器 0x0000 至 0x001F、SOR 寄存器和 MSE 寄存器 (0x0218)

    3.在测试环回模式时,您是只查找链路指示符,还是实际发送和接收数据包?

    • 仅链路指示器不足以确定环回模式是否正常工作。
    • 我建议检查反向环回是否返回无错误数据包。 DP83825 故障排除指南的第 2.5.3 节 介绍了 该测试。
    • 实质上、您是从链路伙伴传输数据包、在 825 DUT 上启用反向环回、并检查链路伙伴是否无误接收到数据包。
    • 如果有两个 DP83825I、可在其中一个启用 PRBS、在另一个启用反向环回。

    此致、

    Shane

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Shane、感谢您的快速答复和对此进行的研究。  

    关于您的问题:

    1.是的,我们尝试创建一个与其他各种设备的启用和禁用的链接,并且使用 100Mbps 速度无法与任何设备链接,包括 经验证可以正常工作的一般商业设备。 我们可以使用 10MBps 速度与相同的链路伙伴进行连接。

    2.明天早上我将与您请求的注册表共享一个寄存器转储。  

    3.我们对有效连接的指示是寄存器 0x1 和 0x10 的值(以及寄存器 0x0 和 0x4 的值,这些值主要是编写的配置)、以便与您在表 2-4 中分享的故障排除指南中的值相匹配。 具体来说、我们会查看 BMSR 寄存器 (0x1) 中的位 2 和位 5。  

    我们按照故障排除指南中 2.5.3 节“通过 BIST 发送和接收数据包“的顺序与链路伙伴(这是我们设计的另一个实例)进行了操作、即在链路伙伴中置位 BISCR 寄存器的第 4 位、但未能通过此测试。 使用环回以太网电缆而不是实际链路伙伴时、相同的测试通过。  

    我们还使用模拟环回并使用环回电缆运行了该节中所述的下一个测试序列、并通过了测试序列(值与文档相匹配 — PRBS 被锁定,不计数任何错误)。  

    总结调查结果、我会说、 “实际“链路伙伴的实际使用似乎是导致这些测试(以及链路本身)失败的原因。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    添加 请求的信息

    第一项测试 — 连接到有效的链路伙伴,即连接到本地 LAN 的商用以太网交换机。

    设备验证 — 将商用设备 (PC) 与此 交换机和 相同电缆配合使用时、正确建立连接。  

    从 PC 转储以太网连接参数会生成有关已建立链路的以下信息:

    end0 的设置:
    支持的端口:[ TP mii ]
    支持的链路模式:10BaseT/Full
    100BaseT/Full
    1000BaseT/Full
    支持的暂停帧使用:对称仅接收
    支持自动协商:可以
    支持的 FEC 模式:未报告
    广播的链路模式:10BaseT/Full
    100BaseT/Full
    1000BaseT/Full
    广播的暂停帧使用:对称仅接收
    广播的自动协商:是
    广播 FEC 模式:未报告
    链路伙伴广播的链路模式:10BaseT/Half 10baseT/Full
    100BaseT/Half 100BaseT/Full
    1000BaseT/Full
    链路伙伴广播的暂停帧使用:对称
    链路伙伴广播的自动协商:是
    链路伙伴广播的 FEC 模式:未报告
    速度:1000Mb/秒
    双工:全双工
    自动协商:打开
    master-slave cfg:首选从器件
    主从状态:从器件
    端口:双绞线
    PHYAD:1.
    收发器:外部
    MDI-X:未知
    支持唤醒:UG
    唤醒:D
    当前消息级别:0x0000003f (63)
    DRV 探头链接计时器 ifdown ifup
    检测到链路:是

    将 PC 替换为基于 DP83825I 的设计时、无法建立链路。  
     与基于 DP83825I 的设计使用同一电缆与链路伙伴进行连接时的寄存器转储(原理图 1):

    索引寄存器 Value218)
    ----- ----- -----
    0 0x0000 0x3100
    1 0x0001 0x7849
    2 0x0002 0x2000
    3 0x0003 0xA140
    4 0x0004 0x01E1
    5 0x0005 0x0000
    6 0x0006 0x0006
    7 0x0007 0x2001
    8 0x0008 0x0000
    9 0x0009 0x0000
    10 0x000A 0x0100
    11 0x000B 0x0000
    12 0x000C 0x0000
    13 0x000D 0x401F
    14 0x000E 0x0000
    15 0x000F 0x0000
    16 0x0010 0x7812 通过 0x7912 和 0x3914 切换
    17 0x0011 0x0108
    18 0x0012 0xE600
    19 0x0013 0x2800
    20 0x0014 0x0000
    21 0x0015 0x001D
    22 0x0016 0x0100
    23 0x0017 0x0065
    24 0x0018 0x0480
    25 0x0019 0x8000
    26 0x001A 0x0010
    27 0x001B 0x007D
    28 0x001C 0x05EE
    29 0x001E 0x0102
    30 0x001F 0x0000
    31 0x0025 0x0041
    32 0x0027 0x0000
    33 0x0101 0x2082
    34 0x010A 0x2040
    35 0x0123 0x051C
    36 0x0130 0x4F50
    37 0x0170 0x0C12
    38 0x0171 0xC850
    39 0x0172 0x0000
    40 0x0173 0x1304
    41 0x0174 0x0000
    42 0x0175 0x1004
    43 0x0176 0x0005
    44 0x0177 0x1E00
    45 0x0178 0x0002
    46 0x0180 0x0000
    47 0x0181 0x0000
    48 0x0182 0x0000
    49 0x0183 0x0000
    50 0x0184 0x0000
    51 0x0185 0x0000
    52 0x0186 0x0000
    53 0x0187 0x0000
    54 0x0188 0x0000
    55 0x0189 0x0000
    56 0x018A 0x0000
    57 0x0302 0x0000
    58 0x0305 0x0008
    59 0x0308 0x0002
    60 0x030B 0x0C00
    61 0x030C 0x0010
    62 0x030F 0x0464
    63 0x0311 0x01FC
    64 0x0313 0x06F8
    65 0x031C 0x1101
    66 0x031F 0xFC36
    67 0x033C 0xEC00
    68 0x033E 0x261E
    69 0x0404 0x0080
    70 0x040D 0x0000
    71 0x0416 0x0830
    72 0x0429 0x0000
    73 0x0456 0x0008
    74 0x0460 0x0515
    75 0x0461 0x0010
    76 0x0467 0x0533 SOR1
    77 0x0468 0x1290 SOR2
    78 0x0469 0x0044
    79 0x04A0 0x1081
    80 0x04A1 0x1040
    81 0x0A2 0x0000
    82 0x04A3 0x0000
    83 0x04A4 0x0000
    84 0x04CD 0x0408
    85 0x04CE 0x0012
    86 0x04CF 0x261D
    87 0x04D0 0x0302
    88 0x04D1 0x018B
    89 0x04D2 0x354A
    90 0x04D4 0x6633
    91 0x04D5 0x02F1
    92 0x04D6 0x0171
    93 0x04D7 0x0171
    94 0x1000 0x3100
    95 0x1001 0x7849
    96 0x1014 0x0000
    97 0x1016 0x0100
    98 0x203C 0x0000
    99 0x203D 0x0000

    寄存器 0x218 值:0x000B(每次读取时会略有变化)

    测试 2 — 尝试作为链路伙伴与我们自己设计的另一个实例连接(将原理图 1 与 5 相连):

    索引寄存器值
    ----- ----- -----
    0 0x0000 0x3100
    1 0x0001 0x7849
    2 0x0002 0x2000
    3 0x0003 0xA140
    4 0x0004 0x01E1
    5 0x0005 0x41E1
    6 0x0006 0x0007
    7 0x0007 0x2001
    8 0x0008 0x0000
    9 0x0009 0x0000
    10 0x000A 0x0100
    11 0x000B 0x0000
    12 0x000C 0x0000
    13 0x000D 0x401F
    14 0x000E 0x0000
    15 0x000F 0x0000
    16 0x0010 0x1002 与 0x5102 和 0x1104 切换
    17 0x0011 0x0108
    18 0x0012 0x4000
    19 0x0013 0x6800
    20 0x0014 0x0000
    21 0x0015 0x0000
    22 0x0016 0x0100
    23 0x0017 0x0061
    24 0x0018 0x0480
    25 0x0019 0x8000
    26 0x001A 0x0010
    27 0x001B 0x007D
    28 0x001C 0x05EE
    29 0x001E 0x0102
    30 0x001F 0x0000
    31 0x0025 0x0041
    32 0x0027 0x0000
    33 0x0101 0x2082
    34 0x010A 0x2040
    35 0x0123 0x051C
    36 0x0130 0x4F50
    37 0x0170 0x0C12
    38 0x0171 0xC850
    39 0x0172 0x0000
    40 0x0173 0x1304
    41 0x0174 0x0000
    42 0x0175 0x1004
    43 0x0176 0x0005
    44 0x0177 0x1E00
    45 0x0178 0x0002
    46 0x0180 0x0000
    47 0x0181 0x0000
    48 0x0182 0x0000
    49 0x0183 0x0000
    50 0x0184 0x0000
    51 0x0185 0x0000
    52 0x0186 0x0000
    53 0x0187 0x0000
    54 0x0188 0x0000
    55 0x0189 0x0000
    56 0x018A 0x0000
    57 0x0302 0x0000
    58 0x0305 0x0008
    59 0x0308 0x0002
    60 0x030B 0x0C00
    61 0x030C 0x0010
    62 0x030F 0x0464
    63 0x0311 0x01FC
    64 0x0313 0x06F8
    65 0x031C 0x1101
    66 0x031F 0xFC36
    67 0x033C 0xFC00
    68 0x033E 0x261E
    69 0x0404 0x0080
    70 0x040D 0x0000
    71 0x0416 0x0830
    72 0x0429 0x0000
    73 0x0456 0x0008
    74 0x0460 0x0515
    75 0x0461 0x0010
    76 0x0467 0x0533 SOR1
    77 0x0468 0x1290 SOR2
    78 0x0469 0x0044
    79 0x04A0 0x1081
    80 0x04A1 0x1000
    81 0x0A2 0x0000
    82 0x04A3 0x0000
    83 0x04A4 0x0000
    84 0x04CD 0x0408
    85 0x04CE 0x0012
    86 0x04CF 0x261D
    87 0x04D0 0x0302
    88 0x04D1 0x018B
    89 0x04D2 0x354A
    90 0x04D4 0x6633
    91 0x04D5 0x02F1
    92 0x04D6 0x0171
    93 0x04D7 0x0171
    94 0x1000 0x3100
    95 0x1001 0x7849
    96 0x1014 0x0000
    97 0x1016 0x0100
    98 0x203C 0x0000
    99 0x203D 0x0000

    寄存器 0x218 值:0x000E(读取时略有变化)  

    观察 这些结果 时、可以发现两种测试之间寄存器 0x5 (ALNPAR) 的值存在差异 — 当连接到商业级链路伙伴时,该寄存器中没有锁存任何功能。 当连接到基于 DP83825I 的设计的另一个实例时、这些实例似乎已正确锁存。  

    再次感谢您的帮助、  

    跑了。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 RAN:

    我同意、真正的链路伙伴的存在似乎是导致该问题的原因。 如果链路伙伴的反向环回失败、则表明 PHY 的 MDI 侧存在问题。 使用环回电缆的通过结果和 ALNPAR 的行为令人感兴趣。 让我来看看这些寄存器转储、看看是否有任何其他可以使用的引线。

    此致、

    Shane

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 RAN、

    我将继续支持这一调试。 我看到、在坏情况下 (PHY 连接到另一个 LP)、他们无法从该器件获取广播(寄存器 0x5)。 这表明链路伙伴可能无法正确协商、因为 PHY 能够与自身建立链路。 您能否查看两种情况:

    -链路伙伴是否能够与自身的另一个实例链接?

    - DP83825 是否能够与另一个自身实例连接?

    这样将消除自链路建立依赖关系。

    此致、

    Gerome

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Gerome、感谢您的帮助。  
    我们用于连接的链路伙伴是商用设备(PC/路由器/交换机)。 因此,它应该能够正常工作 — 它们之间相互连接,没有任何问题。  

    我们的 DP83825 设计无法与自身的另一个实例建立链路、而获得链路指示的唯一方法是使用环回以太网电缆(即单一实例环回自身)

     由于我们在其他一些线程中注意到我们 抱怨相同问题  的注释、因此我们已将时钟输入电路替换为不同的电路、这似乎也解决了我们的问题。  

    这是我们发现的另一个抱怨相同问题的线程:
    DP83822IF:以 10Mbps 速率工作、但以 100Mbps 速率工作 


    再次感谢、  
    跑了。