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

Guru**** 2454490 points
Other Parts Discussed in Thread: LP-AM243

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

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

器件型号:AM243X - MCU-PLUS-SDK
主题中讨论的其他器件:LP-AM243

工具/软件:

你(们)好  

我使用 AM243x 进行 EtherCAT 控制的电机控制驱动。  

1.我 对 SDFM 使用 PRU、其中该 PRU 配置为 PWM0的 SYNC OUT 是复位 IEP 的触发器  

2、我使用额外的 PRU 进行 EtherCAT 通信、其中输出 sync0信号路由到 PWM0 SYNC IN

我的系统与 EtherCAT 主站正常工作、但是、当我断开 EtherCAT 电缆并重新连接时、SDFM 的 PRU 有时会卡在下面的无限循环中

您过去是否遇到过此问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Unknown 说:
    您以前是否遇到过此问题?

    尊敬的 Maor:

    如果未命中 CMP 事件、固件将始终卡在此处。 当发生 CMP 事件时、任务切换发生、并且固件开始执行正常电流。

    固件始终滞留在此处的一个可能问题是 IEP 未复位、这就是 CMP 事件不会定期发生的原因。

    正如您提到的、这种情况有时会发生。 您可以检查 ePWM 同步输出信号吗? 是否始终定期生成?

    此致、

    Achala Ram

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

    您指的是什么 CMP 事件?

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

    嗨、Achala

    插回电缆时会发生这种情况。

    我们将用逻辑检查 EtherCAT SYNC0的行为。

    如果 SYNC0卡在"0"或"1"、该怎么办? 这会如何影响 SDFM 的工作?

    EtherCAT SYNC0脉冲的长度对  SDFM 固件有何影响?

    是否可以对 SYNCin 或 SyncOut 或 IEP 的输入应用某种信号整形?

    谢谢

    Rasty

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

    IEP 计数器由 EPWM 同步输出事件复位、并定期触发 CMP4事件以开始对 SDFM 正常电流进行采样。 有关更多详细信息、请参阅上述文档。AM243x 电机控制 SDK:SDFM 接口设计 如果 IEP 未复位、则不会定期触发 CMP4、并且固件将一直处于无限循环中。

    如果 SYNC0卡在"0"或"1"、该怎么办? 这会如何影响 SDFM 的工作?

    如果它卡在"0"或"1"、则 ePWM 不会定期生成 SYNC0 OUT 事件、因此不会定期触发 CMP4、因为 IEP 将处于自由运行模式、并且固件将一直处于无限循环中。  

    此外、您能否详细介绍一下 SDFM 示例和您所使用的 SDK 版本? 您正在进行什么 SDFM 配置? 什么是 ePWM 同步输出事件速率?

    感谢与关注、

    Achala Ram

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

    你(们)好  

    我们将分享所请求的详细信息。

    技术。 我们发现 PRU 中的 SDFM 实施对时序很敏感。

    如果我们停止并恢复带有调试器、它会卡在繁忙等待中、不再产生中断。

    如果某个条件出现单次故障、则会导致完全死锁、这与我们看到的类似。

    我认为 SYNC0不规则性可以产生相同的效果。

    谢谢

    Rasty

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果我们停止并使用调试器恢复、它会卡在繁忙等待中、不再产生中断

    是的、停止 PRU 可能会导致此问题、因为 IEP 将继续运行、但固件不会清除 CMP4事件、也不会更新下一个 SDFM 样本的 CMP4寄存器。

    我认为 SYNC0不规则性可以产生相同的效果。

    您为 SDFM 采样触发时间配置的值是多少? 两个连续同步事件之间的最短时间是多少? 因为如果 IEP 在采样触发点之前复位、则 CMP4事件将不会被设置、并将卡在等待循环中  

    BR、  

    Achala Ram  

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

    你(们)好

    EtherCAT SYNC0连接到 PWM0 SYNCin、该信号反映在 PWM SyncOut 中、该信号进入 PRU。

    当电缆断开/连接时、我假定 SYNC0上存在异常。

    通常、EtherCAT 每0.5/1/2/4毫秒在 SYNC0上产生一个短脉冲

    SYNC0上哪种类型的异常会导致 SDFM 死锁?  

    如何恢复?

    谢谢

    Rasty

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    通常 EtherCAT 在 SYNC0上每隔0.5/1/2/4毫秒产生一个短脉冲

    EtherCAT 会连续产生短脉冲、但脉冲之间的时间不是固定的、可以是0.5毫秒、1毫秒、2毫秒或4毫秒、最小间隔为0.5毫秒。 我是谁?  

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

    你(们)好

    时间间隔是恒定的、由控制器选择。

    在开始时、可能会由于时钟同步而发生一些抖动。

    Thentime 是固定的、间隔非常精确。

    如果我们移除/插入电缆、由于重新同步、预计会再次发生一些抖动。

    谢谢

    Rasty

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    SYNC0上的哪种类型的异常会导致 SDFM 死锁?  [/报价]

    1)如果 未连接电缆、则 CMP4事件将因 IEP 自由运行而命中  

    2) 如果两个连续 SYNC +之间的时间间隔小于 sdfm 触发时间、则 cmp4也不会命中、因为 IEP 计数器将在 cmp4命中之前复位  

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

    您能否列出 SDFM 设置的 API 和?

    我们尝试手动生成脉冲(使用 EPW、软脉冲)没有帮助。

    如果我们检测到失速、恢复策略是什么?

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

    重新连接 EtherCAT 同步电缆时、是否可以检查以下 IEP 寄存器值:

    • IEP_COUNT_REG0/IEP_COUNT_REG1 :当连接 EtherCAT SYNC0电缆时,这些会持续复位。
    • IEP_CMP_CFG_REG :位5应设置、因为它对应于 CMP4。
    • IEP_CMP_STATUS_REG :第4位显示 CMP4事件的状态。
    • IEP_CMP4_REG0/IEP_CMP4_REG1 : CMP4寄存器值不应超过最大 IEP 计数值。  

    6.4.14.9 PRU_IEP_IEP 寄存器: AM64x/AM243x 技术参考手册(修订版 H) 

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

    你(们)好

    [引述 userid="359686" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1496488/mcu-plus-sdk-am243x-am243x/5749874 #5749874"]

    通常、EtherCAT 每0.5/1/2/4毫秒在 SYNC0上产生一个短脉冲

    [/报价]

    您还能澄清一下吗? 您能否共享逻辑分析仪或示波器屏幕截图? 您配置的脉冲宽度是多少?

    此致

    Dhaval

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

    尊敬的 Dhaval:

    ESC 0x0982的寄存器读取100。

    我们未能用示波器捕捉到它、因为它在许多电路板中的一个电路板中随机发生。

    我可以告诉 SYNC0是 不会 卡在"1"处、我们通过手动将 PWM SYNCIN 引脚重新编程到 GPIO 并检查其状态来对其进行测试。

    我们可以从 ARM 重新启动 SFDM frimmware 并恢复。  

    什么情况会导致此行为?

    SYNC0脉冲过短? SYNC0脉冲过长?   2个 SYNC0脉冲之间的距离过短?

    谢谢

    Rasty

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

    Rasty

    您使用哪个硬件平台进行这些测试?

    此致

    Dhaval

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

    您好、

    我们使用 Omron PLC 对其进行测试

    连接多驱动器且网络处于 OP 状态时检测到问题。

    从线路中的最后一个驱动器断开并重新连接 EherCAT 电缆会导致其他驱动器中的 SFDM 随机死锁。

    由于 SYNC0应在网络上的所有器件中对齐、因此我希望多个器件中实现"更一致"的死锁。

    我不明白这个问题的本质。 如果没有完全理解、我就不能排除随机死锁、因为 SYNC0漂移可能因主器件而异。

    Thansk

    Rasty

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

    Rasty

    我想了解您使用的是 TI 的 LP-AM243还是 TMDSAM243EVM 或定制电路板。

    此致

    Dhaval

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

    AM2434BSDGGIALVR

    DP83826IRHBR

    定制板。

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

    尊敬的 Rasty:

    SYNC0脉冲过短? SYNC0脉冲过长?   2个 SYNC0脉冲之间的距离过短?

    需要注意两点之间的短距离  SYNC0脉冲  可能会导致问题、但同样、这取决于的配置值  SDFM 触发点

    下面解释了短距离或大于两个脉冲之间时间的 SDFM 触发点值如何导致这种行为。 。  SDFM 固件  应用  CMP4  开始 SDFM 采样、以便您可以将 CMP4事件视为 SDFM 触发点。

    •  CMP4事件   如果两个连续脉冲之间的时间小于 CMP4事件的配置值、则将丢失。
    • 或者、如果 CMP4配置值大于两个连续脉冲之间的时间、则为  SDFM 任务  代码执行。

    此致、

    Achala Ram