山东大学控制学院张东亮16.1事件管理器功能概述•通用定时器GPT(GeneralPurposeTimer)•比较单元与PWM(PulseWidthModulation)电路•捕获单元(Capture)•正交脉冲编码电路QEP(QuadratureEncoderPulse)281xDSP提供两个完全相同的事件管理器模块EVA/EVB。事件管理器非常适用于运动控制和电机领域。山东大学控制学院张东亮2事件管理器模块接口框图山东大学控制学院张东亮3事件管理器A功能框图山东大学控制学院张东亮4EVAFunctionalBlockDiagram山东大学控制学院张东亮516PWMs6ComplimentaryPairs+4Independent+TripInputs+ProgrammableDead-Bands1016-bitCompares,4GeneralPurposeTimers6.67nSmaxPWMResolution2QuadratureEncoderInterfacewithIndexInput6CaptureInputsWithProgrammableResolutionControlPeripherals(EVA+EVB)GPTimer1(Counter&Period)GPTimer2(Counter&Period)CaptureMUXClockSelectGPCompare1OutputLogicT1PWM/T1CMPOutputLogicT2PWM/T2CMPGPCompare2PWMTripEnableController5PWMTRIPs/PDPINTs6PWMsFullCompareDeadBandLogicOutputLogicTMRCLKTIMERDIRTMRDIRTIMERCLK3CAP/QEPEventManager(1Module)QEP&MUXInputLogicTwoOn-ChipEventManagers山东大学控制学院张东亮66.2通用定时器通用定时器x包括以下部件:(EVA:x=1,2;EVB:x=3,4)16位可读写的定时器计数器TxCNT16位可读写的定时器周期寄存器TxPR16位可读写的定时器比较寄存器TxCMPR16位可读写的定时器控制寄存器TxCON山东大学控制学院张东亮7通用定时器GPT框图山东大学控制学院张东亮8全局通用定时器控制寄存器GPTCONA/B•D15,12-11,5-4:Reserved•D14:T2STAT定时器2的状态。0:减计数•D13:T1STAT•D10-9:T2TOADC定时器2启动AD转换事件•D8-7:T1TOADC•D6:TCOMOE比较输出允许•D3-2:T2PIN定时器2比较输出极性•D1-0:T1PIN山东大学控制学院张东亮9单个通用定时器控制寄存器TxCON•D15-14:Free,Soft仿真控制位•D13:Reserved•D12-11:TMOD1,TMODE0计数模式选择•D10-8:TPS2-TPS0输入时钟预定标系数•D6:TENBLE定时器2,4周期寄存器选择位•D5-4:TCLKS1,TCLKS0时钟源选择•D3-2:TCLD1,TCLD0定时器比较寄存器的重载条件•D1:TECMPR定时器比较使能位•D0:SELT1PR周期寄存器选择山东大学控制学院张东亮10通用定时器的四种工作模式•停止/保持模式•连续增计数模式•定向增/减模式•连续增/减模式山东大学控制学院张东亮11通用定时器连续增计数模式山东大学控制学院张东亮12通用定时器定向增/减计数模式山东大学控制学院张东亮13通用定时器连续增/减计数模式山东大学控制学院张东亮14通用定时器:连续增/减模式山东大学控制学院张东亮15通用定时器增计数模式下的比较/PWM输出GPTimerCompare/PWMOutputinUp/DownCountingModes山东大学控制学院张东亮16通用定时器增减计数模式下的比较/PWM输出山东大学控制学院张东亮17//例,利用GP定时器1在GPIOF8引脚上产生周期为0.4s方波,//令一个LED闪烁//XCLKIN=30MHz,SYSCLKOUT=150MHz#includeDSP28_Device.hinterruptvoideva_timer1_isr(void);voidEVA_Timer1(){EvaRegs.GPTCONA.all=0;//初始化EVATimer1EvaRegs.T1PR=0x9895;//定时周期为5.12us*(T1PR+1)=0.2sEvaRegs.EVAIMRA.bit.T1PINT=1;//使能定时器1的周期中断EvaRegs.EVAIFRA.bit.T1PINT=1;//写1清除定时器1的周期中断标志EvaRegs.T1CNT=0x0000;EvaRegs.T1CON.all=0x1740;//连续增计数,128分频,打开定时器}山东大学控制学院张东亮18voidmain(void){InitSysCtrl();//初始化系统控制寄存器,时钟频率150MHzEALLOW;SysCtrlRegs.HISPCP.all=0x0003;//高速时钟的工作频率=25MHzEDIS;DINT;//关闭总中断,清除中断标志IER=0x0000;//关闭外围中断IFR=0x0000;//清中断标志InitPieCtrl();//初始化PIE控制寄存器InitPieVectTable();EVA_Timer1();EALLOW;GpioMuxRegs.GPFMUX.bit.MCLKXA_GPIOF8=0;//把GPIOF8设置为一般I/O口,输出GpioMuxRegs.GPFDIR.bit.GPIOF8=1;山东大学控制学院张东亮19PieVectTable.T1PINT=&eva_timer1_isr;//中断服务程序入口地址放入中断向量表EDIS;//依次使能各级中断:外设中相应中断位-PIE控制器-CPUPieCtrlRegs.PIEIER2.all=M_INT4;//GP定时器1使能位于PIE第2组第4个,将其使能IER|=M_INT2;//PIE第2组对应于CPU的可屏蔽中断2(INT2),将其使能EINT;//开总中断for(;;){;}}山东大学控制学院张东亮20interruptvoideva_timer1_isr(void){GpioDataRegs.GPFDAT.bit.GPIOF8^=1;//产生方波EvaRegs.EVAIMRA.bit.T1PINT=1;//使能定时器1的周期中断EvaRegs.EVAIFRA.bit.T1PINT=1;//写1清除定时器1的周期中断标志PieCtrlRegs.PIEACK.all=PIEACK_GROUP2;//清零PIEACK中的第2组中断对应位}山东大学控制学院张东亮216.3比较单元与PWM电路比较单元框图山东大学控制学院张东亮22比较单元框图山东大学控制学院张东亮23比较单元与PWM发生器每个事件管理器有三个全比较单元。每个比较单元都有两个相关的PWM输出。比较单元的时基由通用定时器提供。每个事件管理器模块的比较单元包括:•三个16位的比较器(EVA:CMPR1,2,3);•一个16位的比较控制寄存器(COMCONA);•一个16位的比较方式寄存器(ACTRA)•6个比较/PWM输出引脚(EVA:PWMy,y=1-6)山东大学控制学院张东亮24比较控制寄存器A:COMCONA•D15:CENABLE比较使能位•D14-13:CLD1/CLD0比较寄存器重载条件•D12:SVENABLE空间矢量PWM模式位•D11-10:ACTRLD1/ACTRLD0方式控制寄存器重载条件•D9:FCOMPOE比较输出使能位•D8:PDPINTASTATUS当前PDPINT引脚的状态•D7-0:保留位山东大学控制学院张东亮25比较方式寄存器:ACTRA•D15:SVDIR空间矢量PWM旋转方向位•D14-12:D2-D0基本的空间矢量位•D11-10:CMP6ACT1/0引脚PWM6的比较输出方式选择位。00-强制低,01-低有效,10-高有效,11-强制高•D9-8:CMP5ACT1/0•D7-6:CMP4ACT1/0•D5-4:CMP3ACT1/0•D3-2:CMP2ACT1/0•D1-0:CMP1ACT1/0山东大学控制学院张东亮26PWM电路PWM电路框图山东大学控制学院张东亮27死区单元框图山东大学控制学院张东亮28输出逻辑框图山东大学控制学院张东亮29非对称PWM波形的产生山东大学控制学院张东亮30比较单元与PWM发生器对称PWM波形的产生山东大学控制学院张东亮31//例,利用GP定时器1的比较器在产生一路PWM波,外设时钟25M//同时用全比较器产生3对PWM波,GP定时器1作全比较单元时基#includeDSP281x_Device.hvoidEVA_PWM(){EvaRegs.EXTCON.bit.INDCOE=1;//单独使能比较输出模式EvaRegs.ACTRA.all=0x0aaa;//空间矢量不动作EvaRegs.DBTCONA.all=0x08ec;//死区定时器启动EvaRegs.CMPR1=0x0006;EvaRegs.CMPR2=0x0005;EvaRegs.CMPR3=0x0004;EvaRegs.COMCONA.all=0xa4e0;//空间向量禁止,全比较使能,陷阱禁止}山东大学控制学院张东亮32voidEVA_Timer1(){EvaRegs.EXTCON.bit.INDCOE=1;//单独使能比较输出模式EvaRegs.GPTCONA.all=0x0012;//GP定时器1比较输出低有效EvaRegs.T1PR=0x0013;//定时周期为5.12us*(T1PR+1)EvaRegs.T1CMPR=0x0003;//GP定时器的比较寄存器EvaRegs.T1CNT=0x0000;//定时器初值EvaRegs.T1CON.all=0x1742;//连续增计数,128分频,使能比较,打开定时器}voidIOinit(){EALLOW;//将GPIOA配置为外设口GpioMuxRegs.GPAMUX.all=0xffff;EDIS;}山东大学控制学院张东亮33voidmain(void){InitSysCtrl();//初始化系统控制寄存器,时钟频率150MEALLOW;SysCtrlRegs.HISPCP.all=0x0003;//高速时钟的工作频率=25MEDIS;DINT;//关闭总中断,清除中断标志IER=0x0000;//关闭外围中断IFR=0x0000;//清中断标志IOinit();EVA_PWM();EVA_Timer1();for(;;){;}}山东大学控制学院张东亮34三相逆变桥原理图6.4空间矢量PWM山东大学控制学院张东亮356.5捕获单元捕获单元用于捕获输入引脚电平的变化并记录其发生变化的时间。每个事件管理器有3个捕获单元。每个捕获单元有一个与之对应的捕获输入引脚。为了使捕获单元正常工作,应设置如下寄存器:1)初始化捕获单元FIFO堆栈CAPFIFOx,并将适当的状态位清零。2)初始化TxCON以设置所选择的通用定时器的一种操作模式。3)如果希望得到比较和周期中断,则应设置相应的通用定时器的比较器TxCMP和周期寄存器TxPR。4)设置捕获控制器CAPCON。山东大学控制学院张东亮36捕获单元框图山东大学控制学院张东亮37捕获单元框图山东大学控制学院张东亮38使用实例在永磁同步电机控制系统中,捕获操作可用于增量式位置编码器Z脉冲的捕获。Z脉冲即零位脉冲,其到来的瞬间,电机转子d轴位置正好与A相绕组的轴线位置重合,即位置角正好为0。此时正交编码计数器的值(记录的是来自电机的增量式编码器的位置信号),即为零位位置值,被采样进CAP的FIFO中,可以读出。Z脉冲信号一般