28335_EPWM产生PWM.docx

上传人:scccc 文档编号:14571664 上传时间:2022-02-09 格式:DOCX 页数:20 大小:355.34KB
返回 下载 相关 举报
28335_EPWM产生PWM.docx_第1页
第1页 / 共20页
28335_EPWM产生PWM.docx_第2页
第2页 / 共20页
28335_EPWM产生PWM.docx_第3页
第3页 / 共20页
28335_EPWM产生PWM.docx_第4页
第4页 / 共20页
28335_EPWM产生PWM.docx_第5页
第5页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《28335_EPWM产生PWM.docx》由会员分享,可在线阅读,更多相关《28335_EPWM产生PWM.docx(20页珍藏版)》请在三一文库上搜索。

1、28335_EPWMP生 PWM28335 ePWMK块中产生PWMfi必要配置1一个 ePWM module括 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等七个模块。正常的发出PW瞰要配置TB(定时器模块)、CC(比较计数器模块)、AQ(比较方式预设模块)、DB3区模ET(事

2、件触发模块)等五个模块。块)、2Time-base (TB) module 为定时器模块,有TBCTL(空制寄存器)配置定时器的时钟、计数模式、同步模式TBSTS(犬态寄存器)TBPHSH丽速 PWMB)TBPHSt目位寄存器)计数器的起始计数位置,例如寄存器为 0x0100则计数器从0x0100开始计数TBCTR数器)TBPRD附期寄存器)设置计数器的计数周期。只有 TBPRD附期寄存器)有影子寄存器Thuci r-i 1 卜 Aidi ecra-Pftn zCW 隼HM I14l用 ACMKl L 阳口 igcrcTi rHUd川网通|OtiaiSrrCTR=PftO _Et士 Q :方g

3、m晶MkiRJ KUiry.iiH 力 Zf Hl? TP时工己 众城6MHM1fr-CWP&I caig/从曲州电y叫PRbg%rqClFLj叫 口共U E|h*iinf R EFJrCTL产 1clMFUI L CMI CIUSKJWUMJDLI本程序的设置为count-up-and-down mode计数模式,相位为零,ePWM2 ePWM3 ePWM4 ePWM5 ePWM6通过ePWM的计数器到零时进行同步,计数周期为0.5ms。3Counter-compare (CC) modulenClK=CWACWH;lULUAUMQUtlCounter-compare (CC) module

4、 为比较器模块有CMPCTL (匕较控制寄存器)设置CMPA CMPB勺重载模式 CMPAH祎速PWM 用),CMPA(匕较值寄存器A)设置EPWMxA比较值,有影子寄存器。CMPB(:匕较值寄 存器B)设置EPWMxB比较值,有影子寄存器。 本程序只应用了 CMPA设置计数 器到零时重载CMPA4Action-qualifier (AQ) module咚! kCTR-PRn Jl-史R*/ JL匚R-CMHft C 曜: CMPQ JLGTRjdir九口 rmqin凋MjauakfKT cui ibcj 亚4口CT闺止, 5Arham-cp-iaWwe- control R总商明仁q而h S

5、AV kjcAClCSn|:V0|P.Vl3M cuhiwtimhjs iwE HWM 之 EFWEBfAtKSFMMHmnwmuxi $,W 13cAction-qualifier (AQ) module比较方式预设模块AQCTLA输出A比较方式控制寄存器)设置EPWMA比较方式有CBD CBUCAD CAU PRD ZRO无影子寄存器,立即装载AQCTLB输出B比较方式控制寄存器)设置EPWMB比较方式有CBD CBU CAD CAU PRD ZRO无影子寄存器,立即装载AQSFRC物件强制控制寄存器)设置AQCSFRC载方式(RLDCSF)通过 (OTSFB ACTSF或置 EPWMB(

6、OTSFA ACTSF改置 EPWMIA动一次强制置位无 效、置零、置高、反向,当 OTSFB OTSF微写1时,动作一次,写0无效,无影 子寄存器AQCSFRC软件连续强制控制寄存器)可以强制EPWMAEPWMB输出为low或 high或AQCSFRC起作用,有影子寄存器,当寄存期被加载后的第二个时钟开始 作用,如TBCLK=0寸加载,TBCLK=1寸开始起作用说明:CBM TBCTR计数器)与CMPBi down计数时相等使输出为low或high或反向 或不动作CBU TBCTR计数器)与CMPBi up计数时相等使输出为low或high或反向或 5不动作CAM TBCTR计数器)与CMP

