第 7 章 事件管理器 7.1 事件管理器模块 概述 7.2 通用定时器 ...

129
第7第 第第第第第 7.1 第第第第第第第第第 7.2 第第第第第 7.3 第第第第 7.4 PWM 第第第 PWM 第第第第第 7.5 第第第第 PWM 7.6 第第第第 7.7 第第第第第第第第第QEP 7.8 第第第第第第第

Upload: gilles

Post on 16-Mar-2016

85 views

Category:

Documents


26 download

DESCRIPTION

第 7 章 事件管理器 7.1 事件管理器模块 概述 7.2 通用定时器 7.3 比较单元 7.4 PWM 电路 及 PWM 信号的产生 7.5 空间向量 PWM 7.6 捕捉单元 7.7 正交编码器脉冲电路( QEP ) 7.8 事件管理器中断. 7.1 事件管理器模块概述 最重要、最复杂 的模块 ,可为 所有类型电机 提供控制技术。 7.1.1 事件管理器结构 LF2407A 两个 事件管理器模块: EVA 和 EVB。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

第 7 章 事件管理器 7.1 事件管理器模块概述 7.2 通用定时器 7.3 比较单元 7.4 PWM 电路及 PWM 信号的产生 7.5 空间向量 PWM 7.6 捕捉单元 7.7 正交编码器脉冲电路( QEP ) 7.8 事件管理器中断

Page 2: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

7.1 事件管理器模块概述最重要、最复杂的模块,可为所有类型电机提供控

制技术。7.1.1 事件管理器结构LF2407A 两个事件管理器模块: EVA和

EVB。每个事件管理器模块包括:两个通用定时器 (GP) 、

三个比较单元、三个捕捉单元以及两个正交编码脉冲输入电路( QEP) 。

EVA和 EVB 功能相同,只是名称不同。

Page 3: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

通用定时器功能: 具有计数/定时功能,可以为各种应用提供时基,

并可以产生比较输出 /PWM 信号。比较单元功能:

三个比较单元可以输出 3 组 (6路 ) 比较输出 /PWM 信号,且具有死区控制等功能。

捕捉单元功能: 三个捕捉单元可以记录输入引脚上信号跳变的时刻。

Page 4: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

QEP 电路功能:具有直接连接光电编码器脉冲的能力,可获得旋转机械

的速度和方向等信息。事件管理器的特殊设计,使得事件管理器既可以实时控

制电机(由 PWM 电路实现),同时还可以监视电机的运行状态(由 QEP 电路实现)。

EVA 结构框图如图 7-1 所示。

Page 5: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

图 7-1EVA结构图

EV 控制寄存器和控制逻辑GP 定时器 1 比较

捕捉单元

SVPWM

状态机

输出逻辑

预定标GP 定时器 1

输出逻辑 全比较单元

MUX

TDIRA

T1CMP/

T1PWM

ADC 转换开始

T1CON[4,5]

死区带宽单元

QEP

电路

T1CON[8,9,10]

TCLKINA

CLKOUT

PWM1

...

PWM6

GP 定时器 2 比较 输出逻辑预定标GP 定时器 2

T2CMP/

T2PWM

T2CON[4,5] T2CON[8,9,10]

TCLKINA

CLKOUT

TDIRA

CAP3

CAP1/QEP1

CAP2/QEP2

CAPCONA[14,13]DIR

CLOCK

Page 6: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

7.1.2 事件管理器引脚事件管理器 A 和 B 的引脚描述见表 7-1(P83) 。输入跳变脉冲宽度至少保持两个 CPU 时钟周期才能被

识别。7.1.3 功率驱动保护中断PDPINTx* 可以用于向电动机的监视程序提供过电压、

过电流和异常的温升等异常信息。为功率变换和电动机驱动等系统操作提供安全保证。

Page 7: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

如果 PDPINTx* 中断被允许,则 PDPINTx* 引脚电平变低后,则驱动所有 PWM 输出引脚为高阻态,同时产生一个中断请求。

复位时, PDPINTx* 中断被使能。如果 PDPINTx* 中断被禁止,则驱动 PWM 输出到

高阻态的动作也被禁止。

Page 8: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

事件管理器 A 的引脚 事件管理器 B 的引脚引脚名称 描述 引脚名称 描述CAP1/QEP1 捕捉单元 1 输入, QEP 电路输入 1

CAP4/QEP3 捕捉单元 4 输入, QEP 电路输入 3CAP2/QEP2 捕捉单元 2 输入, QEP 电路输入 2

CAP5/QEP4 捕捉单元 5 输入, QEP 电路输入 4CAP3 捕捉单元 3 输入 CAP6 捕捉单元 6 输入PWM1 比较单元 1 输出 1 PWM7 比较单元 4 输出 1PWM2 比较单元 1 输出 2 PWM8 比较单元 4 输出 2PWM3 比较单元 2 输出 1 PWM9 比较单元 5 输出 1PWM4 比较单元 2 输出 2 PWM10 比较单元 5 输出 2PWM5 比较单元 3 输出 1 PWM11 比较单元 6 输出 1PWM6 比较单元 3 输出 2 PWM12 比较单元 6 输出 2T1CMP/T1PWM 定时器 1 比较 /PWM 输出 T3CMP/

T3PWM定时器 3 比较 /PWM 输出

T2CMP/T2PWM 定时器 2 比较 /PWM 输出 T4CMP/T4PWM

定时器 4 比较 /PWM 输出TCLKINA EVA 定时器的外部时钟输入 TCLKINB EVB 定时器的外部时钟输入TDIRA EVA 定时器的计数方向输入 TDIRB EVB 定时器的计数方向输入

表 7-1 事件管理器的引脚描述

Page 9: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

7.1.4 EV 寄存器及地址下面四个表列出 EVA 所有寄存器的地址, EVB 的类似。 EVA 定时器寄存器地址

地址 寄存器 名称 说明7400h GPTCON

A定时器控制寄存器 A EVA

7401h T1CNT 定时器 1 的计数寄存器 定时器 17402h T1CMPR 定时器 1 的比较寄存器7403h T1PR 定时器 1 的周期寄存器7404h T1CON 定时器 1 的控制寄存器7405h T2CNT 定时器 2 的计数寄存器 定时器 27406h T2CMPR 定时器 2 的比较寄存器7407h T2PR 定时器 2 的周期寄存器7408h T2CON 定时器 2 的控制寄存器

Page 10: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

EVA 比较控制寄存器地址

地址 寄存器 名称7411h COMCONA 比较控制寄存器 A

7413h ACTRA 比较动作控制寄存器 A

7415h DBTCONA 死区时间控制寄存器 A

7417h CMPR1 比较寄存器 1

7418h CMPR2 比较寄存器 2

7419h CMPR3 比较寄存器 3

Page 11: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

EVA 捕捉控制寄存器地址地址 寄存器 名称

