芯片28069,比如第K个下溢中断前,AQCSFRC的控制字是1010,在aqsfrc配置其装载模式配置为下溢装载,dead band模块的配置使dsp的pwm管脚上EPWM1A和EPWM1B均为高(即按AQCSFRC的控制字是1010输出);
在第K次下溢中断中进行以下三个操作,一、将AQCSFRC写成0000,由于该控制字下溢装载,那么K+1次下溢到来前,pwm管脚EPWM1A和EPWM1B状态应该还是不变的;二、向AQCTLA和AQCTLB中写入控制字, EPwm1Regs.AQCTLA.bit.CAU = AQ_SET; EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR;
EPwm1Regs.AQCTLB.bit.CAU = AQ_CLEAR; EPwm1Regs.AQCTLB.bit.CAD = AQ_SET ,两个动作反的。
其它的几位为零,即只配置比较匹配的,周期和下溢匹配do nothing。三,,定时器采用增减计数,cmpa采用下溢装载,分三种情况将cmpa写入以下值,0,TPR/2,TPR或一个大于TPR的值。那么第K+1次下溢到来时,dsp的管脚EPWM1A和EPWM1B的电平如何变化呢?尤其是第K+1次下溢到来的瞬间,由于第K次写入的AQCSFRC的控制字1010已经失效,那么EPWM1A和EPWM1B应该会按第二步中AQCTLx和第三步的cmpa决定,这两个管脚是否会在K+1次下溢到来瞬间翻转,由高变低?
mangui zhang:
AQCTLA是可以设置EPWMA的比较方式的
建议你参考网上资料:
28335_EPWM产生PWM
芯片28069,比如第K个下溢中断前,AQCSFRC的控制字是1010,在aqsfrc配置其装载模式配置为下溢装载,dead band模块的配置使dsp的pwm管脚上EPWM1A和EPWM1B均为高(即按AQCSFRC的控制字是1010输出);
在第K次下溢中断中进行以下三个操作,一、将AQCSFRC写成0000,由于该控制字下溢装载,那么K+1次下溢到来前,pwm管脚EPWM1A和EPWM1B状态应该还是不变的;二、向AQCTLA和AQCTLB中写入控制字, EPwm1Regs.AQCTLA.bit.CAU = AQ_SET; EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR;
EPwm1Regs.AQCTLB.bit.CAU = AQ_CLEAR; EPwm1Regs.AQCTLB.bit.CAD = AQ_SET ,两个动作反的。
其它的几位为零,即只配置比较匹配的,周期和下溢匹配do nothing。三,,定时器采用增减计数,cmpa采用下溢装载,分三种情况将cmpa写入以下值,0,TPR/2,TPR或一个大于TPR的值。那么第K+1次下溢到来时,dsp的管脚EPWM1A和EPWM1B的电平如何变化呢?尤其是第K+1次下溢到来的瞬间,由于第K次写入的AQCSFRC的控制字1010已经失效,那么EPWM1A和EPWM1B应该会按第二步中AQCTLx和第三步的cmpa决定,这两个管脚是否会在K+1次下溢到来瞬间翻转,由高变低?
ccy:
手册上说,这种情况下cmpa写零是有风险的,最好大于1,但如果写零的话,感觉在第K+1次下溢应产生一次cau的匹配,那么在下溢点EPWM1A置高,EPWM1B置低;如果cmpa=TPR/2,第K+1次下溢时,EPWM1A和EPWM1B应都为高,cau匹配发生时,EPWM1A置高,EPWM1B置低;如果如果cmpa=TPR,匹配前,均为高,cad发生,EPWM1A置低,EPWM1B置高。这样对不对