TI中文支持网
TI专业的中文技术问题搜集分享网站

28035的驱动问题

我在28035程序当中给驱动用了一种比较极限的方式。判断采样的正弦电压的正负半周采取不同的动作,然后用采样电压计算2通道周期计数值以及比较器的值。现在发现,运行时会出现一段没有占空比的情况,采样频率固定在20KHz,开关频率在几十K范围内变化。为什么会出现没有占空比的情况?是DSP算错了吗?这样配置EPWM模块能不能行?

EPwm2Regs.TBPRD=ton+toff;
EPwm2Regs.CMPA.half.CMPA = ton;
EPwm2Regs.CMPB = EPwm2Regs.TBPRD-80;
if(state==1)
{

EPwm2Regs.AQCSFRC.bit.CSFA=0x0;
EPwm2Regs.AQCSFRC.bit.CSFB=0x0;
EPwm2Regs.AQCTLA.bit.ZRO = AQ_SET;
// EPwm2Regs.AQCTLA.bit.PRD = AQ_CLEAR;
EPwm2Regs.AQCTLB.bit.ZRO = AQ_CLEAR;
// EPwm2Regs.AQCTLB.bit.PRD = AQ_CLEAR;

EPwm2Regs.AQCTLA.bit.CAU = AQ_CLEAR;
//EPwm2Regs.AQCTLA.bit.CAD = AQ_SET;
EPwm2Regs.AQCTLB.bit.CAU = AQ_SET;
//EPwm2Regs.AQCTLB.bit.CAD = AQ_SET;

EPwm2Regs.AQCTLA.bit.CBU = AQ_CLEAR;
//EPwm2Regs.AQCTLA.bit.CAD =AQ_CLEAR;
EPwm2Regs.AQCTLB.bit.CBU = AQ_CLEAR;
//EPwm2Regs.AQCTLB.bit.CAD = AQ_CLEAR;
EPwm3Regs.CMPA.half.CMPA =Half_Period;
EPwm4Regs.CMPA.half.CMPA =0;

}
if(state==-1)
{

EPwm2Regs.AQCSFRC.bit.CSFA=0x0;
EPwm2Regs.AQCSFRC.bit.CSFB=0x0;
EPwm2Regs.AQCTLA.bit.ZRO = AQ_CLEAR;
// EPwm2Regs.AQCTLA.bit.PRD = AQ_CLEAR;
EPwm2Regs.AQCTLB.bit.ZRO = AQ_SET;
// EPwm2Regs.AQCTLB.bit.PRD = AQ_CLEAR;

EPwm2Regs.AQCTLA.bit.CAU = AQ_SET;
//EPwm2Regs.AQCTLA.bit.CAD = AQ_SET;
EPwm2Regs.AQCTLB.bit.CAU = AQ_CLEAR;
//EPwm2Regs.AQCTLB.bit.CAD = AQ_SET;

EPwm2Regs.AQCTLA.bit.CBU = AQ_CLEAR;
//EPwm2Regs.AQCTLA.bit.CAD =AQ_CLEAR;
EPwm2Regs.AQCTLB.bit.CBU = AQ_CLEAR;
//EPwm2Regs.AQCTLB.bit.CAD = AQ_CLEAR;
EPwm3Regs.CMPA.half.CMPA =0;
EPwm4Regs.CMPA.half.CMPA =Half_Period;

}
if(state==0)
{

EPwm2Regs.AQCSFRC.bit.CSFA=0x1;
EPwm2Regs.AQCSFRC.bit.CSFB=0x1;
EPwm3Regs.CMPA.half.CMPA =0;
EPwm4Regs.CMPA.half.CMPA =0;
}

mangui zhang:可能计算的值有不满足CMPATBPRD的关系了最好分析一下无PWM输出时的值的大小等关系

赞(0)
未经允许不得转载:TI中文支持网 » 28035的驱动问题
分享到: 更多 (0)