1基于TMS320F2812DSP的PWM产生方法PWM(Pulse-WidthModulation)即脉宽调制技术,广泛运用于各种工业控制中,现需要用TMS320F2812DSP产生该波形,主要通过如下几点来实现。一、硬件芯片选型依托现有条件,选用合众达的eZdspTMS320F2812开发平台作为目标板。首要关注其datesheet和电路图。如图1所示,产生的PWM波通过目标板P8插针口的第15根脚输出,测试时需要通过示波器检查该口的输出状态。2事件管理器(EventManager)是产生PWM波的核心模块,包括通用定时器、比较单元、捕获单元、QEP电路等,这里主要用到通用定时器中的定时器1。图2表示EVA中通用定时器1的相关寄存器,对这些寄存器进行配置是产生PWM波的必经之路。二、软件编程实现在了解2812DSP各相关寄存器的前提下,通过在CCS3.3环境下编程可实现。1.CCS3.3软件环境学习一个完整的DSP工程文件需要由头文件(.h)、库文件(.lib)、源文件(.c)、和CMD文件共同组成。在实际编程中,我们通常是打开某一个例程工程文件,其中很多头文件已经被默认添加进去,一般不需要改动,源文件在相应地方进行改动即可。2.编程实现DSP芯片在一定时钟节拍驱动下才能正常工作,因此需要对系统时钟进行配置,通常使用外部时钟,并将PLL控制寄存器PLLCR取最大值10,送至CPU的时钟则为150MHz。主函数流程图如图3所示:初始化包括:系统时钟配置、PIE控制寄存器初始化、PIE中断向量表初始化、GPIO口初始化、事件管理器EVA初始化。开中断实际上是定时器T1开始计数。在通用定时器初始化的时候便将中断打开。当T1CNT和T1CMPR的值相等时发生比较匹配事件,如果T1控制寄存器T1CON的TWCMPR为1,定时比较器被使能,且GPTONA的位TCMPOE为1时,定时器比较输出被使能,那么3HzPRTTCLKf12106PRTCPMRTPRTD111HzHSPCLK5.372T1PWM_T1CMP引脚就会有PWM波形输出。3.以输出1KHz,占空比为50%的对称PWM波形(即方波)为例,重点分析事件管理器EVA的的配置情况。输出对称PWM波,即T1工作于连续增/减计数模式下,PWM产生原理如图4所示:,高电平PWM的周期sT610TCLKPR1T2,PWM的频率为有效,则占空比为:。这里的TCLK用内部时钟且大小为。由D=40%,f=1KHz,可以求得T1PR=0x493E,T1CMPR=11250,表示为十六进制就是0x2BF2。初始化EVA主要可以分为如下几个部分:完成EVA相关寄存器的配置,再将Gpio口中和PWM相关的引脚GPIOA6设置为PWM功能。三、实验结果将.out文件load至DSP目标板,并用示波器测试引脚输出,可清晰发现我们4需要的PWM波形,如图6所示:由此我们可以得出只要合理配置DSP的各个寄存器,就能产生理想的波形。在此基础上,将TCMPR的值按照一定的规律改变,就可以产生占空比可变的PWM波,若按正弦规律变化,就能产生占空比按正弦规律变化的波形,也就是俗称的SPWM波,通过适当的滤波电路,便可以产生需要频率的正弦波等。实验表明,基于传统算法的PWM产生方法是简单易实现的,具有良好的可行性。