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.

TMS320F28027: EPWM死区设置的问题

Part Number: TMS320F28027


目前在做逆变电源,制作SPWM表的时候发现一个死区设置的问题

首先设置时基计数器值为3060即EPwm2Regs.TBPRD = 3061-1;

CMPA值为2953 死区设置均为120  这里采用CPMA做源,PWMxB的输出是PWMxA的取反

EPwm2Regs.DBFED = 120;
EPwm2Regs.DBRED = 120; 

这个时候发现CPMA(2953)+EPwm2Regs.DBFED(120)+EPwm2Regs.DBRED (120)=3193大于EPwm2Regs.TBPRD 这样导致问题是AB两相输出均不符合要求

这种情况就是占空比接近100% 请问这种情况怎么处理?谢谢!

  • 所以,你的计数模式应该是向上或者向下计数的。CMPA的时候PWM1A为UP(或者down),ZERO/PRD的时候PWM1A为down(或者UP)。是这样的吗?

    这样的话其实是不满足死区设置要求的,你可以看一下技术手册245页的几种死区情况。占空比不是关键,关键是PWMxA的设置。

  • 好的  我先看下 谢谢

  • 您的意思按中央对齐模式来设置死区就可以了?

  • 额,不太了解中央对齐是啥意思。简单来说,只要不将PWMxA的脉冲的两个边缘贴在周期初或者周期末应该就可以了。

  • 您说的是应该这种模式

    EPWM这种模式的时候

    EPwm2Regs.TBPRD = 1530;   

    EPwm2Regs.CMPA.half.CMPA = 1500; //占空比

    EPwm2Regs.TBCTL.bit.CTRMODE =TB_COUNT_UPDOWN;

    //这里采用CPMA做源,PWMxB的输出是PWMxA的取反
    EPwm2Regs.DBCTL.bit.IN_MODE = DBA_ALL;


    EPwm2Regs.DBCTL.bit.OUT_MODE =DB_FULL_ENABLE DB_DISABLE;


    EPwm2Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;


    //设置PWM输出极性,当TB计数到达CMPA时,PWM输出的高低电平确定
    EPwm2Regs.AQCTLA.bit.CAU = AQ_SET;//当计数值达到CMPA时PWM模块的动作


    EPwm2Regs.AQCTLA.bit.CAD = AQ_CLEAR;


    //P57 设置死区, 互补模式下,需要设置死区
    EPwm2Regs.DBFED = 120; // 死区设置 TBCLKs


    EPwm2Regs.DBRED = 120; //

    AB两路波形却是这样

    不知道您讲的是哪种方法?能否把代码或者波形图贴出来?不然我自己还要走弯路,麻烦理论验证后波形图贴出来,谢谢!