Other Parts Discussed in Thread: LP-AM243
器件型号: LP-AM243
大家好、开发团队。
我正在使用 LP-AM243 电路板为 EtherCAT 子器件开发软件。
我正在使用工业通信 SDK ind_comms_sdk_am243x_2025_00_00_08 和 MCU+SDK mcu_plus_sdk_am243x_11_01_00_19。
在示例工程中、我使用工业通信 SDK 中 EtehrCAT_Subdevice_demo 中的 401_simple。
我的主要问题是、在主器件发送 SDO 上传请求后、它会通过定期通信监测 FMMU2 (MBoxState)。
确认设置了 READY 位后、它会发送一个帧来从子器件检索上载数据。
但是、在主器件发送 SDO 上传请求后、子器件会返回对请求的响应、但 READY 位始终不会置位、SDO 上传永远不会完成。
通信异常
白线:主要→Sub
蓝线:Sub→Main

这种现象发生在周期时间为 250uS 时、而不是周期时间设置为 500uS 时。
因此、我们最初认为原因是子设备上的处理负荷过大。
不过、在不更改主器件、PDO 映射或条件以及尽可能减少子器件处理所做的更改(例如 API 替换)的情况下、我们将最初开发的工业通信 SDK 版本从 2025 年更改为 9.2.0.8。 在这一点上、即使周期时间为 250us、通信也是成功的。
正常通信

关于这个问题、我认为(或许可以假定)、它与之前在 PRU-ICSS-EtherCAT 固件版本 x.5.18 中修复的问题类似:
ESC Reg.0x800+5*SM_INDEX.bit1 在 PDI 端邮箱读取时不会更改。
不过、我认为这个问题已经在 2025 年工业通信 SDK 版本中得到解决、在 500us 的周期时间内工作正常、因此
这似乎与上述问题并不完美匹配。
若要解决该问题、例如、是否可以在子器件的 SDK 处理过程中监控 SDO 上传数据的准备情况、以及
完成后、翻转了 FMMU2 (MBoxState) 中逻辑地址 0x09000000 处的第一个 READY 位?
感谢您抽出宝贵的时间给予我们大力支持。
