《第5讲事件管理器模块EVA》由会员分享,可在线阅读,更多相关《第5讲事件管理器模块EVA(50页珍藏版)》请在金锄头文库上搜索。
1、第第5 5讲讲 事件管理器模块事件管理器模块(EVAEVA)本讲主要内容1.时间管理器模块概述;2.事件管理器的中断;事件管理器概述Up to Two Event-Manager (EV) Modules (EVA and EVB), Each Includes: Two 16-Bit General-Purpose Timers 16-Bit Pulse-Width Modulation (PWM) Channels Which Enable: Three-Phase Inverter Control Center- or Edge-Alignment of PWM Channels Eme
2、rgency PWM Channel Shutdown With External PDPINTx Pin Programmable Deadband (Deadtime)(0-16m ms) Three Capture Units for Time-Samping of External Events Input Qualifier Circuitry An input-qualifier circuitry qualifies the input signal to the CAP16, QEP14, XINT1/2, ADCSOC and PDPINTA/B pins in the 24
3、0xA devices. On-Chip Position Encoder Interface Circuitry Synchronized A-to-D ConversionAPPLICATION: Designed for AC Induction, BLDC, Switched Reluctance, and Stepper Motor Control Applicable for Multiple Motor and/or Converter ControlEVA和EVB的特点1.事件管理器A和事件管理器B绝大部分功能相同;2.具有相同的外设寄存器 EVA寄存器的起始地址为7400H;
4、 EVB寄存器的起始地址为7500H; 具体的寄存器地址见书p129。 两个事件管理器的寄存器的使用方法相同。3.下面主要讲述EVA的使用方法,EVB的使用方法可以类推。4.可以产生16路PWM信号,其中EVA:8路;EVB:8路;EVA:8路有6路是用全比较单元产生;有2路是用定时器比较单元产生。和EVB有关的引脚注意:定时器的比较单元和全比较单元的区别第二部分:事件管理器中断1.中断组 事件管理器A的中断事件分为3组, 事件管理器B的中断事件也分为3组,每一组有不同的: (1)中断标志寄存器;EVAIFA、 EVAIFB、EVAIFC; (2)中断屏蔽寄存器:EVAIMA、EVAIMB、
5、EVAIMC; EVAIMC:如果相应的位为0,则该中断被屏蔽掉,不产生中断请求信号。当事件管理器模块中产生一个中断事件。 EVXIFA中的相应的位置1; 如果EVAIMA中的相应的位为1,则产生一个中断请求。PIE控制进行优先级比较,产生一个内核级的中断请求。2 外设中断的响应过程 产生内核级的外设中断后,PIE控制器将具有最高优先级的中断标志位对应的中断向量装入到外设中断向量寄存器(PIVR)中。PIVR的作用: 外设中断向量寄存器中的值可以区分是哪一个中断源产生的中断,从而在GISR中跳转到SISR中。 在中断服务子程序中,必须用软件直接向中断标志寄存器中的相应位置,写1来清除,该中断标
6、志位,如果没有即时的清除该中断标志位,则以后该中断就不再产生中断请求。中断服务子程序的例子P135 void interrupt T1INT()/定时器1周期中断服务子程序Int flag;Flag=*EVAIFRA&0X0080;If(flag!0X0080) Enable(); Return;*T1CNT=0X00;*EVAIFRA=*EVAIFRA&0X0080;/ 清除定时器1的中断标志,如果事件管理器中,只允许一个中断,从专断产生到相应中断服务子程序的第一条指令被执行,之间的延迟可以由20个CPU周期减小到16个CPU周期。思考题:如果所有的中断中,只允许有一个中断,我们还需要不需要
7、由GISR到SISR的跳转?事件管理器的中断标志寄存器 EVAIFRA地址742Fh EVAIFRA.1511:保留位; EVAIFRA.10: 定时器上溢中断标志位 T10FINT FLAG RW1C_0;读:0 标志被复位; 1 标志被置位;写:0 无效 1 复位标志位;各种中断的缩写和全称缩写全称CMP1INTCompare 1 interruptT1PINTTimer 1 period interruptT1CINTTimer 1 compare interruptT1UFINTTimer 1 underflow interruptT1OFINTTimer 1 overflow int
8、errupt思考题:EVAIFRA的第7位为T1的周期中断的标志位,这位的英语标志是什么?EVAIFRA的第7位位T1的周期中断的标志位,原来这一位为1,如何清除该位。EVAIMFRA的中断屏蔽寄存器EVAIMFA 地址 742CHEVAIMFA.1511:保留位;EVAIMFA.10:T1OFINT ENBLERW_0;0: 禁止1:使能思考:当系统上电复位事,T1OFINT中断是否被使能? 我们在相应的初始化时,是否需要对EVAIMFA进行操作。例子:Initial ()SCSR1=0X81FE; /符号扩展位有效,23时钟;*WDCR=0X0E8;/禁止看门狗;*IMR=0x0002;*
9、IFR=0x0FFFFH;Int timerint()*EVAIMRA=*EVAIMRA|0X0080;*EVAIFRA=* EVAIFRA&0x0080;通用定时器 通用定时器概述 通用定时器简称为(GP) general-purpose (GP) timers general-purpose (GP) INPUT/OUTPUT PINS EVA和EVB都有2个定时器,EVA的定时器称为定时器1、定时器2; EVB的定时器称为定时器3、定时器4。定时器的组成1.TxCNT(计数器):可以增加计数;2.TxCMPR( 定时器比较寄存器): 双缓冲,带影子寄存器;注意和比较寄存器的区别CMPRx
10、; 影子寄存器:(double-buffered with shadow register)3.TXPR:定时器周期寄存器 双缓冲,带影子寄存器;4.TXCON:定时器控制寄存器5.Prescaler:预定标器 可用于内部和外部时钟(三个预定标位,可实现1128分频);6. 4 个可屏蔽中断 下溢;上溢;定时器比较中断;周期中断。TIMER1和TIMER2的区别1.TIMER1为所有的比较和PWM电路提供时基,所以我们可以用TIMER的相关中断,来产生PWM波;2.TIMER2为对捕获单元和正交编码脉冲操作提供时基,用TIMER2的相关中断来完成测速功能;TIMER1和其他单元之间的关系TIM
11、ER2和其他单元之间的关系和定时器有关的引脚:1.可用于选择方向的引脚TDIRx; Counting direction for general-purpose (GP) timer (EVA) or GPIO. If TDIRA = 1, upward counting is selected. If TDIRA = 0, downward counting is selected. ()2. 可以选择内部和外部时钟 TCLKINA/BExternal clock input for GP timer (EVA) or GPIO. Note that the timer can also u
12、se the internal device clock. () full-compare unitsThere are three full-compare units on each event manager. These compare units use GP timer1 as the time base and generate six outputs for compare and PWM-waveform generation using programmable deadband circuit. The state of each of the six outputs i
13、s configured independently. The compare registers of the compare units are double-buffered, allowing programmable change of the compare/PWM pulse widths as needed.控制寄存器1.单个通用定时器的控制寄存器 TxCON:RW_0;T1CON.1514:仿真控制位 00 一旦仿真挂起,立即停止; 01 一旦仿真挂起,在当前定时器周期结束后停止; 10 操作不受仿真挂起影响; 11 操作不受仿真挂起影响。T1CON.13:保留位;读为0,写
14、无效;T1CON.1018:TPS2TPS0;输入时钟预定标系数 000:X/1; 001: X/2 010: X/4 ; 011: X/8 100: X/16; 101: X/32 110: X/64 ; 111: X/128 X=CPU时钟频率思考题:假设cpu频率为10MHZ;TIMER1的周期寄存器的值为FFFFH;预定标系数为111;则多长时间产生一次T1的周期中断?如何增加T1产生周期中断的时间?T1CON.7:定时器2、4周期寄存器选择位 0 定时器2、4使用自己的周期寄存器; 1 使用定时器1和定时器3的周期寄存器;T1CON.6:定时器使能位; 0 禁止定时器操作,定时器被设
15、为保持状态,并且预定标复位; 1 使能定时器操作;T1CON.54:时钟源选择 00:内部时钟; 01:外部时钟; 10:保留; 11:时钟源为正交编码脉冲电路; 只适用于定时器2和定时器4,在定时器1和定时器3中保留,这种设置只有在T1CON.0为0时有效。T1CON.1211:TMODE1/TMODE0;计数模式选择位; 00:停止/保持; 01:连续增/减; 10:连续增; 11:连续减;定时器控制寄存器A(GPTCONA)/B 当它为高有效时,在一次比较匹配发生时,比较输出由低到高;而后,定时器如果处于增/减计数模式,在第二次匹配时,比较输出从高到低当它为低有效时,在一次比较匹配发生时
16、,比较输出由高到低;而后,定时器如果处于增/减计数模式,在第二次匹配时,比较输出从低到高;(包含周期匹配的情况)。当它为强制高/低时,它立即变高/低。 定时器的计数器每个定时器还有一个映射到数据存储器种的计数器,它们的地址为: T1CNT:7401H ; T2CNT:7405H; T3CNT:7501H; T4CNT:7505H; 例子用T1的周期中断和T2的计数器来测量转速的例子(1)设定T1的周期寄存器;(2)把速度脉冲信号连接到QEP引脚T2;(3)时间到触发T1的周期中断;(4)在T1的中断服务子程序中,读T2CNT的值;同时把T2CNT的值清0;(5)经过处理接得到了转速信号。单个通
17、用定时器比较寄存器(TxCMPR) 每个定时器都有一个与之相关联的比较寄存器,它用于存放一个16位的比较值,当定时器的计数器(TxCNT)的值和其中的比较值相等时,将产生以下事件: (1)根据GPTCONA(GPTCONA)03位的设置的不同,比较输出引脚TxPWM发生跳变; (2)或起动A/D转换; (3)同时产生比较中断请求。 注意事项:通过设置TxCON的第1位,可以使能或禁止比较操作,比较操作和输出适合于任何一种定时模式,当然也包括QEP模式;通用比较器的地址为: 7402H(T1CMPR) 7406H(T2CMPR) 7502H(T3CMPR) 7506H(T4CMPR) 单个通用定
18、时器周期寄存器(TxPR) 每个定时器都有一个与之相关联的周期寄存器,它用于存放一个16位的值,当定时器的计数器(TxCNT)的值和其中的比较值相等时,定时器的操作就停止并保持当前的值,并根据计数器的计数方式执行复位操作,或者开始递减计数;并产生周期中断请求。 注意:初始化周期寄存器,应该在计数器被初始化为一个非0值之前就进行初始化,否则,周期寄存器的值被保持不变到下一次下溢发生。周期寄存器的地址为: 7403H(T1PR)、 7407H(T2PR)、 7503H(T3PR)、 7507H(T4PR)。 比较寄存器和周期寄存器的两级缓存 比较寄存器和周期寄存器是带有影子寄存器的,在一个控制周期
19、中的任一时刻,一个新的值都通过两级过程操作的。 所谓的影子寄存器,主要是用来存储工作寄存器下的一个新的值,可以把它理解为缓冲寄存器。 比较寄存器的装载条件比较寄存器的加载情况可能是下列情况的一种:在写信息到影子寄存器后立即加载;下溢时,即通用定时器计数器为0时;周期匹配时,即当计数器的值为0或者计数器的值与周期寄存器的值相等时。 周期寄存器的装载条件 对于周期寄存器而言,仅当计数寄存器TxCNT为0时,工作的周期寄存器才重新加载它的影子寄存器的值。 比较寄存器和周期寄存器的双缓存特点,可以使程序在一个控制周期中的任意时刻都可以更新周期寄存器和比较寄存器中的值,从而可以改变下一个周期的定时器周期和PWM的脉冲宽度,对于PWM发生器来说,定时器周期值的高速变化就意味着载波频率的高速变化。