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.

[参考译文] DP83826E:无法在与 F28388D 微控制器配合使用的 DP83826E PHY 上执行 MII 回送。

Guru**** 2012440 points
Other Parts Discussed in Thread: DP83826E, C2000WARE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1107319/dp83826e-unable-to-perform-mii-loopback-on-dp83826e-phy-in-conjunction-with-f28388d-microcontroller

器件型号:DP83826E
主题中讨论的其他器件: C2000WARE

您好!

我的团队拥有一个具有 F28388D 微控制器和以太网 PHY 的专有 PCBA。 我们想使用 DP83822 PHY (就像 controlCARD 上的 PHY 一样)、但当时已经售罄了、因此我们用它替代了 DP83826E。 我们在读取和写入 PHY 芯片中的寄存   器时没有问题、但我们无法成功执行 MII 回送。  我们尝试  在我们的定制板上运行 C2000Ware F28388D 示例项目 ethernet_ex2_phy_loopback、但它在没有收到良好数据包的情况下始终失败。 controlCARD 在等待时间方面存在一些问题(需要在结尾进行解释)、但在微调微小的变量后、MII 回送项目在 controlCARD 上运行良好。 我们感到困惑、因为乍一看、两个 PHY 非常相似。  更具体 地说、DP83822和 DP83826的基本模式控制寄存器位于同一地址、并且在相同的位位置包含相同的字段。 但是、尽管 有熟悉的编程接口、 示例项目仅为一个而不是为另一个传递。  但是、我们已经确认了内部回送示例  Ethernet_ex1_basic_TX_Rx_loopback 与我们的专有电路板一起工作(再次增加等待时间)。

到目前为止、我们已尽力遵循 DP83826数据表中提供的表格和说明、但 这是无效的。 因此、 我们希望 TI 员工 通过提供一些具体的示例代码来帮助我们、说明如何 使用 F28388D 微控制器在 DP83826E PHY 上回送 MII。  如果它有任何相关性、我们还会像在 controlCARD 中一样为 PHY 使用25MHz 时钟信号、并且我们仅使用基本模式以太网。

P.S.:等待数据包返回的 SYSCTL_DELAY()值太短,即使在内部回送示例中也是如此。 我必须将其从3000个周期增加到至少6000个周期、以避免接收返回的数据包时出现问题。

更新1:

我们从多路复用为 ENET_MII_RX_ERR 信号的微控制器 GPIO 引脚上断开 PHY RX_ER 引脚、然后运行 MII 环回示例。

这一次 它通过了。 然而、这并不是一个理想的解决 方案、因为它相当于将一分钱放在保险丝盒中、以使所有高功率家用电器立即运行。

但 这确实有助于缩小搜索范围、因为我们现在正在研究在定制电路板运行期间如何将 RX_ER 置为有效。

当然 、我们很高兴地欢迎 TI 在 寻找 RX_ER 断言的原因方面提供任何帮助。

Update1_edit:我想更正我之前的语句。 无法实际断开 PHY RX_ER 引脚与微控制器的物理连接。 相反、我的员工没有 将任何引脚复用为以太网接收错误引脚。

更新2:  

我们尝试使用一段以太网电缆执行外部环回、我们 将这些电缆分开并将某些电线短接在一起。 然后、我们运行 PHY MII 环回项目的修改版本、其中我们不会更改任何 PHY 寄存器、因此所有数据包都经过 PHY 的所有阶段并传输到电缆线路。 controlCARD 在接收通过此环回电缆段发送的自己的数据包时没有问题。 但是、 我们自己的专有板遇到了一种奇怪的现象、即我们没有收到任何正常的数据包、但也没有收到任何接收错误(是的、用作  ENET_MII_RX_ERR   的 GPIO 引脚已重新启用以提供该功能)。