7420h CAPCONA 捕捉控制寄存器 A7422h CAPFIFOA 捕捉 FIFO 状态寄存器 A7423h CAP1FIFO 两级深度的捕捉 FIFO 堆栈 17424h CAP2FIFO 两级深度的捕捉 FIFO 堆栈 27425h CAP3FIFO 两级深度的捕捉 FIFO 堆栈 37427h CAP1FBOT FIFO 堆栈的底部寄存器,允许读取最近的捕捉值7428h CAP2FBOT7429h CAP3FBOT

Page 12: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

EVA 中断寄存器地址地址 寄存器 名称

742Ch EVAIMRA EVA 的中断屏蔽寄存器 A742Dh EVAIMRB EVA 的中断屏蔽寄存器 B742Eh EVAIMRC EVA 的中断屏蔽寄存器 C742Fh EVAIFRA EVA 的中断标志寄存器 A

7430h EVAIFRB EVA 的中断标志寄存器 B

7431h EVAIFRC EVA 的中断标志寄存器 C

Page 13: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

7.1.5 EV 中断响应过程事件管理器中断总共分三组,每组均对应一个 CPU

中断 (INT2, 3 或 4) 。因为每组中断均有多个中断源,通过外设中断扩展控

制器 (PIE) 模块来处理。中断请求有如下几个响应阶段:(1) 中断源。如果外设中断发

生, EVxIFRA、 EVxIFRB 、或EVxIFRC(x=A或 B) 相应的标志位被置 1 。

Page 14: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

(2) 中断使能。事件管理器中断可以分别由寄存器 EVxIMRA、 EVxIMRB或 EVxIMRC(x=A或

B) 来使能或禁止。(3)向 PIE 请求。如果中断标志位和中断屏蔽位被置1 ,那么外设会向 PIE 模块发送一个外设中断请求。

(4)CPU 响应。 CPU 接收到中断后, IFR 相应的位被置 1 ,并响应中断。 CPU 响应中断后,中断响应被软件控制。

(5)PIE 响应。 PIE 使用中断向量更新 PIVR 寄存器。

(6) 中断软件,中断软件有两级响应,包括 GISR和SISR 。

Page 15: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

7.2 通用定时器7.2.1 通用定时器概述定时器是事件管理器的核心模块。 每个事件管理模块有两个通用定时器 (GP),这些定时器可为下列应用提供独立的时间基准:

( 1)控制系统中采样周期产生。( 2)为 QEP 电路和捕捉单元的操作提供时间基准。( 3 )为比较单元和相应的 PWM 电路操作提供时间

基准定时器结构如图 7-3 所示,由图可知,每个定时器包括 :

Page 16: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

( 1)一个可读写的 16 位双向计数器的寄存器 TxCNT,它存储了计数器的当前值,并根据计数方向进行增计数或减计数。

( 2)一个可读写的 16 位定时器比较寄存器 TxCMPR。

( 3 )一个可读写的 16 位定时器周期寄存器 TxPR 。( 4 )一个可读写的 16 位定时器控制寄存器 TxCON 。( 5 )时钟预定标器。( 6 )控制和中断逻辑 。( 7 )一个 GP 定时器比较输出引脚- TxCMP 。( 8 )输出逻辑。( 9 )其他全局控制寄存器

Page 17: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

TxPWM/TxCMP

图 7-3 GP 定时器结构框图

TxPR 周期寄存器(映像) TyPR 周期寄存器(映像)

TxCON

GPTx 控制寄存器

控制逻辑

比较逻辑

GPTCONA/B

GP 定时器控制寄存器

对称 /非对称波形发生器TxCMPR

比较寄存器(映像)

输出逻辑

TxCNT GP定时器计数器

MUX

内部 CPU 时钟 TDIRA/BTCLKINA/B

ADC 转换启动信号

中断标志

TnCON[0]

当 x=2 时, y=1 ,并且 n=2;当 x=4 时, y=3 ,并且n=4;

Page 18: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

通用定时器的输入包括: 内部 CPU 时钟。 外部时钟 TCLKINA/B ,最高频率是 CPU 时钟频

率的 1 / 4 。 方向输入 TDIRA/B ,控制通用定时器增/减计数。 复位信号 RESET 。通用定时器的输出包括: 通用定时器比较输出 TxCMP 引脚 (x=1 、 2 、 3 、 4 )。

ADC 转换启动信号。

Page 19: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

自身的比较逻辑和比较单元的下溢、上溢、比较匹配和周期匹配信号。

计数方向指示位。注意 : 通用定时器的比较寄存器和周期寄存器是双缓冲的,允许在一个周期中的任何时刻去更新周期寄存器和比较寄存器,以便改变下一个周期的定时器周期和 PWM 的脉冲宽度。

7.2.2 通用定时器计数操作 每个 GP 定时器有四种可选的操作模式:

Page 20: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

( 1 )停止 /保持模式( 2 )连续递增计数模式( 3 )定向增 /减计数模式( 4 )连续增 /减计数模式 相应的定时器控制寄存器 TxCON 中的位模式决定了通用定时器的操作模式。

Page 21: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

1 .停止/保持模式通用定时器停止操作并保持其当前状态,定时器的计

数器、比较输出和预定标计数器都保持不变。 2 .连续递增计数模式本工作模式的示意图如图 7-4 所示。此种模式,通用定时器将按照已定标的输入时钟计 数,直到定时器计数器的值和周期寄存器的值匹配 为止。产生周期匹配之后在下一个输入时钟的上升 沿,定时器复位为 0 ,开始另一个计数周期。

Page 22: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

图 7-4

Page 23: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

在产生周期匹配的下一个 CPU 时钟周期后,周期中断 被置位,产生一个中断请求,也可作 ADC 转换启动

信 号。定时器变成0的一个 CPU 时钟周期之后,定时

器的下溢中断标志被置位,也可发出一个 ADC启动信号。

定时器计数到 FFFFh 后,定时器的上溢中断标志在一个 CPU 时钟周期之后被置位。

定时器初值可以是 0000h- FFFFh之间的任何值。

Page 24: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

如果初值大于周期寄存器的值时,定时器将计数到 FFFFh 后复位为 0,然后从0开始继续计数。如果初值等于周期寄存器的值时,周期中断标志被置 位,定时器复位为 0,下溢中断标志被置位,然后 从0开始继续计数。本模式特别适于边沿触发或非对称 PWM波形产生,

也适 于电机和运动系统的采样周期。

Page 25: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

3 .定向的增 /减计数模式此种模式,定时器将根据TDIRA / B 引脚的输入,

对定标的时钟进行递增或递减计数。如图 7-5 所示。

图 7-5

Page 26: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

周期、下溢、上溢中断标志位、中断以及相应的动作与连续递增计数模式一样。定时器 2和 4 的本模式可用于正交编码脉冲电路,在这

种情况下,正交编码脉冲电路为定时器 2和 4 提供计数

时钟和方向,也可用于运动 /电机控制和电力电子设备

应用中的外部事件定时。

Page 27: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

