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.

[参考译文] AM6421:AM6421 定制电路板上的 Profinet — 接收到 AR 连接指示、应用程序在 PN_APP_IOD_cbArConnectInd 之后挂起

Guru**** 2966750 points

Other Parts Discussed in Thread: AM6421

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1659865/am6421-profinet-on-am6421-custom-board---ar-connect-indication-received-application-hangs-after-pn_app_iod_cbarconnectind

器件型号: AM6421

尊敬的 TI 团队:

我们将 AM64x PROFINET IO 器件示例从 TI EVM 移植到定制电路板。

硬件

  • 处理器: AM6421
  • PHY: DP83822(MII 模式)
  • SDK: IND_COMMS_SDK_am64x_11_00_13

当前状态

以下功能正常工作:

  • PHY 检测成功。
  • 从 EEPROM 正确读取 MAC 地址。(我们将 MAC 地址写入 EEPROM)
  • PRU 初始化成功完成。
  • PN_API_IOD_initStack() 返回成功。
  • 从 PLC 中发现设备
  • PLC 能够分配 IP 地址。
  • 收到 AR Connect 指示。

应用程序日志如下所示:


PN_API_IOD_initStack 中的 ret:0
使用用户定义的子模块配置(而不是来自永久存储器)。 :0x00000000before
IOD 回调
IOD 启动
恢复指定的永久内存。
恢复指定的永久内存。
恢复指定的永久内存。
恢复指定的永久内存。
恢复指定的永久内存。
读取 Mac 地址:偏移是: 64
MAC 地址= 70:FF:76:1E:E9:C7
[app] INFO:正在初始化 PRU 实例...
                                        APP_pruInit
读取 Mac 地址:偏移是: 64
CUST_PHY_DP83822_Detect    2000a240
CUST_PHY_DP83822_Detect    2000a240
PHY 1:禁用 RGMII 模式
PHY 1:禁用千兆位 ANEG
PHY 2:禁用 RGMII 模式
PHY 2:禁用千兆位 ANEG
MAC 地址= 70:FF:76:1E:E9:C7
检测到 DP83822
PHY_INIT 为 0 之后的 RET Val
检测到 DP83822
PHY_INIT 为 0 之后的 RET Val
模块/子模块成功插入插槽 0 子插槽 1
模块/子模块成功插入插槽 0 子插槽 2
模块/子模块成功插入插槽 0 子插槽 3
模块/子模块成功插入插槽 0 子插槽 4
模块/子模块已成功插入插槽 1 子插槽 1
模块/子模块已成功插入插槽 1 子插槽 2
模块/子模块已成功插入插槽 1 子插槽 3
恢复指定的永久内存。
IOD 开始结束:0
循环任务
IP 地址= 192.168.0.2、子网掩码= 255.255.255.0、默认路由器= 0.0.0.0
IP 地址= 0.0.0.0、子网掩码= 0.0.0.0、默认路由器= 0.0.0.0
保存所示的永久内存 (2、0)。
IP 地址= 192.168.0.2、子网掩码= 255.255.255.0、默认路由器= 192.168.0.2
写: 0
保存所示的永久内存 (1、0)。
写: 0
PN_APP_IOD_cbArConnectInd
CONNECT_IND:AR = 1、AR 类型= 1、发送时钟因子= 32、降低比率 (in)= 2、降低比率 (out)= 2、会话键= 1025、ho
 

问题

PN_APP_IOD_cbArConnectInd() 调用后、不再打印任何日志、并且应用程序似乎停止运行。

在 PLC(TIA 门户)上、下载硬件配置后、器件会报告:

  • 模块存在、故障
  • 低电平元件中出现小误差
  • 故障 LED (SF)

如能就下一步调试地点提出任何建议、将不胜感激。  


此致、
Sonu  

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

    您好 Sonu、

    1.是否有理由不使用最新的 SDK 版本 (2026_00_00_06)? 我们强烈建议您使用该工具、因为它包含许多改进和错误修复。
    2.当程序“挂起“时,您在 Code Composer Studio 调试中看到了什么?
    3.是否能够共享从设备启动开始到问题出现时结束的 Wireshark 日志?

    此致、
    Kamil

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

    尊敬的 Kamil:

    感谢您的答复。

    1. 我们目前处于生产阶段、因此很遗憾、我们不能选择升级或更改 SDK 版本。
    2. 我们在 AM64x EVM 上测试了相同的应用程序、并使其正常工作。 在我们的 定制电路板 (DP83822 PHY) 上、PLC 成功发现器件、分配了器件名称和 IP 地址、并在我们下载 PLC 配置后收到 AR Connect 指示、 但应用在以下日志后停止运行:
    IP 地址= 192.168.0.2、子网掩码= 255.255.255.0、默认路由器= 0.0.0.0
    IP 地址= 0.0.0.0、子网掩码= 0.0.0.0、默认路由器= 0.0.0.0
    保存所示的永久内存 (2、0)。
    IP 地址= 192.168.0.2、子网掩码= 255.255.255.0、默认路由器= 192.168.0.2
    写: 0
    保存所示的永久内存 (1、0)。
    写: 0
    PN_APP_IOD_cbArConnectInd
    CONNECT_IND:AR = 1、AR 类型= 1、发送时钟因子= 32、降低比率 (in)= 2、降低比率 (out)= 2、会话键= 1025、ho  

    不再打印日志、 PLC 报告模块出现故障。

    1. 我已附加 Wireshark 捕获Wireshark_log_profinet2.zip() 以供您参考。

    您能否查看捕获并告诉我们、是否发现 PROFINET 通信中有任何异常? 此外、是否还应检查任何其他回调或 API PN_APP_IOD_cbArConnectInd() 、以帮助确定应用程序卡住的位置?

    e2e.ti.com/.../Wireshark_5F00_log_5F00_profinet2.zip


    感谢您的支持。


    此致、
    Sonu  

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

    尊敬的 Kamil:

    希望您做得好。

    如果您有机会查看我的回答、您能告诉我吗? 如果您需要我这边的任何其他信息或日志、我很乐意提供这些信息。

    期待您的答复。

    此致、
    Sonu

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

    尊敬的 Sonu:

    从您共享的跟踪中、我可以看到设备没有响应某些 ARP 和 ping 请求。 建立连接时也缺少 PROFINET ApplicationReady 通知。 这可能表明堆栈或 PHY 的参数化问题或设置错误。

    从您共享的日志中、我看到您正在设置网关 IP、请尝试不使用此选项来查看问题是否仍然存在? 我还建议您仔细修订定制 PHY 的函数实现、并将其与我们在“Custom_phy“文件夹中提供的内容进行比较。

    由于您使用的是相对较旧的 SDK 和自定义 PHY、因此 我们无法重现您的问题或以标准服务的形式有效地支持您的请求。 如果您对单独的定制支持感兴趣 、请联系您所在地区的销售代表。

    此致、
    Kamil