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.

[参考译文] AM2634:用于 PRU0 ICSSM 的 PR0_MDIO0_MDC/MDIO

Guru**** 2553450 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1512829/am2634-pr0_mdio0_mdc-mdio-using-for-the-pru0-icssm

器件型号:AM2634
主题:SysConfig 中讨论的其他器件

工具/软件:

您好团队

我一直使用 CPSW 与单个 MDIO 接口 (MDIO0_MDC/MDIO) 来启用两个 RGMII 端口。 目前、CPSW RGMII1 配置为使用 MDIO0_MDC/MDIO 引脚、而 PRU0 ICSSM RGMII 配置为使用 PR0_MDIO0_MDC/MDIO 引脚。 我的理解是、我已经通过 CPSW 正确启用了 CPSW RGMII1、通过 ICSSM 正确启用了 PRU0 ICSSM RGMII。 您能否确认此设置是否有效?

在 MCU+ SDK 中、若要初始化具有 RGMII 支持的 PRU0 ICSSM 以太网、需要执行哪些步骤?

在 SysConfig 中为以太网配置 PRU0 ICSSM RGMII 和 PR0_MDIO0 的正确方法是什么?

将 ICSSM 与 CPSW 一起使用时是否存在任何引脚多路复用限制或冲突、尤其是对于重叠的 RGMII/MDIO 引脚?

ICSSM 和 CPSW MDIO 接口是否可以独立运行而不发生冲突? SDK 如何处理双 MDIO 域 (MDIO0 和 PR0_MDIO0)?

在 SDK 10.00.00.35 中、ICSSM 以太网的双 MAC 和交换机模式之间是否有任何配置选项或 API 可供选择?