4 .连续增 /减计数模式此种模式与定向的增 /减计数模式一样,但是在本模式 下,引脚 TDIRA/B 的状态对计数的方向没有影响。定时器的计数方向仅在定时器的值达到周期寄存器的 值时 ( 或 FFFFh ,如果初始定时器的值大于周期寄

存器的值 ) ,才从递增计数变为减计数。定时器的计数方向仅当计数器的值为 0 时才从减计数变为增计数。如图 7-6 所示。

Page 28: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

图 7-6

Page 29: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

7.2.3 通用定时器比较操作GP 定时器的值连续地与相应的比较寄存器的值比较, 当两个值相等时,就会发生比较匹配。可通过对 TxCON[1] 置1来使能比较操作。比较操作使能后,当发生比较匹配时,会发生以下情况:

( 1)比较中断标志置1。( 2)相应的 PWM 输出将发生跳变。( 3 )如用于启动 ADC ,则产生一个 ADC启动信号。

Page 30: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

1 . PWM 输出转换PWM 输出的转换由一个非对称和对称的波形发生器

和相应的输出逻辑控制,并且依赖于以下条件: GPTCONA/B 寄存器中相应位的定义。 定时器所处的计数模式。 在连续增/减计数模式下的计数方向。2 .非对称和对称波形发生器依据通用定时器所处计数模式,产生一个非对称和对

称的 PWM波形输出。

Page 31: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

3 .非对称波形的发生在连续增计数模式时,通用定时器会产生一个非对称波形的 PWM 脉冲,如图 7-7 所示。

图 7-7

Page 32: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

4 .对称波形的发生在连续增 /减计数模式时,通用定时器会产生对称波形,

如图 7-8 所示。

图 7-8

通用定时器在连续增 /减计数模式下的比较 /PWM 输出

Page 33: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

5 .输出逻辑进一步调节波形发生器的输出,以生成最终的 PWM波形 输出,来控制各种不同类型的功率设备。可通过配置GPTCONA/B 寄存器的相应位来设置高有效、

低有效、强制高或强制低的PWM 输出。当PWM 输出设置为高有效时,它的极性与波形发生器的输

出极性相同。当PWM 输出设置为低有效时,极性相反。GPTCONA/B 寄存器的相应位设定后, PWM 输出也可被强

制为高电平或低电平。

Page 34: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

7.2.4 定时器控制寄存器1 .单个通用定时器控制寄存器 TxCONTxCON(x= 1 , 2 , 3 或 4)决定一个定时器的操

作模式,每个定时器都可独立配置。TxCON(x= 1 , 2 , 3 或 4) 的映射地址为:

7404h(T1CON)、 7408h(T2CON)、 7504h(T3CON)和 7508h(T4CON) 。

TxCON(x= 1 , 2 , 3 或 4) 各位的定义如下:

Page 35: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

位 15-14 仿真控制位 00 仿真挂起时立即停止 01 仿真挂起时当前定时周期结束后停止 10 操作不受仿真挂起的影响 11 操作不受仿真挂起的影响位 13 保留。位 12-11 4 种计数模式选择 00 停止 /保持 01 连续增/减计数模式 10 连续增计数模式 11 定向的增/减计数模式

Page 36: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

位 10-8 输入时钟定标器 000 x / 1 100 x/ 16 001 x/ 2 101 x/ 32 010 x/ 4 110 x/ 64 011 x/ 8 111 x/ 128 x= 输入时钟频率位 7 使能位的来源 0 :使用自身的使能位 (TENABLE) 1 :不用自身的使能位,使用 T1CON(EVA)或

T3CON(EVB) 的使能位来使能或禁止操作,

Page 37: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

位 6 定时器使能与禁止 0 禁止定时器操作。也就是说,使定时器保持并且使

预定标计数器复位 1 允许定时器操作位 5-4 时钟源选择 00 内部时钟 01 外部时钟 10 保留 11 正交编码脉冲电路,只适用于 T2CON和

T4CON

Page 38: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

位 3-2 定时器比较寄存器重载条件。 00 计数器的值为 0 时重载 01 计数器的值为 0 或等于周期寄存器的值 时重载

10 立即 11 保留位 1 定时器比较使能与禁止。 0 禁止定时器比较操作 1 使能定时器比较操作

Page 39: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

位 0 周期寄存器选择 0 使用自己的周期寄存器 1 使用 T1PR(EVA)或 T3PR(EVB) 作周期寄存 器而忽略自己的周期寄存器。2. 全局通用定时器控制寄存器 (GPTCONA/B)GPTCONA/B 规定了通用定时器针对不同定时器事件

所采取的动作,并指明了它们的计数方向。映射地址为7400h 。

各位的意义如下:

Page 40: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

位 15 保留位位 14 通用定时器 2 的状态,只读。 0 递减计数 1 递增计数位 13 通用定时器 1 的状态,只读。 0 递减计数 1 递增计数位 12-11 保留位。位 10-9 使用通用定时器 2 启动 ADC 事件。

Page 41: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

00 无事件启动 ADC( 模数转换 ) 01 设置下溢中断标志来启动 ADC( 模数转换 ) 10 设置周期中断标志来启动 ADC( 模数转换 ) 11 设置比较中断标志来启动 ADC( 模数转换 )位 8-7 使用通用定时器 1 启动 ADC 事件。 00 无事件启动 ADC( 模数转换 ) 01 设置下溢中断标志来启动 ADC( 模数转换 ) 10 设置周期中断标志来启动 ADC( 模数转换 ) 11 设置比较中断标志来启动 ADC( 模数转换 )

Page 42: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

位 6 比较输出使能,如果 PDPINTx* 有效则该 位设置为 0 。 0 禁止所有通用定时器比较输出 ( 所有比较输出 都置于高阻态) 1 使能所有通用定时器比较输出位 5-4 保留位。位 3-2 通用定时器 2 比较输出极性 00 强制低 01 低有效 10 高有效 11 强制高

Page 43: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

位 1-0 通用定时器 1 比较输出极性 00 强制低 01 低有效 10 高有效 11 强制高全局通用定时器控制寄存器 GPTCONB 的映射地址

为7500h ,各位的意义与GPTCONA 类似。

Page 44: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

7.2.5 通用定时器的 PWM 输出为了设置通用定时器以产生 PWM 输出,需做以下工作: 根据预定的 PWM(载波 ) 周期设置 TxPR 。 设置 TxCON 寄存器以确定计数模式和时钟源,并启动 PWM 输出操作。

将对应于 PWM 脉冲的在线计算宽度 ( 占空比 ) 的值加载到 TxCMPR 寄存器中。7.2.6 通用定时器的复位当任何复位事件发生时,将发生以下情况:GPTCONA/ B 寄存器中除计数方向指示位外,所有与通用定时器相关的位都被复位为 0 ,因此所有通用定时器

Page 45: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

的操作都被禁止,计数方向指示位都置成 1 。所有的定时器中断标志位均被复位为 0 。所有的定

时器中断屏蔽位都被复位为 0 ,因此所有通用定时器的中断都被屏蔽。

所有通用定时器的比较输出都被置为高阻态。

Page 46: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

