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.

[参考译文] TMS320F28335:当 TBPHS 改变时、ePWM 丢失一个周期

Guru**** 2535150 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/993187/tms320f28335-epwm-lose-one-cycle-when-tbphs-change

器件型号:TMS320F28335

您好!

我的拓扑是相移全桥。 我将 EPWM3A/3B 用于前导桥臂、将 EPWM4A/4B 用于监测滞后。

当我将 TBPHS 从1459更改为15时,ePWM 将失去一个周期。

我的设置和波形如下所示。

TBPRD=1500

CMPA=750

EPwm3Regs.DBRED = 60;

EPwm3Regs.DBFED = 60;

EPwm3Regs.AQCTLA.bit.ZRO = AQ_SET;  
EPwm3Regs.AQCTLA.bit.CAU = AQ_CLEAR;
EPwm3Regs.AQCTLB.bit.ZRO = AQ_CLEAR
EPwm3Regs.AQCTLB.bit.CAU = AQ_SET

EPWM1为主器件

EPwm1Regs.TBCTL.bit.CTRMODE     = TB_COUNT_UP;

EPwm1Regs.TBCTL.bit.PHSEN           = TB_DISABLE;

EPwm1Regs.TBCTL.bit.PRDLD      = TB_SHADOW;  

EPwm1Regs.TBCTL.bit.SYNCOSEL   = TB_CTR_ZERO;

我知道这个问题是这个变化后的第一个周期、EPWM3将不会进入 CTR = 0。

我尝试更改周期(我认为 TBPRD-1,或者我错了?),但这个问题没有得到解决。

解决此问题的最佳建议是什么?

谢谢

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

    振佳

    这是因为 CMPx 寄存器进行"等于"比较、而不是"大于或等于"比较。 这是理解和意图。

    如果您移动 PWM 值 导致事件、在本例中为 TBCTR =0、则需要在软件中强制 PWM 输出。 如果您没有在互补模式下使用死区 、或者您正在使用互补模式、请查看 AQSFCR 寄存器、请查看使用跳闸区域强制的情况。

    此致、
    Cody