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.

TMS320F28069: ePWM模块第一个周期的占空比丢失问题

Part Number: TMS320F28069


ePWM采用UPDOWN计数,使能shadow register,各个寄存器在载波过零即TBCTR=0生效。

AQ设置如下:

	ePwm->AQCTLA.bit.ZRO = AQ_SET;
	ePwm->AQCTLA.bit.CAU = AQ_CLEAR;
	ePwm->AQCTLA.bit.CAD = AQ_SET;
	ePwm->AQCTLB.bit.ZRO = AQ_CLEAR;
	ePwm->AQCTLB.bit.CAU = AQ_SET;
	ePwm->AQCTLB.bit.CAD = AQ_CLEAR;

即载波过零ZRO时将PWMxA拉高,上升计数匹配CAU时PWMxA拉低,下降计数匹配CAD时PWMxB拉高。PWMxB是PWMxA的互补信号,实际可以只看PWMxA。

PWM的封锁是使用AQCSFRC寄存器强制所有PWM为低电平,同样是载波过零生效。

实际测试如下图所示:

其中通道07信号SYNCO为载波过零点,通道06为开启PWM的时刻,剩下00-05为6路PWM信号。开启PWM信号以后,在下个周期的过零点,shadow register加载到active register,PWM正式开启。

问题主要出在第一个开关周期,实际为了测试,将首个开关周期的占空比设置为0.5,在使能PWM信号的下一个周期载波过零点,三个PWMxA信号没有按照预期拉高,导致PWMxA信号的占空比丢失了一半,如上图中的三个红框。

除了第一个开关周期,剩下的就全部正常了。想咨询下造成这种情况的原因以及相关解决方案。