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

TMS320F28027: 在做逆变电源,调试的过程中发现PWM波有问题,此外顺便问下死区的问题

Part Number:TMS320F28027

PWM发波问题如下:

1.PWM2采取以20K的频率运行,PWM发波原本遵循SPWM的规律,PWM的CTRMODE = TB_COUNT_UPDOWN;即UPDOWN模式,动作配置如下

EPwm2Regs.TBPRD =1500;//CLK=60MHZ 则PWM频率F=60*1000/2*1500=20K

EPwm2Regs.AQCTLA.bit.CAU = AQ_SET; EPwm2Regs.AQCTLA.bit.CAD = AQ_TOGGLE;

EPwm2Regs.AQCTLA.bit.ZRO = AQ_CLEAR;

死区设置如下:

EPwm2Regs.DBCTL.bit.IN_MODE = DBA_ALL; // EPWMxA is the source for both delays

EPwm2Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;  // Enable Dead-band module
EPwm2Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;// Active High Complementary (AHC)

EPwm2Regs.DBFED = 60; // 死区设置 TBCLKs 6US—360
EPwm2Regs.DBRED = 60; //

故这个时候只需要设置CMPA (EPwm2Regs.CMPA.half.CMPA )即可设置PWM输出的占空比的值,PWM的数组元素个数为200个即正弦逆变50HZ的半个周期,现在我只做正弦半轴逆变,数组元素从0~199的占空比如下图所示(即图片最下面的所示情况Uc):

我从第49到199这期间把CMPA设置为1499(TBPRD 为1500)按道理来说PWM2A说出为低电平,PWM2B输出为高电平,但实际运行情况是49到199期间PWM2A有高电平,PWM2B有低电平的发出

当我对49到199使用TZ强制PWM2A为低 PWM2B为高就不会出现这种情况,程序代码如下:

代码一为CMPA赋值1499

if((spwm_table_cnt>=49)&&(spwm_table_cnt<=199)) {

    EPwm2Regs.CMPA.half.CMPA  = 1499;

}

else{

EALLOW;
if(EPwm2Regs.TZFLG.bit.OST==1){

   EPwm2Regs.TZCLR.bit.OST=1;}
   EDIS;

}

代码二使用TZ强制PWM输出

if((spwm_table_cnt>=49)&&(spwm_table_cnt<=199)) {

    EPwm2Regs.CMPA.half.CMPA  = 1499;

   EALLOW;
   EPwm2Regs.TZCTL.bit.TZA=TZ_FORCE_LO;
   EPwm2Regs.TZCTL.bit.TZB=TZ_FORCE_HI;  EPwm2Regs.TZCLR.bit.OST=1;  EDIS;

}

else{

EALLOW;
if(EPwm2Regs.TZFLG.bit.OST==1){

   EPwm2Regs.TZCLR.bit.OST=1;}

   EDIS;

}

代码一和代码二的输出情况导致H桥的波形如下图:

代码一PWM2控制的H桥输出波形

代码二PWM2控制的输出波形如下

死区的图如下,死区问题如下:

按照我的代码的设置即本咨询开头的关于死区的设置,现在假设如下,不使用TZ,假设情况如下:

一、当最左边EPWMxA in为高电平,死区的两个边沿计数器设置值均为60,那么此时最右边EPWMxA是输出高电平还是低电平?因为这个时候PWMXA的脉宽为2*(1500-1499)《60即脉宽值小于死区计数器设置值的时候PWMxA输出情况是怎么输出的?是保持以前的电平输出还是输出低电平?

二、当CMPA设置值为1的时候那么EPWMxB引脚输出的电平是高还是低?或者保持以前输出电平不变?

因为CMPA为1的时候那么此时EPWMxA in的脉宽小于下降沿计数器的值 那么此时死区计数的输出情况不明白 

谢谢!

Cherry Zhou:

您好我们已收到您的问题并升级到英文论坛,如有答复将尽快回复您。谢谢!

,

jun liu:

您好!这个问题英文论坛回复没?

,

Cherry Zhou:

您好,由于放假,英文论坛大概明天会有答复,给您带来的不便敬请谅解!

,

jun liu:

好的 谢谢 

,

Cherry Zhou:

您好,如果死区宽度大于配置的占空比,那么死区会阻止所有输出。 在上述情况下, EPWMxA 会保持低电平,避免短高脉冲,而 EPWMxB 将保持高电平,避免短低脉冲。

,

jun liu:

谢谢 

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28027: 在做逆变电源,调试的过程中发现PWM波有问题,此外顺便问下死区的问题
分享到: 更多 (0)