7、/ft down计数时相等使输出为low或high或反向或不动作CAM TBCTR计数器)与CMPAt up计数时相等使输出为low或high或反向或 不动作PRM TBCTR计数器)与TBPRD冏期寄存器)相等时使输出为low或high或反 向或不动作ZRO TBCTR计数器)计到零时使输出为low或high或反向或不动作注意:以上均是相等时起作用,其它时间不管,只有 AQCSFRC(件连续强制控制寄存器)持续起作用如同时出现比较则优先级如图例:CMPA=100 CMPB=100 up 计数,EPWMA始为低,CAL&置高,CBK置低,当TBCTRf至IJ 100时,CAU CBUW时作用,

8、根据优先级,EPWMA出低。到110时EPWMA出低rli bKs* CtW fte-H曰 CnriC3Ul VW”.flIf当 CMPA=1Q0CMPB=11,0其它不变,当 TBCTRf到 100 时,EPWMA出高,计|中射4*勺p Im Al j-hrii IThh MiT I il卜rv I HF lii Bi ta,丁 r b -1 * I Hili I X t.h hi ii 一 a.1.( i h - I -IIP1 - jl F*1, n. ! I川 IBv r :仃*1m 0iY1型.;ii=hWM.rinV: rsM*Mjri!l o! 一 .一*.1 =1- T * :

9、一 :.T 1 Ey *- .+ I JiBsPh *本程序只应用了 EPWMA出通过Dead-band (DB) module产生互补的PWMS6Action-qualifier (AQ) module比较方式预设模块配置如下:AQCTLA (输出A比较方式控制寄存器)W CAUHH, CADS低,其它无效。在初始化中配置。AQCSFRC软件连续强制控制寄存器)通过AQSFR然件强制控制寄存器)的RLDCSIB已置为TBCTR计数器)计到零时装载,根据需要每次中断配置 CSFAK高、置低或软件连续强制无效。其优先级最高,强制时CALS高,CADR低不起作用,无效时CAUS高,CACR低起作用

10、。AQSFRC(件强制控制寄存器)的ACTSFAE置为置低,当本周期软件连续强制无向OTSFA? 1,保证有效高周期的起始是低状态,防止上一周期结束时为高效时,7Dead-band (DB) moduleDead-band (DB) module 死区模块DBCTL(E区控制寄存器)设置S5, S4, S3, S2, S1, SO开关选择的DBRED(E区上升沿延时)上升沿延时时间DBFEC区下降沿延时)下降沿延时时间本程序的设置为 S5=0, S4=0, S3=1, S2=0, S1=1, S0=1;延时时间为5usEPWMxA= EPWMxA irEPWMxB EPWMxA in!勺反向。

