《F2833x介绍---ePWM.docx》由会员分享,可在线阅读,更多相关《F2833x介绍---ePWM.docx(32页珍藏版)》请在金锄头文库上搜索。
1、TI C2833x介绍-ePWM通常我们用的电压源型逆变器,是通过IGBT、MOSFET等开关管的切换,用单极性或者双极性的脉冲波形来模拟正弦波,如图所示:这里的基本原则是等面积,即冲量不变的原理。在逆变器直流母线电压固定的情况下,脉冲波的幅值已经确定,使用改变占空比的方法,即对应改变输出基波的幅值。最常用的载波PWM的基本原理,一般都是三角形载波和调制波波形,如正弦波、马鞍波等进行比较,在相交点产生开关状态的切换。三角载波的频率一般在kHz基波,相当于时间域里的一个函数,一般用硬件电路来实现才能保证较好的精度和时域特性。在TI C2000及类似的电机控制用的DSP出现之前,通常的DSP并不含
2、有专门的PWM产生电路,此时载波的产生以及和调制波的比较工作一般由模拟电路、专门的PWM芯片或者CPLD/FPGA/ASIC/ASSP来实现;由模拟电路搭建的速度很高,但是存在温度漂移等问题;专用的PWM芯片一般只有2路左右的输出,若要控制一个三相逆变器需要多片配合,CPLD/FPGA相对灵活,但是在对成本敏感的系统中仍是不小的开支,ASIC/ASSP则在大公司的产品中才可能采用。TI的C2000系列带有至少12路的PWM输出,并且PWM是专用的外设,其输出PWM等功能并不需要消耗CPU资源,因此极大地方便系统的设计。从2407、2812到28335,PWM外设也从事件管理器EV演变到增强的P
3、WM模块,即ePWM。EV中的六路PWM采用同一个载波,且实际只有三个独立,三个互补的输出;而在ePWM中,每个PWM管脚都可以独立地进行配置,当然也可以在同步状态下运行,增强设计的灵活性。下面是ePWM的一个简要框图描述:就每个ePWM来说,可以分为以下十个主要的功能模块,其功能示意图如图1所示。图1 ePWM功能示意1.时钟预定标:这个模块在28335大部分外设中都有,其输入是SYSCLKOUT,预定标的作用是对SYSCLKOUT时钟信号进行分频,从而控制外设的时钟频率。其输出是TBCLK时钟信号,即每个ePWM模块的时间基准(time base,即TB),它被ePWM外设的所有子模块使用
4、,控制计数器的更新速率。2. 16位的时间基准计数器(TBCTR):16位的时基计数器,其输入有:时基信号TBCLK;在ePWM之间用来同步的EPWMxSYNCI信号;周期寄存器的值(即周期值)。其输出有两个,一个是EPWMxSYNCO用来输出同步信号;另一个则是计数值与周期值比较的结果,并送入逻辑处理模块。3.比较逻辑处理:处理输入的比较结果,并生成相应的逻辑状态。4.动作限定模块(action qualifier):判断逻辑的转换是否满足要求,并转换为对应的PWM开关状态,通常为EPWMxA和EPWMxB。5.死区模块:对PWM的开关变化加入死区时间,以防止变流器上下桥臂的开关管过流击穿损
5、耗。死区通常有单边死区和双边死区,单边死区即只对开通开关管的脉冲施加死区,双边死区则对所有的脉冲变化加入死区时间,即延时开通,提前关断,这些都可以在死区模块的寄存器中进行配置。6. PWM斩波环节(chopper):这部分是可选的,通常用来产生高频PWM载波信号,在一般的逆变器中不需要用到,在高频的开关数字电源中作用很大。7.事件触发模块(trip zone):主要是用来处理外部返回的故障信号,例如在变频器过流时,保护电路返回的故障信号反馈到TZ模块,此时强制PWM管脚为高阻态,则停止输出,并且可以运行设计的保护程序等。在ePWM模块中,定时/周期操作经常被广泛使用。例如,设定一个定时周期,然
6、后每次计数到周期值时触发一些特定的事件;或者由某个事件触发计数操作,用来捕获某个事件的时间、脉冲个数等。ePWM的周期由时间基准周期寄存器和时间基准计数器的运行方式共同决定。时间基准计数器具有三种运行方式:1.连续增计数: 对应下图中的第一种模式,是一种非对称的波形。在该模式下,时间基准计数器从零开始增加,直到等于TBPRD的值,然后计数器复位到0,重复上述过程。2.连续减计数: 对应下图中的第二种模式,同样也是一种非对称的波形。在该模式下,钟基准计数器从TBPRD始减小,直到等于0,然后计数器复位到TBPRD,重复上述过程。3.连续增减计数: 对应下图中的第三种模式,是一种对称的波形。在连续
7、增减计数模式下,时钟基准计数器从零开始增加,直到等于TBPRD的值,然后开始减计数,直到等于0,然后重复上述过程。这种波形的形状是等腰三角形,在使用载波方法实现PWM波形输出时最常用到。图中,三角形的顶点的纵坐标值一般为周期值,横坐标值则代表一个三角波持续多少个周期时间。时间基准寄存器的值可被立即刷新,或者在本次计数结束之后再刷新,由TBPRD寄存器的值决定:1.如果TBCTLPRDLD=0,使能映射寄存器,任何读写操作将针对映射寄存器,在时间基准计数器归零时,将映射寄存器中内容装载到当前寄存器。2.如果TBCTLPRDLD=1,禁止映射寄存器,任何读写操作将直接作用于当前寄存器。28335上
8、的ePWM引入很多增强的特性,从而使得我们可以更加灵活的进行组合配置,产生更复杂的PWM控制逻辑。例如,引入基于事件基准的相位寄存器TBPHS。在对各个PWM进行单独控制时,TBPHS的值并无作用,但是,如果想把各个ePWM的三角形载波之间建立角度上的联系,则可使用TBPHS寄存器,例如下面的例子:多个ePWM模块之间可以存在一个精确的相位差,在一些特殊的电力电子拓扑结构中特别有用。例如在大功率的应用中,对于移相变压器、多绕组变压器等,其输入有多个整流单元,相位互差特定的角度,此时我们就可以使用TBPHS寄存器来调整它们之间载波的相位差;而且因为是相对于同一个时间基准来计数,其精度也较高。在这
9、种使用情况下,一般将一相ePWM作为主模块,其时钟信号作为同步源,其余几相ePWM作为从模块,其时钟信号使用同步源与TBPHS的和或差;当然,主同步信号也可以使用外部的时钟信号,这是ePWM的灵活之处所在。TBPHS的计算方法为:以周期值TBPRD=600为例,则在TBPHS=200时,相位差为:200/600 x 360 = 120每当计数值=周期值时,主模块产生同步信号,则TBPHS=200就被加载到从模块的计数寄存器TBCTR中,从而使得从模块的计数总是滞后主模块120。使用这种方法,即使是变频的情况,只要知道具体的频率,仍可实现固定角度的相位差(当然最多会有一个TBPRD时间的延时)。
10、ePWM的时基子模块有5种寄存器,分别为寄存器名称 用途 是否包含位控制 TBCTL 时间基准控制寄存器 是:EPwmxRegs.TBCTL.all TBSTS 时基状态寄存器 是:EPwmxRegs.TBSTS.all TBPHS 时基相位控制寄存器 否:EPwmxRegs.TBPHS TBCTR 时基计数寄存器 否:EPwmxRegs.TBCTR TBPRD 时基周期寄存器 否:EPwmxRegs.TBPRD 前两个寄存器包含很多的控制位,所以可对其中的位进行独立的读/写操作,而后三个寄存器中的内容只代表一个数值,所以不存在单独的位读/写操作。想用好ePWM的强大功能,首先要正确配置各个控
11、制寄存器的功能。下面首先描述TBCTL各个位的含义。15-14:FREE_SOFT描述仿真器控制DSP芯片的情况下,仿真暂停时ePWM的运行方式(例如在CCS里面点击一下halt按钮)。00:在下次时间基准计数器增或减后停止01:当计数器完成一个周期后停止:对于増计数,当计数值TBCTR=周期值TBPRD时停止对于减计数,当TBCTR=0x0000时停止对于增减计数,当TBCTR=0x0000时停止10或者11:自由运行,即不受仿真暂停状态的影响,即使是在CCS里面按下暂停,ePWM的相关功能仍然在运行。13:PHSDIR相位方向控制位,用来决定同步后增减计数器的计数方向,在増计数或减计数模式
12、下此位被忽略0:同步事件发生后,减计数1:同步事件发生器,増计数1210:CLKDIV基准时钟分频位,TBCLK=SYSCLKOUT/(CLKDIVHSPCLKDIV) 000111(k):分频系数为 2的k次方97:HSPCLKDIV高速基准时钟分频位,TBCLK=SYSCLKOUT/(CLKDIVHSPCLKDIV) 000:分频系数为1001111(k):分频系数为2k时间基准控制控制TBCTL寄存器的低六位是:其含义分别为:6:SWFSYNC,软件强制同步脉冲0:写0无反应;读,将始终返回0 1:写1将强制产生一次同步脉冲信号 54:SYNCOSEL,同步信号输出选择,用于选择EPWM
13、xSYNCO信号的输出源00:EPWMxSYNC01:CTR=ZERO,时间基准计数器TBCTR=010:CTR=CMPB,时间基准计数器TBCTR=CMPB11:禁止输出EPWMxSYNCO信号3:PRDLD,决定周期寄存器TBPRD映射单元何时向当前单元装载数据0:使能映射寄存器;此时,对周期寄存器TBPRD的读写直接表现为对映射寄存器的读写;然后当CTR=ZERO时,将映射寄存器中的数据装载到当前寄存器1:使用立即模式(immediate mode),禁止使用映射寄存器2:PHSEN,相位使能位0:禁止TBCTR加载相位寄存器TBPHS中的值1:当同步信号EPWMxSYNCI输入或当软件
14、强制同步事件发生时,TBCTR加载相位寄存器TBPHS中的值10:CTRMODE,计数模式选择00:増计数01:减计数10:增减计数11:停止计数器相关操作(默认)在对TBCTL进行操作之后,看一下时基状态寄存器(TBSTS)的内容。比起CPU状态寄存器ST的复杂程度,TBSTS的内容要简单的多,16个状态位中前13个全是保留位:15-3 保留位 2:CTRMAX 1:SYNCI 0:CTRDIR 2:CTRMAX 用于判断TBCTR是否达到过最大值0xFFFF0:读,返回0表明TBCTR从未到达过0xFFFF,写0无反应1:读,返回1表明TBCTR到达过0xFFFF,写1将清除相应锁存事件1
15、:SYNCI 用于判断同步信号的输入锁存状态0:读,返回0表明从未发生过同步事件,写0无反应1:读,返回1表明发生过同步事件,写1将清除相应的锁存事件0:CTRDIR 时间基准计数器方向判断位,在复位后由于计数器默认为禁止状态,所以此位无意义,当通过TBCTLCTRMODE设定好计数器模式后,才有意义0:计数器正在减计数1:计数器正在増计数ePWM时基子模块除了控制寄存器TBCTL和状态寄存器TBSTS包含单独的位控制以外,其余寄存器都不包含位控制,分别是相位寄存器TBPHS、计数寄存器器TBCTR和周期寄存器TBPRD。时基子模块的主要目的是为其它模块服务,例如对于ePWM比较模块,其比较寄存器的值和TBCTR或者TBPRD等进行比较,就可以产生相应的逻辑控制,触发查询或者中断事件。ePWM比较功能子模块主要包含以下的功能:比较功能子模块主要信号及功能描述信号功能描述寄存器比较CTR=CMPA时间基准计数器的值等于比较寄存器A的当前值TBCTR=CMPACTR=CMPB时间基准计数器的值等于比较寄存器B的当前值TBCTR=CMPBCTR=PRD时间基准计数器的值等于周期寄存器的值用于将CMPA及CMPB映射寄存器的值装载到当前寄存器T