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.

[参考译文] TMDSDOCK28379D:运行时更新了 PWM 占空比

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/984664/tmdsdock28379d-pwm-duty-cycle-update-on-the-run

器件型号:TMDSDOCK28379D
主题中讨论的其他器件:C2000WARE

您好!

在运行时更新 EPWM 上的占空比时出现问题。 占空比的更新大约需要1us、这是不可接受的、系统时钟为200MHz、TBPRD 为1000u、PWM 频率为50kHz。

我使用此代码 初始化具有死区=>的 PWM

initEPWMWithoutDB (EPWM11_BASE、2);
setupEPWMActiveHighCommpleCommentary (EPWM11_BASE);

在尝试写入 CMP 寄存器以更新占空比=>之后

ePWM_setCounterCompareValue (base、ePWM_COUNTER_COMPARE_A、value);
ePWM_setCounterCompareValue (base、ePWM_COUNTER_COMPARE_B、value);

请告诉我、为什么占空比更新需要这么长时间、是否有任何方法可以减少它?

此致、

Parvathi

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

    您好、Parvathi、

    您何时加载比较值? 如果 启用了影子模式、则根据您对其进行的配置、这可能发生在零、周期或零/周期事件上。 最理想的情况取决于您对系统的配置以及在这些事件中发生的其他操作。 另一个选项是执行立即 模式而不是影子 模式、这意味 着所有写入和读取都直接访问活动寄存器以执行立即比较操作。   我建议您根据您的要求尝试这些不同的选项。

    此致、

    Marlyn

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

    您好、 Marlyn、

    感谢 您的意见。 最后我解决了这个问题。  我使用的是 C2000示例(C:\ti\c2000\C2000Ware_3_04_00_00\driverlib\f2837xd\examples)驱动程序库项目。 这些给了我巨大的延迟、可能是由包装程序函数造成的。 但是、当我仅使用具有寄存 器设置(C:\ti\c2000\C2000Ware_3_04_00_00\device_support\f2837xd\examples)和 API 的示例时、IAM 仅获得50ns 的延迟。

    此致、

    Parvathi