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

求助,2806占空比的问题

EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; 

EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
  EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;
  EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET;
  EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR;  
  EPwm1Regs.AQCTLB.bit.ZRO = AQ_SET;   
  EPwm1Regs.AQCTLB.bit.CBU = AQ_CLEAR;

  EPwm1Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;   //
  EPwm1Regs.ETSEL.bit.INTEN = 0;  // Enable INT
  EPwm1Regs.ETPS.bit.INTPRD = ET_1ST;    //

PWM1A,1B最大的占空比为50%。 

在占空比比较小的情况下,要关掉PWM1A,2A的,使其占空比为零,我采取了两种方法。

在EPWM1中断里设置和更新比较值

1.EPwm1Regs.CMPA.half.CMPA = 0;

结果是PW1A占空比变成了100%,不能为0,且还占空比变成了100%。

2.我使用

        EPwm1Regs.AQCSFRC.all = 0x01;        //PWM1A force low,00 01
         EPwm2Regs.AQCSFRC.all = 0x01;        //PWM2A force low,00 01

就是在关断的上一个周期,PMW1A变成了固定的1,无论是什么值,都是最小的高速时钟单位1

Young Hu:

采用AQCSFRC寄存器强制关闭的方法是可以的啊

EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; 

EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
  EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;
  EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET;
  EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR;  
  EPwm1Regs.AQCTLB.bit.ZRO = AQ_SET;   
  EPwm1Regs.AQCTLB.bit.CBU = AQ_CLEAR;

  EPwm1Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;   //
  EPwm1Regs.ETSEL.bit.INTEN = 0;  // Enable INT
  EPwm1Regs.ETPS.bit.INTPRD = ET_1ST;    //

PWM1A,1B最大的占空比为50%。 

在占空比比较小的情况下,要关掉PWM1A,2A的,使其占空比为零,我采取了两种方法。

在EPWM1中断里设置和更新比较值

1.EPwm1Regs.CMPA.half.CMPA = 0;

结果是PW1A占空比变成了100%,不能为0,且还占空比变成了100%。

2.我使用

        EPwm1Regs.AQCSFRC.all = 0x01;        //PWM1A force low,00 01
         EPwm2Regs.AQCSFRC.all = 0x01;        //PWM2A force low,00 01

就是在关断的上一个周期,PMW1A变成了固定的1,无论是什么值,都是最小的高速时钟单位1

Yibo wang:

采样AQCSFRC强制关掉,需要花费2个时钟周期,也就是说PWM开通两个PWM周期才能关断。

不能更改关断PWM的选择,没有效果,因为我的波形是在CNT = 0有一个脉冲,在CNT = PRD 有一个脉冲,总有一个脉冲的波形只发2个时钟周期就被关断了。

我的PWM是三电平全桥LLC谐振波形。需要同时开通,A和B要求可设定的关断,因此只能靠在0或者PRD上开通了,因为没有第三个比较器了

赞(0)
未经允许不得转载:TI中文支持网 » 求助,2806占空比的问题
分享到: 更多 (0)