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% 请问这种情况怎么处理?谢谢!
Green Deng:
所以,你的计数模式应该是向上或者向下计数的。CMPA的时候PWM1A为UP(或者down),ZERO/PRD的时候PWM1A为down(或者UP)。是这样的吗?
这样的话其实是不满足死区设置要求的,你可以看一下技术手册245页的几种死区情况。占空比不是关键,关键是PWMxA的设置。
,
jun liu:
好的 我先看下 谢谢
,
jun liu:
您的意思按中央对齐模式来设置死区就可以了?
,
Green Deng:
额,不太了解中央对齐是啥意思。简单来说,只要不将PWMxA的脉冲的两个边缘贴在周期初或者周期末应该就可以了。
,
jun liu:
您说的是应该这种模式
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两路波形却是这样
不知道您讲的是哪种方法?能否把代码或者波形图贴出来?不然我自己还要走弯路,麻烦理论验证后波形图贴出来,谢谢!