1、第6章 事件管理器本章内容:本章内容:6.1 事件管理器功能概述事件管理器功能概述6.2 通用定时器通用定时器 6.3 比较单元与比较单元与PWM电路电路6.4 空间矢量空间矢量PWM6.6 捕捉单元捕捉单元6.7 正交脉冲编码正交脉冲编码QEP电路电路6.8 事件管理器的中断事件管理器的中断6.9 事件管理器的寄存器事件管理器的寄存器6.10 事件管理器的应用实例事件管理器的应用实例1每个事件管理器包括:每个事件管理器包括: 两个通用定时器两个通用定时器 GPT (General Purpose Timer) 比较单元比较单元(Compare Unit)与与PWM (Pulse Width
2、Modulation) 电路电路 捕获单元(捕获单元(Capture) 正交脉冲编码电路正交脉冲编码电路QEP (Quadrature Encoder Pulse ) 240 x DSP 提供两个完全相同的提供两个完全相同的事件管理器模块事件管理器模块EVA/EVB。事件管理器非常适用于运动控制和电机控制领。事件管理器非常适用于运动控制和电机控制领域。域。6.1 事件管理器功能概述事件管理器功能概述2事件管理器事件管理器A功能框图功能框图3LF2407A 两个事件管理器模块:两个事件管理器模块:EVA和和EVB。每个事件管理器模块包括:两个通用定时器每个事件管理器模块包括:两个通用定时器(GP
3、)、三、三个比较单元、三个捕捉单元以及两个正交编码脉冲个比较单元、三个捕捉单元以及两个正交编码脉冲输入电路(输入电路(QEP)。EVA和和EVB功能相同,只是名称不同。功能相同,只是名称不同。通用定时器功能:具有计数通用定时器功能:具有计数/定时功能,可以为各种应定时功能,可以为各种应用提供时基,并可以产生比较输出用提供时基,并可以产生比较输出/PWM信号。信号。4比较单元功能:比较单元功能:三个比较单元可以输出三个比较单元可以输出3组组(6路路)比较输出比较输出/PWM信号,且具信号,且具有死区控制等功能。有死区控制等功能。捕捉单元功能:捕捉单元功能:三个捕捉单元可以记录输入引脚上信号跳变的
4、时刻。三个捕捉单元可以记录输入引脚上信号跳变的时刻。QEP电路功能:电路功能:具有直接连接光电编码器脉冲的能力,可获得旋转机械的具有直接连接光电编码器脉冲的能力,可获得旋转机械的速度和方向等信息。速度和方向等信息。事件管理器的设计,使得事件管理器既可以实时控制电机事件管理器的设计,使得事件管理器既可以实时控制电机(由(由PWM电路实现),同时还可以监视电机的运行状态电路实现),同时还可以监视电机的运行状态(由(由QEP电路实现)。电路实现)。5事件管理器引脚事件管理器引脚输入跳变脉冲宽度至少保持两个输入跳变脉冲宽度至少保持两个CPU时钟周期才能被识别。时钟周期才能被识别。6通用定时器通用定时器
5、x包括以下部件包括以下部件: (EVA: x=1, 2; EVB: x=3, 4)16位可读写的位可读写的定时器计数器定时器计数器 TxCNT 16位可读写的位可读写的定时器周期寄存器定时器周期寄存器 TxPR 16位可读写的位可读写的定时器比较寄存器定时器比较寄存器 TxCMPR16位可读写的位可读写的定时器控制寄存器定时器控制寄存器 TxCON6.2 通用定时器通用定时器 1. 通用定时器的功能通用定时器的功能7通用定时器通用定时器 GPT框图框图82. 通用定时器的输入与输出通用定时器的输入与输出通用定时器的输入包括:通用定时器的输入包括: 内部内部CPU时钟。时钟。 外部时钟外部时钟T
6、CLKINA/B,最高频率不超过,最高频率不超过CPU时钟的时钟的1/4。 方向输入方向输入TDIRA/B,控制定时器增,控制定时器增/减计数的方向。减计数的方向。 复位信号复位信号RESET。 用于用于QEP电路时,电路时,QEP产生定时器的时钟和方向。产生定时器的时钟和方向。通用定时器的输出包括:通用定时器的输出包括: 通用定时器比较输出通用定时器比较输出TxCMP, x=1,2,3,4。 为为ADC模块提供模块提供ADC转换启动信号。转换启动信号。 为自身比较逻辑和比较单元提供下溢、上溢、比较匹配和为自身比较逻辑和比较单元提供下溢、上溢、比较匹配和周期匹配信号。周期匹配信号。 计数方向指
7、示位。计数方向指示位。9 定时器控制寄存器定时器控制寄存器TxCON(x=14)D15-14: Free, Soft 仿真控制位。仿真控制位。 00: 一旦仿真悬挂,立即停止。一旦仿真悬挂,立即停止。 01: 一旦仿真悬挂,在当前定时器周期结束后停止。一旦仿真悬挂,在当前定时器周期结束后停止。 10,11: 操作不受仿真悬挂影响。操作不受仿真悬挂影响。D13: ReservedD12-11:TMOD1,TMODE0 计数模式。连续增减、连续增、定向增减计数模式。连续增减、连续增、定向增减00:停止:停止/保持。保持。01:连续增:连续增/减计数模式减计数模式(Continuous up/dow
8、n count mode)。10:连续增计数模式:连续增计数模式(Continuous up count mode)。11:定向增:定向增/减计数模式减计数模式(Directional up/down count mode)。3. 通用定时器的寄存器通用定时器的寄存器10D10-8:TPS2-TPS0输入时钟预定标系数输入时钟预定标系数1/2n000:x/1 001:x/2010:x/4 011:x/8100:x/16 101:x/32110:x/64 111:x/128 (x=CPU时钟时钟)D7:T2SW1/T4SW3定时器定时器2,4周期寄存器周期寄存器选择位。选择位。0:使用自身的定时
9、器使能位:使用自身的定时器使能位(TENABLE)。1:使用:使用T1CON(对于对于EVA)或或T3CON(对于对于EVB)中的定时器使能位来使中的定时器使能位来使能或禁止操作,忽略自身的定时器使能位。能或禁止操作,忽略自身的定时器使能位。D6:TENBLE定时器定时器使能位。使能位。 0:禁止定时器操作。禁止定时器操作。 1:使能定时器操作。使能定时器操作。D5-4:TCLKS1,TCLKS0 时钟源选择。时钟源选择。00:内部:内部(HSPCLK)。01:外部:外部(TCLKINx,x=A,B)。10:保留。:保留。11:正交脉冲编码电路:正交脉冲编码电路(QEP)。11D3-2:TCL
10、D1,TCLD0定时器比较寄存器的重载条件。定时器比较寄存器的重载条件。00:计数器值为:计数器值为0时,重装载。时,重装载。01:计数器值为:计数器值为0或等于周期寄存器值时,重装载。或等于周期寄存器值时,重装载。10:立即重装载。:立即重装载。11:保留。:保留。D1:TECMPR定时器比较使能位。定时器比较使能位。0:禁止定时器比较操作。:禁止定时器比较操作。1:使能定时器比较操作。:使能定时器比较操作。D0:SELT1PR /SELT3PR周期寄存器周期寄存器选择。选择。0:使用自身的周期寄存器。:使用自身的周期寄存器。1:使用:使用T1PR(在在EVA模块模块)或或T3PR(在在EV
11、B模块模块)作为周期寄存器,而作为周期寄存器,而忽略自身的周期寄存器。忽略自身的周期寄存器。12全局通用定时器控制寄存器全局通用定时器控制寄存器GPTCONA/BD15,ReservedD14:T2STAT 定时器定时器2的状态。的状态。0:减计数,:减计数,1:增计数:增计数D13:T1STAT 定时器定时器1的状态。的状态。0:减计数,:减计数,1:增计数:增计数D12/D11:T2/1TRIPE:T2/1CTRIP使能位。使能位。0:禁止禁止 1:使能。使能。 D10-9:T2TOADC 定时器定时器2启动启动AD转换事件。转换事件。00:不启动模数转换。:不启动模数转换。01:下溢中断
12、标志启动模数转换。:下溢中断标志启动模数转换。10:周期匹配中断标志启动模数转换。:周期匹配中断标志启动模数转换。11:比较匹配中断标志启动模数转换。:比较匹配中断标志启动模数转换。D8-7:T1TOADC 定时器定时器1启动启动AD转换事件。与转换事件。与T1相似。相似。13D6:TCOMOE 比较输出允许。比较输出允许。0:定时器比较输出:定时器比较输出T1/2PWM_T1/2CMP置成高阻态。置成高阻态。1:定时器比较输出,:定时器比较输出,T1/2PWM_T1/2CMP由独立定时器比较逻由独立定时器比较逻辑驱动。辑驱动。D5/D4:T2/1CMPOE:定时器:定时器2/1比较输出使能。
13、比较输出使能。 0:定时器:定时器2/1比较输出置成高阻态。比较输出置成高阻态。1:定时器:定时器2/1比较输出由定时器比较输出由定时器2比较逻辑驱动。比较逻辑驱动。D3-2:T2PIN 定时器定时器2比较输出极性。比较输出极性。00:强制低电平。:强制低电平。01:低电平有效。:低电平有效。10:高电平有效。:高电平有效。11:强制高电平。:强制高电平。D1-0:T1PIN定时器定时器1比较输出极性。与比较输出极性。与T1相似。相似。14通用定时器比较寄存器通用定时器比较寄存器(TxCMPR, x=14) 比较寄存器中存放了一个常数,它和通用定时器比较寄存器中存放了一个常数,它和通用定时器的
14、计数器值不断比较,当比较匹配时,将产生下列事的计数器值不断比较,当比较匹配时,将产生下列事件:件:根据根据GPTCONA/B设置的模式,相关的比较输出引脚设置的模式,相关的比较输出引脚将产生跳变。将产生跳变。相应的中断标志位置位。相应的中断标志位置位。如果中断未被屏蔽,则产生一个外设中断请求。如果中断未被屏蔽,则产生一个外设中断请求。通过设置通过设置TxCON的相关位,可以使能或禁止比较操作的相关位,可以使能或禁止比较操作。 15 通用定时器周期寄存器通用定时器周期寄存器(TxPR, x=14) 周期寄存器的值决定了定时器的周期。当周期寄存器周期寄存器的值决定了定时器的周期。当周期寄存器的值和
15、定时器的计数器值相等时,根据计数器所使用的计的值和定时器的计数器值相等时,根据计数器所使用的计数方式,通用定时器复位为数方式,通用定时器复位为0,或继续向下递减计数。,或继续向下递减计数。 通用定时器比较寄存器和周期寄存器的双缓冲通用定时器比较寄存器和周期寄存器的双缓冲 通用定时器的比较寄存器通用定时器的比较寄存器TxCMPR和周期寄存器和周期寄存器TxPR都带有影子寄存器,在一个周期的任何时刻都可以对这两个都带有影子寄存器,在一个周期的任何时刻都可以对这两个寄存器进行读寄存器进行读/写。然而当进行写操作时,新值写到影子寄写。然而当进行写操作时,新值写到影子寄存器。对于比较寄存器,只有当存器。
16、对于比较寄存器,只有当TxCON寄存器指定的特定寄存器指定的特定定时器事件发生时,影子寄存器中的值才加载到比较寄存器定时器事件发生时,影子寄存器中的值才加载到比较寄存器中。对于周期寄存器,只有当计数寄存器中。对于周期寄存器,只有当计数寄存器TxCNT为为0时,影时,影子寄存器的值才能重新加载到周期寄存器。子寄存器的值才能重新加载到周期寄存器。 164. 通用定时器的比较输出通用定时器的比较输出 通用定时器的比较输出可以高电平有效、低电通用定时器的比较输出可以高电平有效、低电平有效、强制高或强制低,与平有效、强制高或强制低,与GPTCONA/B控制寄控制寄存器的设置有关。当比较输出高存器的设置有
17、关。当比较输出高(低低)电平有效同时电平有效同时在第一次比较匹配时,比较输出由低变为高在第一次比较匹配时,比较输出由低变为高(由高变由高变为低为低)。如果通用定时器配置为递增。如果通用定时器配置为递增/递减计数模式,递减计数模式,则在第二次比较匹配或周期匹配时,比较输出从高则在第二次比较匹配或周期匹配时,比较输出从高至低至低(由低至高由低至高)。当定时器的比较输出设置为强制。当定时器的比较输出设置为强制高高(低低)时,它立即变为高时,它立即变为高(低低)电平。电平。 175. 定时器计数方向定时器计数方向寄存器寄存器GPTCONA/B中的相应位反映了通用定时器中的相应位反映了通用定时器的计数方
18、向:的计数方向: 1 代表递增计数;代表递增计数; 0 代表递减计数。代表递减计数。6. 通用定时器的时钟通用定时器的时钟 可以采用内部可以采用内部CPU时钟或外部时钟作为时钟源,外时钟或外部时钟作为时钟源,外部时钟通过部时钟通过TCLKINA/B引脚提供。外部时钟的频率必须引脚提供。外部时钟的频率必须小于或等于内部小于或等于内部CPU频率的频率的1/4。在定向增。在定向增/减计数模式下,减计数模式下,通用定时器通用定时器2(EVA)和通用定时器和通用定时器4(EVB)可以使用可以使用QEP电电路,此时路,此时QEP电路为定时器提供时钟和方向输入。电路为定时器提供时钟和方向输入。 187. 通
19、用定时器的同步通用定时器的同步适当地配置适当地配置T2CON控制寄存器,可实现通用定时器控制寄存器,可实现通用定时器2与通用与通用定时器定时器1的同步。方法如下:的同步。方法如下: 将将T2CON中的中的T2SWT1位置位置1,使定时器,使定时器2使用定时器使用定时器1的的使能位使能位TENABLE启动定时器,这样即可实现两个计数器的启动定时器,这样即可实现两个计数器的同步启动。同步启动。 在启动同步操作之前,用不同的初始化值初始化通用定时在启动同步操作之前,用不同的初始化值初始化通用定时器器1和定时器和定时器2中的计数器。中的计数器。 通过将寄存器通过将寄存器T2CON的的SELT1PR位置
20、位,使通用定时器位置位,使通用定时器2使用通用定时器使用通用定时器1的周期寄存器作为自己的周期寄存器,而的周期寄存器作为自己的周期寄存器,而不用自己本身的周期寄存器。不用自己本身的周期寄存器。198. 用一个定时器事件启动用一个定时器事件启动A/D转换转换 在在GPTCONA/B寄存器中可设置寄存器中可设置A/D转换器的启动信号转换器的启动信号由哪个通用定时器事件提供,例如下溢中断、周期匹配中断由哪个通用定时器事件提供,例如下溢中断、周期匹配中断和比较匹配中断,这样就可以在没有和比较匹配中断,这样就可以在没有CPU干预的情况下,干预的情况下,实现通用定时器事件和实现通用定时器事件和A/D转换器
21、开始转换之间的同步。转换器开始转换之间的同步。 9. 仿真悬挂时的通用定时器操作仿真悬挂时的通用定时器操作 在仿真悬挂时,通用定时器的控制寄存器定义了通用在仿真悬挂时,通用定时器的控制寄存器定义了通用定时器的操作。当在线仿真产生仿真中断时,设置相关的定时器的操作。当在线仿真产生仿真中断时,设置相关的控制位可以使通用计数器继续计数,也可以设置使计数立控制位可以使通用计数器继续计数,也可以设置使计数立即停止或当前计数周期结束后停止。即停止或当前计数周期结束后停止。2010. 通用定时器中断通用定时器中断 在通用定时器的在通用定时器的EVAIFRA、EVAIFRB、EVBIFRA和和EVBIFRB寄
22、存器中有寄存器中有16个中断标志,当发生下列事件个中断标志,当发生下列事件时,每个通用定时器可产生时,每个通用定时器可产生4个中断。个中断。 上溢上溢(Overflow), TxOFINT(x=14)。 下溢下溢(Underflow), TxUFINT(x=14)。 比较匹配比较匹配(Compare match), TxCINT(x=14)。 周期匹配周期匹配(Period match), TxPINT(x=14)。21通用定时器的有四种工作模式通用定时器的有四种工作模式 停止停止/保持模式保持模式 连续增计数模式连续增计数模式 定向增定向增/减模式减模式 连续增连续增/减模式减模式11. 通
23、用定时器的计数操作模式通用定时器的计数操作模式22通用定时器连续增计数模式通用定时器连续增计数模式23通用定时器定向增通用定时器定向增/减计数模式减计数模式24通用定时器通用定时器 连续增连续增/减模式减模式25通用定时器连续增计数模式下的比较通用定时器连续增计数模式下的比较/PWM输出输出GP Timer Compare/PWM Output in Up/Down Counting Modes12. 通用定时器的比较操作通用定时器的比较操作非对称波形的产生非对称波形的产生 26通用定时器连续增减计数模式下的比较通用定时器连续增减计数模式下的比较/PWM输出输出对称波形的产生对称波形的产生 2
24、7/例例6-1,已知通用已知通用I/O引脚引脚IOPE14通过驱动电路连接通过驱动电路连接4个个LED指指/示灯。编程利用定时器示灯。编程利用定时器T1中断方式定时中断方式定时1ms,令,令4个指示灯循个指示灯循/环亮灭环亮灭,每每200ms切换切换1次。次。CLKIN=20MHz,CLKOUT=40MHz。#include “f2407_c.h”/*包含头文件包含头文件*/void interrupt gpt1( );/中断服务函数声明中断服务函数声明void gpt1_init(); /定时器定时器T1初始化函数声明初始化函数声明void Led();/指示亮灭函数声明指示亮灭函数声明un
25、signed int nCount=1;/全局变量声明全局变量声明main() SCSR1=0 x02FC; /*CPU系统时钟系统时钟 CLKOUT=20*2=40MHz, CLKIN=20MHz */WDCR=0 x006F;/*关闭看门狗关闭看门狗*/ IFR=0 xFFFF;/*清除中断标志清除中断标志 */IMR=0 x0002;/*使能中断使能中断2*/ 28MCRC=MCRC & 0 xFF00; /IOPE07配置为配置为I/O口模式口模式PEDATDIR=0 xFF00; /所有所有LED=0, asm( CLRC INTM );/允许中断允许中断gpt1_init(); /
26、定时器定时器T1初始化初始化while(1) Led();/循环循环void Led()/指示亮灭函数指示亮灭函数 if(nCount=400) /400ms PEDATDIR=PEDATDIR & 0 xFF00; /IOPE1,2,3,4=0;LED全灭全灭 if(nCount=600) /600msPEDATDIR=PEDATDIR & 0 xFF00;/IOPE1,2,3,4=0;LED全灭全灭 PEDATDIR=PEDATDIR | 0 x0002; /IOPE=1;LED1亮亮 29if(nCount=800) /800ms PEDATDIR=PEDATDIR & 0 xFF00;
27、 /IOPE1,2,3,4=0;LED全灭全灭 PEDATDIR=PEDATDIR | 0 x4; /IOPE2=1;LED2亮亮 if(nCount=1000) /1000ms PEDATDIR=PEDATDIR & 0 xFF00; /IOPE1,2,3,4=0;LED全灭全灭 PEDATDIR=PEDATDIR | 0 x8; /IOPE3=1;LED3亮亮 if(nCount=1200) /1200ms PEDATDIR=PEDATDIR & 0 xFF00; /IOPE1,2,3,4=0;LED全灭全灭 PEDATDIR=PEDATDIR | 0 x10; /IOPE3=1;LED4
28、亮亮 if(nCount=1400) /1400msPEDATDIR=PEDATDIR | 0 xFF; /IOPE1,2,3,4=1;LED全亮全亮if(nCount=1400) nCount=1; 30void gpt1_init() /定时器定时器T1初始化函数定义初始化函数定义 EVAIMRA=0 x0080;/定时器定时器1周期中断使能周期中断使能 EVAIFRA=0 xFFFF;/清除中断标志清除中断标志 GPTCONA=0 x0000;T1PR=2500;/定时器定时器1周期寄存器值周期寄存器值,定时定时0.4us*2500=1ms T1CNT=0; /*计数初值计数初值=0*/
29、T1CON=0 x144E; /连续增模式连续增模式, TPS定标系数定标系数1/16,2.5MHz,T1启动启动 31void interrupt gpt1() /*定时器定时器1中断服务函数中断服务函数*/if (PIVR=0 x27)T1CNT=0; nCount+; EVAIFRA=0 x80; asm( CLRC INTM ); /直接返回的中断服务函数直接返回的中断服务函数void interrupt nothing( ) return; 32;复位和中断向量定义文件复位和中断向量定义文件vectors.asm .titlevectors.asm .ref_nothing;直接返回
30、的中断服务程序符号直接返回的中断服务程序符号.ref_c_int0;复位向量符号复位向量符号.ref_gpt1;T1PINT中断向量符号中断向量符号sect.vectorsRESET:B _c_int0 ; 复位向量复位向量 INT1:B _nothing; 中断中断INT1INT2:B _gpt1; 中断中断INT2INT3:B _nothing; 中断中断INT3INT4:B _nothing; 中断中断INT4INT5:B _nothing; 中断中断INT5INT6:B _nothing; 中断中断INT6336.3 比较单元与比较单元与PWM电路电路1. 比较单元比较单元 每个事件管
31、理器有三个全比较单元。每个单元都有两个每个事件管理器有三个全比较单元。每个单元都有两个PWM输出。比较单元的时基由通用定时器提供。包括:输出。比较单元的时基由通用定时器提供。包括:3个个16位全比较寄存器位全比较寄存器(对于对于EVA是是CMPR1, 2, 3;对于;对于EVB是是CMPR4, 5, 6),它们各带一个影子寄存器。,它们各带一个影子寄存器。1个个16位的比较控制寄存器位的比较控制寄存器(对于对于EVA是是COMCONA;对;对于于EVB是是COMCONB)。1个个16位的比较动作控制寄存器位的比较动作控制寄存器(对于对于EVA是是ACTRA;对;对于于EVB是是ACTRB)。6
32、个个PWM输出脚,对于输出脚,对于EVA是是PWMy,y=16;对于;对于EVB是是PWMz,z=712。控制和中断逻辑。控制和中断逻辑。 34比较单元框图比较单元框图352. 与比较单元相关的与比较单元相关的PWM电路电路 PWM电路包括如下功能单元:电路包括如下功能单元: 非对称非对称/对称波形发生器。对称波形发生器。 可编程的死区单元。可编程的死区单元。 输出逻辑。输出逻辑。 空间矢量空间矢量PWM状态机。状态机。 比较单元的比较单元的PWM产生和相关的产生和相关的PWM电路由以下电路由以下寄存器控制寄存器控制(对于对于EVA模块模块): T1CON、COMCONA、ACTRA和和DBT
33、CONA。 36PWM电路框图电路框图373. 事件管理器的事件管理器的PWM产生能力产生能力 每个事件管理器模块都可产生每个事件管理器模块都可产生PWM波形。波形。5个独立个独立PWM输出,其中输出,其中3个由比较单元产生,个由比较单元产生,2个由通用定时器比个由通用定时器比较单元产生。较单元产生。另外还有另外还有3个附加的个附加的PWM输出,与比较单元产生的输出,与比较单元产生的PWM输出有关。输出有关。PWM两个互补输出脉冲之间可设置死区,死区时间可编程。可设置两个互补输出脉冲之间可设置死区,死区时间可编程。可设置最小死区的宽度为一个最小死区的宽度为一个CPU时钟周期。时钟周期。最小的脉
34、冲宽度是一个最小的脉冲宽度是一个CPU时钟周期,脉冲宽度调最小量也是一个时钟周期,脉冲宽度调最小量也是一个CPU时钟周期。时钟周期。PWM最大分辨率为最大分辨率为16位。位。可快速改变可快速改变PWM的载波频率的载波频率(双缓冲的周期寄存器双缓冲的周期寄存器)。可快速改变可快速改变PWM的脉宽的脉宽(双缓冲的比较寄存器双缓冲的比较寄存器)。功率驱动保护中断。功率驱动保护中断。能够产生可编程的非对称、对称和空间矢量能够产生可编程的非对称、对称和空间矢量PWM波形。波形。比较寄存器和周期寄存器可自动装载,减小比较寄存器和周期寄存器可自动装载,减小CPU开销。开销。384. 可编程的死区单元可编程的
35、死区单元EVA模块和模块和EVB模块都有自己的可编程死区控制单元,模块都有自己的可编程死区控制单元,死区单元有以下特点:死区单元有以下特点:一个一个16位可读写死区控制寄存器位可读写死区控制寄存器DBTCONA或或DBTCONB。一个一个16位输入时钟预定标器:位输入时钟预定标器:x/1、x/2、x/4、x/8、x/16及及x/32。CPU时钟输入。时钟输入。3个个4位减计数的定时器。位减计数的定时器。控制逻辑。控制逻辑。39 三相逆变桥原理图三相逆变桥原理图40死区单元框图死区单元框图415. 输出逻辑输出逻辑 输出逻辑电路决定了比较匹配时,输出引脚输出逻辑电路决定了比较匹配时,输出引脚PW
36、Mx(x=112)的输出极性和需要执行的操作。与每个的输出极性和需要执行的操作。与每个比较单元相关的输出可被规定为低电平有效、高电平比较单元相关的输出可被规定为低电平有效、高电平有效、强制低或者强制高。可通过适当地配置有效、强制低或者强制高。可通过适当地配置ACTR寄存器来确定寄存器来确定PWM输出的极性和操作。输出的极性和操作。 输出逻辑框图输出逻辑框图426. PWM波形的产生波形的产生 PWM信号是一系列的可变脉宽的脉冲序列,此脉信号是一系列的可变脉宽的脉冲序列,此脉冲的周期称为冲的周期称为PWM载波周期,它的倒数称为载波周期,它的倒数称为PWM载波载波频率。频率。PWM脉冲宽度可根据序
37、列的期望值逐个改变。脉冲宽度可根据序列的期望值逐个改变。 在电机控制系统中,在电机控制系统中,PWM信号用于控制功率开关信号用于控制功率开关器件的导通和关断,为电机绕组提供期望的电流。电机器件的导通和关断,为电机绕组提供期望的电流。电机绕组相电流的频率和大小可以控制电机的转速和转矩。绕组相电流的频率和大小可以控制电机的转速和转矩。这样加到电机上的控制电压或电流是调制信号,而且此这样加到电机上的控制电压或电流是调制信号,而且此调制信号的频率一般要比调制信号的频率一般要比PWM载波频率低。载波频率低。 43 使用比较单元以及相关电路产生使用比较单元以及相关电路产生PWM波形,需要对事波形,需要对事
38、件管理器的寄存器进行配置。件管理器的寄存器进行配置。 设置和装载寄存器设置和装载寄存器ACTRx(x=A,B); 使能死区功能,设置和装载寄存器使能死区功能,设置和装载寄存器DBTCONx(x=A,B); 初始化寄存器初始化寄存器CMPRx(x=16); 设置和装载寄存器设置和装载寄存器COMCONx (x=A,B); 设置和装载寄存器设置和装载寄存器T1CON(对对EVA)或或T3CON(对对EVB),启动操作;启动操作; 用计算的新值更新用计算的新值更新CMPRx。44非对称非对称PWM波形的产生波形的产生7. 非对称非对称PWM波形产生波形产生 边沿触发或非对称边沿触发或非对称PWM信号
39、的特点是不关于信号的特点是不关于PWM周期周期中心对称。脉冲宽度只能从脉冲一侧开始变化。中心对称。脉冲宽度只能从脉冲一侧开始变化。 为了产生非对称的为了产生非对称的PWM信号,通用定时器可设置为连信号,通用定时器可设置为连续增计数模式。续增计数模式。 45对称对称PWM波形的产生波形的产生8. 对称对称PWM波形产生波形产生对称对称PWM信号关于信号关于PWM周期中心对称。周期中心对称。 为了产生对称的为了产生对称的PWM信号,通用定时器可设置为连续信号,通用定时器可设置为连续增减计数模式。增减计数模式。 46(2) 比较控制寄存器比较控制寄存器A/B( Compare Control Reg
40、ister, COMCONA/B) D15: CENABLE 比较使能位。比较使能位。1:使能比较操作。:使能比较操作。 D14-13: CLD1/CLD0 比较寄存器重载条件。比较寄存器重载条件。00:当:当T1CNT=0时时(即下溢即下溢),重装载。,重装载。01:当:当T1CNT=0或或T1PR时时(即下溢或周期匹配即下溢或周期匹配),重装载。,重装载。10:立即重装载。:立即重装载。11:保留。:保留。D12: SVENABLE 空间矢量空间矢量PWM模式位。模式位。1:使能空间矢量:使能空间矢量PWM模式。模式。 9. 比较单元寄存器比较单元寄存器47 D11-10: ACTRLD1
41、/ACTRLD0 方式控制寄存器重载条件。方式控制寄存器重载条件。00:当:当T1CNT=0时时(即下溢即下溢),重装载。,重装载。01:当:当T1CNT=0或或T1PR时时(即下溢或周期匹配即下溢或周期匹配),重装载。,重装载。10:立即重装载。:立即重装载。11:保留。:保留。 D9: FCOMPOE 比较输出使能位。比较输出使能位。0:全比较输出:全比较输出PWM1/2/3/4/5/6为高阻态。为高阻态。1:全比较输出:全比较输出PWM1/2/3/4/5/6由相应的比较逻辑驱动。由相应的比较逻辑驱动。 D8: PDPINTA STATUS 当前当前PDPINT引脚的状态。引脚的状态。 D
42、7: FCMP3OE:比较单元比较单元3输出使能位。输出使能位。0:PWM1/2为高阻态。为高阻态。1:正常驱动正常驱动 D6: FCMP2OE:全比较单元:全比较单元2输出使能位。输出使能位。 D5: FCMP2OE:全比较单元:全比较单元1输出使能位。输出使能位。 D43: 保留位。保留位。 D2: C3TRIPE:C3TRIP使能位。使能位。 0:C3TRIP禁止。禁止。 1:C3TRIP使能。使能。 D1: C2TRIPE:C2TRIP使能位。使能位。 D0: C1TRIPE:C1TRIP使能位。使能位。 48比较控制寄存器比较控制寄存器B49 比较动作控制寄存器比较动作控制寄存器(C
43、ompare Action Control Register)也称为比较模式控制寄存器。如果也称为比较模式控制寄存器。如果COMCON(15)位使能了比较操作,则寄存器位使能了比较操作,则寄存器ACTRA或或ACTRB控制控制6个比较输出引脚个比较输出引脚(PWMx:对:对ACTRA,x=16;对;对ACTRB,x=712)的比较输出动作。寄存器的比较输出动作。寄存器ACTRA和和ACTRB带双缓冲。带双缓冲。COMCONx(x=A, B)中定中定义了义了ACTRA和和ACTRB的重装载条件。的重装载条件。ACTRA和和ACTRB中也包含空间矢量中也包含空间矢量PWM操作所需的操作所需的SVR
44、DIR、D2、D1和和D0位。位。 (2)比较动作控制寄存器)比较动作控制寄存器50比较动作控制寄存器比较动作控制寄存器A( Compare Action Control Register, ACTRA ) D15: SVDIR 空间矢量空间矢量PWM旋转方向位。旋转方向位。 0: CW; 1: CCW。D14-12: D2-D0 基本的空间矢量位。基本的空间矢量位。D11-10: CMP6ACT1/0 引脚引脚PWM6的比较输出方式选择位。的比较输出方式选择位。00-强制低,强制低,01-低有效,低有效, 10-高有效,高有效,11-强制高强制高D9-8: CMP5ACT1/0D7-6: C
45、MP4ACT1/0D5-4: CMP3ACT1/0D3-2: CMP2ACT1/0D1-0: CMP1ACT1/051(3) 死区控制寄存器死区控制寄存器 DBTCONA/B设置设置PWM电路的死区时间。电路的死区时间。位位118 DBT3DBT0:死区定时器周期。:死区定时器周期。00001111位位7 EDBT3:死区定时器:死区定时器3使能位。使能位。1:使能。:使能。 位位6 EDBT2:死区定时器:死区定时器2使能位使能位 。位位5 EDBT1:死区定时器:死区定时器1使能位。使能位。位位42 DBTPS2DBTPS0:死区定时器的预分频值。:死区定时器的预分频值。 000111:x
46、/1,x/2,x/4,x/8,x/16,x/32,x/32,x/32 位位10 保留位。保留位。 52/例例6-2, 2407 DSP的的CPU时钟频率为时钟频率为40MHz,编程使比较单元产生,编程使比较单元产生1对对/PWM信号信号PWM1PWM2,定时器,定时器1作为比较单元的时钟基准。作为比较单元的时钟基准。 #include “f2407_c.h”/*包含片内外设寄存器头文件包含片内外设寄存器头文件*/main( )asm( setc INTM); /*关中断关中断 */SCSR1=0 x83FE; /CLKIN=20 MHz, CLKOUT=40MHzWDCR=0 x0E8;/禁止
47、看门狗禁止看门狗IMR=0; /*屏蔽所有可屏蔽中断屏蔽所有可屏蔽中断 */ IFR=0 x0ffff; /*清除中断标志清除中断标志 */ MCRA|=0 x00c0; /*IOPA6,7被配置为被配置为PWM1,2 */ ACTRA=0 x06; /*PWM2低有效,低有效,PWM1高有效高有效 */ DBTCONA=0 x00; /*不使能死区控制不使能死区控制 */ CMPR1=0 x3000; /*比较单元比较单元1设置,设置,PWM信号占空比信号占空比0.5*/ 53T1PR=0 x6000; /*设置设置T1周期寄存器,定时时间周期寄存器,定时时间614s, 频率频率1.6kHz
48、*/ COMCONA=0 x8200; /*使能比较操作使能比较操作*/ T1CON=0 x1040; /*定时器定时器1为连续增计数模式,分频系数为为连续增计数模式,分频系数为1,启动定时器启动定时器1 */ for(;) ;54 三相逆变桥原理图三相逆变桥原理图6.4 空间矢量空间矢量PWM 空间矢量空间矢量PWM(Space Vector PWM, SVPWM)是实现三是实现三相逆变器的功率管控制的一种方法。这种方法能够保证在电相逆变器的功率管控制的一种方法。这种方法能够保证在电机的定子绕组中产生较小的电流谐波,与采用正弦调制的方机的定子绕组中产生较小的电流谐波,与采用正弦调制的方法相比
49、,空间矢量法相比,空间矢量PWM能够提高直流侧电压的利用率。能够提高直流侧电压的利用率。 1. 三相逆变电路三相逆变电路552. 逆变器的开关状态和基本空间矢量逆变器的开关状态和基本空间矢量基本空间矢量和开关模式基本空间矢量和开关模式 563. 用基本空间矢量逼近电机电压用基本空间矢量逼近电机电压若需要任意位置和大小的电机电压若需要任意位置和大小的电机电压Uout,可以用,可以用相邻的两个矢量的组合来逼近:相邻的两个矢量的组合来逼近: Uout=T1 /Tp Ux+ T2 /Tp Ux+60 +T0 (O000或或O111)其中,其中,T0=Tp-T1-T2 , Tp是是PWM载波周期。载波周
50、期。 57对称空间矢量对称空间矢量PWM波形波形 58 捕获单元用于捕获输入引脚电平的变化并记录其发生捕获单元用于捕获输入引脚电平的变化并记录其发生变化的时间。每个事件管理器有变化的时间。每个事件管理器有3个捕获单元。每个捕获个捕获单元。每个捕获单元有一个与之对应的捕获输入引脚。单元有一个与之对应的捕获输入引脚。 为了使捕获单元正常工作,应设置如下寄存器为了使捕获单元正常工作,应设置如下寄存器: 1) 初始化捕获单元初始化捕获单元FIFO堆栈堆栈CAPFIFOx, 并将适当的并将适当的状态位清零。状态位清零。 2)初始化)初始化TxCON以设置所选择的通用定时器的一种以设置所选择的通用定时器的