截至此帖子、到目前为止所有硬件诊断尝试都表明电路板没有任何问题。 如果问题 确实与固件或 PHY 寄存器相关、 那么、我们目前不知道需要做些什么来使该 PHY 与 MCU 配合使用、因为 以太网模块有数十个配置变量、32个可按位寻址的 PHY 寄存器中至少有17个具有一些可写位。

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

    您好!

    从 PHY 团队的角度来看、我们不知道您提到的不同项目、因此建议 C2000Ware 专家对此发表评论。 我们唯一可以给出的注释是、在 DP83826上、除了设置寄存器0x0[14]之外、还需要根据数据表相应地设置0x16[4:0]。 我将把该主题重新分配给 C2000团队、以获得进一步的支持。

    此致、

    Gerome

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

    我们发现数据表有时不有用。 例如、以下列表项与任何寄存器地址不对应、但它们位于"9.3.14.4数字回送"标题下。

    • 0x0122 = 0x2000 /
    • 0x0123 = 0x2000
    • 0x0130 = 0x47FF

    此外、BOSCH 寄存器字段说明没有提到 相关位、位0至4的 MII 回送。 实际上、位2 (当置位时对应于值4)与该寄存器字段说明 表中的数字回路明确相关、与"通过设置 BMCR 中的位[14]和 BOSCH 中的位[2]启用 MII 回路"这一句相矛盾。

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

    您好 Howard、

    我理解有关数据表说明的困惑。 但是、对于 MII 回送、只需启用0x0[14]和0x16[2]。 如果您在初始语句中需要 MII 环回、为什么要考虑数字环回? 如果将这些位编程为高电平、则从 PHY 的角度实现 MII 回送。

    此致、

    Gerome

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

    我们不希望测试数字回路。 我们只是注意到、数据表 中似乎 包含 指示 数字回送需要设置0x16[2]的语句、而指示 MII 回送的语句需要设置0x16[2]。  如果这些说法是矛盾的,那么我们不知道哪一个是正确的,哪一个是错误的。 如果这些语句 并不矛盾、并且两个环回都 涉及设置 PHY 寄存器0x16中的同一位、则数据表中没有用于支持该假设的显式语句。

    因此、我们发现数据表对某些器件没有帮助。

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

    您好 Howard、  

    感谢您的反馈、我将向团队传达我们将在数据表上进行的未来更新。 目前,我建议按照第9.3.14节的说明进行。 如果没有其他问题、我将把此查询重新路由至 C2000团队。 请确认。

    此致、

    Gerome

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

    是的、请将此问题发送给 C2000/C2000Ware 团队。

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

    我们从多路复用为 ENET_MII_RX_ERR 信号的微控制器 GPIO 引脚上断开 PHY RX_ER 引脚、然后运行 MII 环回示例。

    这一次 它通过了。 然而、这并不是一个理想的解决 方案、因为它相当于将一分钱放在保险丝盒中、以使所有高功率家用电器立即运行。

    但 这确实有助于缩小搜索范围、因为我们现在正在研究在定制电路板运行期间如何将 RX_ER 置为有效。

    当然 、我们很高兴地欢迎 TI 在寻找 RX_ER 断言的原因方面提供任何帮助。

    编辑:我想更正我之前的陈述。 无法实际断开 PHY RX_ER 引脚与微控制器的物理连接。 相反、我的员工没有 多路复用任何 GPIO 引脚作为以太网接收错误引脚。

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

    我们尝试使用一段以太网电缆执行外部环回、我们 将这些电缆分开并将某些电线短接在一起。 然后、我们运行 PHY MII 环回项目的修改版本、其中我们不会更改任何 PHY 寄存器、因此所有数据包都经过 PHY 的所有阶段并传输到电缆线路。 controlCARD 在接收通过此环回电缆段发送的自己的数据包时没有问题。 但是、 我们自己的专有板遇到了一种奇怪的现象、即我们没有收到任何正常的数据包、但也没有收到任何接收错误(是的、用作 ENET_MII_RX_ERR   的 GPIO 引脚已重新启用以提供该功能)。

    截至此帖子、到目前为止所有硬件诊断尝试都表明电路板没有任何问题。 如果问题 确实与固件或 PHY 寄存器相关、 那么、我们目前不知道需要做些什么来使该 PHY 与 MCU 配合使用、因为 以太网模块有数十个配置变量、32个可按位寻址的 PHY 寄存器中至少有17个具有一些可写位。

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

    您好 Howard、

    很抱歉、我们的回复很晚。 在整个对话过程中,控制卡配置似乎工作正常,而不是您的专有主板 ?

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

    是的、controlCARD 在默认 PHY 回路示例中没有问题、但专有电路板有。

    但是  、一名员工最近尝试不同 PHY 寄存器配置的努力至少使事情能够在没有自动协商、没有 MDIX、10 Mbps、半双工连接的情况下正常工作。 我们甚至成功运行了 lwip 示例。 但是、我们仍然希望连接速度至少为100Mbps。