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.

关于互补PWM程序的一点疑问

Other Parts Discussed in Thread: TIDM-1001

在TI官方给出的电源套件-TIDM-1001 LLC的PWM_HB_LLC_2PHIL_SR.c里面有关于互补PWM的初始化程序,我感觉有问题,向大家请教下,请不吝指教。

我只留下关键代码,其他的一些初始化代码略去

void PWM_HB_LLC_2PHIL_SR(int16 n, int16 m, int16 period)//这里用的是EPWM1A和1B,所以n=1
{

(*ePWM[n]).TBPRD = period/2;

(*ePWM[n]).TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;

// Counter Compare Submodule Registers
(*ePWM[n]).CMPA.bit.CMPA = 1; // Start with 50% duty (Avoid using CMP = 0)
(*ePWM[n]).CMPB.bit.CMPB = period/2 - 1; // Start with 50% duty (Avoid using CMP = PRD)

// Action Qualifier SubModule Registers//以下三行设定的是EPWM1A 50%占空比输出,没什么问题
(*ePWM[n]).AQCTLA.bit.ZRO = AQ_CLEAR;
(*ePWM[n]).AQCTLA.bit.CAU = AQ_SET;
(*ePWM[n]).AQCTLA.bit.PRD = AQ_CLEAR;
// xB AQ output is inverted by DB for RED on xB output//以下三行设定的是EPWM1B 50%占空比输出,我的问题就在这儿,感觉1B和1A同相位,而不是相位互补
(*ePWM[n]).AQCTLB.bit.PRD = AQ_SET;
(*ePWM[n]).AQCTLB.bit.CBD = AQ_CLEAR;
(*ePWM[n]).AQCTLB.bit.ZRO = AQ_SET;

}

按照代码里的Action Qualifier设置,我觉得波形应该如下图所示

这里是不是有什么问题,或者是我的理解错了