您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于F2812的PWM波形的产生
基于F2812的PWM波形的产生一、任务具体要求:1)通过示波器能够观察到EVA事件管理器的pwm5、6输出占空比(占空比是指高电平在一个周期之内所占的时间比率)为5/6的矩形波,其中pwm6高电平有效,pwm5低电平有效;pwm3、4输出占空比为1/2的矩形波,其中pwm4高电平有效,pwm3低电平有效;pwm1、2输出占空比为1/6的矩形波,其中pwm2高电平有效,pwm1低电平有效;2)调整相关寄存器的值,修改PWM波的频率和占空比。二、任务所需基础知识2.1什么是PWM?SPWM?PWM(PulseWidthModulation)就是脉宽调制技术,即通过对一系列脉冲的宽度进行调制,来等效的获得所需要的波形(含形状和赋值)。PWM技术应用非常广泛,在电力电子、电机控制、运动控制以及功率控制与变化等许多领域。F2812芯片提供的PWM输出,是一种周期和占空比均可变,幅值为3.3V的脉宽调制信号。2.2TMS320F2812简介(1)采用了高性能的静态CMOS技术,时钟频率可达150MHZ(6.67ns),其核心电压为1.8V,I/O口电压3.3V,Flash编程电压也为3.3V。(2)高性能的32位CPU。能够实现16x16和32X32乘法操作,哈佛总线结构,快速的中断操作,寻址程序空间可达4M,寻址数据空间可达4G,在C/C++和汇编语言中代码可得到优化,另外还可向下兼容TMS320F24X/LF240X处理器的代码;(3)片上存储器:闪存128K字,单访问双口RAM(SARAM)18k字;(4)引导(BOOT)ROM4K字,具有软件启动模式并包含标准的数学表;(5)时钟和系统控制采用锁相环技术PLL来控制系统各模块所需要的频率;(6)具有3个外部中断和外围中断扩展模块PIE(PeripheralInterruptExpansion),PIE可支持多达45个外部中断;(7)具有3个32位的CPU定时器和适合电机控制的事件管理模块EVA和EVB;(8)具有很强的外围通讯功能:包括同步串行口SPI,通用异步串行口SCI,增强的eCAN和多通道缓存串行口MCBSP;(9)16个通道、12位精度的A/D转换器。(10)56个独立可编程的多路通用输入/输出(GPIO)引脚。2.3TMS320F2812事件管理器模块介绍TMS320F2812包含两个事件管理器(EV)模块EVA和EVB,这两个EV模块具有相同的功能,每个事件管理器模块包括2个16位通用定时器(GP)、3个全比较PWM单元、1个正交编码电路以及3个捕获单元,具体见图1.GP1定时器能可以为所有的比较和PWM电路提供时基,这些比较单元通过可编程死区电路可以产生6个比较输出或者PWM波形输出,6个输出中的任何一个输出状态都可单独设置。比较单元的比较寄存器是双缓冲的,允许可编程的变换比较/PWM脉冲宽度;双缓冲的周期和比较寄存器允许用户根据需要对定时器(PWM)的周期和脉冲宽度进行编程。图1事件管理器A的功能模块图(1)可编程通用定时器。可用于产生采样周期,作为比较单元产生PWM输出以及软件定时的时基。在向上或向下记数操作中,每个通用定时器有3种连续工作方式,具有可编程预定标器的内部或外部输入时钟。通用定时器也可为其他事件管理器子模块提供时基;双缓冲的周期和比较寄存器允许用户根据需要对定时器(PWM)的周期和脉冲宽度进行编程。通用定时器可独立工作或互相同步工作,与通用定时器有关的比较寄存器可用作比较功能和PWM波形的产生。(2)全比较单元。主要用来生成PWM波形,每个比较单元可以生成一对(两路)互补的PWM波形,生成的6路PWM波形正好可以驱动一个三相桥电路。F2812的两个事件管理器可产生16路独立PWM信号。由3个具有可编程死区的全比较单元产生独立的3对PWM信号,由通用定时器比较单元产生独立的两路PWM信号。对每一个比较单元输出,死区的产生可单独被使用/禁止。利用双缓冲的ACTRx寄存器,死区产生器的输出状态可以被高速配置及改变。(3)正交解码电路。正交编码脉冲(QEP)电路可以对引脚CAP1/QEP1和CAP2/QEP2上的正交编码脉冲进行解码和计数,可以直接处理光电码盘的2路正交编码脉冲进行鉴相和4倍频。另外,F2812允许引脚CAP-QEPI(EVA的CAP3-QEPI1和EVB的CAP6-QEPI2)复位定时器2。(4)捕获单元。用于捕获输入引脚上信号的跳变,两个事件管理器模块共有6个捕获单元。每个单元各有一个两级的FIFO缓冲堆栈。当捕获发生时,相应的中断标志被置位,并向CPU发中断请求。注:1)PWM可以由通用定时器和全比较单元来产生,其中全比较单元产生6路PWM,每个定时器产生一路PWM;2)在本次实训的PWM波形产生过程中并不会涉及到正交编码电路以及捕获单元。1.3.1生成对称和非对称PWM信号的条件1、全比较单元非对称PWM信号产生条件:1)将T1或T3设置为连续增计数模式;2)装载周期寄存器=PWM载波周期的数;3)COMCONA/B配置成使能比较操作,使能PWM输出引脚。4)如果死区使能,设置死区时间值(DBTCONA/B的11-8位);5)适当地配置比较方式寄存器ACRTA/B。图2定时器连续增模式下比较单元的非对称PWM波形对称PWM信号产生条件:1)将T1或T3的设置为连续增/减计数模式;2)装载周期寄存器=PWM载波周期的数;3)COMCONA/B配置成使能比较操作,使能PWM输出引脚。4)如果死区使能,设置死区时间值(DBTCONA/B的11-8位);5)适当地配置寄存器ACRTA/B。对称PWM波形比非对称PWM波形的优越之处在于它存在有两个相同长度的非激活区(无效区),这两个区分别位于PWM波形的起始和结束处。图3定时器连续增/减模式下比较单元的对称PWM波形2定时器单元图4定时器连续增模式下定时器单元的非对称PWM波形图5定时器连续增模式下定时器单元的对称PWM波形定时器PWM信号产生条件:1)将定时器设置为连续增计数或连续增/减计数模式;2)装载周期寄存器=PWM载波周期的数;3)GPTCONA/B寄存器中相应位配置成使能比较操作、计数方向、使能定时器PWM输出引脚。4)TxCON设置计数模式,比较使能以及定时器使能等。注意:前面提及的两种产生对称和非对称PWM波形之间的区别,一是产生的模块不同一个是全比较单元,另外一个是定时器比较器;二是全比较单元产生的PWM波形可以根据需要带死区控制,而定时器产生的不带死区控制;2.3.2通过全比较单元产生PWM信号的相关设置:与全比较单元相关的PWM电路如下图:图6全比较单元结构框图1)比较操作模式--由比较控制寄存器(COMCONx)相关位决定2)EV定时器的计数值TxCNT不断与比较寄存器的值进行比较,当发生匹配时,比较单元的两个引脚的输出电平按照方式控制寄存器ACTRA(或ACTRB)控制的位进行跳变。匹配时,若比较被使能,则比较匹配中断标志位被置位,这时若中断没有被屏蔽,则会产生外设中断请求,且输出跳变的时序。3)比较单元操作的寄存器配置步骤:①将I/O口设置为PWM引脚模式;②设置和装载比较动作寄存器ACTRA/B,决定PWM输出的极性;③若死区使能,则设置和装载死区控制寄存器DBTCONA/B,以决定死区的大小;④设置和装载TxPR寄存器,以决定PWM波形的周期;⑤初始化比较周期寄存器CMPRx,设置和装载比较控制寄存器COMCONA/B;⑥根据需要设置和装载TxCON寄存器,来启动比较操作;如果需要更改占空比,则更新CMPRx寄存器的值,使输出的PWM波形的占空比发生变化。2.3.3通过通用定时器产生PWM信号的相关设置:图7通用定时器功能模块框图从上面得定时器功能结构图可以看出,定时器要产生PWM信号,需要对以下的相关寄存器进行设置:周期寄存器TxPR,比较寄存器TxCMPR,控制寄存器TxCON,计数器寄存器TxCNT以及全局定时器控制寄存器GPTCONA/B.通用定时器输出PWM波形的初始化过程:①将I/O口设置为PWM引脚模式②设置通用定时器控制寄存器GPTCONA/B,设定各个定时器的计数方向,比较输出是否允许以及输出引脚极性。③根据PWM波形的周期设置TxPR;④设置TxCON确定各组定时器的工作方式,包括计数模式、时钟源选择、时钟预定标因子、比较操作是否使能以及对比较寄存器和周期寄存器的控制。⑤根据PWM脉宽占空比设置TxCMPR.新的占空比需要新的比较值,比较寄存器的值根据脉宽的要求不断更新。定时器一旦触发(TxCON.TENABLE=1),时钟立即送入计数寄存器TxCNT进行计数,如果TxCON.TCOMPOE=1,即使能定时器的比较输出,在TxCNT=TxCMPR时会从TxPWM引脚输出方波2.3.4PWM输出的占空比计算1)、定时器计数方式配置为连续增/减方式。假设PWM的引脚输出为高电平有效,比较寄存器的值为TxCMPR,周期寄存器的值为TxPR,正常时有0TxCMPRTxPR,通用定时器的工作模式为连续增/减方式。由于在一个周期内会发生两次比较匹配事件,如果两次比较值相同,则会产生对称的PWM波形。由于连续增/减计数模式的脉冲周期为T=2×TxPR,而有效电平时间为:t1=(TxPR-TxCMPRup)+(TxPR-TxCMPRdown)个计数脉冲,其中,TxCMPRup为第一次比较匹配值,TxCMPRdown为第二次比较匹配值,故PWM输出波形的占空比为:q=t1/T=(2×TxPR-TxCMPRup-TxCMPRdown)/(2×TxPR)在两次比较匹配值相等时(即TxCMPRup=TxCMPRdown时),PWM输出的占空比为:q=t1/T=(TxPR-TxCMPR)/TxPR2)、定时器计数方式配置为连续递增计数模式。假设PWM的引脚输出为高电平有效,比较寄存器的值为TxCMPR,周期寄存器的值为TxPR,正常时有0TxCMPRTxPR,通用定时器的工作模式为连续增方式。比较寄存器中的值代表了从计数周期开始到第一次匹配发生之间花费的时间(即无效相位的长度),这段时间等于定标的输入时钟周期乘以TxCMPR寄存器的值。因此,有效电平长度就等于:t1=(TxPR-(TxCMPR)+1)个定标的输入时钟周期,也就是输出脉冲的宽度。故PWM输出波形的占空比为:q=t1/T=(TxPR–TxCMPR+1)/TxPR注意:1)如果是采用全比较单元生成PWM信号,则上面的占空比的技术中使用的是CMPRx寄存器中设置的值;2)上面的计算是假设PWM的输出引脚为高电平有效,如果是设置为低电平有效,则占空比的计算公式需要做出相应的改变。三、任务一实现的基本步骤:1、结合学习前面的F2812PWM波形产生的相关知识分析任务要求;2、根据提供的相关头文件,.c源文件以及链接器命令文件.cmd建立该任务的工程文件,工程文件要求命名为PWM_学号.pjt;3、根据任务分析的结论,结合前面的基础知识以及相关资料着手代码的编写,在代码编写过程中要求有代码注释。下面的代码是该任务的主函数,相关外设的初始化和中断设置已经完成,要求在voidinit_eva(void)函数中完成要求的PWM波形代码。/*************************头文件*********************************/#includeDSP281x_Device.h//DSP281xHeaderfileIncludeFile#includeDSP281x_Examples.h//DSP281xExamplesIncludeFile//产生PWM波形的函数声明voidinit_eva(void);voidmain(void){/*系统初始化,包括:PLL,WatchDog,enablePeripheralClocks*/InitSysCtrl();//InitializeonlyGPAMUXandGPBMUXforthistestEALLOW;//En
本文标题:基于F2812的PWM波形的产生
链接地址:https://www.777doc.com/doc-2569488 .html