7.3 比较单元7.3.1 比较单元概述事件管理器 EVA 模块和 EVB 模块中分别有 3 个全比

较单元,每个比较单元都有两个 PWM 输出。比较单元的时基由通用定时器 1(EVA 模块 ) 和通用定

时器 3(EVB 模块 ) 提供。比较单元的功能结构图如图 7-12 所示。

Page 47: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

图 7-12 比较单元功能结构图

注意:对于 EVA 模块( x=1、 2、 3; y=1、 3、 5; z=1 ),对于 EVB 模块( x=4、 5、 6; y=7、 9、 11; z=2 )。

TzCNT,GPTz

计数器

输出逻辑

PWM

电路

比较逻辑

ACTR 全比较动作控制寄存器(带映像)CMPRx 全比较寄存器(带映像)

PWMy,y+1

Page 48: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

全比较单元与通用定时器中简单比较单元的区别:• 每个全比较单元输出一对 PWM 信号,并具有死区

控制和空间向量 PWM 模式输出的功能;• 而定时器中的每个比较单元只能输出一路 PWM 信

号,且不具备死区控制和空间向量 PWM 模式输出的功能。

Page 49: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

每个比较单元包括:3 个 16 位的比较寄存器 ( 对于 EVA 模块为

CMPRl、 CMPR2和 CMPR3 ,对于 EVB 模块为 CMPR4, CMPR5和 CMPR6) ,它们各带一个相应的映像寄存器 ( 可读 /写 ) 。

一个 16 位的比较控制寄存器 ( 对于 EVA 模块为COMCONA, EVB 模块为 COMCONB) ,该寄存器为可读写的。

Page 50: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

一个 16 位的动作控制寄存器 ( 对于 EVA 模块为 ACTRA ,对于 EVB 模块为 ACTRB) ,它们各带一个相应的映像寄存器 ( 可读 /写 ) 。

6 个 PWM( 三态 ) 输出 ( 比较输出 ) 引脚。控制和中断逻辑。

Page 51: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

比较单元操作所要求的寄存器设置顺序EVA 模块 EVB 模块

设置 T1PR 设置 T3PR

设置 ACTRA 设置 ACTRB

初始化 CMPRx 初始化 CMPRx

设置 COMCONA 设置 COMCONB

设置 T1CON 设置 T3CON

Page 52: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

7.3.2 比较单元寄存器1 .比较控制寄存器 (COMCONA和 COMCONB)比较单元的操作由比较控制寄存器 (COMCONA和

COMCONB) 控制,均是可读写。比较控制寄存器 COMCONA 的映射地址为 7411h 。各位描述如下:位 15 比较使能位 0 禁止比较操作,所有映像寄存器 (CMPRx 和 ACTRA) 为透明。 1 使能比较操作

Page 53: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

位 14-13 比较寄存器 CMPRx 重载条件。 00 当 T1CNT 下溢时重载 01 当 T1CNT 下溢或 T1CNT 周期匹配重载 10 立即重载 11 保留,结果不可预测位 12 空间向量 PWM 模式使能。 0 禁止空间向量 PWM 模式 1 使能空间向量 PWM 模式位 11-10 动作控制寄存器重载条件

Page 54: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

00 当 T1CNT 下溢时重载 01 当 T1CNT 下溢或当 T1CNT 周期匹配重载 10 立即重载 11 保留位 9 比较输出使能位,有效的 PDPINTA*会 使该位清 0 0 PWM 输出引脚为高阻态,即比较输出被禁止 1 PWM 输出引脚处于非高阻态,即比较输出被 使能位 8 PDPINTA* 的状态位,该位反映PDPINTA* 引脚

的 当前状态。

Page 55: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

位 7-0 保留位比较控制寄存器 COMCONB映射地址为 7511h ,各位定义与 COMCONA 类似。2. 比较动作控制寄存器( ACTRA和 ACTRB )ACTRA和 ACTRB 控制 6 个比较输出引脚的动作。ACTRA 的映射地址为 7413h ,各位描述如下:位 15 SVRDIR ,空间向量 PWM 旋转方向位,仅用于产 生空间向量 PWM 输出。 0 正向 (CCW) 1 负向 (CW)

Page 56: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

位 14-12 D2-D0,基本的空间向量位,仅用于产生空 间向量 PWM 输出。位 11-10 CMP6ACT1-0 ,比较输出引脚 PWM6上的比较输 出方式选择。 00 强制低 01 低有效 10 高有效 11 强制高位 9-8 CMP5ACT1-0 ,比较输出引脚 PWM5 上的比较输 出方式选择。 00 强制低 01 低有效 10 高有效 11 强制高

Page 57: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

位 7-6 CMP4ACT1-0 ,比较输出引脚 PWM4 上的比较输出方式选择。

00 强制低 01 低有效 10 高有效 11 强制高位 5-4 CMP3ACT1-0 ,比较输出引脚 PWM3 上的

比较输出方式选择。 00 强制低 01 低有效 10 高有效 11 强制高

Page 58: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

位 3-2 CMP2ACT1-0 ,比较输出引脚 PWM2 上的比较输出方式选择。 00 强制低 01 低有效 10 高有效 11 强制高位 1-0 CMP1ACT1-0 ,比较输出引脚 PWM1 上的比较输出方式选择。 00 强制低 01 低有效 10 高有效 11 强制高

Page 59: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

比较动作控制寄存器 ACTRB映射地址为: 7513h ,各位描述与 ACTRA 类似。

7.3.3 比较单元的中断和复位对于每个比较单元,都有一个可屏蔽的中断标志使能

位。如果比较操作被使能,比较匹配后的 1 个CPU 时钟周期,比较单元的中断标志将被置位。如果中断没有被屏蔽,则会产生一个外设中断请求。当任何复位事件发生时,所有与比较单元相关的寄存

器都复位为 0 ,且所有比较输出引脚被置为高阻态。

Page 60: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

7.4 PWM 电路及 PWM 信号的产生7.4.1 PWM 信号PWM 信号(脉宽调制信号)是脉冲宽度根据某一寄存

器内的值的变化而变化的脉冲序列。宽度是根据预定值来决定和调制的。

在电机控制中, PWM 用来控制开关电源器件的开关时间,为电机绕组提供所需的能量,控制电机所需转速和转矩。

1.PWM 信号产生用一定时器重复产生与 PWM 周期相同的计数周期,

Page 61: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

个比较寄存器保持着调制值,在相应的输出上会产生一个转换。输出脉冲的开关时间会与比较寄存器的值成比例。

2. 死区在许多的运动 /电机控制和功率电子应用场合中,两

个功率器件(上级和下级)被串联在一个功率支路中,为避免击穿失效,在一个三极管的关断和另

Page 62: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

一个三极管导通之间经常要插入一个死区,这段时间延迟允许一个三极管在别的三极管导通之前完全关断。

7.4.2 用事件管理器产生 PWM 输出三个比较单元中的每一个都可与事件管理器的 GP 定

时器一起用于产生一对可编程死区和输出极性的PWM 输出。

Page 63: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

