第13章F2812事件管理器(EVA/B)EVA/BBT4CTRIPT3CTRIPPDPINTBC6TRIPC5TRIPC4TRIPEVSOCBTCLKINBEVTOADCBTDIRBCAP6QEPIC28xCAP5QEPBCAP4QEPAT4PWMT4CMPon-chipADCT3PWMT3CMPPWM7/8/9/10/11/12AT2CTRIPT1CTRIPPDPINTBC3TRIPC2TRIPC1TRIPTCLKINATDIRACAP3QEPICAP2QEPBCAP1QEPAT2PWMT2CMPT1PWMT1CMPPWM1/2/3/4/5/6EVSOCAAABBEVTOADCAGPIOMUXEVAENCLKEVBENCLKpinpin系统控制模块高速预定标器HSPCLKBPIE中断模块T4UFINT,T4OFINTT4CINT,T4PINTT3UFINT,T3OFINTT3CINT,T3PINTCAPINT4/5/6nCMP4/5/6INTPDPINTBAT2UFINT,T2OFINTT2CINT,T2PINTT1UFINT,T1OFINTT1CINT,T1PINTCAPINT1/2/3nCMP1/2/3INTPDPINTAregistersperipheralbusSYSCLKOUT1.事件管理器概述2.通用定时器3.比较单元与PWM输出4.捕获单元5.正交编码脉冲单元(QEP)6.事件管理器的中断问题本章内容每个事件管理器皆由4个部分组成通用定时器比较单元与PWM电路捕获单元正交编码脉冲(QEP)电路1.事件管理器概述事件管理器模块事件管理器A事件管理器B模块信号模块信号通用定时器通用定时器1通用定时器2T1PWM/T1CMPT2PWM/T2CMP通用定时器3通用定时器4T3PWM/T3CMPT4PWM/T4CMP比较单元比较器1比较器2比较器3PWM1/2PWM3/4PWM5/6比较器4比较器5比较器6PWM7/8PWM9/10PWM11/12捕获单元捕获器1捕获器2捕获器3CAP1CAP2CAP3捕获器4捕获器5捕获器6CAP4CAP5CAP6正交编码脉冲电路QEPQEPQEP1QEP2QEPI1QEPQEP4QEP5QEPI2EVA和EVB模块信号引脚1.事件管理器概述2、通用定时器F2812内有两个事件管理器(EVA、EVB),每个EV包括两个通用定时器。EVA:GP1、GP2;EVB:GP3、GP4;事件管理器模块事件管理器A事件管理器B模块信号模块信号外部定时器输入定时器方向外部时钟TDIRATCLKINA定时器方向外部时钟TDIRBTCLKINB外部比较器输出-触发输入比较器C1TRIPC2TRIPC3TRIPC4TRIPC5TRIPC6TRIP外部定时器-比较触发输入T1CTRIP*T2CTRIPT3CTRIP*T4CTRIP功率模块保护中断输入PDPINTA*PDPINTB*外部ADCSOC触发输入EVASOCEVBSOCEVA和EVB模块信号引脚1.事件管理器概述事件管理器功能框图(EVA)PWMCircuitsPWMCircuitsPWMCircuitsOutputLogicOutputLogicOutputLogicGPTimer1CompareGPTimer1GPTimer2CompareGPTimer2CompareUnit1CompareUnit2CompareUnit3CaptureUnitsMUXOutputLogicOutputLogicEVControlRegisters/LogicResetPIETCLKINA/TDIRA/2ADCStartDataBusQEPCircuitCLKDIR••T1PWM_T1CMPT2PWM_T2CMPPWM1PWM2PWM3PWM4PWM5PWM6CAP1/QEP1CAP2/QEP2CAP3/QEPI1•1.事件管理器概述GP定时器模块包含:√一个16位可读/写及增/减的定时器计数器TxCNT(x=1,2,3,4)。√一个16位可读/写定时器比较寄存器(双缓冲)TxCMPR;√一个16位可读/写定时器周期寄存器(双缓冲)TxPR;√一个16位可读/写定时器控制寄存器TxCON;√一个通用定时器比较输出引脚TxCMP;√用于内部和外部时钟输入的可编程定标器;√控制和中断逻辑,用于4个可屏蔽中断(上溢、下溢、比较和周期中断);√输出逻辑。见下图2、通用定时器通用定时器GP的功能框图16-BitTimerCounterTxCMPR.15-0GPTCONATxCNT.15-0CompareLogicClockPrescalerOutputLogicTPS2-0TxCON.10-8PeriodRegisterShadowedCompareRegisterShadowedTxPR.15-0External(1/4)Internal(HSPCLK)TCLKS1-0TxCON.5-4TxPWM_TxCMPNote:x=1or2QEPMUX2、通用定时器和通用定时器1(T1)相关的寄存器:1.T1周期寄存器T1PR(16位)2.T1比较寄存器T1CMPR(16位)3.T1计数寄存器T1CNT(16位)4.T1控制寄存器T1CON(16位)5.全局定时器控制寄存器AGPTCONA(16位)2、通用定时器T1的输入信号1.来自于CPU的内部时钟2.外部时钟输入TCLKINA,最大频率为器件自身时钟的1/4,也就是1/4*150M3.TDIRA/B,用于定时器的增/减计数模式(或增或减)4.复位信号RESETT1的输出信号1.定时器的比较输出T1PWM_T1CMP2.送给ADC模块的AD转换启动信号3.下溢、上溢、比较匹配和周期匹配信号4.计数方向指示2、通用定时器通用定时器的三个时钟源:1HSPCLK2来自QEP单元3外部管脚(TCLKINA或TCLKINB)设置方法:TxCON(比特15–比特0)的比特4和比特5两位Bit5400HSPCLK01外部TCLKIN管脚10保留11QEP2、通用定时器计数寄存器T1CNT为T1的计数器寄存器,其内容是随着时钟脉冲不断增加或者减少的,每1个HSPCLK的脉冲,T1CNT的值增加1或者减少1。周期寄存器T1PR是定时器T1的周期寄存器,用于存放为T1设置的周期值。比较寄存器T1CMPR是定时器T1的比较寄存器,用于存放为T1设置的比较值。2、通用定时器比较寄存器和周期寄存器的功能T1PR和T1CMPR在一般情况下是在初始化的时候进行赋值,然后就成为了一个参考标准,CPU会实时的将T1CNT的值和这两个标准进行比较:当T1CNT的值和T1PR相等时,T1CNT就会复位成0重新开始计数或者逐渐减少直至0,完成1个周期的计数,然后再从0开始计数至T1PR里面的数值,这样循环下去。当T1CNT的值和T1CMPR的值相等时,就会产生一些比较事件,例如PWM波形就是依靠这个原理来实现的。2、通用定时器阴影寄存器的作用在程序执行的过程当中(定时器正在计数的过程中),可以改变T1CMPR或者T1PR的值吗?答案是肯定的,可以在一个周期的任何时刻向T1CMPR或者T1PR写入新的数值,其功劳就要归功于阴影寄存器。如上图所示,假设我们要向T1CMPR写入新的数值0xXXXXh,首先将这个数值写入T1CMPR的阴影寄存器,当T1CON中第3位TCLD1和第2位TCLD0所指定的特定事件发生时,阴影寄存器的数据就会被写入T1CMPR的工作寄存器。2、通用定时器定时器1比较寄存器T1CMPR的装载条件如下面的表格所示。如果TCLD1和TCLD0设置为10的话,新的数据就会立即被写入T1CMPR,从而改变T1CMPR的值。定时器比较寄存器之装载条件TCLD1TCLD0(T1CON中第3位TCLD1和第2位TCLD0)00当计数器T1CNT值为001当计数器T1CNT值为0或者等于周期寄存器10立即载入11保留2、通用定时器2.1通用定时器计数操作和计数模式T1计数模式选择TMODE1TMODE0(T1CON.12T1CON.11)00停止/保持01连续增/减模式(先增后减)10连续增模式(单增再清)11定向增/减计数模式(directionalup/downcountmode)(或增或减)A.停止/保持模式停止/保持模式,就是定时器计数器T1CNT停止计数,保持现有的数值。B.连续增模式(递增再清)如下图所示,T1PR=2,T1CNT从0开始计数至2,等于周期寄存器值的值时,直接降为0,然后再从0开始计数至2,周而复始。实际的计数周期为T1PR+1。T1PR=2固定不变B.TxPR的改变对递增再清计数模式的影响TxCON[6]用于使能或禁止通用定时器;TxCON.3~2只控制TxCMPR的装载条件;而TxPR仅在一个周期完成后装载(计数器溢出时)C.定向的增或者减计数模式(或增或减)定向的增或者减计数模式,这时候T1CNT进行增计数或者是减计数,取决于引脚TDIRA的电平:如果TDIRA为高电平,则T1CNT进行增计数;如果TDIRA为低电平,则T1CNT进行减计数。如果在计数过程中TDIRA电平发生了变化,那么必须在完成当前计数周期后的下一个CPU时钟周期时,计数方向才发生改变。D.连续增/减模式(先增后减)如下图:T1PR=2,T1CNT从0开始计数至2,然后再从2逐渐减少至0,周而复始。实际的计数周期为2*T1PR。注:T1PR=2固定不变TxPR仅在一个周期完成后装载(计数器溢出时)D.TxPR的改变对先增后减计数的影响注:改变T1PR的情形TxCON[6]用于使能或禁止通用定时器PWM简介脉宽调制,简称PWM(PulseWidthModulation)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中,简单的描述就是一些如下图所示的矩形脉冲波形,PWM波形最重要的三个参数是周期、频率和占空比。PWM周期:T=t1+t2PWM频率:F=1/TPWM占空比:D=t1/(t1+t2)=t1/T2.2定时器的比较操作EV的比较机制能够产生多路PWM功能。EVA的两个通用定时器能够产生2路独立的PWM波形—T1PWM和T2PWM,三个比较单元每一个都能产生一对互补的PWM波形(比较单元1产生PWM1和PWM2,比较单元2产生PWM3和PWM4,比较单元3产生PWM5和PWM6)这样,EVA一共能产生8路PWM波形。EVB和EVA一样,同样能够产生8路PWM波形。1)通用定时器结构(以T1为例)加/减计数寄存器双缓冲比较寄存器,用于存储与计数器进行比较的值双缓冲周期寄存器,当其值与计数器匹配时,根据计数模式定时器复位或开始递减计数。定时控制寄存器,决定定时器的模式全局通用定时器控制寄存器,控制定时器工作模式T1PRT2PRMUXTnCON[0]T1CMPR比较逻辑波形发生器输出逻辑GPTCONAT1CNT控制逻辑T1CONADC启动CPU时钟预定标:1-1/128fcTDIRATCLKINA1/4fc(外部时钟)中断标志T1PWMGP控制寄存器周期寄存器选择,GP2/GP4有效,用于同步方式0:选择自身的周期寄存器1:选择T1PR/T3PR忽略T2PR/T4PRT1PRT2PRMUXTnCON[0]T1CMPR比较逻辑波形发生器输出逻辑GPTCONAT1CNT控制逻辑T1CONADC启动CPU时钟预定标:1-1/128fcTDIRATCLKINA1/4fc(外部时钟)中断标志T1PWMGP控制寄存器•通用定时器结构可选择的内部或外部输入时钟预定标计数分频器,可设置为对内部时钟或外部时钟进行分频计数控制和中断逻辑用于4个可屏蔽的中断:上溢、下溢、定时器比较和周期可选择方向的输入引脚TDIRxTPWM/T1CMP输出引脚如何使能定时器的比较操作?和比较操作有关的寄存器:比较寄存器TxCMPR、计数器寄存器TxCNTPWM波形通过引脚TxP