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.

[参考译文] TMS320F280025C:将1ms 计时器与中断同步

Guru**** 2394305 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1258358/tms320f280025c-synchronize-1ms-timer-with-interrupt

器件型号:TMS320F280025C

您好!

我正在使用通用电机控制实验 、并将1ms 轨迹发生器用于新的基准位置。 现在出现的问题是 HAL_getCPUTimerStatus ()的1ms 计时器与

motor1CtrlISR (),所以他们的转换时间和大约每50秒中断中断1ms 任务,并导致位置控制模式可闻噪声。

现在、我已经尝试从 ISR 本身触发1ms 任务、但这是 ISR 和1ms 任务之间的时间恒定和随机变化、在大约1%的情况下、它们相交并导致恒定的可闻噪声。 我的问题是、我如何创建一个始终与 ISR 例程具有相同恒定时间漂移的1ms 同步任务(ISR 绝不会中断1ms 任务、这需要大约10us、因此它们之间应该有恒定的相移)?

Phaseshift 是非零-->完美:

相移为零-->噪声:

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

    您好!

    要将您的1ms 任务同步到 motor1CtrlISR (),我有以下建议。 CPU 计时器和 ePWM 外设之间不存在直接 SYNC 信号。

    1. 在 motor1CtrlISR()中定期重置 CPU 计时器
    2. 使用 ePWM 模块而不是 CPU 计时器来触发您的任务。
    现在,我尝试的是从 ISR 本身触发1ms 任务,但之后是 ISR 和1ms 任务之间的时间恒定随机变化,在大约1%的情况下它们相交并导致恒定的可闻噪声。

    您如何在 motor1CtrlISR ()中触发您的1ms 任务? 每个第 N 个周期、还是其他周期、都在 ISR 中运行它?

    您的1毫秒任务的执行时间是否很长? 可能比 motor1CtrlISR ()触发频率更长?

    此致!

    凯文