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 辅助

Guru**** 2458730 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/670574/tms320f28377s-assistance-with-soft-start-epwm

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

您好!  

首先、我对 C++编程没有什么经验。 我每隔1秒尝试更改生成的 ePWM 的频率。 为此、我更改周期、设置1秒的延迟并初始化 EPwm2。  这是在循环中完成的。  当我将 epwm2引脚放在示波器上时、我不会看到频率每1秒变化一次。 我只看到环路中生成的最后一个周期的 PWM 波形。  我已经尝试从1秒增加延迟、但仍然看不到不同频率的不同 PWM 波形。  我需要两个具有死区的互补 PWM 波形、我可以在示波器上看到这一点、因此这不是问题。 我使用的是 ePWM_Deadband _cpu01示例。 我已附上我正在执行的操作的修改代码。 Thanks.e2e.ti.com/.../test_5F00_deadband.txt

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

    一个建议是将 CPU 定时器配置为每秒中断一次、并在定时器 ISR 中更新 EPWM2 TBPRD 的值。 C2000Ware 中有一个 CPU 计时器示例项目。

    在满足 softstart()的 while 循环条件后,当前代码不会更新 EPWM2 TBPRD,这就是为什么在示波器波形上看到循环生成的最后一个周期的原因。

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

    您好!  

    感谢您的回复。 我认为"prd"变量在循环中更改了 ePWM TBPRD。  谢谢

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

    是的,EPWM2 TBPRD 仍在更新,但仅在 softstart()函数中更新。 您提到过、您希望每秒更改一次频率。 我提供的中断建议将允许 ePWM 继续运行、同时仍以配置的间隔中断、但 DELAY_US()将在指定的延迟时间内延迟所有其他活动。

    此外、在您共享的代码中、在 SOFT_START()调用后 TBCLKSYNC 将设置为1。 因此、在 SOFT_START()中 EPWM2 TBPRD 发生变化之前、EPWM 模块可能不会彼此正确对齐。 根据《技术参考手册》的 ePWM 一章,这应该在基本 ePWM 配置后进行设置。

    此致、
    Elizabeth