脉宽调制器与通用定时器中英文对照外文翻译文献.docx
《脉宽调制器与通用定时器中英文对照外文翻译文献.docx》由会员分享,可在线阅读,更多相关《脉宽调制器与通用定时器中英文对照外文翻译文献.docx(21页珍藏版)》请在冰豆网上搜索。
脉宽调制器与通用定时器中英文对照外文翻译文献
中英文资料外文翻译文献
(文档含英文原文和中文翻译)
ARMCortex-M3脉宽调制器(PWM)与通用定时器
1.PWM
脉宽调制(PWM)是一项功能强大的技术,它是一种对模拟信号电平进行数字化编码的方法。
在脉宽调制中使用高分辨率计数器来产生方波,并且可以通过调整方波的占空比来对模拟信号电平进行编码。
PWM通常使用在开关电源(switchingpower)和电机控制中。
StellarisPWM模块由3个PWM发生器模块1个控制模块组成。
每个PWM发生器模块包含1个定时器(16位递减或先递增后递减计数器),2个PWM比较器,PWM信号发生器,死区发生器和中断/ADC-触发选择器。
而控制模块决定了PWM信号的极性,以及将哪个信号传递到管脚。
每个PWM发生器模块产生两个PWM信号,这两个PWM信号可以是独立的信号(基于同一定时器因而频率相同的独立信号除外),也可以是一对插入了死区延迟的互补(complementary)信号。
这些PWM发生模块的输出信号在传递到器件管脚之前由输出控制模块管理。
StellarisPWM模块具有极大的灵活性。
它可以产生简单的PWM信号,如简易充电泵需要的信号;也可以产生带死区延迟的成对PWM信号,如供半-H桥(half-Hbridge)驱动电路使用的信号。
3个发生器模块也可产生3相反相器桥所需的完整6通道门控。
PWM定时器
每个PWM发生器的定时器都有两种工作模式:
递减计数模式或先递增后递减计数模式。
在递减计数模式中,定时器从装载值开始计数,计数到零时又返回到装载值并继续递减计数。
在先递增后递减计数模式中,定时器从0开始往上计数,一直计数到装载值,然后从装载值递减到零,接着再递增到装载值,依此类推。
通常,递减计数模式是用来产生左对齐或右对齐的PWM信号,而先递增后递减计数模式是用来产生中心对齐的PWM信号。
PWM定时器输出3个信号,这些信号在生成PWM信号的过程中使用:
方向信号(在递减计数模式中,该信号始终为低电平,在先递增后递减计数模式中,则是在低高电平之间切换);当计数器计数值为0时,一个宽度等于时钟周期的高电平脉冲;当计数器计数值等于装载值时,一个宽度等于时钟周期的高电平脉冲。
注:
在递减计数模式中,零脉冲之后紧跟着一个装载脉冲。
PWM比较器
每个PWM发生器含两个比较器,用于监控计数器的值;当比较器的值与计数器的值相等时,比较器输出宽度为单时钟周期的高电平脉冲。
在先递增后递减计数模式中,比较器在递增和递减计数时都要进行比较,因此必须通过计数器的方向信号来限定。
这些限定脉冲在生成PWM信号的过程中使用。
如果任一比较器的值大于计数器的装载值,则该比较器永远不会输出高电平脉冲。
PWM信号发生器
PWM发生器捕获这些脉冲(由方向信号来限定),并产生两个PWM信号。
在递减计数模式中,能够影响PWM信号的事件有4个:
零、装载、匹配A递减、匹配B递减。
在先递增后递减计数模式中,能够影响PWM信号的事件有6个:
零、装载、匹配A递减、匹配A递增、匹配B递减、匹配B递增。
当匹配A或匹配B事件与零或装载事件重合时,它们可以被忽略。
如果匹配A与匹配B事件重合,则第一个信号PWMA只根据匹配A事件生成,第二个信号PWMB只根据匹配B事件生成。
死区发生器
PWM发生器产生的两个PWM信号被传递到死区发生器。
如果死区发生器禁能,则PWM信号只简单地通过该模块,而不会发生改变。
如果死区发生器使能,则丢弃第二个PWM信号,并在第一个PWM信号基础上产生两个PWM信号。
第一个输出PWM信号为带上升沿延迟的输入信号,延迟时间可编程。
第二个输出PWM信号为输入信号的反相信号,在输入信号的下降沿和这个新信号的上升沿之间增加了可编程的延迟时间。
中断/ADC-触发选择器
PWM发生器还捕获相同的4个(或6个)计数器事件,并使用它们来产生中断或ADC触发信号。
用户可以选择这些事件中的任一个或一组作为中断源;只要其中一个所选事件发生就会产生中断。
此外,你也可以选择相同事件、不同事件、同组事件、不同组事件作为ADC触发源;只要其中一个所选事发生就会产生ADC触发脉冲。
选择的事件不同,在PWM信号内产生中断或ADC触发的位置也不同。
注:
中断和ADC触发都是基于原始(raw)事件的;而不考虑死区发生器在PWM信号边沿上产生的延迟。
同步方法
具有全局复位功能,该功能可同时复位PWM发生器中的任何或全部计数器。
如果多个PWM发生器使用相同的计数器装载值来配置,那么可以保证PWM发生器也具有相同的计数值(这不表示PWM发生器必须在其同步之前被配置)。
这样,通过那些信号边沿之间的已知关系可产生2个以上的PWM信号,因为计数器总是具有相同的值。
在PWM发生器中,要对计数器装载值和比较器匹配值进行更新有两种方法。
一种是立即更新,计数器计数一到零就立即使用新值。
由于要等计数器计数到零才能使用新值,因而在更新过程中定义了一个约定(guaranteed)行为,避免出现过短或过长的PWM输出脉冲。
另一种方法是同步更新,它要等全局同步更新信号有效才使用新值,同步更新信号有效时,计数器
一到零就立即使用新值。
第二种方法可以同时对多个PWM发生器中的多项进行更新,而不会在更新过程中出现意外的影响;所有逻辑在根据新值运行之前都先在原来的值上运行。
装载和比较器匹配的更新方法可以在各个PWM发生器模块中单独配置。
当那些模块中的定时器同步时,通常可以在PWM发生器模块中使用同步更新机制,尽管该机制正常工作时不要求这个。
故障状态
影响PWM模块的外部条件有两个;一个是故障管脚的信号输入,另一个是由调试器引发的控制器中止。
我们可以采用两种机制来处理这些情况,一是强制将输出信号变为无效(inactive)状态,以及/或者让PWM定时器停止运行。
每个输出信号都带有一个故障位。
若故障位置位,则故障输入信号将会使相应的输出信号变为无效状态。
如果无效状态指的是信号能够长期停留的安全状态,那么这样可避免输出信号在故障状态下以危险的方式驱动外部电路。
此外,故障条件还可以产生控制器中断。
用户可以将PWM发生器配置为在停止条件期间停止计数。
T也可以选择让计数器一直运行,直到计数值为零才停止,或计数值为零时继续计数和重装。
停止状态不会产生控制器中断。
输出控制模块
每个PWM发生器模块产生的是两个原始PWM信号,输出控制模块在PWM信号进入管脚之前要对其最后的状态进行控制。
通过一个寄存器就能够对实际传递到管脚的PWM信号进行修改。
例如,通过对寄存器执行写操作来修改PWM信号(而无需通过修改反馈控制回路来修改各个PWM发生器),以实现无电刷直流电机通信。
同样地,故障控制也能够禁能所有的PWM信号。
能够对任一PWM信号执行最终的反相操作,使得默认高电平有效的信号变为低电平有效。
2.通用定时器
可编程定时器可对驱动定时器输入管脚的外部事件进行计数或定时。
Stellaris?
通用定时器模块(GPTM)包含3个GPTM模块(定时器0,定时器1和定时器2)。
每个GPTM模块包含两个16位的定时器/计数器(称作TimerA和TimerB),用户可以将它们配置成独立运行的定时器或事件计数器,或将它们配置成1个32位定时器或一个32位实时时钟(RTC)。
定时器也可用于触发模数(ADC)转换。
由于所有通用定时器的触发信号在到达ADC模块前一起进行或操作,因而只需使用一个定时器来触发ADC事件。
注意:
定时器2是一个内部定时器,只能用来产生内部中断或触发ADC时间。
通用定时器模块是Stellaris?
微控制器的一个定时资源。
其它定时器资源还包括系统定时器(SysTick)支持以下模式:
■32-位定时器模式
–可编程单次触发(one-shot)定时器
–可编程周期定时器
–使用32.768-KHz输入时钟的实时时钟
–事件的停止可由软件来控制(RTC模式除外)
■16-位定时器模式
–带8位预分频器的通用定时器功能模块(仅单次触发模式和周期模式)
–可编程单次触发(one-shot)定时器
–可编程周期定时器
–事件的停止可由软件来控制
■16-位输入捕获模式
–输入边沿计数捕获
–输入边沿定时捕获
■16-位PWM模式
–简单的PWM模式,可通过软件实现PWM信号的输出反相。
功能描述
每个GPTM模块的主要元件包括两个自由运行的先递增后递减计数器(称作TimerA和TimerB)、两个16位匹配寄存器、两个预分频器匹配寄存器、两个16位装载/初始化寄存器和它们相关的控制功能。
GPTM的准确功能可由软件来控制,并通过寄存器接口进行配置。
在通过软件对GPTM进行配置时需用到GPTM配置(GPTMCFG)寄存器、GPTMTimerA模式(GPTMTAMR)寄存器和GPTMTimerB模式(GPTMTBMR)寄存器。
当GPTM模块处于其中一种32位模式时,该定时器只能作为32位定时器使用。
但如果配置为16位模式,则GPTM的两个16位定时器可配置为16位模式的任意组合。
GPTM复位条件
GPTM模块复位后处于未激活状态,所有控制寄存器均被清零,同时进入默认状态。
计数器TimerA和TimerB连同与它们对应的装载寄存器:
GPTMTimerA间隔装载(GPTMTAILR)寄存器和GPTMTimerB间隔装载(GPTMTBILR)寄存器一起初始化为0xFFFF。
预分频计数器:
GPTMTimerA预分频(GPTMTAPR)寄存器)和GPTMTimerB预分频(GPTMTBPR)寄存器初始化为0x00。
位定时器工作模式
介绍GPTM的3种32位定时器模式(单次触发、周期、RTC),并对其配置进行描述。
通过向GPTM配置(GPTMCFG)寄存器写入0(单次触发/32位周期定时器模式)或1(RTC模式),可将GPTM模块配置为32位模式。
在两种配置中,都需将某些GPTM寄存器连在一起形成伪32位寄存器。
这些寄存器包括:
■GPTMTimerA间隔装载(GPTMTAILR)寄存器[15:
0],
■GPTMTimerB间隔装载(GPTMTBILR)寄存器[15:
0],
■GPTMTimerA(GPTMTAR)寄存器[15:
0],
■GPTMTimerB(GPTMTBR)寄存器[15:
0],
在32位模式中,GPTM把对GPTMTAILR的32位写访问转换为对GPTMTAILR和GPTMTBILR的写访问。
这样,写操作最终的字顺序为:
GPTMTBILR[15:
0]:
GPTMTAILR[15:
0]同样,对GPTMTAR的读操作返回的值为:
GPTMTBR[15:
0]:
GPTMTAR[15:
0]
32-位单次触发/周期定时器模式
在32位单次触发和周期定时器模式中,TimerA和TimerB寄存器连在一起被配置为32位递减计数器。
然后根据写入GPTMTimerA模式(GPTMTAMR)寄存器(见167页)的TAMR位域的值可确定选择的是单次触发模式还是周期模式,此时不需要写GPTMTimerB模式(GPTMTBMR)寄存器。
当软件对GPTM控制(GPTMCTL)寄存器(见171页)的TAEN位执行写操作时,定时器从其预加载的值开始递减计数。
当到达0x0000.0000状态时,定时器会在下一个周期从相连的GPTMTAILR中重新装载它的初值。
如果配置为单次触发模式,则定时器停止计数并将GPTMCTL寄存器的TAEN位清零。
如果配置为周期定时器,它将继续计数。
除了重装计数值,GPTM还在到达0x00000000状态时产生中断并输出触发信号。
GPTM将GPTM原始中断状态(GPTMRIS)寄存器中的TATORIS位置位,并保持该值直到向GPTM中断清零
(GPTMICR)寄存器执行写操作将其清零。
如果GPTM中断屏蔽(GPTIMR)寄存的超时(time-out)中断使能,则GPTM还将GPTM屏蔽后的中断状态(GPTMMIS)寄存器的TATOMIS位置位。
输出触发信号是一个单时钟周期的脉冲,它在计数器刚好到达0x00000000状态时生效,在紧接着的下一个周期失效。
通过将GPTMCTL中的TAOTE位置位可将输出触发使能,并且可以触发启动转换(SoC)事件,如ADC转换。
如果软件在计数器运行过程中重装GPTMTAILR寄存器,则计数器在下一个时钟周期装载新值并从新值继续计数。
如果GPTMCTL寄存器的TASTALL位有效,则定时器停止(freeze)计数直到该信号失效。
32-位实时时钟定时器模式
在实时时钟(RTC)模式中,TimerA和TimerB寄存器连在一起被配置为32位递增计数器。
在首次选择RTC模式时,计数器装载的值为0x0000.0001。
后面装载的值全都必须通过控制器写入GPTMTimerA匹配(GPTMTAMATCHR)寄存器。
在RTC模式中,要求CCP0,CCP2或CCP4管脚上的输入时钟为32.768KHz。
然后将时钟信号分频为1Hz,将其传送给32位计数器的输入端。
在软件写GPTMCTL中的TAEN位时,计数器从其预装载的值0x0000.0001开始递增计数。
在当前计数值与GPTMTAMATCHR中的预装载值匹配时,计数器返回到0x0000.0000并继续计数,直到出现硬件复位或被软件禁能(TAEN位清零),计数停止。
当计数值与预装载值匹配时,GPTM让GPTMRIS中的RTCRIS位有效。
如果GPTIMR中的RTC中断使能,那么GPTM也会将GPTMISR中的RTCMIS位置位并产生一个控制器中断。
通过写GPTMICR的RTCCINT位可将状态标志清零。
如果GPTMCTL寄存器中的TASTALL位和/或TBSTALL位置位,那么定时器在GPTMCTL的RTCEN位置位时不会停止计数。
16-位定时器的工作模式
通过向GPTM配置(GPTMCFG)寄存器写入0x04,可将GPTM配置为全局16位模式。
本小节将描述每一个GPTM的16-位操作模式。
TimerA和TimerB的模式相同,因此我们只介绍一次,并用字母n来表示这两个定时器的寄存器。
16-位单次触发/周期定时器模式
在16位单次触发/周期定时器模式中,定时器被配置为带可选的8位预分频器的16位递减计数器,预分频器可有效地将定时器的计数范围扩大到24位。
选择单次触发模式还是周期模式由写入GPTMTnMR寄存器中TnMR位域的值来决定。
可选预分频器中的值被加载到GPTMTimern预分频(GPTMTnPR)寄存器中。
在软件对GPTMCTL寄存器的TnEN位执行写操作时,定时器从其预装载的值开始递减计数。
一旦到达0x0000状态,定时器便在下一个周期到来时将GPTMTnILR和GPTMTnPR的值重新载入。
如果配置为单次触发模式,则定时器停止计数并将GPTMCTL寄存器的TnEN位清零。
如果配置为周期定时器,它将继续计数。
在到达0x0000状态时,定时器除了重装计数值,还产生中断并输出触发信号。
GPTM将GPTMRIS寄存器的TnTORIS位置位,并保持该值直到执行GPTMICR寄存器写操作将该位清零。
如果GPTIMR的超时中断使能,则GPTM还将GPTMISR寄存器的TnTOMIS位置位并产生控制器中断。
输出触发信号是一个单时钟周期的脉冲,在计数器刚好到达0x0000状态时生效,并在紧接着的下一个周期失效。
它通过对GPTMCTL寄存器中的TnOTE位置位来使能,并且可以触发启动转换(SoC)事件如ADC转换。
如果软件在计数器运行过程中重装GPTMTAILR寄存器,则计数器在下一个时钟周期装载新值并从新值继续计数。
如果GPTMCTL寄存器中的TnSTALL位被使能,那么定时器停止(freeze)计数,直到该信号失效后再继续计数。
16-位输入边沿计数模式
在边沿计数模式中,定时器被配置为能够捕获3种事件类型的递减计数器,这3种事件类型为上升沿、下降沿、或上升/下降沿。
为了把定时器设置为边沿计数模式,GPTMTnMR寄存器的TnCMR位必须设为0。
定时器计数时所采用的边沿类型由GPTMCTL寄存器的TnEVENT位域决定。
在初始化过程中,需对GPTMTimern匹配(GPTMTnMATCHR)寄存器进行配置,以便GPTMTnILR寄存器和GPTMTnMATCHR寄存器之间的差值等于必须计算的边沿事件的数目。
当软件写GPTM控制(GPTMCTL)寄存器的TnEN位时,定时器使能并用于事件捕获。
CCP管脚上每输入一个事件,计数器的值就减1,直到事件计数的值与GPTMTnMATCHR的值匹配。
这时,GPTM让GPTMRIS寄存器的CnMRIS位有效(如果中断没有屏蔽,则也要让CnMMIS位有效)。
然后计数器使用GPTMTnILR中的值执行重装操作,并且由于GPTM自动将GPTMCTL寄存器的TnEN位清零,因此计数器停止计数。
一旦事件计数值满足要求,接下来的所有事件都将被忽略,直到通过软件重新将TnEN使能。
在边沿定时模式中,定时器被配置为自由运行的递减计数器,其初始值从GPTMTnILR寄存器中加载(复位时初始化为0xFFFF)。
该模式允许在上升沿或下降沿捕获事件。
通过置位GPTMTnMR寄存器的TnCMR位可将定时器置于边沿定时模式,而定时器捕获时采用的事件类型由GPTMCnTL寄存器的TnEVENT位域来决定。
在软件写GPTMCTL寄存器的TnEN位时,定时器使能并用于事件捕获。
在检测到所选的输入事件时,从GPTMTnR寄存器中捕获Tn计数器的当前值,且该值可通过控制器来读取。
然后GPTM让CnERIS位有效(如果中断没有被屏蔽,则也让CnEMIS位有效)。
在捕获到事件之后,定时器不会停止计数。
它会继续计数,直至TnEN位清零。
当定时器到达0x0000状态时,将GPTMnILR寄存器中的值重新载入定时器。
定时器配置为捕获上升沿事件。
每当检测到上升沿事件时,当前计数值便装载到GPTMTnR寄存器中,且该值一直保持在寄存器中直到检测到下一个上升沿(在此上升沿处,新的计数值装载到GPTMTnR中)。
16-位PWM模式
GPTM支持简单的PWM生成模式。
在PWM模式中,定时器配置为递减计数器,初值由GPTMTnILR定义。
通过将GPTMTnMR寄存器的TnAMS位置为0x1、TnCMR位置为0x0、TnMR位域置为0x2来使能PWM模式。
在软件写GPTMCTL寄存器的TnEN位时,计数器开始递减计数,直到计数值到达0x0000。
在下一个计数周期,计数器将GPTMTnILR寄存器中的值重新载入,作为它的初值(如果使用了预分频器,则还要重新装载GPTMTnPR中的值),并继续计数直到计数器因软件将GPTMCTL寄存器的TnEN位清零而被禁止。
在PWM模式中,不产生中断或状态位。
当计数器的值与GPTMTnILR寄存器的值(计数器的初始状态)相等时,输出PWM信号生效,当计数器的值与GPTMTimern匹配寄存器(GPTMnMATCHR)的值相等时,输出PWM信号失效。
通过将GPTMCTL寄存器的TnPWML位置位,软件可实现将输出PWM信号反相的功能。
PulseWidthModulator(PWM)General-PurposeTimers
1.PWM
Pulsewidthmodulation(PWM)isapowerfultechniquefordigitallyencodinganalogsignallevels.High-resolutioncountersareusedtogenerateasquarewave,andthedutycycleofthesquarewaveismodulatedtoencodeananalogsignal.Typicalapplicationsincludeswitchingpowersuppliesandmotorcontrol.
TheStellaris®PWMmoduleconsistsofthreePWMgeneratorblocksandacontrolblock.ThecontrolblockdeterminesthepolarityofthePWMsignals,andwhichsignalsarepassedthroughtothepins.
EachPWMgeneratorblockproducestwoPWMsignalsthatcaneitherbeindependentsignals(otherthanbeingbasedonthesametimerandthereforehavingthesamefrequency)orasinglepairofcomplementarysignalswithdead-banddelaysinserted.TheoutputofthePWMgenerationblocksaremanagedbytheoutputcontrolblockbeforebeingpassedtothedevicepins.
TheStellaris®PWMmoduleprovidesagreatdealofflexibility.ItcangeneratesimplePWMsignals,suchasthoserequiredbyasimplechargepump.ItcanalsogeneratepairedPWMsignalswithdead-banddelays,suchasthoserequiredbyahalf-Hbridgedriver.Threegeneratorblockscanalsogeneratethefullsixchannelsofgatecontrolsrequiredbya3-phaseinverterbridge.
PWMTimer
ThetimerineachPWMgeneratorrunsinoneoftwomodes:
Count-DownmodeorCount-Up/Downmode.InCount-Downmode,thetimercountsfromtheloadvaluetozero,goesbacktotheloadvalue,andcontinuescountingdown.InCount-Up/Downmode,thetimercountsfromzerouptotheloadvalue,backdowntozero,backuptotheloadvalue,andsoon.Generally,Count-Downmodeisusedforgeneratingleft-orright-alignedPWMsignals,whiletheCount-Up/Downmodeisusedforgeneratingcenter-alignedPWMsignals.
Thetimersou