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.

[参考译文] AM243X-AM243X:MCU-PLUS-SDK - AM243X MCU-PLUS-SDK

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1522211/mcu-plus-sdk-am243x-mcu-plus-sdk-am243x

器件型号:AM243X - MCU-PLUS-SDK

工具/软件:

您好、

我们正在尝试在 AM243x 上使用 6SyncManager 实现 EtherCAT 从站。

该实现通常是有效的。 但我们的一致性测试有问题。

就像在中一样  PRU-ICSS-EtherCAT 01.00.10(固件构建 x.4.243 (0x4f3)) 的 EtherCAT 从站勘误表 提及:

问题/故障说明:SDOCM00092510/PINDSW-47:

访问单个从设备中的多个 FMMU 映射区域的单个数据报只会更新与数据报中的第一个 FMMU 相对应的数据

此问题导致一个 Datagrams 无法访问多个 SyncManager(FMMU) 的问题。  

对于大多数 EtherCAT 主站、都有一个问题解决方案:

条目   通过强制 EtherCAT 主站在两个不同的数据报中拆分 PDO 来解决问题。

但是、EtherCAT 技术协会 (ETG) 的一致性测试工具 (CTT) 没有拆分一致性测试的数据图。

因此、测试中的通信失败。 无法认证 EtherCAT 从站。

由于使用了 FSoE、我们不得不在 ETG 的测试设施中对 EtherCAT 从站进行认证。  

我的问题:

我的问题是否有解决方案?

PRU-ICSS EtherCAT 固件是否已通过 CTT 测试? (具有 4 个以上的 SyncManager?)

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

    您好、Stefan:

    问题/失败说明:SDOCM00092510/PINDSW-47:

    请告诉我这是否有帮助。

    此致、
    Aaron

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

    您好 Aaron、

    不幸的是、发行版 09.02.00.24 或 11.00.00.08 不能完全解决问题。

    是的、对于 TwinCAT 中的数据图、问题已得到解决。

    但使用 ConformanceTestTool (CTT) 时、问题仍然存在。
    对于 EtherCAT 从站、CTT 是唯一需要计数的 EtherCAT 主站。

    据我所见、CTT 和 TwinCAT 之间的主要区别在于、在 TwinCAT 中、PDO 数据图 嵌入在其他数据报中。 在 CTT 中、PDO 数据报是帧中唯一的数据图。

    FMMU 和 SyncManager 设置是相同的。

    此致

    Stefan

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

    您好、Stefan:

    但使用 ConformanceTestTool (CTT) 时、问题仍然存在。
    • 请问您的案例中哪一个测试案例失败了。 您能否共享失败场景的完整 Wireshark 日志?
    • 我们有一个利用 8 个 SyncManager 的内部示例、这需要在我目前正在研究的栈方面进行更多增强。 完成该操作后、我将与 CTT 一起测试 8SM 应用程序并观察失败情况。

    此致、
    Aaron

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

    您好 Aaron、

    每次具有 SafeOP 和 OP 状态的 CTT 测试都将失败、因为 PDO 的逻辑 ReadWrite 数据报不起作用。

    发送回 EtherCAT 主站的 EtherCAT 帧(带有 LRW 数据图)损坏。

    一致性 Test_init_SAFEOP_FAIL_OP.pcapng

    这是显示问题的 Wireshark 文件。

    此致、
    Stefan

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

    感谢您发送编修。 我们将分析日志、并尝试在我们这边重现此问题。

    此致、
    Aaron

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

    再强调一下、您能否确保在应用中将 TX_START_DELAY 增加到 0x98?  使用来自单个子器件的 LRD/LWR 命令访问多个 FMMU 映射区域需要增加延迟、并且采用默认值 (0x48) 时、测试将失败。 这些可通过检查 MII_RT_TXCFG0 (0x300B2010) 和 MII_RT_TXCFG1 (0x300B2014) 中的值来验证:

    此外、是否可以配置使用 LRW 来代替 LRD/LWR、这对于大多数用例更有效、并且只需测试一次?  

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

    您好 Aaron、

    我们将检查并尝试较长的 TX_MAX Start_Delay 时间。

    您的意思是:配置使用 LRW 代替 LRD/LWR

    CTT 已使用 LRW。
    如果 ESI 文件中设置的设置不同、则我知道的每个 ECAT Configurator/Master 默认使用 LRW。

    你想让我们反其道而行之吗?
    LRD&LWR 而非 LRW? 我们可以尝试,但我不知道 ConformanceTestTool 是否可以做到。

    此致、
    Stefan

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

    您好、Stefan:

    您的意思是:配置使用 LRW 来代替 LRD/LWR
    • 我指的是 LRW 命令支持 访问多个 FMMU 映射区域、这更适合使用更低的帧开销。 这是之前当 EtherCAT 固件中未修复 PINDSW-47 时建议的权变措施。  
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Aaron、

    我今天注意到、 tiescbsp.h 中的 define enable_multiple_SM_ACCESS_IN_SINGLE_DATARO 默认设置为 0。 启用该功能会将 TX_START_DELAY 的值更 改为 0x98。 还有定义 TIESC_PROCESS_PATH_TX_DELAY_... 和 TIESC_AutoForward_path_tx_delay_...、我们也将其更改为 0x98 以进行测试。 然而、我们仍然无法通过一致性测试达到 OP(它仍然适用于 TwinCAT)。 LRW 框架似乎被切割。 最后、在工作计数器应该处于的位置、您会看到帧的 CRC32 值。 它就在那里,因为框架被切割了。




    你知道为什么会发生这种情况吗?

    此致、

    Martin

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

    尊敬的 Martin:

    我今天注意到 tiescbsp.h 中的 define_multiple_sm_access_in_single_datage_data 默认设置为 0
    • 这没问题、因为 EtherCAT 固件会根据 FMMU 条目数和这些条目的访问权限将延迟动态配置为 0x98。  
    但是、我们仍然没有通过一致性测试达到 OP(它仍然可以与 TwinCAT 配合使用)。 LRW 框架似乎被切割。 最后、在工作计数器应该处于的位置、您会看到帧的 CRC32 值。 它就在那里,因为框架被剪切了。
    • 感谢您的确认。 31328 的 WKC 显示处理路径中存在一些配置不匹配、即转发不正确的值。 我们将对此进行进一步检查。

    此致、
    Aaron

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

    尊敬的 Aron:

    31328 的异常 WKC 是、我们认为这是对 Wireshark 的误解。

    EtherCAT 帧中的某些数据丢失。 Wireshark 将以太网 CRC32 的前 2 字节(在帧的末尾)读取为工作计数器数据。

    您能否证实这一点?

    此致
    Stefan

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

    是、正确。 处理 PDO 数据后、数据报传输似乎不匹配、从而导致数据包格式错误。 我们正在对此进行检查。

    此致、
    Aaron