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.

[参考译文] IND-COMMS-SDK:通过 LED_0 进行 PHY 链路检测

Guru**** 2431030 points
Other Parts Discussed in Thread: IND-COMMS-SDK, AM2432

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1539410/ind-comms-sdk-phy-link-detect-via-led_0

部件号:IND-COMMS-SDK
主题中讨论的其他器件:AM2432

工具/软件:

您好团队:

我使用 AM2432 和 de83822 开发 EtherCAT 子器件应用。

链路检测通过 MDIO 正常工作、但通过 PHY 的 GPIO 无法正常工作。

这就是我设置它的方式。

但是、不仅不会检测到链路、甚至不会找到链路。

是否需要任何其他配置?

最好的注意、

Oyama

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

    您好、

    但是、不仅无法检测到链接、还无法找到链接。
    • 您能否确认禁用增强链路时链路检测是否有效:
      • #define ECAT_PHYUSERXLINK_IN                (false)
        #define ECAT_PHYUSERXLINK_OUT               (false)
         
    • 此外、只是为了确认、在 MDIO 链路寄存器(偏移:0x30090E4C)处观察到 MDIO 链路状态、对吧?  

    此致、
    Aaron  

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

    您好 Aaron、

    禁用增强链接时、能否确认链接检测是否有效

    是的。

    此外、为了确认、在 MDIO 链路寄存器(偏移量:0x30090E4C)观察到 MDIO 链路状态、对吧?

    0x30090E4C 是空的、但我看到的是 0x300B240C。

    值是 0x02、但实际连接的是 IN 侧仅为 0x01。

    最好的注意、

    Oyama

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

    您好、

    是的。

    感谢您的确认。 因此问题似乎在于增强链路配置。

    该值为 0x02、但实际连接的端口仅为 0x01。

    也许链路极性反转、以便在连接端口之前  0x300B240C 为 0x03、在连接 IN 端口时变为 0x02(位 0 复位)。 或者、如果极性未反转、则尝试根据 MDIO 链路寄存器中的链路状态(即 1 表示输入、0 表示输出)配置 SYSCFG 中的 PHY 地址。

    此致、
    Aaron

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

    您好 Aaron、

    由于 LEDCR (7)=1、ECAT_PHYPOLINVERT 设置为 true。

    但是,这不起作用,所以我直接重写了 EC_API_SLV_registerPhy ()。

    因此、上的链路 In 双方都已建立、通信也是可能的、但链接在上 抵消 双方已不再成立。

    两个 PHY 的设置相同、那么我应该检查什么?

    最好的注意、

    Oyama

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

    因此、要确认当前状态、您可以扫描输入端口、但扫描输出端口失败、对吧?

    IN 和 OUT 端口的链路状态寄存器行为相同、也就是说、IN 和 OUT 端口的位正在被切换、但 OUT 端口的链路检测失败?

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

    您好 Aaron、

    因此、要确认当前状态、您可以在端口中扫描、但在输出端口扫描失败、对吗?

    是的。  

    PHY IN 和 OUT BMSR 值均为 0x786d(建立了有效链路)、但主器件无法向外扫描第二个器件。

    它的行为就好像 OUT 侧没有器件、并且主器件没有注意到没有第二个器件。

    最好的注意、

    Oyama

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

    您好、Oyama、

    请使用您共享的最新 EtherCAT 固件(在固件内完成链路检测增强)进行测试、并更新我们的状态。

    此外、当 IN 和 OUT 端口均连接到 AM243x 器件时、您是否能够提供完整的 ICSS MDIO 存储器转储 (0x300B2400 至 0x300B248C) 和 PHY 寄存器值。

    此致、
    Aaron

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

    您好 Aaron、

    我应用了更新、将 ECAT_PHYPOLINVERT 设置回 false(实际波形也为低电平有效)、链路和 EtherCAT 通信现在正常工作。

    此外、当 IN 和 OUT 端口均连接到 AM243x 器件时、您是否能够提供完整的 ICSS MDIO 存储器转储 (0x300B2400 至 0x300B248C) 以及 PHY 寄存器值。

    在初始步骤中、我将  MDIO_POLL_EN_REG (0x300B2438) 更 改为 0。

    最好的注意、

    Oyama

    phy0 (in) phy1 (out)
    0x0000 0x3100 0x3100
    0x0001 0x786d 0x786d
    0x0002. 0x2000 0x2000
    0x0003 0xA240 0xA240
    0x0004. 0x01E1 0x01E1
    0x0005. 0xC1E1 0xC1E1
    0x0006. 0x000F 0x000F
    0x0007 0x2001 0x2001
    0x0008. 0x4000 0x4000
    0x0009. 0x0080 0x0080
    0x000A 0x0132 0x0132
    0x000B 0x1000 0x1000
    0x000C
    0x000D 0x401F 0x401F
    0x000E 0x0024 0x0024
    0x000F 0x0000 0x0000
    0x0010 0x0215 0x4215
    0x0011 0x0108 0x0108
    0x0012 0x6400 0x6400
    0x0013 0x2800 0x2800
    0x0014 0x0000 0x0000
    0x0015 0x0000 0x0000
    0x0016 0x0100 0x0100
    0x0017 0x0049 0x0049
    0x0018 0x0200 0x0200
    0x0019 0x8C20 0x8C21
    0x0025 0xC1E1 0xC1E1
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    I 应用了更新并将 ECAT_PHYPOLINVERT 设置回 false(实际波形也为低电平有效)、链路和 EtherCAT 通信现在正常工作。

    感谢您的确认。 我们能否将该主题标记为“已解决“?

    在初始步骤中、我已将  MDIO_POL_EN_REG (0x300B2438) 更 改为 0。

    如 TRM 中所述、建议设置 MDIO_POLL_EN_REG 中的位 31 以消除硬件限制

    此外、由于您的应用中选中了“Enable MDIO Manual Mode“、因此还可以  分别在 0x30090E48 和 0x30090E4C 处监控 MDIO_LIVE_REG 和 MDIO_LINK_REG。

    此致、
    Aaron

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

    您好 Aaron、

     除了增强型链路之外、是否建议在 MDIO 手动模式下启用轮询?

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

    您好、  

    MDIO 手动模式针对我在上一次回复中分享的文档中所述勘误表的权变措施、此权变措施独立于增强链接。 启用 MDIO 手动模式后、可以使用仿真寄存器空间来读取链路/活动状态以及写入/读取 PHY 寄存器空间。  
    为此权变措施加载的固件将根据应用中的增强链路配置处理 MDIO 配置。

    此致、
    Aaron