11、8Event-trigger (ET) moduleEvent-trigger (ET) module中断事件模块ETSEL中断选择寄存器)使能及事件源选择(SOC刚发ADC专换,SOCE#虫发ADC转换,中断)ETPS件断预设寄存器)xxxCNT记录时间发生次数,当与xxxPRD相等时,发出中断信号,xxxCNT停止计数,当标志为清除时xxxCNT置零重新计数ETFLG#断标志寄存器)状态标志位,中断时为1ETCLR中断标志清除寄存器)写1清除相应标志位ETFRC(虽制中断寄存器)写1强制相应中断发生本程序选择SOC硼发ADCW换,TBCTR=0fe中断事件源,xxxPRD为1。TMS320

12、F280源列 DSP勺 EPWMf论我们大家知道.2812,2407等系列的EVA.EVB奠块等能产生丰富的PWMS型.但是要作为一个系列的话.我还是推荐大检查使用280X系列.一个主要原因是它们的引脚可以完全共用.这就为我们研发从低到高的产品提供了一个通用平台.2809好象百元左右吧.2808是80RMB小袖珍的热门DSP28016能也就超不过30RMB.那可是32位60M主频的带全基本上的接口 .我觉的280X系列从价位和封装上为我们提供了灵活的选择余地.-9 -但是现在280X的资料好象很少.看了一下他们的EPWM1块有些没弄明白.比如为使所有EPWM在一个同步时基上工作.他们的EPWM

13、XSYNCIEPWMXSYNCO是要级联起来.但是好象没看见EPWM1-EPWM6卜接这么多同步时钟接口啊.是不是在软件里 Writing a 1 to theTBCTLSWFSYNC control bit invokes a software forced synchronization.This pulse is ORed with the synchronization input signal, and therefore has the sameeffect as a pulse onEPWMxSYNCft不用管外设的同步始终接口EPWMSYNC! EPWMSYNCO其实多半做 P

14、WMI制的都希望能用硬件产生有固定时基的时钟信号啊.再就是有没有类似2407和2812等的影子寄存器(同步缓存寄存器).在定时周期中断中不用担心会在不恰当的时候改变了比较和周期寄存器的内容.他们只会在当前执行了前一控制内容后再执行改变的寄存器内容.避免了时空错乱啊.280X有没有类似的设置啊?TOP61IC代码工厂*永久免费*所有代码都通过官方审核,保证代码的完整性.#大中小发表于2009-8-9 2ikki9899 08:44只看该作者This feature enables the ePWM module to beautomatically synchronized to the tim

15、ebase of anotherePWM module. Lead or lag phase control can新手上路be added to the waveforms generated bydifferent ePWM,发短消息 modules to synchronize them. In,加为好友 up-down-count mode, the TBCTLPSHDIR bit-10 -, 当前离线 configures the direction ofthe time-base counter immediately after a synchronization event.

16、The new directionis independent of thedirection prior to the synchronization event. The TBPHS bit isignored incount-up or count-down modes.See Figure 2-7 through Figure 2-10 forexamples.Clearing the TBCTLPHSEN bit configures the ePWM to ignore the synchronizationinput pulse. Thesynchronization pulse

17、 can still be allowed to flow-through to theEPWMxSYNCOand be used tosynchronize other ePWM modules. In thisway, you can set up a master time-base (forexample, ePWM1)and downstream modules (ePWM2 - ePWMx) mayelect to run in synchronization with themaster. Seethe Application to Power TopologiesChapter

18、 3 for more details onsynchronization strategies.以上是很关键的一段话.大概意思是如果你选择EPWM模块的时基,你就可以使能下游的其余EPWMX块和EPWMI共同的时基.用这些EPWMT以组成灵活的相位关系.但是万变不离其踪.他们有一个共同的时基.所有的相位和周期都是相对这个时基的增减关系啊.我们也不用担心动态改变比较和周期寄存器的内容会对占空比产生不确定的影响.TI的工程师早为我们设计好了同步缓存寄存器的内容.类似于2812和2407的影子寄存器.只有在下- 11 -一个比较周期里才可以改变占空比的.这个设 计非常有用的.再就是刘和平老师翻译的

19、影子 寄存器我感觉有些怪异.还是叫同步缓存寄存 器好理解些啊.TOP cccdv#大中小发表于2009-8-9 08:45 只看该作者3有啊,呵呵,感觉2812和28016不是一个应用场合的东西。2812主要是有地址和数据总线可以带一大堆东西,flash/ram ,显示器,等等。只要加几新手上路 个片选信号做一个地址扩展,跟访问内部地址差不多。28016就是做电机控制器用用了,顶多接片LCD再I2C或spi加个eeprom,不会再有其他东西了。这种场合,不可能用2812这么贵的芯片了。不过感觉这种场合用 28016, 发短还是有点没意思,100个脚,封装太大了。实际用的又不可能这么多。还有,消

20、息其中AD有16个脚,一般项多用2,3个,电源加上地又有10多个脚,能做,加为IO 口的只有30多个。管脚利用率太低了。好友要不是以前用的有点习惯了,宁可选 freescale的dsp ,当前离线 TOPshlplato#大中小发表于2009-8-9 08:47 只看该作者4新手上路 去ti里面找spru791D吧(如果没有记错的话),pwm同步是可以设置 的,他们向内部是级连的,只需要软件设置一下采用什么同步,比如zero,prd等.28016是60m的主频,带can通信,大量应用于低成本的数字电源,2801的16路ad,发短口 ,我觉得一点也不多,总而言之,资源的多少取决于你的期望的设计目

21、标,消息需要达到什么性能.能用28016的绝对不用2801.,加为好友,当前离线-12 -如何用ePWMg块实现0%100%空比控制上网时间:2007年11月01日所属类别:电源管理I电源管理I技术方案I技术方案I技术方案低功率16位高速ADC/TUI既更芸信息关键字:占空比ePWM PW硼量程在某些应用中让占空比控制达到满量程0%100哪非常重要的。TMS320X280濠列处理器使用灵活、配置丰富,是在整个范围内实现满量程占空比控制的最佳选择。增强型脉宽调制(ePWM蟆块在保证系统开销最小的前提下可提供0%100%f空比。这些模块有三种工作模式:加法计数 模式、可逆计数模式和减法计数模式,本

22、文重点讨论前两种工作模式。这里对 TMS320x280xx/28xxx ePWM勺基本使用不做详细介绍,并假设用户已熟悉 TMS320x280xx/28xxx ePWM(SPRU79l)使用。PWM1块配置ePWMI块包括以下几个子模块:时基(TB)子模块、计数器-比较器(CC)子模块、 动作限定(AQ)子模块、?死区(DB)发生器子模块、PW断波器(PC)子模块、故障断 路器(Trip Zone)子模块、事件触发器(ET)子模块。图1为PWM1块结构框图。-13 -Eplltti相*4 百WBwvkii一皿 rhYtKQtbmib FPWMiS* i FWJ *1图i:pwM真块结构框图配置

23、ePWM1块时需要对上述子模块中的寄存器进行初始化。必须正确配置控制寄存器,以便ePWM1块能工作在上述三种模式的任意一种模式中。在无需0% 100%勺占空比的情况下,配置和使用 ePWM1块比较简单,按照TMS320x280xx/28xxx ePWM考指南给出的程序就可实现 ePWM8块的配置。但0%和/或100%空比的应用则属于特殊情况,需要按照附加的程序配置ePWM1块。附加程序在本文的网络版本中给出。占空比的满量程调节通过执行附加的软件实现满量程的占空比调节,该软件可以跟踪当前占空比值 和下一个占空比值,并充分利用动作限定子模块所具有的灵活的配置性能。该附加 程序代码位于PWW断服务例

24、程(ISR)中,如果要改变下一个周期寄存器的数值, 可以在当前ISR中进行设置。下文描述了在可逆计数模式及加法计数模式下,该软 件的执行过程。1 .可逆计数模式当工作在可逆计数模式(PWMfe形对称)时,若加法计数达到的值与 CMPA:相匹 配,置位ePWMxA出;若减法计数达到的值与 CMP/相匹配,ePWMxA出复位; 如果CMPA与计数器的值不匹配,则调用ISR并加载阴影寄存器。在这种情况下,向CMPAJ存器加载0实现100%勺ePWMxA空比,向CMP 存器加载大于或等于周期的数值实现 0%勺ePWMxA空比。代码的执行过程如下: 在当前周期的ISR中,计算下一个PW晒期的比较寄存器的

25、值,这样通过当前ISR 就可得知当前和下一个周期的占空比。获知下一个周期的占空比能更好的了解当前 周期,详细描述如下:a.当CMPA由非零变为零时:-14 -(1)改变动作确认控制寄存器的值, AQCTLAbt.ZRO=AQ_SE T在下一个周期 中立即使PWMI脚置位。(2)在下一个周期(实际上是第一个100%空比)的ISR中,将动作确认寄存器 的值变为初始值。b.当CMPAS由零变为非零时(1)改变动作确认控制寄存器的值,AQCTLA.bit.ZRO=AQ_CLEA RAQCTLA.bit.CAD=AQ_NO_ACTI ON(2)改变LOADAMODE勺值,加载零或周期值。需要注意的是,A

26、QCTLA.bit.CAU=AQ_SET发生变化,因此,对于最后一个 CMPA=0周期之后的下一个周期,即使 CMPAS等于1,当CMPAt与计数器值一致 时,ePWMl脚也应置为高电平。将动作确认寄存器和控制寄存器的值变回到 SIR初始时的值,为下一个周期做 准备。(实际上第一个非0%H期或者第一个非零CMP倜期都跟有一个零CMP倜 期。)当CMPA6进入周期寄存器和返回时无需上述操作。EPwm1Regs.ETPS.bit.INTPRDS初始化为ET_1ST即每一事件都产生中断。2 .加法计数方式当采用加法计数模式工作时,若计数器的值与 ZROfi匹配,置位ePWMx榆 出,若计数器的值与C

27、MPAS匹配,则ePWMx榆出复位。CMPAS与计数器的值不 匹配时调用ISR,并加载阴影寄存器。在这种情况下,向CMPAJ存器加载大于周期白一个值即可实现 100%勺ePWMxA 占空比;向CMPAJ存器加载0实现0%勺ePWMxA空比。代码的执行过程如下:采 用加法计数模式工作时,在当前周期的ISR中,计算下一个PW惆期的比较寄存器 的值。因此,通过当前ISR就可得知当前和下一个周期的占空比。获知下一个周期 的占空比能更好的了解当前周期,详细描述如下:a.当CMPA勺值由非零变为零时:(1)改变动作确认控制寄存器的值,AQCTLA.bit.ZRO=AQ_CLEA Rfc下一个周 期中立即清

28、除PWMH脚的状态。(2)在下一个周期(实际上是第一个100贴空比)的ISR中,将动作确认寄存器的值变为初始值b.当CMP/由零变为非零时:(1)改变动作确认控制寄存器的值 AQCTLAbt.ZRO=AQ_SE T-15 -(2)改变LOADAMODE勺值,加载零或周期值。需要注意的是:AQCTLAbt.CAU=AQ_CLEAR发生变化。因此,在最后一个CMPA=隔期后的下一个周期,即使该周期的 CMPAS等于1,在CMP版配时也应清 除ePWMl脚的状态。(3)将动作确认寄存器和控制寄存器的值变回到 ISR初始值,为下一个周期工 作做准备。(实际上第一个非0湖期或者第一个非零CMPAB期都跟

29、有一个零CMPA 周期)。当CMPA6进入周期寄存器和返回时无需上述操作。EPwmlRegs.ETPS.bit.INTPRDS初始化为ET_1ST即每一事件都产生中断。也 应按此方法配置PWW基子模块,这样可确保在可逆计数模式下,可在半个PWM?期内即可执行完ISR代码;而在加法计数模式下,可在一个 PW阐期内执行完ISR 代码。软件流程代码执行的软件流程图如图2所示。-16 -七PWM一赢T 口 安心照iw k *e Cycled 3lof* fl to *u cpr2Ea|IW4fQ1 Atfl- CTfWI HviMats AcsffnEliriff7F-gT图2:代码执行的软件流程图程序代码示例下列ISR程序代码可用于实现加法计数模式下 ePWM1块的0%-100%空比调节。这些代码为 ePWMlA ePWMlB供独立控制,并使 ePWMlB ePWMlA到补充 作用。-17 - 1 |XAf y ahi ar w* ,F . ” 1上. MJCTIA M? MD Ktjm. ! Wa h-18 -图3:ISR程序代码-19 -

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1