关于C2833x介绍EPWM

2019-07-25 15:09发布

通常我们用的电压源型逆变器,是通过IGBT、MOSFET等开关管的切换,用单极性或者双极性的脉冲波形来模拟正弦波,如图所示:
1.jpg
这里的基本原则是等面积,即冲量不变的原理。在逆变器直流母线电压固定的情况下,脉冲波的幅值已经确定,使用改变占空比的方法,即对应改变输出基波的幅值。最常用的载波PWM的基本原理,一般都是三角形载波和调制波波形,如正弦波、马鞍波等进行比较,在相交点产生开关状态的切换。三角载波的频率一般在kHz基波,相当于时间域里的一个函数,一般用硬件电路来实现才能保证较好的精度和时域特性。
在TI C2000及类似的电机控制用的DSP出现之前,通常的DSP并不含有专门的PWM产生电路,此时载波的产生以及和调制波的比较工作一般由模拟电路、专门的PWM芯片或者CPLD/FPGA/ASIC/ASSP来实现;由模拟电路搭建的速度很高,但是存在温度漂移等问题;专用的PWM芯片一般只有2路左右的输出,若要控制一个三相逆变器需要多片配合,CPLD/FPGA相对灵活,但是在对成本敏感的系统中仍是不小的开支,ASIC/ASSP则在大公司的产品中才可能采用。TI的C2000系列带有至少12路的PWM输出,并且PWM是专用的外设,其输出PWM等功能并不需要消耗CPU资源,因此极大地方便了系统的设计。
从2407、2812到28335,PWM外设也从事件管理器EV演变到增强的PWM模块,即ePWM。EV中的六路PWM采用同一个载波,且实际只有三个独立,三个互补的输出;而在ePWM中,每个PWM管脚都可以独立地进行配置,当然也可以在同步状态下运行,增强了设计的灵活性。下面是ePWM的一个简要框图描述:
2.jpg
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
拿起书本
2019-07-25 20:04
ePWM时基子模块除了控制寄存器TBCTL和状态寄存器TBSTS包含单独的位的控制以外,其余的寄存器都不包含位控制,分别是相位寄存器TBPHS、计数寄存器器TBCTR和周期寄存器TBPRD。时基子模块的主要目的,是为其它模块服务的,例如对于ePWM比较比模块,其比较寄存器的值和TBCTR或者TBPRD等进行比较,就可以产生相应的逻辑控制,触发查询或者中断事件。ePWM比较功能子模块主要包含以下的功能:
1.jpg
比较功能子模块主要通过两个寄存器产生两路独立的比较事件:
(1) CTR=CMPA:时间基准计数器的值等于比较寄存器A的值(TBCTR=CMPA)
(2) CTR=CMPB:时间基准计数器的值等于比较寄存器B的值(TBCTR=CMPB)
对于增计数和减计数模式,比较事件在一个计数周期内出现一次。对于增减计数模式,如果比较值在0x0000~TBPRD之间,则比较事件在一个周期内出现两次,如果比较值为0x0000或TBPRD,则比较事件在一个周期内出现一次。这些产生的事件都被送到动作限定子模块AQ中,用来产生需要的动作,例如PWM信号的翻转等。
每路ePWM的比较功能子模块在控制上相对而言比较容易,包含了两个存储比较值的寄存器即EPwmxRegs.CMPA和EPwmxRegs.CMPB,CMPx寄存器中的值始终与时间基准计数器TBCTR中的值做比较,当两者相等时,比较功能子模块将产生一次“TBCTR=CMPB”事件,并输送到功能限定子模块AQ中,从而产生相应的动作。另外有一个包含位控制的控制寄存器EPwmxRegs.CMPCTL.all,其各位的定义为
2.jpg
15~10: 目前用作保留位
9: SHDWBFULL,即CMPB映射寄存器满状态标志位
       0:CMPB映射寄存器未满
       1:CMPB映射寄存器满,此时CPU的写操作将会覆盖原来的值
8: SHDWAFULL    CMPA映射寄存器满状态标志位
       0:CMPA映射寄存器未满
       1:CMPA映射寄存器满,此时CPU的写操作将会覆盖原来的值
7: 目前用作保留位
6: SHDWBMODE  CMPB寄存器工作模式选择
       0:使用映射模式,读写操作将直接作用于CMPB映射寄存器
       1:使用立即模式,读写操作将直接作用于CMPB当前寄存器
5: 目前用作保留位
4: SHDWAMODE  CMPA寄存器工作模式选择
       0:使用映射模式,读写操作将直接作用于CMPA映射寄存器
       1:使用立即模式,读写操作将直接作用于CMPA当前寄存器
3~2: LOADBMODE      决定CMPB映射寄存器何时向当前寄存器装载数据
       00:在TBCTR=0时装载
       01:在TBCTR=TBPRD时装载
       10:既在TBCTR=0时装载,也在TBCTR=TBPRD时装载
       11:禁止装载
1~0: LOADAMODE,决定CMPA映射寄存器何时向当前寄存器装载数据CMPA及CMPB寄存器都有相应的映射单元,分别通过CMPCTL[SHDWAMODE]位及CMPCTL[SHDWBMODE]位控制,上次已经提到。通过对相应的控制位清零可以使能比较寄存器的映射单元,默认情况下映射寄存器是使能的。

一周热门 更多>