PWM(PulseWidthModulation)控制就是对脉冲的宽度进行调制的技术,即通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形。
SPWM波形(SinuSOIdalPWM)就是脉冲的宽度按正弦规律变化而和正弦波等效的PWM波形,在逆变电路中的应用最为广泛。在此例中SPWM的功能是给三相逆变电路的6个IGBT(绝缘栅双极晶体管)提供触发脉冲,从而使直流电逆变为400Hz的正弦交流电。
2.开发流程(1)编写软件SPWM的生成主要是应用TMS320F28l2的事件管理器模块(EVA/B),所以编写程序前要做的主要工作就是了解熟悉这一模块的结构和工作原理,至于其他用不到的模块可暂时不作了解。程序编写的第一步就是要对用到的模块的各种寄存器进行设置,第二步就是算法的设计编写。
本文末尾是笔者编写的已经通过编译的一段生成SPWM(正弦脉宽调制波)的主程序。
(2)调试程序编写完程序后,就要在仿真环境下进行调试,先编译再运行,通过示波器可以直接观察DSP引脚上输出的SPWM波形,直到与要求的波形相符为止。
(3)烧写程序在仿真环境下调试好程序后,需要把程序烧写到DSP的片上FLASH存储器中。烧写时必须先安装专门的烧写软件,安装后就可以直接在CCS环境下操作烧写。烧写完成后就可以脱离仿真器,开发板就可以上电独立运行,并和其他的外围电路相连而实现它的功能。
习方法知参考资源一、习方法初学DSP常常会感觉到技术文档太多,无从下手。根据我的自学经历,这时最应该弄明白的就是DSP芯片的内部硬件工作原理,如果有微机原理和单片机基础的话,这应该是很容易掌握的,如果没有这方面的基础,建议先去找一本微机原理的书看,看明白后再来看DSP的原理。另外,DSP的外设模块有很多,这时没有必要都去了解,只是了解你所用到的模块就可以了。
了解了DSP的工作原理之后,就要去看关于软件开发环境的书,包括软件的安装和使用。然后就找几个完整的工程(购买开发板时都会赠送各模块的完整工程)来看,在似懂非懂的大体了解了一个完整工程的创建及结构后,就可以开始分析和你所用到的模块相关的程序。现在有大量现成的例程和算法可以参考,切忌自己闷头摸索,一定要去找相关的程序来参考,这会起到事半功倍的效果。
二、参考资源
1.一定要买几本好的参考资料,比如《TMS320F2812原理与开发》、《电动机的DSP控制——TI公司DSP应用》等。TI公司提供的DSP芯片资料都是英文的,读起来可能会有一些困难,但实在查找不到资料时,一定要去这个里面搜索相关资料。
2.到有关DSP的网站查询资料,比较好的网站有WWW.ti.com、WWW.61ic.com、老古开发网等。
3.到论坛DSP版块发问,比较好的论坛有:合众达论坛、研学论坛、北京瑞泰论坛(www.realtimedsp.com.cn,有问必答)等。
4.可以参加几个DSP开发的QQ群,大家可以相互交流学习。
5.遇到问题时直接找开发板公司的技术支持。
结束语
本人现在公司主要做DSP控制方面的研发工作,并且已经做出一些成果,对于DSP我是一点点自学起来的,以上内容部是在平时的学习研发过程中的一点积累,这只是关键的几个人门知识点,给刚刚接触DSP的朋友一些指点。以我个人的学习经历作参考,感觉只要人了门,学习速度会突飞猛进。
主程序
void main(void)
{
//step1:初始化系统控制寄存
器、PLL、看门狗、时钟等
工nitSysCTRl();
EALLOW;//设置时钟75MHz
SY SCtrlRegs.HI SPCP.
a11=0x0000;
EDIS;
EALLOW;//使能PWM引脚
GPi OMuXRegs.GPAMUX.
all=0x00FF;//EVA PWM1-6引脚,
T1PWM,T2PWM
EDIS ;
DINT;
IER=0x0000;
IFR=0x0000 ;//禁止和清除所
有CPU中断
InitpieCtrl();//始化Pie
控制寄存器位默认状态
InitPieVectTable();//2始
化PIE中断向量表vector table;
//step2:设置EVA模块
EvaRegs.T1PR=(int)(TC/
2);//6194个计数周期,即0X1832.
(TC为一全局函数)
EvaRegs.TICNT=0X0000;
EvaRegs.CMPR1=(int)(TC/
2);
EvaRegs.CMPR2=(int)(TC/
2);
EvaRegs.CMPR3=(int)(TC/
2);
E V a R e g s.A C T R A.
ali=0x0666;//1,3,5高有效。2,
4,6低有效
E v a R e g s.D B T C O N A.
alI=0XOFF8;//死区时间1.6微秒
E v a R e g S.C 0 M C O N A.
alI=0XAA00;//使能比较,下溢重载
E V a R e g s.T 1 C O N.
all=0X0842;//连续增减计数模式
//step3:设置中断
E v a R e g s.E V A I F R A.
a11=0XFFFF:
E v a R e g s.E V A I F R B.
a11=0XFFFF:
E V a R e g s。E V A I F R C.
alI=0XFFFF;//清EVA所有中断标
志住
E V a R e g s.E V A I M R A.
all=0X0200;//使能T1定时器下溢
中断
E V a R e g s.E V A I M R B.
a11=0X0000 ;
E V a R e g s.E V A I M R C.
a11=OX0000;
EALLOW;//更新中断向量
pievectTable.T1UFINT
=&TIUFINT_IS;
EDIS;
p i e C t r 1.PIEI E R 2.
alI=M_INT6j//开2.6级中断,即
T1定时器下溢中断
IERㄧ=M_INT2 ;//开总中断
EINT;
ERTM;
for(;;);
}
本文关键字:开发 电脑-单片机-自动控制,电子学习 - 基础知识 - 电脑-单片机-自动控制
上一篇:DSP编程的关键问题分析