2.41k likes | 2.68k Views
第 9 章 事件管理器模块. 9.1 事件管理器模块概述. 每个 F240x 器件:包括两个事件管理模块 EVA 和 EVB 。. 事件管理器模块: 2 个通用定时器( GP ); 3 个比较单元; 3 个捕获单元; 正交编码脉冲电路 (QEP) ;. EVA 、 EVB :有相同的外设寄存器, EVA 的起始地址是 7400h , EVB 的起始地址是 7500h 。. EVA 和 EVB 模块及其信号名称. 事件管理器模块中的所有输入都由内部 CPU 协调同步,一次跳变脉冲宽度必须保持到两个 CPU 时钟的上升沿后才被事件管理器模块所识别。.
E N D
9.1 事件管理器模块概述 每个F240x器件:包括两个事件管理模块EVA和EVB。 • 事件管理器模块: • 2个通用定时器(GP); • 3个比较单元; • 3个捕获单元; • 正交编码脉冲电路(QEP) ; EVA、EVB:有相同的外设寄存器,EVA的起始地址是7400h,EVB的起始地址是7500h。
事件管理器模块中的所有输入都由内部CPU协调同步,一次跳变脉冲宽度必须保持到两个CPU时钟的上升沿后才被事件管理器模块所识别。事件管理器模块中的所有输入都由内部CPU协调同步,一次跳变脉冲宽度必须保持到两个CPU时钟的上升沿后才被事件管理器模块所识别。 任何跳变脉冲宽度必须保持至少两个CPU时钟周期。
9.1.1 事件管理器结构框图 事件管理器A结构框图
9.1.2 事件管理器寄存器地址列表 EVA时间寄存器地址
9.1.3 事件管理器中断 1.中断组 事件管理器中断事件分为3组: 事件管理器中断组A、B和C 每一个组都有各自不同的中断标志、中断使能寄存器和一些外设事件中断请求。 每个EV中断组都有一个中断标志寄存器和相应的中断屏蔽寄存器。
2.中断产生 当事件管理器模块中产生了一个中断事件,则其中一个事件管理器中断标志寄存器的相应标志位就被置1。 如果标志位局部未被屏蔽(EVAIMRx中的相应位置1),那么外设中断扩展控制器(PIE)就产生了一个外设中断请求。
3.中断向量 当中断请求被CPU接受时, PIE控制器将已置位的中断标志中具有最高优先级的中断标志相应的那个中断向量装入到外设中断向量寄存器(PIVR)中。 在中断服务子程序(ISR)中读取中断向量,以区分该组哪一个悬挂的中断具有最高优先级。 注意 中断标志位必须在中断服务子程序中用软件直接向中断标志寄存器中的相应位置1来清除。 如果中断标志位没被清除,则以后该中断就不再产生中断请求。
4.中断处理 • 当事件管理器中断请求被接受后: • 将外设中断向量寄存器(PIVR)读入累加器并左移一位或几位,然后将偏移地址(中断子向量入口表的开始地址)加至累加器; • 使用BACC指令来跳转到相应的中断地址; • 再用一条指令从表中转移到相应的中断源的中断服务子程序。 20个CPU周期的中断延迟:从中断产生到相应的中断服务子程序中的第一条指令被执行之间的时间。
说明 • 如果需要进行最小的保护现场,则该延迟为25个CPU周期。 • 如果一个事件管理器中断组只允许一个中断,则这个延迟可以减少到最少8个CPU周期。 • 如果不考虑存储器空间,则可将该延迟减少到16个CPU周期。
5.事件管理器中断标志寄存器 事件管理器中断标志寄存器(EVxIFRx)是可读寄存器,当中断被屏蔽时,可以通过软件查询事件管理器中断标志寄存器中的相应的位来监测中断事件的发生。 中断标志寄存器都是16位的存储器映射寄存器。 当软件读这些寄存器时,未使用的位读出值为0;向未使用的位写,则无影响。
EVA中断标志寄存器A(EVAIFRA)地址742Fh 注:R =可读 , W1C = 写1清除 , _0 = 复位值
位15~11 保留位 位10 T1OFINT FLAG。通用定时器1上溢中断标志位。 读: 0 标志被复位;1 标志被置位 写: 0 无效; 1 复位标志位 位9 T1UFINT FLAG。通用定时器1下溢中断标志位。 读: 0 标志被复位;1 标志被置位 写: 0 无效; 1 复位标志位 位8 T1CINT FLAG。通用定时器1比较中断标志位。 读: 0 标志被复位;1 标志被置位 写: 0 无效; 1 复位标志位 位7 T1PINT FLAG。通用定时器1周期中断标志位。 读: 0 标志被复位;1 标志被置位 写: 0 无效; 1 复位标志位 位6~4 保留位
位3 CMP3INT。比较单元3中断标志位。 读: 0 标志被复位;1 标志被置位 写: 0 无效; 1 复位标志位 位2 CMP2INT。比较单元2中断标志位。 读: 0 标志被复位;1 标志被置位 写: 0 无效; 1 复位标志位 位1 CMP1INT。比较单元1中断标志位。 读: 0 标志被复位;1 标志被置位 写: 0 无效; 1 复位标志位 位0 。功率驱动保护中断标志位。 读: 0 标志被复位;1 标志被置位 写: 0 无效; 1 复位标志位
位15~4 保留位 位3 T2OFINT FLAG。通用定时器2上溢中断标志位。 读: 0 标志被复位;1 标志被置位 写: 0 无效; 1 复位标志位 位2 T2UFINT FLAG。通用定时器2下溢中断标志位。 读: 0 标志被复位;1 标志被置位 写: 0 无效; 1 复位标志位 位1 T2CINT FLAG。通用定时器2比较中断标志位。 读: 0 标志被复位;1 标志被置位 写: 0 无效; 1 复位标志位 位0 T2PINT FLAG。通用定时器2周期中断标志位。 读: 0 标志被复位;1 标志被置位 写: 0 无效; 1 复位标志位
位15~3 保留位 位2 CAP3INT FLAG。捕获单元3中断标志位。 读: 0 标志被复位;1 标志被置位 写: 0 无效; 1 复位标志位 位1 CAP2INT FLAG。捕获单元2中断标志位。 读: 0 标志被复位;1 标志被置位 写: 0 无效; 1 复位标志位 位0 CAP1INT FLAG。捕获单元1中断标志位。 读: 0 标志被复位;1 标志被置位 写: 0 无效; 1 复位标志位
位15~11 保留位 位10 T1OFINT ENABLE。通用定时器1上溢中断使能位。 0 禁止 1 使能 位9 T1UFINT ENABLE。通用定时器1下溢中断使能位。 0 禁止 1 使能 位8 T1CINT ENABLE。通用定时器1比较中断使能位。 0 禁止 1 使能 位7 T1PINT ENABLE。通用定时器1周期中断使能位。 0 禁止 1 使能
位6~4 保留位 位3 CMP3INT ENABLE。比较单元3中断使能位 0 禁止 1 使能 位2 CMP2INT ENABLE。比较单元2中断使能位 0 禁止 1 使能 位1 CMP1INT ENABLE。比较单元1中断使能位 0 禁止 1 使能 位0 ENABLE。功率驱动保护中断使能位 0 禁止 1 使能
位15~4保留位 位3 T2OFINT ENABLE。通用定时器2上溢中断使能位。 0 禁止 1 使能 位2 T2UFINT ENABLE。通用定时器2下溢中断使能位。 0 禁止 1 使能 位1 T2CINT ENABLE。通用定时器2比较中断使能位。 0 禁止 1 使能 位0 T2PINT ENABLE。通用定时器2周期中断使能位。 0 禁止 1 使能
位15~3 保留位 位2 CAP3INT ENABLE。捕获单元3中断使能位。 0 禁止 1 使能 位1 CAP2INT ENABLE。捕获单元2中断使能位。 0 禁止 1 使能 位0 CAP1INT ENABLE。捕获单元1中断使能位。 0 禁止 1 使能
9.2 通用定时器 9.2.1 通用定时器概述 事件管理模块有两个通用的可编程定时器。 EVA:定时器1,定时器2; EVB:定时器3,定时器4。 通用定时器的时钟源:可采用内部CPU时钟或外部时钟输入。 外部时钟的频率必须低于或等于CPU时钟频率的1/4。
定时器可用作独立的时基: • 在控制系统中产生一个采样周期; • 为正交编码脉冲电路(QEP)和捕获单元的运行提供时基; • 为比较单元和产生PWM输出的有关PWM电路提供时基。
9.2.2 通用定时器功能模块 注意: x=2或4。 当x=2时,y=1且n=2; 当x=4时,y=3且n=4。
1.通用定时器输入 · 内部CPU时钟; · 外部时钟TCLKINA/B,最大频率是CPU时钟频率的1/4; · 方向输入TDIRA/B,通用定时器用于指示增/减计数模式; · 复位信号RESET。
2.通用定时器输出 · 通用定时器比较输出TxCMP,x=1,2,3,4; · 至ADC模块的A/D转换启动信号; · 比较逻辑和比较单元的下溢、上溢、比较匹配和周期匹配信号; · 计数方向指示位。
3. 每个定时器包括 (1)一个16位的定时器控制寄存器TxCON, 可读写; (2)一个16位的定时器比较寄存器TxCMPR (双缓冲,带影子寄存器),可读写; (3)一个16位的定时器周期寄存器TxPR (双缓冲,带影子寄存器),可读写; (4) 一个16位的定时器增/减计数的计数器TxCNT,可读写; (5)可选择方向的输入引脚TDIRx (当用双向计数方式时用来选择向上或向下计数); (6)可选择的内部或外部输入时钟; (7)用于内部或外部时钟输入的可编程预定标器(prescaler) ; (8)4个可屏蔽的中断: 下溢、上溢、定时器比较和周期中断。
(1)控制寄存器 1)单个通用定时器控制寄存器(TxCON) 由控制寄存器TxCON决定通用定时器的操作模式。 · 计数模式( 共4种); · 使用外部时钟还是内部CPU时钟; · 确定输入时钟使用的预定标因子( 范围从1/128~1); · 重装载定时器比较寄存器的条件; · 是否使能通用定时器? · 是否使能通用定时器的比较操作? · 通用定时器2是否使用通用定时器1的周期寄存器(EVA)? · 通用定时器4是否使用通用定时器3的周期寄存器(EVB)?