EPWM部分.docx
《EPWM部分.docx》由会员分享,可在线阅读,更多相关《EPWM部分.docx(5页珍藏版)》请在冰豆网上搜索。
EPWM部分
EPWM部分
PWM利用采样控制理论即:
冲量相等而形状不同的窄脉冲加载到具有惯性的环节上时,其基本效果相同。
冲量即指窄脉冲的面积。
F2833xDSP有6个独立的ePWM外设模块,一个ePWM模块的完整输出通道包括两路PWM信号:
EPWMxA和EPWMxB。
F28335最多有18路PWM输出(6个模块12路,还有6路是CAP扩展)。
所有ePWM模块采用时钟同步技术级联,从而在需要时可将其看做一个整体。
每个ePWM都可以使用或忽略同步信号。
每个ePWM也都可以产生两路ADC启动信号(SOC)。
每个ePWM模块包括7个子模块:
时基模块(TB),比较计数模块(CC),动作模块(AQ),死区模块(DB),PWM斩波模块(PC),事件触发模块(ET),联防模块(TZ)。
一.ePWM各个基本模块
1.时间基准(TB):
(1)设定基准时钟TBCLK与系统时钟SYSCLKOUT之间的关系;
(2)设定PWM时间基准计数器TBCTR的频率和周期(TBPRD);
PWM周期由时间基准周期寄存器(TBPRD))和时间基准计数器(TBCTR)共同决定;时钟基准周期寄存器TBPRD具有一个映射寄存器,映射功能可以使寄存器的更新与硬件同步。
映射寄存器运行方式:
●当前寄存器,用来控制系统硬件的运行,并反映硬件的当前状态;
●映射寄存器,暂存数据,并在特定的时刻将数据传送到当前寄存器中,对硬件没有任何直接作用。
●映射寄存器与当前寄存器拥有相同的地址,TBCTL[PRDLD]位决定了是否使用TBPRD的映射寄存器功能,从而决定了读/写操作作用于当前寄存器还是映射寄存器。
▼TBCTL[PRDLD]=0;可使能TBPRD的映射模式,此时读/写TBPRD的地址单元直接作用于映射寄存器。
当时间基准计数器的值等于0时,映射寄存器中的内容直接装载到当前寄存器。
默认条件下TBPRD采用映射模式。
▼TBCTL[PRDLD]=1时,此时读/写操作将绕开映射寄存器而直接作用于当前寄存器。
(3)设定时间基准计数器的工作模式:
增计数,减计数,增减计数;(TBCTR决定);
(4)设定与其他ePWM模块之间的相位关系;
(5)通过软件或硬件方式同步所有ePWM模块的时间基准计数器,并设定同步后计数器的方向(增计数或减计数);
相位控制功能可以轻易的控制各个PWM模块所产生PWM脉冲之间的相位关系,可控制一路PWM脉冲的相位超前,滞后或与另一路PWM脉冲同步,在增减模计数模式下,TBCTL[SPSHDIR]位控制同步事件发生的后时间基准计数器的方向,新的计数方向与同步事件之前的计数方向无关。
在增或减计数模式下,PHSDIR位忽略。
(6)设定时间基准计数器在仿真挂起时的工作方式;
(7)指定ePWM的同步输出信号的信号源:
同步输入信号,时间计数器归零,时间计数器等于比较器B(CMPB计数比较寄存器B,CMPB中的值与时基计数器中的值一直在比较,当两个寄存器的值相同时,计数比较器模块就会产生CTR=CMPB事件,送给动作模块进行相应动作),不产生同步信号;
(8)相关寄存器;
TBCTL(控制寄存器)配置定时器的时钟、计数模式、同步模式
TBCTL(控制寄存器)配置定时器的时钟、计数模式、同步模式
TBSTS(状态寄存器)
TBPHSHR(高速PWM用)
TBPHS(相位寄存器)计数器的起始计数位置,例如寄存器为0x0100则计数器从0x0100开始计数 TBCTR(计数器)
TBPRD(周期寄存器)设置计数器的计数周期。
只有TBPRD(周期寄存器)有影子寄存器。
2.比较功能:
(1)指定EPWMxA和EPWMxB的占空比;
(2)指定EPWMxA和EPWMxB输出脉冲发生状态翻转的时间;
(3)相关寄存器:
CMPCTL(比较控制寄存器)设置CMPA、CMPB的重载模式CMPAHR(高速PWM用),
CMPA(比较值寄存器A)设置EPWMxA的比较值,有影子寄存器。
CMPB(比较值寄存器B)设置EPWMxB的比较值,有影子寄存器
3.动作限定(AQ):
AQ用来决定事件发生时刻产生何种动作,从而在EPWMxA和EPWMxB引脚产生需要的PWM脉冲。
信号
功能描述
寄存器比较
CTR=CMPA
时间基准计数器的值等于比较寄存器A的值
TBCTR=CMPA
CTR=CMPB
时间基准计数器的值等于比较寄存器B的值
TBCTR=CMPB
CTR=PRD
时间基准计数器的值等于周期寄存器的值
TBCTR=TBPRD
CTR=ZERO
时间基准计数器的值等于0
TBCTR=0x0000
软件强制事件
软件发起的一个异步强制事件
AQ子模块主要信号及功能描述
(1)设定当时间基准或比较功能子模块时间发生时的动作;
●无反应;
●EPWMxA和/或EPWMxB的输出切换到高电平;
●EPWMxA和/或EPWMxB的输出切换到低电平;
●EPWMxA和/或EPWMxB的输出进行状态翻转;
ePWM的动作限定子模块可以同时收到多个触发事件,硬件电路为这些事件分配了优先级;在实际使用中,可以设置比较寄存器的值大于周期寄存器的值,不同计数器模式,是否产生触发事件的情况不同。
(2)相关寄存器:
AQCTLA (输出A比较方式控制寄存器)设置EPWMA的比较方式有CBD、CBU、CAD、CAU、PRD、ZRO,无影子寄存器,立即装载
AQCTLB (输出B比较方式控制寄存器)设置EPWMB的比较方式有CBD、CBU、CAD、CAU、PRD、ZRO,无影子寄存器,立即装载
AQSFRC (软件强制控制寄存器)设置AQCSFRC重载方式(RLDCSF),通过(OTSFB、ACTSFB)设置EPWMB、(OTSFA、ACTSFA)设置EPWMA启动一次强制置位无效、置零、置高、反向,当OTSFB、OTSFA被写1时,动作一次,写0无效,无影子寄存器
AQCSFRC (软件连续强制控制寄存器)可以强制EPWMA、EPWMB的输出为low或high或AQCSFRC不起作用,有影子寄存器,当寄存期被加载后的第二个时钟开始作用,如TBCLK=0时加载,TBCLK=1时开始起作用
4.死区产生(DB):
(1)控制上下两个互补脉冲之间的死区时间;(保证不能同时导通);
(2)设定上升沿延时时间;FED=DBFED*TBCLK(DBRED与DBFED是10位寄存器,以时钟周期TBCLK为最小的延时单位)
(3)设定下降沿延时时间;RED=DBRED*TBCLK
(4)不做处理,即PWM直接通过该模块;
(5)相关寄存器:
DBCTL(死区控制寄存器)设置S5,S4,S3,S2,S1,S0开关选择的
DBRED(死区上升沿延时)上升沿延时时间
DBFED(死区下降沿延时)下降沿延时时间
5.斩波控制(PC):
斩波功能在高开关频率功率器件的控制过程中非常有用;斩波功能可屏蔽。
(1)产生斩波频率;
(2)设置第一个脉冲的宽度;首次脉冲单元可携带较大能量的第一个脉冲,从而保证功率器件的可靠开通,其余脉冲用来维持功率器件的持续开通与闭合;首次脉冲宽度计算公式:
T1stpulse=TSYSCLKOUT*8*OSHTWTH;OSHTWTH为4位的控制段,TSYSCLKOUT为系统时钟SYSCLKOUT的周期。
(3)设置第二个及其以后的脉冲宽度;第二个及其以后的脉冲的占空比可通过程序控制。
(4)脉冲直接通过该模块,不做处理;
6.故障捕获:
每个ePWM模块都与通过GPIO的6路触发信号TZn相连接,这6路触发信号用来表明外部错误或其他事件。
外部触发信号TZn(TZ1~TZ6)是低电平有效的触发信号,每个ePWM模块都可以使用或忽略6路触发信号中的任何一路。
这由寄存器TZSEL决定,每个TZn输入可以配置成周期性触发事件或单次触发事件,这由寄存器TZSEL[OSHTn]位及TZSEL[CBCn]位决定。
(1)配置ePWM模块响应一个,全部或不响应外部故障触发信号;
(2)设定当外部故障触发信号出现时ePWM的动作;
●强制EPWMxA和/或EPWMxB为高电平;
●强制EPWMxA和/或EPWMxB为低电平;
●强制EPWMxA和/或EPWMxB为高阻状态;
●EPWMxA和/或EPWMxB不做任何反应;
(3)设定ePWM对外部故障触发信号的相应频率:
单次响应和周期性响应;
(4)使能外部故障触发信号产生中断;
(5)完全忽略外部故障触发信号;
7.事件触发(ET):
(1)使能ePWM模块的中断功能;
(2)使能ePWM模块产生ADC启动信号;
(3)设定触发事件触发中断或ADC启动信号的频率:
每次都触发,两次才触发及三次才触发;
(4)挂起,置位或清除事件标志位;
(5)相关寄存器:
TSEL(中断选择寄存器)使能及事件源选择(SOCA触发ADC转换,SOCB触发ADC转换,中断)
ETPS(中断预设寄存器)xxxCNT记录时间发生次数,当与xxxPRD相等时,发出中断信号,xxxCNT停止计数,当标志为清除时xxxCNT置零重新计数
ETFLG(中断标志寄存器)状态标志位,中断时为1
ETCLR(中断标志清除寄存器)写1清除相应标志位
ETFRC(强制中断寄存器)写1强制相应中断发生
二.配置ePWM模块步骤
1.使能各个ePWM模块的时钟;
2.将TBCLKSYNC清0,从而停止所有ePWM模块的时钟;
3.对ePWM模块进行配置;
4.将TBCLKSYNC置位;5