对于每个 EV 模块中的三个比较单元,共有 6 个PWM 输出引脚,来控制三相交流感应电机或无刷直流电机。

由比较动作控制寄存器提供的输出动作控制的灵活性,使得开关和同步磁阻电机的控制变得非常简单容易。

PWM 电路可在单任务或多任务场合控制直流有刷电机和步进电机等。

Page 64: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

PWM 产生的寄存器设置:用比较单元和相应的电路产生所有三种 PWM波形均需要

对相同的 EV 寄存器进行配置。配置过程需要以下步骤:( 1)设置和装载 ACTRx 寄存器( 2)如需死区,则设置和装载DBTCONx 寄存器( 3 )初始化 CMPRx 寄存器( 4 )设置和装载 COMCONx 寄存器( 5 )设置和装载 T1CON或 T3CON 寄存器,来启

动比较操 作( 6 )更新 CMPRx 寄存器的值

Page 65: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

7.4.3 与比较单元相应的 PWM 电路概述EVA 模块的 PWM 电路功能结构图如图 7-17 所示。它包括以下功能单元:( 1 )非对称 /对称波形发生器;( 2 )可编程的死区单元( DBU );( 3 )输出逻辑;( 4 )空间向量( SV) PWM 状态机。

Page 66: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

图 7-17

Page 67: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

7.4.4 可编程的死区单元和输出控制1. 死区单元及其控制死区波形如图 7-18 所示,对于一个输入信号 PHx ,会 产生两个输出信号 DTPHx和DTPHx- 。死区单元用于保证在任何情况下,每个比较单元相关 的 2 路 PWM 输出控制一对正向导通和负向导通设备 时没有重叠,即当一个器件没有完全关断时,另 一个器件不导通,以避免功率器件击穿失效。如 图 7-19 所示。

Page 68: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

图 7-18 死区波形图

图 7-19 三相交流反相换流器原理图

Page 69: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

死区定时器控制寄存器(DBTCONA和DBTCONB ) 死区单元的操作是由 DBTCONA (或DBTCONB )来控制的。 DBTCONA映射地址为 7415h ,各位描述如下:位 15-12 保留。位 11-8 DBT3一DBT0 。规定了 3 个 4 位死区定时器的周期值。位 7 EDBT3 。死区定时器 3 使能位(对应 PWM5和 PWM6 ) 0 禁止 1 使能

Page 70: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

位 6 EDBT2 。死区定时器 2 使能位(对应 PWM3和PWM4 )

0 禁止 1 使能位 5 EDBT1 。死区定时器 1 使能位(对应 PWM1和

PWM2 ) 0 禁止 1 使能位 4-2 DBTPS2-DBTPS0 。死区定时器的预定标器。 000 x/1 001 x/2 010 x/4

Page 71: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

011 x/8 100 x/16位 4-2 DBTPS2-DBTPS0 。死区定时器的预定标器。 101 x/32 110 x/32 111 x/32 x : CPU 时钟频率位 1-0 保留。DBTCONB映射地址为 7515h ,各位的意义和DBTCONA 的相应位意义一致。

Page 72: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

2. 输出逻辑输出逻辑电路决定了当发生比较匹配

时, PWMx( x = 1 ~ 12 )输出引脚上的极性和动作。

可设定为低有效、高有效、强制低和强制高 。 7.4.5 非对称和对称的 PWM 产生EV 模块中的每个比较单元均可产生非对称和对称的

PWM 波形。另外这三个比较单元一起可产生三相对称空间

向量 PWM 输出。用 GP 定时器产生 PWM 输出已介绍,下面仅介绍用比较单元产生 PWM。

Page 73: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

1.非对称 PWM波形产生用一个比较单元产生一个非对称的 PWM波形。见图

7-21。GP 定时器 1必须设置为连续递增计数模式,其周期寄存器必须载入一个与所需的 PWM载波周期相对应的值。

Page 74: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

图 7-21

Page 75: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

2. 对称的 PWM波形产生对称的 PWM波形是其调制脉冲在每个 PWM 周期是

对称的。如图 7-22 所示。对称的与非对称 PWM波形相比,优点在于它有两个

相同 长度的无效区:在每个 PWM 周期的开始和结束。这

种对称性表现为当正弦调制使用时,它在一个交流电机的相电流中比非对称的 PWM 信号引起更少的谐波。

Page 76: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

图 7-22

Page 77: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

7.5 空间向量 PWM7.5.1 空间向量 PWM 理论概述空间向量 PWM :一个三相功率变换器中六个功率

三极管的一种特殊的开关电路,可使三相交流电机绕组产生的电流的谐波失真最小,还提供了比正弦调制方式更有效的供电电压的使用。

空间向量 PWM 方法的实质就是利用 6 个功率管的8 种组合开关方式来近似给出电动机的供电电压向量 UOUT 。

1. 三相功率变换器

Page 78: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

图 7-23

典型的三相功率变换器的结构如图 7-23 所示。

Page 79: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

图中 Va、 Vb和 Vc 是提供给电动机绕组的电压。六个功率三极管由 DTPHx和DTPHx_ (x=a、 b 和 c) 控制。当上部的三极管导通时(DTPHx=1) ,下部的三极管关断 (DTPHx_=0)。

这样,通过上部三极管的开关状态 (QI、Q3和Q5)或DTPHx(x= a、 b 和 c) 的状态,就可以计算出提供给电动机的电压 Uout。

Page 80: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

2.功率反相换流器的开关模式和基本空间向量当一个支路中的上部三极管导通时,由支路提供给电

动机绕组的电压 Vx(x=a、 b 或 c) 等于供电电压Uab ,当三极管关断时,提供的电压为 0。

上部三极管 (DTPHx, x= a、 b 或 c) 的开关切换有 8种可能的组合方式。这些组合方式和由之导出的电动机拉直流供电电压 Udc确定的线电压和相电压如表 7-13 所示。注意 a、 b 和 c 分别代表 DTPHa ,DTPHb和DTPHc 的值。

Page 81: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

通过进行一个 d - q 变换,可以把对应与 8种组合方式的相电压映射到—个 d - q 平面上。这等效于把三个向量 (abc) 的正交投影映射到垂直子向量( 1,1, 1) 的二维平面上,即d - q 平面上,这就产生6 个非零向量和两个零向量。两个零向量位于原点。这8个向量叫做基本空间向量,见图 7-24 。

Page 82: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

表 7-13 三相功率逆变器的开关模式a b c Va0(Ud

c)Vb0(Udc

)Vc0

(Udc)Vab

(Udc)Vbc

(Udc)Vca

(Udc)

0 0 0 0 0 0 0 0 00 0 1 -1/3 -1/3 2/3 0 -1 10 1 0 -1/3 2/3 -1/3 -1 1 00 1 1 -2/3 1/3 1/3 -1 0 11 0 0 2/3 -1/3 -1/3 1 0 -11 0 1 1/3 -2/3 1/3 1 -1 01 1 0 1/3 1/3 -2/3 0 1 -11 1 1 0 0 0 0 0 0

Page 83: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

