28335EPWM产生PWM.docx
- 文档编号:24934213
- 上传时间:2023-06-03
- 格式:DOCX
- 页数:17
- 大小:212.26KB
28335EPWM产生PWM.docx
《28335EPWM产生PWM.docx》由会员分享,可在线阅读,更多相关《28335EPWM产生PWM.docx(17页珍藏版)》请在冰豆网上搜索。
28335EPWM产生PWM
28335_EPWM产生PWM
28335ePWM模块中产生PWM的必要配置
1
一个ePWMmodule包括Time-base(TB)module,Counter-compare(CC)module,Action-qualifier(AQ)module,Dead-band(DB)module,PWM-chopper(PC)module,Event-trigger(ET)module,Trip-zone(TZ)module等七个模块。
正常的发出PWM波要配置TB(定时器模块)、CC(比较计数器模块)、AQ(比较方式预设模块)、DB(死区模
ET(事件触发模块)等五个模块。
块)、
2
Time-base(TB)module
Time-base(TB)module为定时器模块,有
TBCTL(控制寄存器)配置定时器的时钟、计数模式、同步模式
TBSTS(状态寄存器)
TBPHSHR(高速PWM用)
TBPHS(相位寄存器)计数器的起始计数位置,例如寄存器为0x0100则计数器从0x0100开始计数
TBCTR(计数器)
TBPRD(周期寄存器)设置计数器的计数周期。
只有TBPRD(周期寄存器)有影子寄存器。
本程序的设置为count-up-and-downmode计数模式,相位为零,ePWM2、ePWM3、ePWM4、ePWM5、ePWM6,通过ePWM1的计数器到零时进行同步,计数周期为0.5ms。
3
Counter-compare(CC)module
Counter-compare(CC)module为比较器模块有
CMPCTL(比较控制寄存器)设置CMPA、CMPB的重载模式CMPAHR(高速PWM用),
CMPA(比较值寄存器A)设置EPWMxA的比较值,有影子寄存器。
CMPB(比较值寄存器B)设置EPWMxB的比较值,有影子寄存器。
本程序只应用了CMPA,设置计数器到零时重载CMPA。
4
Action-qualifier(AQ)module
Action-qualifier(AQ)module比较方式预设模块
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时开始起作用
说明:
CBD为TBCTR(计数器)与CMPB在down计数时相等使输出为low或high或反向或不动作
CBU为TBCTR(计数器)与CMPB在up计数时相等使输出为low或high或反向或
5
不动作
CAD为TBCTR(计数器)与CMPA在down计数时相等使输出为low或high或反向或不动作
CAU为TBCTR(计数器)与CMPA在up计数时相等使输出为low或high或反向或不动作
PRD为TBCTR(计数器)与TBPRD(周期寄存器)相等时使输出为low或high或反向或不动作
ZRO为TBCTR(计数器)计到零时使输出为low或high或反向或不动作
注意:
以上均是相等时起作用,其它时间不管,只有AQCSFRC(软件连续强制控制寄存器)持续起作用
如同时出现比较则优先级如图
例:
CMPA=100,CMPB=100,up计数,EPWMA初始为低,CAU设置高,CBU设置低,当TBCTR计到100时,CAU、CBU同时作用,根据优先级,EPWMA输出低。
当CMPA=100,CMPB=110,其它不变,当TBCTR计到100时,EPWMA输出高,计到110时EPWMA输出低。
本程序只应用了EPWMA输出通过Dead-band(DB)module产生互补的PWM波形。
6
Action-qualifier(AQ)module比较方式预设模块配置如下:
AQCTLA(输出A比较方式控制寄存器)的CAU置高,CAD置低,其它无效。
在初始化中配置。
AQCSFRC(软件连续强制控制寄存器)通过AQSFRC(软件强制控制寄存器)的RLDCSF配置为TBCTR(计数器)计到零时装载,根据需要每次中断配置CSFA置高、置低或软件连续强制无效。
其优先级最高,强制时CAU置高,CAD置低不起作用,无效时CAU置高,CAD置低起作用。
AQSFRC(软件强制控制寄存器)的ACTSFA配置为置低,当本周期软件连续强制无
向OTSFA写1,保证有效高周期的起始是低状态,防止上一周期结束时为高。
效时,
7
Dead-band(DB)module
Dead-band(DB)module死区模块
DBCTL(死区控制寄存器)设置S5,S4,S3,S2,S1,S0开关选择的
DBRED(死区上升沿延时)上升沿延时时间
DBFED(死区下降沿延时)下降沿延时时间
本程序的设置为S5=0,S4=0,S3=1,S2=0,S1=1,S0=1;延时时间为5us。
EPWMxA=EPWMxAin,EPWMxB为EPWMxAin的反向。
8
Event-trigger(ET)module
Event-trigger(ET)module中断事件模块
ETSEL(中断选择寄存器)使能及事件源选择(SOCA触发ADC转换,SOCB触发ADC转换,中断)
ETPS(中断预设寄存器)xxxCNT记录时间发生次数,当与xxxPRD相等时,发出中断信号,xxxCNT停止计数,当标志为清除时xxxCNT置零重新计数
ETFLG(中断标志寄存器)状态标志位,中断时为1
ETCLR(中断标志清除寄存器)写1清除相应标志位
ETFRC(强制中断寄存器)写1强制相应中断发生
本程序选择SOCA触发ADC转换,TBCTR=0位中断事件源,xxxPRD为1。
TMS320F280X系列DSP的EPWM讨论
我们大家知道.2812,2407等系列的EVA.EVB模
块等能产生丰富的PWM波型.但是要作为一个
系列的话.我还是推荐大检查使用280X系列.
一个主要原因是它们的引脚可以完全共用.这
就为我们研发从低到高的产品提供了一个通用
平台.2809好象百元左右吧.2808是80RMB.小
袖珍的热门DSP28016可能也就超不过30RMB.
那可是32位60M主频的带全基本上的接口.我
觉的280X系列从价位和封装上为我们提供了
灵活的选择余地.
-9-
但是现在280X的资料好象很少.看了一下他们
的EPWM模块有些没弄明白.比如为使所有EPWM
在一个同步时基上工作.他们的EPWMXSYNCI和
EPWMXSYNCO是不是要级联起来.但是好象没看
见EPWM1-EPWM6有外接这么多同步时钟接口
啊.是不是在软件里Writinga1tothe
TBCTL[SWFSYNC]controlbitinvokesasoftwareforcedsynchronization.ThispulseisORedwiththesynchronizationinputsignal,andthereforehasthesame
effectasapulseon
EPWMxSYNCI.就不用管外设的同步始终接口
EPWMSYNCI和EPWMSYNCO啊.其实多半做PWM控
制的都希望能用硬件产生有固定时基的时钟信
号啊.再就是有没有类似2407和2812等的影子
寄存器(同步缓存寄存器).在定时周期中断中
不用担心会在不恰当的时候改变了比较和周期
寄存器的内容.他们只会在当前执行了前一控
制内容后再执行改变的寄存器内容.避免了时
空错乱啊.280X有没有类似的设置啊?
TOP
61IC代码工厂*永久免费*所有代码都
通过官方审核,保证代码的完整性.
#大中小发表于2009-8-92
ikki989908:
44只看该作者
ThisfeatureenablestheePWMmoduletobe
automaticallysynchronizedtothetime
baseofanother
ePWMmodule.Leadorlagphasecontrolcan新手上路
beaddedtothewaveformsgeneratedby
differentePWM
发短消息modulestosynchronizethem.In
加为好友up-down-countmode,theTBCTL[PSHDIR]bit
-10-
当前离线configuresthedirectionof
thetime-basecounterimmediatelyafterasynchronizationevent.Thenewdirection
isindependentofthe
directionpriortothesynchronizationevent.TheTBPHSbitisignoredin
count-uporcount-downmodes.
SeeFigure2-7throughFigure2-10for
examples.
ClearingtheTBCTL[PHSEN]bitconfigurestheePWMtoignorethesynchronization
inputpulse.The
synchronizationpulsecanstillbeallowedtoflow-throughtotheEPWMxSYNCO
andbeusedto
synchronizeotherePWMmodules.Inthis
way,youcansetupamastertime-base(for
example,ePWM1)
anddownstreammodules(ePWM2-ePWMx)may
electtoruninsynchronizationwiththe
master.See
theApplicationtoPowerTopologies
Chapter3formoredetailson
synchronizationstrategies.
以上是很关键的一段话.大概意思是如果你选
择EPWM1模块的时基,你就可以使能下游的其
余EPWMX模块和EPWM1有共同的时基.用这些
EPWM可以组成灵活的相位关系.但是万变不
离其踪.他们有一个共同的时基.所有的相位
和周期都是相对这个时基的增减关系啊.我们
也不用担心动态改变比较和周期寄存器的内
容会对占空比产生不确定的影响.TI的工程
师早为我们设计好了同步缓存寄存器的内容.
类似于2812和2407的影子寄存器.只有在下
-11-
一个比较周期里才可以改变占空比的.这个设
计非常有用的.再就是刘和平老师翻译的影子
寄存器我感觉有些怪异.还是叫同步缓存寄存
器好理解些啊.
TOPcccdv
#大中小发表于2009-8-908:
45只看该作者3
有啊,呵呵,感觉2812和28016不是一个应用场合的东西。
2812主要是有
地址和数据总线可以带一大堆东西,flash/ram,显示器,等等。
只要加几新手上路个片选信号做一个地址扩展,跟访问内部地址差不多。
28016就是做电机控
制器用用了,顶多接片LCD,再I2C或spi加个eeprom,不会再有其他东西
了。
这种场合,不可能用2812这么贵的芯片了。
不过感觉这种场合用28016,发短
还是有点没意思,100个脚,封装太大了。
实际用的又不可能这么多。
还有,消息
其中AD有16个脚,一般项多用2,3个,电源加上地又有10多个脚,能做,加为
IO口的只有30多个。
管脚利用率太低了。
好友
要不是以前用的有点习惯了,宁可选freescale的dsp,当前
离线
TOP
shlplato
#大中小发表于2009-8-908:
47只看该作者4
新手上路去ti里面找spru791D吧(如果没有记错的话),pwm同步是可以设置的,他们
内部是级连的,只需要软件设置一下采用什么同步,比如zero,prd等..28016
是60m的主频,带can通信,大量应用于低成本的数字电源,2801的16路ad,发短
口,我觉得一点也不多,总而言之,资源的多少取决于你的期望的设计目标,消息
需要达到什么性能.能用28016的绝对不用2801.,加为
好友
当前
离线
-12-
如何用ePWM模块实现0%~100%占空比控制
上网时间:
2007年11月01日
所属类别:
电源管理I电源管理I技术方案I技术方案I技术方案
关键字:
占空比ePWMPWM满量程在某些应用中让占空比控制达到满量程0%~100%是非常重要的。
TMS320x280x系列处理器使用灵活、配置丰富,是在整个范围内实现满量程占空比控制的最佳选择。
增强型脉宽调制(ePWM)模块在保证系统开销最小的前提下可提供0%~100%占空比。
这些模块有三种工作模式:
加法计数模式、可逆计数模式和减法计数模式,本文重点讨论前两种工作模式。
这里对TMS320x280xx/28xxxePWM的基本使用不做详细介绍,并假设用户已熟悉TMS320x280xx/28xxxePWM(SPRU791)的使用。
PWM模块配置
ePWM模块包括以下几个子模块:
时基(TB)子模块、计数器-比较器(CC)子模块、动作限定(AQ)子模块、?
死区(DB)发生器子模块、PWM斩波器(PC)子模块、故障断路器(TripZone)子模块、事件触发器(ET)子模块。
图1为PWM模块结构框图。
-13-
图1:
PWM模块结构框图。
配置ePWM模块时需要对上述子模块中的寄存器进行初始化。
必须正确配置控制寄存器,以便ePWM模块能工作在上述三种模式的任意一种模式中。
在无需0%或100%的占空比的情况下,配置和使用ePWM模块比较简单,按照TMS320x280xx/28xxxePWM参考指南给出的程序就可实现ePWM模块的配置。
但0%和/或100%占空比的应用则属于特殊情况,需要按照附加的程序配置ePWM模块。
附加程序在本文的网络版本中给出。
占空比的满量程调节
通过执行附加的软件实现满量程的占空比调节,该软件可以跟踪当前占空比值和下一个占空比值,并充分利用动作限定子模块所具有的灵活的配置性能。
该附加程序代码位于PWM中断服务例程(ISR)中,如果要改变下一个周期寄存器的数值,可以在当前ISR中进行设置。
下文描述了在可逆计数模式及加法计数模式下,该软件的执行过程。
1.可逆计数模式
当工作在可逆计数模式(PWM波形对称)时,若加法计数达到的值与CMPA值相匹配,置位ePWMxA输出;若减法计数达到的值与CMPA值相匹配,ePWMxA输出复位;如果CMPA值与计数器的值不匹配,则调用ISR并加载阴影寄存器。
在这种情况下,向CMPA寄存器加载0实现100%的ePWMxA占空比,向CMPA寄存器加载大于或等于周期的数值实现0%的ePWMxA占空比。
代码的执行过程如下:
在当前周期的ISR中,计算下一个PWM周期的比较寄存器的值,这样通过当前ISR就可得知当前和下一个周期的占空比。
获知下一个周期的占空比能更好的了解当前周期,详细描述如下:
a.当CMPA值由非零变为零时:
-14-
(1)改变动作确认控制寄存器的值,AQCTLA.bit.ZRO=AQ_SET。
在下一个周期中立即使PWM引脚置位。
(2)在下一个周期(实际上是第一个100%占空比)的ISR中,将动作确认寄存器的值变为初始值。
b.当CMPA值由零变为非零时:
(1)改变动作确认控制寄存器的值,AQCTLA.bit.ZRO=AQ_CLEAR,AQCTLA.bit.CAD=AQ_NO_ACTION。
(2)改变LOADAMODE位的值,加载零或周期值。
需要注意的是,AQCTLA.bit.CAU=AQ_SET未发生变化,因此,对于最后一个'CMPA=0'周期之后的下一个周期,即使CMPA值等于1,当CMPA值与计数器值一致时,ePWM引脚也应置为高电平。
将动作确认寄存器和控制寄存器的值变回到SIR初始时的值,为下一个周期做准备。
(实际上第一个非0%周期或者第一个非零CMPA周期都跟有一个零CMPA周期。
)当CMPA值进入周期寄存器和返回时无需上述操作。
EPwm1Regs.ETPS.bit.INTPRD应初始化为ET_1ST,即每一事件都产生中断。
2.加法计数方式
当采用加法计数模式工作时,若计数器的值与ZRO值匹配,置位ePWMxA输出,若计数器的值与CMPA值匹配,则ePWMxA输出复位。
CMPA值与计数器的值不匹配时调用ISR,并加载阴影寄存器。
在这种情况下,向CMPA寄存器加载大于周期的一个值即可实现100%的ePWMxA占空比;向CMPA寄存器加载0实现0%的ePWMxA占空比。
代码的执行过程如下:
采用加法计数模式工作时,在当前周期的ISR中,计算下一个PWM周期的比较寄存器的值。
因此,通过当前ISR就可得知当前和下一个周期的占空比。
获知下一个周期的占空比能更好的了解当前周期,详细描述如下:
a.当CMPA的值由非零变为零时:
(1)改变动作确认控制寄存器的值,AQCTLA.bit.ZRO=AQ_CLEAR。
在下一个周期中立即清除PWM引脚的状态。
(2)在下一个周期(实际上是第一个100%占空比)的ISR中,将动作确认寄存器的值变为初始值。
b.当CMPA值由零变为非零时:
(1)改变动作确认控制寄存器的值AQCTLA.bit.ZRO=AQ_SET。
-15-
(2)改变LOADAMODE位的值,加载零或周期值。
需要注意的是:
AQCTLA.bit.CAU=AQ_CLEAR未发生变化。
因此,在最后一个CMPA=0周期后的下一个周期,即使该周期的CMPA值等于1,在CMPA匹配时也应清除ePWM引脚的状态。
(3)将动作确认寄存器和控制寄存器的值变回到ISR初始值,为下一个周期工作做准备。
(实际上第一个非0%周期或者第一个非零CMPA周期都跟有一个零CMPA周期)。
当CMPA值进入周期寄存器和返回时无需上述操作。
EPwm1Regs.ETPS.bit.INTPRD应初始化为ET_1ST,即每一事件都产生中断。
也应按此方法配置PWM时基子模块,这样可确保在可逆计数模式下,可在半个PWM周期内即可执行完ISR代码;而在加法计数模式下,可在一个PWM周期内执行完ISR代码。
软件流程
代码执行的软件流程图如图2所示。
-16-
图2:
代码执行的软件流程图。
程序代码示例
下列ISR程序代码可用于实现加法计数模式下ePWM模块的0%-100%占空比调节。
这些代码为ePWM1A和ePWM1B提供独立控制,并使ePWM1B对ePWM1A起到补充作用。
-17-
-18-
图3:
ISR程序代码。
-19-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 28335 EPWM 产生 PWM