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.

[参考译文] DP83822I:从自协商模式切换到强制模式后缺少链路

Guru**** 2589280 points
Other Parts Discussed in Thread: DP83822I, AM4376

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/895830/dp83822i-missing-link-after-switching-from-auto-negotiation-to-forced-mode

器件型号:DP83822I
主题中讨论的其他器件: AM4376

各位专家、您好!

在我们的硬件平台上、我们使用两个类型为 TI DP83822I 的以太网 PHY 收发器。 两个 PHY 都通过 MII 接口连接到 AM4376 CPU、并与 ICSS_EMAC (支持 DLR 的 EtherNet/IP 适配器)配合使用。

当 PHY 复位(RESET_N =高电平)后、首次使用 MDIO 接口(CSL_MDIO_phyRegRad/Write)对其进行配置:

  1. 禁用 IEEE 断电模式(BMCR 位11 = 0)
  2. 禁用 RGMII 和 RMII 模式并切换到 MII 模式(RCSR 位9、5、7 = 0)
  3. 为 LED 0设置低极性(LEDCR 位7 = 0;PHYCR 位5 = 0)
  4. 启用中断...
  5. 启用自动 MDIX (PHYCR 位15 = 1)
  6. 设置自动协商功能(ANAR 位8-5=1)
  7. 启用并重新启动自动协商(BMCR 位 12、9 = 1)

在此配置中、已成功建立链路、一切正常。 上述设置序列在驱动器层上执行、用于将以太网接口设置为默认工作状态。

当将速度和 uplex 配置更改为强制模式时、例如 禁用自动协商的100 MBIT/半双工、则不会建立链路。 当在步骤7 (上面)之后很快执行以下配置序列时、会发生此错误:

8、禁用自动协商(BMCR 位12 = 0)

9.将速度和双工模式设置为100Mbit/HD (BMCR 位13 = 1、位8 = 0)

此重新配置由应用程序完成、该应用程序对两个以太网端口应用用户配置。 步骤8似乎是有问题的部分:

  • 当在步骤7之后等待稳定的链路信号、然后执行步骤8时、将以100MBit、HD 建立链路。
  • 当不等待稳定的链路(或没有以太网电缆的未知超时)时、将不会建立链路。 拔下并重新插入以太网电缆无法解决问题。
  • 跳过步骤5-7也无法解决问题。 我没有预料到这一点、因为步骤5-7不会更改 PHY 的默认配置。

为了获得稳定的链路信号(并行检测)、必须如何将 PHY 从自动协商重新配置为强制模式?

提前感谢您。

此致

Stefan Pape

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

    您好 Stefan、

    当您进行这些更改时、您的链接伙伴是否仍处于自动协商和自动 MDIX 模式、或者您是否也将它们更改为强制模式?

    您能否尝试启用 enable-MDIX 并查看它是否会创建链接?

    谢谢、

    Cecilia

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

    您好 Cecilia、

    感谢您快速回复我的请求。

    是的、在出现错误的情况下、连接方处于自动协商模式、并启用了自动 MDIX。 这是我们的测试 szenarios 之一、用户可能忘记更改链接伙伴的内嵌配置。

    启用强健的 MDIX 功能可以解决此问题、但似乎会使链路建立速度大幅降低、即使在两个链路伙伴上都启用了自动协商。

    此致

    Stefan

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

    您好 Stefan、

    使用可靠的 MDIX 建立链路的速度要慢多少?

    我在上面提到、拔下电缆并插回电源插座并不能解决问题、但您是否尝试过执行软重置? 这是通过将4000写入寄存器0x1f 来完成的  

    谢谢、

    Cecilia

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

    您好 Cecilia、

    我没有明确测量建立链路的时间。 我在器件重新启动后观看了 LED0、并观察到 LED0有时会在开启之前保持关闭长达4秒。 如果不启用稳定可靠的 MDIX、LED0会在1-2秒内切换到开启状态

    向寄存器0x1F 写入0x4000会发出一个"数字复位"并且不会中断死锁状态。 我已经尝试过这么做。

    向寄存器0x1F 写入0x8000会发出"软件复位"并 中断死锁状态。 但它还会将配置重置为默认值、包括启用自动协商。 因此、我将会处于与以前相同的情况。

    此致

    Stefan

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

    您好 Stefan、

    感谢您让我知道您也尝试过重置。  

    我需要更多时间来进一步调查这一点。  

    在您将链接伙伴设置为自动协商的情况下、它仅广播特定的速度、而仅广播半双工?  

    谢谢、

    Cecilia

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

    您好 Stefan、

    我与我的团队谈论了这种测试方案。 您在 e2e 问题上分享的内容似乎是预期行为。 对于 DP83822、如果您启用了自动协商+强制 MDI/MDIX 或强制速度+自动 MDIX、则会失去链路。您必须同时启用两种强制模式或同时启用两种自动协商模式。

    谢谢、

    Cecilia

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

    您好 Cecilia、

    对您从4月23日起的回复:

    否、在测试用例中、连接合作伙伴是一款通用的快速千兆位桌面交换机、提供默认速度和双工功能。

    对你从4月24日起的答复:

    如果我向右看、DP83822在未启用自动 MDIX 的情况下无法进行自动协商、反之亦然。 是这样吗?

    我在文档(数据表/手册/勘误表)中没有找到有关此类依赖性的提示。 我们将 PHY 与支持 DLR 的 PRU EtherNet/IP 适配器搭配使用。 如果 DP83822在启用自动 MDIX 的情况下无法以强制速度/双工模式运行、则无法通过当前的 EtherNet/IP 一致性测试。 在测试期间、将在启用自动 MDIX 的情况下强制执行速度和双工。 当测试从自动协商切换到强制速度时、由于链路损耗、测试失败。  

    在 EtherNet/IP 适配器 v1.0.3.4示例代码中、引用了 DP83822 (请参阅 board_dp83822.c)。 在实现方案中、我没有找到针对自动协商/MDIX 问题的任何权变措施(例如启用强大的 MDI-x)。 但对于 DP83867、有一种权变措施、即如果 PHY 切换到强制速度、则自动 MDIX 由软件完成(请参阅 board_tlkphy.c > Board_tlkMDIXTask)。

    因此、我对应实施哪种解决方案/解决方法有点困惑:

    • 只需启用强大的自动 MDIX? 似乎可以工作、但速度相当慢。
    • 实现基于软件的 Auto-MDIX 功能? 我不希望它比强大的自动 MDIX 更快。

    使用 DP83822时是否可以获得 EtherNet/IP 符合性声明?

    如果是、应使用/首选哪种变通办法?

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

    您好 Stefan、

    解决此问题的方法是使用稳定可靠的 MDIX。 我们已经在数据表中说明了一点、即在执行非正常自动 MDIX 功能时(在寄存器映射0x0009的表24中提到)、这是一个可选选项。

    是否存在启用强大的自动 MDIX 的性能缓慢问题? 您对此有何规格要求?

    谢谢、

    Cecilia

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

    您好 Cecilia、

    我们对连接时间没有任何要求。 在大多数情况下、链路建立时间不会考虑在内、因为器件执行上电复位时经过了这段时间。 只有在运行时插入以太网电缆时、用户才会意识到连接所需的时间比其他设备(采用相同的网络设置)要长得多。

    因此、实现稳健可靠的 MDIX 将是实现稳定链路行为的短期解决方案。

    感谢您的支持。

    此致

    Stefan