基本空间向量近似地给出了电机的电压向量。

图 7-24

Page 84: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

相邻两个向量的二进制表示只有一位不同,当开关模式变化时,只有一个上级三极管改变开关状态。

3.用基本空间向量估算电机电压

其中, T0由 Tp- T1- T2给出, Tp为 PWM载波周期。

1 2 60 0 000 111( )x xOUT

P

TU TU T O OUT

Page 85: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

小结:事件管理器的 PWM 发生器的特征 五个独立的 PWM波形输出,其中三个由比较单元产生,两个由通用定时器产生 三个比较单元相对应的 PWM 输出对带可编程死区。 最小的死区时间宽度为一个 CPU 时钟周期 最小的 PWM 脉冲宽度和脉宽的增减量为一个 CPU时钟周期 PWM载波频率的快速改变(具有双缓冲的周期寄存器) PWM 脉宽的快速改变(具有双缓冲的比较寄存器) 功率驱动保护中断 由于比较和周期寄存器的自动重载,使 CPU 的负担最小 输出动作控制灵活

Page 86: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

7.6 捕捉单元可记录 6 个捕捉输入引脚上的事件。共 6 个捕捉单元,每个事件管理器有 3 个捕捉单元。 EVA:CAP1、 CAP2、 CAP3 EVB:CAP4、 CAP5、 CAP6图 7-26是 EVA 的捕捉单元原理框图, EVB 的原理

框图与 EVA 一样,仅寄存器不同。当在捕捉输入引脚 CAPx 上检测到一个设定的转换时, GP 定时器的值被捕捉并存储在相应的 2级深度 FIFO 堆栈中。

Page 87: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

图 7-26

Page 88: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

7.6.1 捕捉单元的特点捕捉单元包括下列特性:• 1个 16 位的捕捉控制寄存器 CAPCONx( 可读 /写 )

• 1个 16 位的捕捉 FIFO 状态寄存器 CAPFIF0x。• 可选择通用定时器 1/ 2(EVA)或者 3 / 4(EvB)

作为时基。• 6 个 16 位 2级深的 FIFO 栈 (CAPxFlFO) ,每

个对应一个捕捉单元,

Page 89: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

• 3 个施密特触发器输入引脚 (EVA: CAPl/ 2/3; EVB: CAP4/ 5/ 6) ,每个捕捉输入引脚和内部 CPU 时钟同步,为使跳变被捕捉,输入必须在当前电平保持两个 CPU 时钟周期。输入引脚 CAP1/ 2 和 CAP4/ 5 也可用作正交编码器脉冲电路的正交编码器脉冲输入 ) 。

• 用户可定义跳变检测方式 (上升沿,下降沿或二者 )

• 6 个可屏蔽的中断标志位,每个标志位对应一个捕捉单元。

Page 90: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

7.6.2 捕捉单元的操作在捕捉使能后,相应输入引脚上的指定跳变会将所选的通用定时器的计数值装入到相应的 FlFO 堆栈。同时如果有一个或更多有效的捕捉值保存在FlFO 堆栈 (CAPxFlFO 位不等于 0) 中,则相应的中断标志位被置 1。如果该中断标志没有被屏蔽,产生一个外设中断请求。从捕捉单元输入引脚处发生跳变到所选通用定时器

的计数值被锁存之间的延时需要 2个 CPU 时钟周期。

Page 91: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

1.捕捉单元时间基准的选择EVA 中的每个捕捉单元均可选择GP 定时器 2或 1作为其 时间基准, EVB 中的每个捕捉单元均可选择GP 定时 器 4或 3 作为其时间基准。对 EVA 模块,捕捉单元 CAP3 有自己独立的时基选择位, 这就允许使用 2个通用定时器中的任意一个, CAP1 和CAP2 共用一个时基选择位。在 EVB 模块, CAP6

有 自己独立的时基选择位。捕捉操作不影响与任何GP 定时器对应的任何GP 定时器 操作或比较 /PWM 操作。

Page 92: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

2.捕捉单元的设置为使捕捉单元能正常工作,需对寄存器进行以下设置 :• 初始化捕捉 FlFO 状态寄存器 (CAPFlFOx) ,清除专用状态位。

• 设置选定的 GP 定时器为一种操作模式。• 如果需要,设置相应的 GP 定时器比较寄存器或GP

定时器周期寄存器。• 设置相应的 CAPCONA或 CAPCONB。

Page 93: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

7.6.3 捕捉单元寄存器捕捉单元的操作由 4 个 16 位的控制寄存器 CAPCONA/B和

CAPFlFOA/B 控制。因为捕捉电路的时间基准是由 GP 定时器 1/ 2或 3 / 4 提供的,所以 TxCON(x=1,2,

3 或 4) 寄存器用于控制捕捉单元的操作。另外,寄存器 CMCONA/ B 也可用于正交编码器脉冲电路

的操作。1.捕捉控制寄存器 CAPCONx(1) 捕捉控制寄存器 A(CAPCONA) ,映射地址: 7420h。 各位的意义:

Page 94: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

位 15 CAPRES 。捕捉复位,只能写,读为 0。 向位 15写 0 将清除所有的捕捉和 QEP 寄存器。但是,使能捕捉功能时不需要向位 15写 1。

0 所有捕捉单元和正交编码脉冲电路的寄存器清 0 1 无动作位 14-13 CAPQEPN 。捕捉单元 1和 2的控制位。 00 禁止捕捉单元 1和 2, FIF0 堆栈保持原内容

01 使能捕捉单元 1和 2 10 保留 11 保留

Page 95: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

位 12 CAP3EN 。捕捉单元 3 控制位。 0 禁止捕捉单元 3 ,其 FlFO 堆栈保持原内容 1 使能捕捉单元 3位 11 保留位。位 10 CAP3TSEL 。捕捉单元 3 的通用定时器选择位。 0 选择通用定时器 2 1 选择通用定时器 1位 9 CAP2TSEL 。捕捉单元 1 和 2的通用定时器选择位。 0 选择通用定时器 2 1 选择通用定时器 1位 8 CAP3TOADC 。捕捉单元 3 事件启动 ADC 转换位:

Page 96: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

0 无操作 1 当 CAP3INT 标志位被置位时,启动 ADC位 7-6 CAP1EDGE 。捕捉单元 1的边沿检测控制位。 00 无检测 01 检测上升沿 I0 检侧下降沿 11 上升沿、下降沿均检测位 5-4 CAP2EDGE 。捕捉单元 2的边沿检测控制位。 00 无检测 01 检测上升沿 I0 检侧下降沿

Page 97: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

11 上升沿、下降沿均检测位 3-2 CAP3EDGE 。捕捉单元 3 的边沿检测控制位。 00 无检测 01 检测上升沿 I0 检侧下降沿 11 上升沿、下降沿均检测位 1-0 保留位(2) 捕捉控制寄存器 B(CAPCONB) ,映射地址: 7

520h。CAPCONB与 CAPCONA 各位的意义相同。

Page 98: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

