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.

[参考译文] TMS320F2.8035万:PWM通道的相移,可变频率缺失比较事件

Guru**** 2561530 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/632054/tms320f28035-phase-shifting-of-pwm-channels-with-variable-frequency-missing-compare-event

部件号:TMS320F2.8035万

大家好,

我正在2.8035万 PWM通道上使用相移/同步,以增加计数模式提供可变频率。 我的应用是PSFB,其中EPWM2是从属的,而EPWM1是主的相移。 我通过改变其周期,将PWM频率从95khz改变为105khz。 使用的系统时钟频率为60 MHz。

但我观察到PWM2缺少比较事件(CMPA),因此变得异常(请参阅附图-绿色为PWM2,蓝色为EPWM1)。此行为仅在PSFB的无负载模式(当TBPHS值接近0时)期间观察到。 我无法理解为什么会错过比较事件。 有人请你引导我吗?  

 先生,您有什么看法吗? 我已经阅读了很多您的答案,但无法找到解决此问题的方法...请帮助我

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

    要避免此问题,您应该做两件事。

    1.始终使从属PWM周期值1的计数小于主PWM周期。

    2.每次将频率从高频率更改为低频率时,请确保新的CMP寄存器值不在旧相位值和新相位值之间。 如果是,请将其更改为新的PHS值+1。 您必须在下一个切换循环中将CMP值改回所需的值。

    如果上述方法不能解决问题,请密切注意在您的代码中,有关PWM切换周期的寄存器正在何处更新。 有关详细信息,您可以参考我的一些较旧的帖子。

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

    因为我总是将CMP值从285更改为315,所以我的TBPHS值始终保持在零值左右。 因此,如果CMP值介于旧相位值和新相位值之间,则根本不可能实现这一点。

    您是否可以建议如何在发生此事件期间查看寄存器(特别是TBPHS和TBCTR)的更新?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Siddharth,
    我有一些想法:您是否正在进行数据验证? 可能检查加载到TBPHS中的值是否大于等于0且<PWM_Period...

    您是否有可能向TBPHS写入负值? 这可能导致TBCTR值永远不会达到您的比较事件。

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

    您好,Cody:

    是的,我正在验证数据。我已验证正在加载的相位值从不小于0,也不大于PWM_Period。   

    我观察到了一个有趣的观察,但无法连接它如何使ePWM错过事件。

    我已将TBPHS值设为常量1。 然后,通过每个周期(20 us)将PWM周期更改6 (600至606)来实现更改频率的逻辑。 所以我的频率步骤是6。 然后,如果我正在epwm2模块(从模块)中加载(期间-6),则不会发生错误。  

    在TBPHS =1的情况下,我还通过在从属模块中创建freqstep =1和(周期-1)来进行配置,然后也不会发生错误,但在相同的配置中,如果我创建freqstep =6,则开始发生错误(PWM被拉长)。  

    所以我想在这段时间内更改的速率与我们在从属PWM配置中产生的延迟有一定的关系。

    注:在一个ISR内,期间和阶段均以相同的速率(20 us)更改。

    谢谢

    Siddharth