ECT PWM 增强型捕捉定时器模块_第1页
ECT PWM 增强型捕捉定时器模块_第2页
ECT PWM 增强型捕捉定时器模块_第3页
ECT PWM 增强型捕捉定时器模块_第4页
ECT PWM 增强型捕捉定时器模块_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

FreescaleHCS12微控制器MC9S12DP256,2005年8月,EnhancedCaptureTimerModule增强型捕捉定时器模块,Slide2,ECT模块结构,一个16位向上带可编程预分频的主计数器.一个16位的带可编程预分频的模数向下计数器8个独立的定时器通道,每个通道具备输入捕捉和输出比较功能4个8位脉冲累加器,也可设置成2个16位脉冲累加器.通过对寄存器编程可以实现不同的功能,Slide3,定时器结构,预分频选择PR2:0,MClock,1248163264128,TCNT,15.0,DATABUS,PIN,R,R,R,R,1计数器使能0计数器禁止,TENTSWAITSFRZTFFCA,TSCR1-定时器控制寄存器,RST:00000000,TCNTCLK,.,TEN,B0.B7B8.B15,R=Reserved,$0006,AddressOffset$0004,05,模块时钟,计数器寄存器,脉冲累加器,计时器溢出时,对溢出标志位置位,如允许中断,则向CPU发出中断请求,Slide4,定时器,预分频,计数器,寄存器:,Slide5,定时器编程步骤,用途:产生周期中断初始化设定预分频系数定时器溢出中断使能定时器使能中断函数清标志位用户自己的代码,voidECT_Init(void)TSCR2_PR=7;/prescalefactoris8,busclock/128=8Mhz/8TSCR2_TOI=1;/timeroverflowinterruptenableTSCR1_TEN=1;/timerenable#pragmaCODE_SEGNON_BANKED#pragmaTRAP_PROCvoidInt_TimerOverFlow(void)TFLG2_TOF=1;/cleartimeroverflowflag/用户自己的代码.#pragmaCODE_SEGDEFAULT,在PRM文件中,加入VECTORADDRESS0 xFFDEInt_TimerOverFlow,Slide6,输出比较功能,16位自由运行计数器,16位输出比较寄存器比如:0 x5678软件可以修改,引脚控制逻辑,中断请求,OCxF,状态标志位置位,当比较发生时(值相等时),OCxI,中断屏蔽(通过软件使能),共有8个输出比较通道每个通道有自己的向量表和控制寄存器,在特定的时刻输出一个信号,当比较寄存器的值和计数器的值相等时,采取行动比如:当TCNT=0 x5678,TCNT,TOCx,PinOCx,比较器,相等,置位,OR,OR,清零,翻转,Slide7,输出比较寄存器,C7FC6FC5FC4FC3FC2FC1FC0F,OM7,OL7,OM6,OL6,OM5,OL5,OM4,OL4,1.TC7TC0,2.TFLG1,3.TIE,4.TCTL1,比较/捕捉标志位写1清除中断状态标志位,比较/捕捉屏蔽位0=屏蔽中断请求1=中断请求允许,输出模式和输出电平(O7OC0),5.TCTL2,RST:00000000,$0008,RST:00000000,RST:00000000,RST:00000000,$000C,$000E,$0009,AddressOffset$0010-$0011-$001E-$001F,-,C7FC6FC5FC4FC3FC2FC1FC0F,OM3,OL3,OM2,OL2,OM1,OL1,OM0,OL0,FOC7FOC6FOC5FOC4FOC3FOC2FOC1FOC0,6.CFORC,B7B6B5B4B3B2B1B0,RST:00000000,$0001,Slide8,输出比较,OC7-OC0,中断:清除中断,对TFLG1其中的OCxF写1不要使用位操作使用OC7-OC0向量表复位条件:自由运行计数器(TCNT)被初始化为$0000,并且被禁止输出比较寄存器被初始化为$0000捕捉/比较引脚与比较功能断开中断被禁止标志位被清零强制比较位被清零,Slide9,输出比较,通道7OC7(1of2),用途:1、多个输出比较引脚的控制2、通过2个输出比较来控制1个引脚,可以输出短脉冲在每个时钟周期内,输出比较寄存器7和自由运行的计数器进行比较如果它们的值相等,则:1、中断标志位被置12、输出引脚OC7-OC0的状态被改变或/和产生中断OC7可以影响多个引脚(OC7-OC0)当OC7和OC7-OC0某个引脚的动作有冲突时,OC7的动作将被执行,Slide10,输出比较7(2of2),C7IC6FC5FC4FC3FC2FC1FC0F,OC7M7OC7M6OC7M5OC7M4OC7M3OC7M2OC7M1OC7M0,4.TIE定时器中断允许使能,5.OC7M-OC7MASK,B7.B0,1-TC7-16位比较寄存器7.,RST:00000000,RST:00000000,$0002,$000C,C7FC6FC5FC4FC3FC2FC1FC0F,RST:00000000,$000E,B7.B0,2.TCNT-16-位计数器,B15.B0,RST:0.0,$0004,$05,B7.B0,3.TFLG1标志位,OC7D7OC7D6OC7D5OC7D4OC7D3OC7D2OC7D1OC7D0,6.OC7D-OC7DATA,RST:00000000,$0003,B7.B0,OC7MASK根据寄存器的设置,可以控制任意一路或全部输出比较引脚,OC7DATA当OC7比较事件发生时,引脚的逻辑电平,Slide11,定时器溢出时电平翻转,TOV7TOV6TOV5TOV4TOV3TOV2TOV1TOV0,TOVx定时器溢出时,电平翻转只有当通道被配置成输出比较时,才有效,AddressOffset$0007,RST:0.0,1.TTOV-定时器溢出时电平翻转寄存器,$000D,2.TSCR2定时器系统控制寄存器,RST:00000000,B7.B0,TOI000TCREPR2PR1PR0,1定时器由OC7比较事件发生来复位0定时器自由运行,Slide12,输入捕捉,IC7-IC0(1of3),用途:1、测量事件发生的间隔时间2、对实时时间进行响应输入捕捉能感应到引脚上的电平的变化如果发现电平变化,则:1、计数器的值被保存到到输入捕捉寄存器中,状态标志位被置12、如果中断允许,则向CPU发出中断请求,Slide13,输入捕捉功能,比较/捕捉单元16位自由运行计数器,16位输入捕捉锁存器,捕捉发生时,状态位置1,向CPU发出中断请求,Edge,沿选择检测,ICx,ICxF,ICxI,上升/下降沿,可选中断屏蔽,当外部事件发生时,或外部信号输入发生变化时,记录当前时间,TCNT,TICx,延时计数器,000000DLY1DLY0,Bit76543210,DLYCT延时计数器控制寄存器,DLY1:0-DelayCounterValues00=Disabled01=256MClocks10=512MClocks11=1024MClocks,AddressOffset$0029,注:如果输入信号电平和跳变之前的电平相反时,延时计数器在当前时钟计数时刻产生一个脉冲,它用来去除噪声,OR,OR,应用:ABS刹车.雷达测距,发动机,引脚,共有8个输入捕捉通道每个通道有自己的向量表和控制寄存器,Slide14,输入捕捉,IC7-IC0(2of3),B2,B1,B0,EDGxB,输入捕捉沿控制(IC7IC0),EDGxA,ICxEDGE,0101,无边沿ICx禁止上升沿下降沿任何沿,4.TCTL3,C7FC6FC5FC4FC3FC2FC1FC0F,C7IC6IC5IC4IC3IC2IC1IC0I,2.TFLG1,3.TMSK1,1.TC7TC0,EDG7BEDG7AEDG6BEDG6AEDG5BEDG5AEDG4BEDG4A,5.TCTL4,EDG3BEDG3AEDG2BEDG2AEDG1BEDG1AEDG0BEDG0A,RST:00000000,RST:00000000,RST:00000000,RST:00000000,$000E,$000C,$000A,$000B,AddressOffset$0010-$0011-$001E-$001F,-,比较/捕捉标志位写1清除中断状态标志位,比较/捕捉屏蔽位0=屏蔽中断请求1=中断请求允许,0011,Slide15,输入捕捉/输出比较选择,IOS7IOS6IOS5IOS4IOS3IOS2IOS1IOS0,TIOS定时器输入捕捉/输出比较选择寄存器,IOSx=1输出比较功能=0输入捕捉功能,RST:00000000,$0000,TIMER定时器使能1计数器使能0计数器禁止,TSCR定时器系统控制寄存器,RST:00,$0006,TENTSWAITSFRZTFFCAReserved,TSWAI在WAIT模式时,定时器停止0=不停止1=停止,TSBCK在DEBUG模式时,定时器停止0=不停止1=停止,TFFCA定时器快速标志位清除使能0=定时器标志位正常清零1=输入捕捉时读取寄存器,输出比较时写寄存器,可以对相应通道标志位清零,Slide16,脉冲累加模式,8位计数器,PA7/PAI,脉冲累加器输入引脚,事件计数模式引脚作为计数器时钟软件选择以什么沿来计数计数器溢出时,产生中断(可选)在PAI引脚每个主动电平将产生中断,8位计数器,PA7/PAI,脉冲累加器输入引脚,时间累加模式引脚作为计数器,软件选择主动电平作为门的输入当计数器溢出时产生中断在使能的引脚上后面的边缘时产生中断,自由运行E/64时钟,对事件计数模式,PEDGE选择哪个PAI的沿用来增加PACNT寄存器,对门累加模式,PEDGE选择哪个PAI状态用来禁止计数(比如.PEDGE=1-禁止计数当PAI=HI).,Slide17,脉冲累加结构,PIN,TCxPINLogic,DIVby64,ControlReg.,+,8/16BITCNTR,HoldingRegister,POLARITYCONTROL,PTx,IRQ,DATABUS,注1:PTx可以被用作脉冲累加,输入捕捉或输出比较这里PTx=PT0-PT3,SELECTEDCLOCK,DelayCounter,EdgeDetector,000000DLY1DLY0,Bit76543210,DLYCT-DelayCounterControlRegister,DLY1:0-DelayCounterValues00=Disabled01=256MClocks10=512MClocks11=1024MClocks,AddressOffset$0029,注:如果输入信号电平和跳变之前的电平相反时,延时计数器在当前时钟计数时刻产生一个脉冲,它用来去除噪声,Slide18,增强型捕捉,ECT比标准的TIM增强的特点4个输入捕捉通道有16位缓冲寄存器4个8位/2个16位脉冲累加器16位带4位预分频的模数向下计数器4个用户选择的延时计数器用来消除噪声主定时器预分频扩展至7位队列和锁定模式,主定时器,输入捕捉寄存器,保持寄存器,Slide19,模向下计数器,二进制向下计数器.可以完全控制计数起始值应用于精确事件计时-用于产生周期性的标志位和中断主定时器单独运行。时钟来自总线时钟,并经过预分频。可以被设置为定时中断或产生标志位。或装载初始值后向下计数到$0000。,装载,向下计数至0,执行动作,Slide20,ABS应用举例,PT0,PT1,PT2,SENSOR1,SENSOR2,SENSOR3,SENSOR4,PB1,PB2,PB3,PB4,BRAKE,FLUID,PUMP,SYSTEM,SIGNALCONDITIONINGLOGIC,IC/PA,SIGNALCONDITIONINGLOGIC,SIGNALCONDITIONINGLOGIC,SIGNALCONDITIONINGLOGIC,PT3,左前轮右前轮左后轮右后轮,HCS12,TIMER,定时器输入捕捉测量车轮转速发送命令到刹车压力调节阀来调节压力,IC/PA,IC/PA,IC/PA,如果左右轮速脉冲周期不等,则,调节电磁阀,Slide21,低功耗模式,TSCR定时器系统控制寄存器,RST:00,$0006,TENTSWAITSFRZTFFCAReserved,TSWAI在WAIT模式时,定时器停止0=不停止1=停止,TSBCK在DEBUG模式时,定时器停止0=不停止1=停止,TFFCA定时器快速标志位清除使能0=定时器标志位正常清零1=输入捕捉时读取寄存器,输出比较时写寄存器,可以对相应通道标志位清零,Slide22,PULSEWIDTHMODULATION(PWM)脉宽调制模块,Slide23,什么是PWM?,Ton,Toff,Tperiod,Average,占空比=高电平时间/周期=Ton/Tperiod,Slide24,PWM信号的产生(边缘对齐),开始,周期TPWM,TPWM,占空比TDutyPWMDTYx,PWMPERx,PWMPERx,fClock,TClock,8-bitCompare=,PWMDTYx,8-bitCompare=,PWMPERx,0 x00,0 x00,Reset,Pin,当8位计数器的值等于PWMDTY(dutycycle寄存器)时,电平从有效跳到无效;当8位计数器的值等于PWMPER(周期寄存器)时,电平从无效跳到有效,然后计数器清0,重新开始计数,Slide25,PWM模块特点,8个带周期占空比可程控的PWM独立通道4个可程控选择的时钟源每个PWM通道有专用的计数器PWM每个通道脉冲极性可以选择每个PWM通道可使能/禁止周期和占空比双缓冲每个通道有中心对齐和边缘对齐方式分辨率:8位(8通道),16位(4通道)带中断功能的紧急切断工作模式,Slide26,PWM结构框图,.,管脚,使能选择,极性选择,对齐方式选择,管脚,管脚,Slide27,PWM初始化步骤,禁止PWMDisablePWMPWME选择时钟Selectclock(prescalerandscale)forthePWMPWMPRCLK,PWMSCLA,PWMSCLB,PWMCLK选择极性SelectpolarityPWMPOL选择对齐模式SelectcenterorleftalignedmodePWMCAE对占空比和周期编程ProgramdutycycleandperiodPWMDTYx,PWMPERx使能PWM通道EnableusedPWMchannelsPWME,Slide28,PWM时钟选择(1of4),BusClock,预分频,PWMPRCLK$_03,ClockSA,ClockSB,ClockA,FurtherDivisionoftheclock:,2,4,6,8,.,512,ClockB,FurtherDivisionoftheclock:,2,4,6,8,.,512,PWMSCLA$_08,PWMSCLB$_09,分频,Slide29,PWM时钟选择预分频寄存器(2of4),0,PCKB2,PCKB1,PCKB0,0,PCKA2,PCKA1,PCKA0,R,W,Reset:,0,0,0,0,0,0,0,0,PWMPRCLK$_03,可在任意时刻读写!x=AorB,设置PRESCALE寄存器:PWMPRCLK=0 x22;/B=Bus/4,A=Bus/4PWMPRCLK=0 x07;/B=Bus,A=Bus/128,SoftwareExamples,Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit0,Slide30,PWM时钟选择分频寄存器(3of4),总线时钟fBus,8-BitDownCounter,Bit7,Bit6,Bit5,Bit4,Bit3,Bit2,Bit1,Bit0,PWMSCLx,分频值,PWMSCLx=$00PWMSCLxvalueis256可在任意时刻读写!x=AorB,/2,ClockSx,Clockx,Clockx=fBus/PWMPRCLK,Count=1,PWMPRCLK$_03,PWMSCLB$_09,PWMSCLA$_08,Slide31,PWM时钟选择寄存器(4of4),PCLK6,PCLK5,PCLK4,PCLK3,PCLK2,PCLK1,PCLK0,R,W,Reset:,0,0,0,0,0,0,0,0,PWMCLK$_02,PCLK7,选择时钟源:PCLK0=1;/SAissourceofch0PCLK6=0;/Bissourceofch6PWMCLK=0 x11;/allchannels,软件示例,Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit0,PCLK5通道5时钟选择1=时钟源为SA0=时钟源为APCLK4通道4时钟选择1=时钟源为SA0=时钟源为A,PCLK3通道3时钟选择1=时钟源为SB.0=时钟源为BPCLK2通道2时钟选择1=时钟源为SB0=时钟源为B,PCLK1通道1时钟选择1=时钟源为SA0=时钟源为APCLK0通道0时钟选择1=时钟源为SA0=时钟源为A,PCLK7通道7时钟选择1=通道7的时钟源为SB0=通道7的时钟源为B.PCLK6通道6时钟选择1=时钟源为SB.0=时钟源为B,Slide32,PWMPERx,PWMDTYx,PWM计时器通道,8-BitCounter,PWMCNTx,8-BitCompare=,PWMDTYx,8-BitCompare=,PWMPERx,PWMCNT0$_0CPWMCNT1$_0DPWMCNT2$_0EPWMCNT3$_0FPWMCNT4$_10PWMCNT5$_11PWMCNT6$_12PWMCNT7$_13,PWMDTY0$_1CPWMDTY1$_1DPWMDTY2$_1EPWMDTY3$_1FPWMDTY4$_20PWMDTY5$_21PWMDTY6$_22PWMDTY7$_23,PWMPER0$_14PWMPER1$_15PWMPER2$_16PWMPER3$_17PWMPER4$_18PWMPER5$_19PWMPER6$_1APWMPER7$_1B,极性位PolarityBit=1Duty=HighTime,Channelxx=0.7,DoubleBuffered,DoubleBuffered,PWMDTYx,PWMPERx,占空比寄存器,周期寄存器,Slide33,使能/禁止PWM,PWME6,PWME5,PWME4,PWME3,PWME2,PWME1,PWME0,R,W,Reset:,0,0,0,0,0,0,0,0,PWME$_00,PWME7,1=通道x使能.下一个时钟开始输出PWM0=通道x禁止,通道7,通道6,通道0,.,使能/禁止PWM通道:PWME5=1;/EnablePWMchannel5PWME3=0;/DisablePWMchannel3PWME=0 xFF/Enableall8PWMchannelsPWME=0;/Disableall8PWMchannels,软件示例,Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit0,Slide34,PWM极性选择寄存器,PPOL6,PPOL5,PPOL4,PPOL3,PPOL2,PPOL1,PPOL0,R,W,Reset:,0,0,0,0,0,0,0,0,PWME$_00,PPOL7,1=在周期开始时,PWM通道输出为高电平,当计数器等于占空比寄存器的值时,输出为低电平0=在周期开始时,PWM通道输出为低电平,当计数器等于占空比寄存器的值时,输出为高电平,PWMDTYx,PWMPERx,PPOLx=1,PWMDTYx,PWMPERx,PPOLx=0,Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit0,通道7,通道6,通道0,.,Slide35,对齐方式选择-左对齐(1of3),ClockSourceE=100ns,DutyCycle=75%,Period=400ns,时钟源=E=10MHz(100nsperiod)PPOLx=0PWMPERx=4PWMDTYx=1,PWMx频率=10MHz/4=2.5MHzPWMx周期=400nsPWMx占空比=*100%=75%,Start,分辨率?,Slide36,对齐方式选择-中央对齐(2of3),PWMDTYxE=100ns,Period=PWMPERx*2=800ns,时钟源=E=10MHz(100nsperiod)PPOLx=0PWMPERx=4PWMDTYx=1,PWMx频率=10MHz/8=1.25MHzPWMx周期=800nsPWMx占空比=*100%=75%,Start,PWMDTYxE=100ns,PWMPERx,PWMPERx,DutyCycle=75%,Slide37,PWM中央对齐使能寄存器(3of3),CAE6,CAE5,CAE4,CAE3,CAE2,CAE1,CAE0,R,W,Reset:,0,0,0,0,0,0,0,0,PWMCAE$_04,CAE7,CAEx中心对齐模式选择,通道x1=通道x中心对齐输出0=通道x左边对齐输出,Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit0,通道7,通道6,通道0,.,Slide38,16位分辨率,两个8位PWM通道可以组合成一个16位PWM通道,Period/DutyCompare,PWMCNT6,PWMCNT7,PWM7,ClockSource7,Slide39,16位PWM组合,软件可选择通道组合.在组合模式下,可以左对齐或中心对齐输出增加了分辨率,周期可以更长,CLOCKSOURCE5,PWCNT4PWCNT5,PERIOD/DUTYCOMPARE,CLOCKSOURCE7,PWCNT6PWCNT7,PERIOD/DUTYCOMPARE,CLOCKSOURCE3,PWCNT2PWCNT3,PERIOD/DUTYCOMPARE,CLOCKSOURCE1,PWCNT0PWCNT1,PERIOD/DUTYCOMPARE,PWM7,PWM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论