请帮助我解决问题。
提前感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    PRU0 ICSSM RGMII 通过 ICSSM。 您能否确认此设置是否有效?
    在 MCU+ SDK 中初始化具有 RGMII 支持的 PRU0 ICSSM 以太网需要执行哪些步骤?

    PRU ICSSM 仅支持 MII。由于 PRU ICSSM 提供 100M 以太网支持、因此硬件中仅支持 MII 模式

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid=“640426" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1512829/am2634-pr0_mdio0_mdc-mdio-using-for-the-pru0-icssm

    ICSSM 和 CPSW MDIO 接口是否可以独立运行而不发生冲突? SDK 如何处理双 MDIO 域 (MDIO0 和 PR0_MDIO0)?

    [/报价]

    PRU ICSSM 和 CPSW 都有单独的专用 MDIO 模块、因此不会发生资源冲突。  

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

    你好、Nilabh

    我当前使用 MCU+ SDK 版本 10.00.00.35 并测试示例工程:
    icss_emac_lwip_am263x-cc_r5fss0-0_freertos_ti-arm-clang

    在本例中、我已经尝试使用不同的 EMAC 工作模式。 当 EMAC 配置为“切换“模式时,应用程序正确运行 — 建立链路,我能够从我的 PC 成功 ping 通电路板。

    但是、当我将 EMAC 模式更改为“MAC1"或“或任何其他 MAC 模式时、我会观察到仍在检测到链路、但无法 ping 通电路板。 网络接口似乎已初始化、但对 ICMP 回应请求没有响应。

    我的理解是、MAC1 或 MAC2 等模式也应支持标准以太网通信(包括 IP 和 ICMP)。 因此、可以 帮助我了解以下内容:

    • 为什么 ping 在交换机模式下工作、但在其他 MAC 模式下不工作?

    • 使用 MAC 模式而不是交换机模式时、是否需要具体配置?

    • 在 MAC 模式下使用 ICSS EMAC 与 lwIP 时、SDK 中是否存在已知限制或所需修改?

    我希望有任何见解或指导来帮助确定在其他 MAC 模式中可能缺少或配置错误的内容、从而防止成功执行 ping 操作。

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

    你好、Nilabh

    任何有关这方面的最新情况、请你在这一紧急情况下帮助我。

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

    您好、

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM263X/latest/exports/docs/api_guide_am263x/RELEASE_NOTES_10_00_00_PAGE.html#autotoc_md383

    在发行说明中、以下问题被列为已知问题。

    此外、您还请参考调试指南以确保没有错误完成的配置: software-dl.ti.com/.../ICSS_EMAC_DEBUG_GUIDE.html

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

    你好、Nilabh

    如前所述、双 emac 模式存在已知问题、尤其是在尝试同时使用两个 MAC 端口时。 但是、我想澄清一些问题:

    是否可以在双 emac 模式下仅使用一个 MAC 端口 (MAC1 或 MAC2),如屏幕截图所示 — 基本上只启用其中一个端口,而另一个端口处于禁用状态?

    或者、我们能否 在只有 MAC1 或只有 MAC2 处于活动状态的模式下使用 ICSS、而不是配置双 EMAC?

    我正在尝试了解这样的部分配置是否受支持且稳定、或者在双 emac 模式下仅使用一个 MAC 是否仍会导致问题。

    现在、要解释我的具体要求:

    • 在我的定制板上、我们使用 PRU0 引脚实现以太网功能。

    • PRU1 引脚被用于 GPIO 目的、因此不能将它们分配给以太网。

    • 此外、我们还使用 PR0_MDIO0_MDC 和 PR0_MDIO0_MDIO 引脚进行以太网 PHY 连接。

    考虑到这种硬件配置、我想知道配置以太网接口的正确模式:

    • 我知道交换机模式不适合这种情况、因为未出现以太网接口。

    • 同样、双 MAC 模式对我来说也不起作用、可能是因为只使用了一个 MAC 端口、而另一个端口改用于 GPIO。

    • 我的问题是:我是否可以将 ICSS 以太网配置为仅 MAC1 模式、并期望它仅与 PRU0 和 MDIO 线路一起工作?

    如果这不是支持的配置、是否有任何替代方法可以仅使用 PRU0 相关引脚和单个 MAC 端口使以太网正常工作?

    我们非常希望您提供有关如何正确配置此设置(可能使用仅 MAC1 模式或其他解决方法)的指导。



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

    感谢 Anjana 对这个问题的详细解释,现在我有一个更好的理解,因为它是一个定制的电路板。

    我今天将尝试在 AM263x-CC 上测试仅 MAC 1 模式、我相信这已得到我们开发团队的验证、并将在明天之前在这里更新。

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

    你好、Nilabh  

    有关上述案例的任何更新。  

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

    尊敬的 Anjana:

    对延迟的拓扑。 由于 SDK 发布、我们受到了延迟、我们团队正在努力确定对此问题的支持的优先级

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

    您好:Nilabh、

    是否对案例进行了任何更新?

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

    尊敬的 Anjana:

    团队能够找出此问题的根源。  

    1. 看起来所有数据包都从固件传递到高优先级队列中。 这仅针对双 emac 的 MAC1/MAC1 发生。 因此、应调用 Rx RT 回调。
    2. 在“ICSS_EMAC_lwip"示“示例中、我们没有为 RT 回调分配任何函数、因此没有任何帧被发送到 LwIP。 这会导致不从 LwIP 协议栈返回响应。

    权变措施:  

    1. 将 LwIP 服务 Rx 函数分配为 RT 回调。 这可以确保数据包传递到 LwIP 协议栈、并且与 DUT 的通信正常工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:Nilabh、

    感谢您提供解决方法。 在评估板上、我使用提供的代码在 MAC1 模式下运行时成功 ping 了器件。 该setIOExpMuxSelection()函数在该设置中按预期工作。

    但是、当我将相同代码加载到定制电路板上时、无法 ping 通器件。 由于我们的定制电路板不包含 用于选择 MDIO 和 MDC 线路的多路复用器、因此我已setIOExpMuxSelection()从代码中删除了此函数。

    尽管发生了这种更改、但 ping 仍然无法在我们的定制电路板上正常工作。 感谢您帮助确定为使以太网通信正常工作可能需要执行的任何其他步骤或配置更改。

    此外、我还想强调一下、我们的定制电路板在硬件中使用端口镜像配置。 请确认:

    • 端口镜像是否需要任何软件级配置(例如,在 ICSS EMAC、CPSW 或 ALE 设置中)?

    • 如果是、需要在代码或 SysConfig 中进行哪些更改才能正确支持端口镜像?

    请帮助我们解决此问题。 如果您需要任何具体的硬件详细信息来更准确地指导调试过程、请告诉我。

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

    尊敬的 Anjana:

    现在、请参考本调试指南、找出问题的根本原因 :: software-dl.ti.com/.../ICSS_EMAC_DEBUG_GUIDE.html

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

    你好、Nilabh

    我们将按照icss_emac_lwip MCU+ SDK 10.00.00.35 中的示例在基于 AM263x 的定制电路板上集成以太网功能。 虽然软件可以在 TI EVM 上正常运行、但我们在定制硬件上仍然遇到问题、即不会出现以太网链路。

    与 TI 评估板不同、我们的设计不包括用于 MDIO 线路选择的多路复用器。 相反、MDIO 信号直接从 AM263x 路由到以太网 PHY。 为了反映这种硬件差异、我们从参考示例代码 (icss_emac_lwip_am263x-cc_r5fss0-0_freertos_ti-arm-clang) 中删除了 MDIO 多路复用器选择逻辑、同时保留所有其他配置。

    此外、在我们的设计中、 PRU1 不用于以太网通信 —它被重新用于 用于控制其他外设的 GPIO 功能 。 因此,只有 PRU0 在以太网中有效(MAC1 模式) 和第二个 ICSSG MAC 端口被有意禁用。

    为了支持分析并减少模糊性、我们提供了以下资源:

    • example.syscfg反映外设配置的更新后的文件。

    • 我们定制板的以太网 PHY 原理图、其中重点介绍了 RGMII 和 MDIO 信号路由。

    我们感谢您对以下几点的深入了解:

    1. 如果不进行其他调整、简单地移除 MDIO MUX 控制逻辑是否不足以在定制硬件上启用 MDIO 通信?

    2. 驱动程序栈中是否有任何特定的寄存器或初始化步骤隐式假定存在多路复用器、因此需要修改?

    3. 根据原理图、MDIO 线路 (MDIO/MDC) 是否需要显式的引脚多路复用配置(MODE,上拉等)才能在没有多路复用器的情况下可靠运行?

    4. 是否有任何建议的调试技术来验证 MDIO 或 PHY 活动(例如,直接读取 PHY 寄存器、启用 MDIO 日志记录、或使用示波器或逻辑分析仪探测 MDC/MDIO 线路)?

    如果您可以根据我们的配置和硬件设置提供任何建议或说明、请访问 appreciated.e2e.ti.com/.../examplesyscfg.txt


    e2e.ti.com/.../Ethernet.pdf


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

    嗨、Anjana  

    我们之前尚未在我们这边测试此实现、为了正常工作、应对两个 PRU 固件进行解耦、即不使用共享存储器等

    要查看硬件原理图、请联系您当地的销售主管并分享完整的原理图、以便我们的硬件团队可以正确地对此进行审查。

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

    我们在最终测试中遵循以下原则:

    1. ICSS_EMAC MAC 固件 去耦 并且可以在 MAC0/MAC1 的 PRU0/PRU1 上独立工作。
    2. 为了进行测试、我们在中配置了 ICSS EMAC 应用 MAC0 和 MAC1 模式和已停止+分别复位 PRU1 和 PRU0 。 是的 看不到任何中断 时钟错误。
    3. 发现的问题:我们发现的一个问题是 ICSS EMAC 应用程序将 PRU 固件加载到 PRU0 和 PRU1 上、无论选择的模式(交换机/MAC)如何
      1. 这是一个应用程序级别的错误,我创建了一个 Jira 错误来跟踪这一点: jira.itg.ti.com/.../PINDSW-9314(for 参考,你将无法查看它。

     

    在这种情况下、非 MAC PRU 固件将被 MAC PRU 固件覆盖。