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.

[参考译文] AM62L:AM62L:CODESYS 具有 SPI 接口

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1658106/am62l-am62l-codesys-with-spi

器件型号: AM62L

在 该帖子中、通过应用补丁解决了独立 SPI 测试期间遇到的问题 ioctl 、这导致了执行时间稳定、抖动约为 300µs 以及 CPU 使用率较低。 现在、SPI 测试程序已作为子线程集成到 CODESYS 中、以模拟实际使用场景。 SPI 测试程序被重新配置为在 1ms 的周期内执行、并 spi_mcu_output_test() 每个周期传输 200 字节的数据。 内核 1 专用于 EtherCAT、运行一个带 4 个轴的 1ms 周期、程序仅包括 MC_Power 和 MC_MoveVelocity。 所有其他程序都在 Core 上执行  0.

当 SPI 测试线程不存在时、内核 0 的使用率为 20%–45% 、内核 1 的使用率为 36%、 EtherCAT 任务抖动约为 80µs 。

当存在 SPI 测试线程时、  内核 0 的使用率上升到 85%、内核 1 的使用率上升到 45%、EtherCAT 任务抖动增加到大约 260µs 、SPI 测试线程抖动达到 4ms 。

当存在 SPI 测试线程但移除 EtherCAT 时、内核 0 的使用量降至 66% 、内核 1 的使用量降至 2%、 并且 SPI 测试线程抖动为 400µs 。

htop 和 CODESYS 报告的 CPU 使用情况统计数据是密切一致的、并且内核已在构建时 CONFIG_VIRT_CPU_ACCOUNTING_GEN 启用。 程序稳定运行后、抖动统计信息被手动清除。

总之、可以观察到 SPI 和 EtherCAT 相互干扰、即使它们未分配给同一个内核并且 CPU 使用率过高。 请协助分析潜在问题。

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

    您好:

    我可以问一下 SPI 测试程序是如何作为子线程集成到 CODESYS 中的? 是否详细介绍了执行此集成所采取的步骤? 我不清楚的是、我的理解是、一旦 codesyscontrol 在 Linux 中启动、就无法将子线程列表添加或删除、因为它是在 CODESYS 源代码中编写的、而该源代码不适用于用户(商用和开发)。

    有人提到 SPI 测试程序是作为子线程集成的、用于 模拟实际使用场景。 它是要模拟什么使用场景、是集成此 SPI 程序的最终目标/部署、还是只是要模拟您所描述的场景?

    您还能介绍 SPI 测试程序的用途以及 SPI 测试程序的具体作用吗? SPI 程序执行的函数是否依赖于 EtherCAT 通信? 如果是、请描述 SPI 程序的工作原理。  

    -道林