2.捕捉 FIFO 状态寄存器CAPFlFOx 中包括捕捉单元的 3个 FlFO 堆栈的状态位。如果CAPFlFOx 的状态位正在更新的同时(因为一个捕捉事件)向 CAPFlFOx 状态位写数据,写数据优先。CAPFlFOx 寄存器的写操作在编程中很有用。例如,如果“01”写入 CAPFlFOx 位,则 EV 模块会认为 FIFO 有一个输入。随后,每次 FIFO 获得一个新值,则将产生一个捕捉中断。(1) 捕捉 FlFO 状态寄存器 A(CAPFlFOA) 映射地

址 :7422h 各位的意义如下:

Page 99: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

位 15-14 保留位。位 13-12 CAP3FlFO 。捕捉单元 3的 FlFO 状态位 00 空 01 有一个输入 10 有两个输入 11 有两个输入并又捕捉到一个,第一个输入已丢 失。位 11- 10 CAP2FlFO 。捕捉单元 2的 FlFO 状态位 00 空 01 有一个输入

Page 100: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

10 有两个输入 11 有两个输入并又捕捉到一个,第一个输入已丢 失。位 9 - 8 CAP1FlFO 。捕捉单元 1的 FlFO 状态位 00 空 01 有一个输入 10 有两个输入 11 有两个输入并又捕捉到一个,第一个输入已丢 失。位 7-0 保留位

Page 101: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

(2) 捕捉 FlFO 状态寄存器 B(CAPFlFOB) 映射地址 :7522h,与 CAPFlFOA 各位的意义相同。7.6.4 捕捉单元 FIF0 堆栈每个捕捉单元有一个 2级深度 FlFO 堆栈。如图 7-31 所示。

顶部寄存器(存旧值)底部寄存器(存新值)

图 7-31 2 级深度 FIFO 堆栈示意图

出 进

Page 102: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

(2) 捕捉 FlFO状态寄存器 B(CAPFlFOB),中的计数器值被读出时,FlFO堆栈底部寄存器的新计数器值 (如果有的话 )就会被压入项部寄存器。

(1)第1次捕捉当捕捉单元的输入引脚出现一个指定的转换时,选定的

GP 定时器的计数器值就会被捕捉,如果堆栈是空的,这个计数器值就会被写入到 FlFO 堆栈的项层寄存器。同时,相应的状态位被设置为 01。

如果另外一个捕捉发生之前对 FIFO 堆栈进行了读访问,则 FlFO 状态位被复位为 00。

Page 103: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

(2)第 2次捕捉如果在以前的捕捉的计数值被读取之前,又发生一次捕 捉,那么捕捉的计数器值就会进入底部寄存器。同时,

寄存器中相应的 FIFO 状态位被置为 10。当在另外一次捕捉之前读 FlFO 堆栈时,顶部寄存器中

的旧计数器值被读出,底部寄存器中的新计数器值被压入顶部寄存器,相应的状态位设置为 01。第2次捕捉会将寄存器相应的捕捉中断标志位置 1,如

果中断没有被屏蔽,则会产生一个中断请求。

Page 104: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

(3)第 3次捕捉当 FlFO 堆栈中已有两个计数器值,这时如果又有一个

捕 捉发生,堆栈顶部寄存器中最旧的计数器值被推出并

且丢失,然后堆栈底部寄存器的计数器值被向上压入到顶部寄存器,新捕捉的计数器值被写入底部寄存器,并巳将状态位设置为 11,表明一个或更多的旧计数器值被丢失。第 3次捕捉会将寄存器相应的捕捉中断标志位置 1,如

果中断没有被屏蔽,则会产生一个中断请求。

Page 105: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

7.6.5 捕捉中断当一个捕捉单元执行了一次捕捉,且 FlFO 中至少有一个 捕捉到的计数值时( CAPFlFO 位不为 0),则相应的

中断标志位置1。如果该中断没有被屏蔽,则会产生一个外设中断请求信号。

如果使用了捕捉中断,则可在中断服务程序中读取捕捉 到的一对计数值。如果没有使用中断,也可以通过查询中断标志位和 FlFO 堆栈的状态位来确定是否发生捕捉事件,如果已发生捕

捉事件则可以从相应的捕捉单元的 FlFO 堆栈中读取捕捉到的计数值。

Page 106: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

7.7 正交编码器脉冲电路 (QEP) 正交编码脉冲电路可用于连接光电编码器获得旋转

机械的位置、方向和速度等信息。 QEP 电路可以对 CAP1/QEP1和 CAP2/QEP2( EVA 模块 )CAP4/QEP3和 CAP5/QEP4(EVB 模块 )引脚上的正交编码输入脉冲进行解码和计数。 EVA中QEP 电路的原理框图见图 7-32。

Page 107: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

图 7-32

Page 108: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

7.7.1 正交编码器脉冲电路概述1 正交编码器脉冲引脚两个 QEP 输入引脚由捕捉单元 1和 2(或 3 和 4 ,

对于 EVB 模块 )和QEP 电路共享。因此CAPCONx 寄存器中相应的位必须被正确设置,以使能 QEP 电路,并禁止捕捉单元,这样就把相应的输入引脚分配给正交编码器脉冲 QEP 电路,2 正交编码器脉冲电路时间基准 QEP 电路的时间基准可以由通用定时器 2(EVB 模块

的为通用定时器 4) 提供。

Page 109: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

通用定时器必须设置成定向的增 /减计数模式。并以QEP 电路作为时钟源。

3. 正交编码器脉冲电路的计数 通用定时器 2 或 4 总是从计数器中的当前值开始计数,

因此可以在使能 QEP工作模式前将所需的值装载到所选通用定时器的计数器中。当正交编码器脉冲电路的时钟作为通用定时器的时钟源时,选定的通用

Page 110: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

定时器将忽略输入引脚 TDIRA和 TCLKINA/B( 定时器方向和时钟)。用QEP 电路作为时钟的 GP 定时器的周期、下溢、

上溢和比较中断标志是根据相应的匹配产生的。如果中断没有被屏蔽,则中断标志将产生外设中断请求信号。

Page 111: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

7.7.2 正交编码脉冲的解码正交编码脉冲解码实例如图 7-34 所示:

正交编码脉冲包括两个脉冲序列,是频率变化的正交(相差四分之一周期,即 90) 脉冲序列。当电动机轴上的光学编码器产生正交编码脉冲时,通过检测两个

图 7-34

Page 112: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

序列中哪个序列领先,就可测出电动机的转向。角位置和速度可以通过脉冲计数和脉冲的频率测出。 QEP 电路的方向检测逻辑测定哪个脉冲序列的相位领先,然后产生一个方向信号作为通用定时器 2或4 的方向输入。

如果 CAP1/QEP1(EVB为 CAP4/QEP3) 输入为相位领先的脉冲序列,选定的定时器递增计数。

如果 CAP2/QEP2(EVB为 CAP5/QEP4) 输入为相位领先的脉冲序列,选定的定时器递减计数。

Page 113: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

