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.

[参考译文] TMS320F28377S:如何一次性更新多个 ePWM 的 CMPx。

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/841508/tms320f28377s-how-to-update-cmpx-of-many-epwm-at-once

器件型号:TMS320F28377S

我将实现 PMSM 电机驱动器。 我已经完全同步了3个 ePWM。

我对所有 ePWM 使用影子寄存器作为 CMPB。

在软件中计算新的 CMP 值。

问题是:计算周期(PID 控制器等)与"CTR =零"计数事件不同步。 在给定的时间、计算可能不完整、某些 EPWM 会获取新值、而另一个 EPWM 会获取旧的 CMP 值。

是否可以在软件单个命令上同步许多 ePWM 的影子-CMP 寄存器、如下所示?

计算 CMPB_1

2.计算 CMPB_2

3.计算 CMPB_3

4.加载 CMPB_SHADOK_1.

5.加载 CMPB_SHADOK_2.

6.加载 CMPB_SHADOK_3.

7.在 ePWM1、ePWM2、ePWM3上对原子操作启用影子

8、等待影子同步事件、此处 CTR = 0

9.禁用影子(和 CMP 更新)

此致、

Maciej

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

    您好!

    如果不同 ePWM 模块中的不同寄存器的负载未正确完成、则它们很可能会不同步。
    您可以查看全局和一次性加载模式"图15-12。 全局加载:信号和寄存器"。
    使用此模式、您可以更新所有寄存器并通过软件应用一个负载脉冲。
    您还可以跨多个 PWM 链接此寄存器(触发 OneShot load)、并一次性执行所有影子到活动重载。
    请注意、启用一次性重新加载后、所选事件(例如:CNT_ZERO)仍会发生影子到活动重新加载。
    请浏览文档并在此处发布、如果您有任何问题、请使用新主题帖。