• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

DSP 2407 SPWM软件优化

我正在做一个单相变频器,该单相变频器采用TI 的TMS320LF2407A  DSP来控制,其输出为脉宽调制方波.调制方式为SPWM,四个桥臂1,3为10kHz  SPWM波,2,4为对应长度的低频方波(单极性调制)如下图.但是经过LC滤波后正弦波效果不理想,THD值较大.
500) {this.resized=true; this.width=500; this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/77/3166841242444963.jpg?x-oss-process=image/watermark,g_center,image_YXJ0aWNsZS9wdWJsaWMvd2F0ZXJtYXJrLnBuZz94LW9zcy1wcm9jZXNzPWltYWdlL3Jlc2l6ZSxQXzQwCg,t_20');}" onmousewheel="return imgzoom(this);">
  有人说应该用双极性调制或单极性倍频调制,即四路均为高频SPWM波,这样滤波后才能达到较好的正弦波效果.不知道是否如此?或者是提高载波频率?那位高人能指点一下,不胜感激!欢迎高手和我联系:shroad@163.com.
附主要源程序如下:

init_spwm()
{
EVAIFRA=0xffff;  //clear the PDPINT interrupt flag
EVAIMRA=0x0081;  //enable t1 period interrupt
CMPR1=1400;CMPR2=1400;
CMPR3=1400;CMPR4=1400;
/* DBTCONA=0xffe4;   //dead time =3.96us    */
DBTCONA=0xff00;    
COMCONA=0xa600;//enable pwm output
GPTCONA=0x40;  //enable gp timer output
T1CMPR=1000;
ACTRA=0x0;
T1PR=1515;
T1CNT=0x0;
T1CON=0x0806;  
T1CON=0x0846;

/*
IFR=0xffff;
IMR|=0x02;
asm( " clrc intm " );  
delta_data=50;
*/
}
/*          pwm sin*****    */
en_wave()
{  
if((flag2.bit.enable==1) && (delta_data>40))
{flag2.bit.enable=0;flag2.bit.change1=1;flag2.bit.disable=1;
step=0; flag_spwm=1;
     IMR|=0x07;  
     T1CNT=0;
   EVAIFRA=0xffff;
   asm( " clrc intm " );                                      
}
if((flag2.bit.disable==1) && (delta_data<15))
{
flag2.bit.disable=0;flag2.bit.enable=1;flag_spwm=0;ACTRA=0xff;
lcv[0]=lcv[1]=lcv[2]=lcv1[0]=lcv1[1]=lcv1[2]=0;
    lci[0]=lci[1]=lci[2]=lci1[0]=lci1[1]=lci1[2]=0;
    lcv_value=lcv_data=0;
    lci_value=lci_data=0;
IMR&=0x05;
   EVAIFRA=0xffff;
   asm( " clrc intm " );    
}
}
cal_wave()
{   unsigned int i;
if((flag2.bit.change1==1)&&(flag_spwm==1))
{
/* i=(((long)freq_data*6)/25);*/
i=(((long)freq_data*256)/125);  
step1=i;
flag2.bit.change1=0;
}
}
全部回复(3)
正序查看
倒序查看
dear922
LV.4
2
2009-05-16 12:16
坐着沙发等高手```````````
0
回复
2009-05-16 19:40
@dear922
坐着沙发等高手```````````
2407我没用过,我用过2812.2407全速才40M,不知你有没有
用全速,10K频率高了,2407有点勉强,还有你应该用
查表(模拟正弦数据表)设置定时器值,可提速和减少单脉波
误差.单极性调制是好的,输出LC取值与调制频率成反比.
0
回复
jackcai02
LV.2
4
2010-07-06 23:22
这种驱动方法空载的时候是方波,因为空载的时候上管是高频,斜对管是低频,所以不导通。形成方波。如果在对管用互补的方式驱动,这样就可以实现空载时也有正弦波了。
0
回复