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.

利用28069输出频率变化的PWM做LLC控制时,怎样保证PRD和CMP寄存器值同时更新

HI:

我在使用28069的PWM1A、PWM1B、PWM2A、PWM2B控制LLC的原边全桥。

1)PWM开关频率范围为60kHz~250kHz

2)LLC控制环路计算频率为10kHz,也就是说我会在10kHz的中断里更新PWM1和PWM2的开关频率和CMPA值,

      使PWM输出开关频率变化且占空比为50%的波形。

3)PWM的PRD和CMP寄存器生效模式都设定为SHADOW模式。shadow到active选择为ZREO点。

问题:怎样保证写入PWM1.PRD、PWM1.CMPA、PWM2.PRD、PWM2.CMPA寄存器的值在同一时刻生效。

举个出问题的例子:在10kHz中断程序执行过程中:

                                代码指令1:写PWM1.PRD寄存器值为最新值

                                代码指令2:写PWM1.CMPA寄存器值为最新值

                                关闭键点:PWM的ZERO点到来,PWM1的PRD和CMPA寄存器值由SHADOW更新到ACTIVE

                                代码指令3:写PWM2.PRD寄存器值为最新值(需要等下一个ZERO点才能由SHADOW更新到ACTIVE)

                                代码指令4:写PWM4.CMPA寄存器值为最新值(需要等下一个ZERO点才能由SHADOW更新到ACTIVE)

这应该是造成变频控制项目中,PWM输出时正常时不正常的原因,开关频率越高越容易出现。

x 出现错误。请重试或与管理员联系。