BU 先生/女士、
客户端遇到关于 EPWM2 PWM 输出的问题。 在其设计中、使用 EPWM1作为同步源(EPWM1 PRD=ZRO)、EPWM2/EPWM3的 PRD 影子加载事件是该同步信号、并且 PRD 也链接到 EPWM1的 CTR。 EPWM1/2/3将有频率/周期突变和缓慢改变(即40kHz 突然变为60kHz、60kHz 缓慢变为40kHz)。 EPWM2的 配置代码如下所示。 注意、操作限制条件是 CMPB 下拉和 Zero 下拉。


在突然改变频率期间、即40kHz -> 60kHz、 有时、PWM2的输出不会改变 。 使用25us 后台任务读出 EPWM2的 CTR 和 PRD 值、以及 如果 CTR 大于 PRD、一个 GPIO 将被拉低。 如下图所示(紫色信号为 GPIO)、当 PWM 输出不变时、检测到 CTR 值大于配置的 PRD 值。 图中是 PWM 输出频率的测量信号(黄色信号是 PWM2的 B 输出、测量频率是黄色信号)。 您可以看到、这个问题是在频率从40kHz 突然变为60kHz 时发生的、不是每次都是 意外发生的。 PWM 输出缺失意味着 AQ 配置中缺少 CTR = CMPB-DOWN 事件。

我们尝试了很多方法、例如禁用相移等、但都无法正常工作。 最后、我们发现、如果在 PWM2的 PRD 突然变化期间、首先提供一个更大的 CMPB 值(例如>100)、然后逐步将 CMPB 值降低到预期的小值、可以避免上述问题:

我认为该问题可能是由 EPWM2 PRD 影子加载操作有时不起作用以及缺少 CTR - CMPB 向下事件引起的、并且 CTR 值也会大于配置的 PRD 值(我们尝试使用 CTR = CMPB 向上事件来上拉输出、这样可以正常运行)。 这一概念如下图所示:

因此、问题是为什么 PRD 影子加载不起作用、以及为什么如果我们配置更大的 CMPB 值、可以避免这一问题。
此致、
将会