两个正交编码输入脉冲的两个边沿均被 QEP 电路计数, 因此送到通用定时器 2 或 4的QEP 电路产生的时钟频率是每个输入序列频率的四倍。这个产生的时钟与通用定时器 2或 4 的时钟输入端相连。

Page 114: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

7.7.3 正交编码器脉冲电路的寄存器设置EVA 模块中启动 QEP 电路的寄存器设置:• 如果需要,将所需的值装载到GP 定时器 2的计数

器、周期和比较寄存器中。• 设置 T2CON 寄存器,将通用定时器 2设置成定向

的增 /减计数模式,以 QEP 电路作为时钟源,并使能通用定时器 2。

• 设置 CAPCONA 寄存器以使能 QEP 电路。

Page 115: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

EVB 模块中启动 QEP 电路需作以下设置:• 如果需要,将所需的值装载到GP 定时器 4 的计数

器、周期和比较寄存器中。• 设置 T4CON 寄存器,将通用定时器 2设置成定向

的增 /减计数模式,以 QEP 电路作为时钟源,并使能通用定时器 4 。

• 设置 CAPCONB 寄存器以使能 QEP 电路。

Page 116: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

7.8 事件管理器中断 事件管理器中断分为 3 组:即事件管理器中断组

A 、 B 和 C 。各有中断标志、中断屏蔽寄存器,见表 7-14 。所

有的 EVA 中断及其优先级和分组见表 7-15 。 表 7-14 EV 中的中断标志寄存器和中断屏蔽寄存器

Page 117: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

表 7-15 所有 EVA 中断、优先级和分组

Page 118: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

EVA 中断标志寄存器以 EVA 中断标志寄存器 A(EVAIFRA) 为例,其映射地址为742Fh ,各位描述如下:位 15-11 保留位。读返回 0 ,写无效。位 10 T1OFINT FLAG 。通用定时器 1 的上溢中断标志 读 0 :标志被复位;1 :标志被置位 写 0 :无效 1 :复位标志位位 9 T1UFINT FLAG 。通用定时器 1 的下溢中断标志 读 0 :标志被复位;1 :标志被置位 写 0 :无效 1 :复位标志位

Page 119: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

位 8 T1CINT FLAG 。通用定时器 1 的比较中断标志 读 0 :标志被复位;1 :标志被置位 写 0 :无效 1 :复位标志位位 7 T1PINT FLAG 。通用定时器 1 的周期中断标志 读 0 :标志被复位;1 :标志被置位 写 0 :无效 1 :复位标志位位 6-4 保留位。读返回 0 ,写无效。位 3 CMP3INT FLAG 。比较单元 3 中断标志 读 0 :标志被复位;1 :标志被置位 写 0 :无效 1 :复位标志位

Page 120: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

位 2 CMP2INT FLAG 。比较单元 2 中断标志 读 0 :标志被复位; 1 :标志被置位 写 0 :无效 1 :复位标志位位 1 CMP1INT FLAG 。比较单元 1 中断标志 读 0 :标志被复位; 1 :标志被置位 写 0 :无效 1 :复位标志位位 0 PDPINTA FLAG 。功率驱动保护中断标志 读 0 :标志被复位; 1 :标志被置位 写 0 :无效 1 :复位标志位EVAIFRB、 EVAIFRC 各位意义不再详述

Page 121: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

EVA 中断屏蔽寄存器以 EVA 中断屏蔽寄存器 A(EVAIFRA) 为例,其映射地址为742Ch ,各位描述如下:位 15-11 保留位。读返回 0 ,写无效。位 10 T1OFINT ENABLE 。通用定时器 1 的上溢中断使

能 0 :禁止 1 :使能 位 9 T1UFINT ENABLE 。通用定时器 1 的下溢中断使能 0 :禁止 1 :使能

Page 122: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

位 8 T1CINT ENABLE 。通用定时器 1 的比较中断使能 0 :禁止 1 :使能位 7 T1PINT ENABLE 。通用定时器 1 的周期中断使能 0 :禁止 1 :使能位 6-4 保留位。读返回 0 ,写无效。位 3 CMP3INT ENABLE 。比较单元 3 中断使能 0 :禁止 1 :使能

Page 123: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

位 2 CMP2INT ENABLE 。比较单元 2 中断使能 0 :禁止 1 :使能位 1 CMP1INT ENABLE 。比较单元 1 中断使能 0 :禁止 1 :使能位 0 PDPINTA ENABLE 。功率驱动保护中断使能 0 :禁止 1 :使能EVAIMRB、 EVAIMRC 各位意义不再详述

Page 124: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

7.9 事件管理器应用举例 对直流电动机的控制的实例来说明事件管理器的应用。实例用到了定时器和PWM 电路。介绍直流电动机的控制原理和电路框图 (略 )1 .PWM调压调速原理直流电动机是最早能实现调速的电动机。随着计算机进入控制领域,及新型的电力电子功率元器件

的出现,使采用全控型的开关功率元件进行脉宽调制(Puls Width Modulation ,简称 PWM) 控制方式已成为绝对主流。

Page 125: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

直流电动机转速 n 的表达式如式( 7-2 )所示:

其中, U 为电枢端电压; I 为电枢电流; R 为电枢电路总电阻;Φ 为每极磁通量; K 为电动机结构参数。

直流电动机的转速控制方法可分为两类:( 1 )对励磁磁通进行控制的励磁控制法( 2 )对电枢电压进行控制的电枢控制法。

7 2U IRnK

( )

Page 126: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元
Page 127: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

现在,大多数应用场合都使用电枢控制法。绝大多数直流电动机采用开关驱动方式。开关驱动方式是使半导体功率器件工作在开关状态,通过脉宽调制PWM 来控制电动机电枢电压,实现调速。占空比 α表示了在一个周期 T里,开关管导通的时间与周期的比值。

Page 128: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

α的变化范围为 0≤α≤1 。由此式可知,当电源电压Us 不变的情况下,电枢绕组两端的电压平均值 Uo取决于占空比 α的大小,改变 α值就可以改变端电压的平均值,从而达到调速的目的,这就是 PWM调速原理。2 . PWM调速方法在 PWM调速时,占空比 α是一个重要参数。以下 3

种方法都可以改变占空比的值:(1) 定宽调频法:这种方法是保持 t1 不变,只改变 t2 ,这样使周期 T( 或频率 ) 也随之改变。

Page 129: 第 7 章     事件管理器        7.1  事件管理器模块 概述        7.2  通用定时器        7.3  比较单元

(2)调宽调频法:这种方法是保持 t2 不变,只改变t1 ,这样使周期 T( 或频率 ) 也随之改变。

(3) 定频调宽法:这种方法是使周期 T( 或频率 ) 保持不变,而改变 t1和 t2 。前两种方法由于在调速时改变了控制脉冲的周期 ( 或频率 ) ,当控制脉冲的频率与系统的固有频率接近时,将会引起震荡,因此这两种方法用得很少。目前,在直流电动机的控制中,主要使用定频调宽法。

实际的控制电路与程序见教材( P141 )《结束》