《9事件管理器模块1.ppt》由会员分享,可在线阅读,更多相关《9事件管理器模块1.ppt(179页珍藏版)》请在三一办公上搜索。
1、第九章 事件管理器模块,最重要、最复杂的模块,可为所有类型电机提供控制技术。,9.1 事件管理器模块概述,9.1.1 事件管理器结构,LF2407A 两个事件管理器模块:EVA和EVB。,每个事件管理器模块包括:两个通用定时器(GP)、三个比较单元、三个捕捉单元以及两个正交编码脉冲输入电路(QEP)。,EVA和EVB功能相同,只是名称不同。,双胞胎?,通用定时器功能:,具有计数定时功能,可以为各种应用提供时基,并可以产生比较输出/PWM信号。,9.1 事件管理器模块概述,EVA:T1PWM/T1CMP T2PWM/T2CMP,EVB:T3PWM/T3CMP T4PWM/T4CMP,比较单元功能
2、:,9.1 事件管理器模块概述,EVA:比较1:PWM1/2 比较2:PWM3/4 比较3:PWM5/6,EVB:比较4:PWM7/8 比较5:PWM9/10 比较6:PWM11/12,主要用于产生PWM、带有死区控制的PWM波及空间矢量PWM波(SVPWM)。,事件管理器(EVA)模块中有3个比较单元(比较单元1、2和3),事件管理器(EVB)模块中也有3个比较单元(比较单元4、5和6)。每个比较单元都有2个相关的PWM输出。比较单元的时钟基准由通用定时器1和通用定时器3提供。,三个捕捉单元可以记录输入引脚上信号跳变的时刻。,捕捉单元功能:,9.1 事件管理器模块概述,TMS320LF240
3、7事件管理器共有6个捕获单元,事件管理器A的捕获单元有CAP1、CAP2、CAP3,事件管理器B的捕获单元有CAP4、CAP5、CAP6,当捕获输入引脚上检测到所选的跳变时,所选的GP定时器的计数值被捕获并存入到一个2级深的FIFO堆栈中。,事件管理器的特殊设计,使得事件管理器既可以实时控制电机(由PWM电路实现),同时还可以监视电机的运行状态(由QEP电路实现)。对多种电机控制应用实现闭环控制。,QEP电路功能:,DSP内包括了正交编码脉冲电路,具有直接连接光电编码器脉冲的能力,可获得旋转机械的速度和方向等信息。,光电编码器?,光电编码器,左图为四位二进制码盘,码盘上各圆圆环分别代表一位二进
4、制的数字码道,在同一个码道上印制黑(图中画成红色)白等间隔图案,形成一套编码。黑色不透光区和白色透光区分别代表二进制的“0”和“1”。在一个四位光电码盘上,有四圈数字码道,在圆周范围内可编数码数为24=16个。,编码器是把被测转角直接转换成相应代码的检测元件。编码盘有光电式、接触式和电磁式三种。,光电式码盘是目前应用较多的一种,它是在透明材料的圆盘上精确地印制上二进制编码。,光电编码器,使用增量式光电编码器来判别电机转速方向的原理,光电编码器如何测速,检测方向?,增量式光电编码器输出两路相位相差90o的脉冲信号A和B。,什么是正交编码脉冲?,当电机正转时,脉冲信号A的相位超前脉冲信号B的相位9
5、0o,此时逻辑电路处理后可形成高电平的方向信号Dir。,当电机反转时,脉冲信号A的相位滞后脉冲信号B的相位90o,此时逻辑电路处理后的方向信号Dir为低电平。,事件管理器A和B的引脚描述。输入跳变脉冲宽度至少保持两个CPU时钟周期才能被识别。,事件管理器引脚,事件管理器的引脚描述,EVA结构框图,9.1.2 事件管理器寄存器地址列表,下面四个表列出EVA所有寄存器的地址,EVB的类似。EVA从地址7400h开始,EVB从地址7500h开始,9.1.2 事件管理器寄存器地址列表,9.1.2 事件管理器寄存器地址列表,9.1.2 事件管理器寄存器地址列表,9.1.3 事件管理器中断,1.中断组,事
6、件管理器中断总共分三组,每组均对应一个CPU中断(INT2,3或4)。,因为每组中断均有多个中断源,通过外设中断扩展控制器(PIE)模块来处理。,功率驱动保护中断,PDPINTx*可以用于向电动机的监视程序提供过电压、过电流和异常的温升等异常信息。,如果PDPINTx*中断被禁止,则驱动PWM输出到高阻态的动作也被禁止。,如果PDPINTx*中断被允许,则PDPINTx*引脚电平变低后,则驱动所有PWM输出引脚为高阻态,同时产生一个中断请求。,复位时,PDPINTx*中断被使能。,为功率变换和电动机驱动等系统操作提供安全保证。,中断请求有如下几个响应阶段:,(1)中断源。如果外设中断发生,EV
7、xIFRA、EVxIFRB、或EVxIFRC(x=A或B)相应的标志位被置1。,(2)中断使能。事件管理器中断可以分别由寄存器EVxIMRA、EVxIMRB或EVxIMRC(x=A或B)来使能或禁止。,(4)CPU响应。CPU接收到中断后,IFR相应的位被置1,并响应中断。CPU响应中断后,中断响应被软件控制。,(3)向PIE请求。如果中断标志位和中断屏蔽位被置1(即:使能),那么外设会向PIE模块发送一个外设中断请求。,(5)PIE响应。PIE使用中断向量更新PIVR寄存器。,(6)中断软件,中断软件有两级响应,包括GISR和SISR。,EVA中断标志寄存器,(1)EVA中断标志寄存器A(E
8、VAIFRA)地址742Fh,1511 10 9 8,7 64 3 2 1 0,(2)EVA中断标志寄存器B(EVAIFRB)地址7430h,154 3 2 1 0,(3)EVA中断标志寄存器C(EVAIFRC)地址7431h,153 2 1 0,EVA中断屏蔽寄存器,(1)EVA中断屏蔽寄存器A(EVAIMRA)地址742Ch,1511 10 9 8,7 64 3 2 1 0,(2)EVA中断屏蔽寄存器B(EVAIMRB)地址7430h,154 3 2 1 0,(3)EVA中断屏蔽寄存器C(EVAIMRC)地址7431h,153 2 1 0,EVB中断标志寄存器,(1)EVB中断标志寄存器A
9、(EVBIFRA)地址752Fh,1511 10 9 8,7 64 3 2 1 0,(2)EVB中断标志寄存器B(EVBIFRB)地址7530h,154 3 2 1 0,(3)EVB中断标志寄存器C(EVBIFRC)地址7531h,153 2 1 0,EVB中断屏蔽寄存器,(1)EVB中断屏蔽寄存器A(EVBIMRA)地址752Ch,1511 10 9 8,7 64 3 2 1 0,(2)EVB中断屏蔽寄存器B(EVBIMRB)地址752Dh,154 3 2 1 0,(3)EVB中断屏蔽寄存器C(EVBIMRC)地址752Eh,153 2 1 0,9.2 通用定时器,定时器结构如图9-3所示,
10、由图可知,每个定时器包括:,9.2.1 通用定时器概述,定时器是事件管理器的核心模块。每个事件管理模块有两个通用定时器(GP),这些定时器可为下列应用提供独立的时间基准:,(1)控制系统中采样周期产生。,(2)为QEP电路和捕捉单元的操作提供时间基准。,(3)为比较单元和相应的PWM电路操作提供时间基准。,图9.3 通用定时器方框图,框图说明,1.每个定时器有自己的周期寄存器TxPR,但是定时器2可以使用定时器1的周期寄存器T1PR;同样定时器4可以使用定时器3的周期寄存器T3PR.,2.每个定时器有自己的TxCON.,3.定时器的时钟可由内部时钟产生,也可由外部时钟引脚TCLKIN提供,还可
11、以与QEP单元结合,由QEP为定时器提供时钟和计数方向输入。,由内部时钟产生时:,CLKIN,CLKOUT,PLL倍频,SCSR111:9,内部时钟,40MHz,预定标器分频,TxCON10:8,TCLK,定时器时钟,框图说明,4.双向计数器TxCNT是GP定时器的核心。当计数器的值达到FFFFH时,产生上溢事件,中断标志位TxOFINT置位;当计数器的值达到0000H时,产生下溢事件,中断标志位TxUFINT置位。,5.TxCMPR存放待比较的值,它是双缓冲结构.分为缓冲寄存器和工作寄存器。缓冲寄存器任何时候都可以读写。但是定时缓冲寄存器什么时候加载到它的工作寄存器,取决于TxCON的设置。
12、,TxCON 3:2,框图说明,当TxCNT与TxCMPR相等时,产生比较匹配事件,中断标志位TxICNT位被置位。在定时器的比较输出操作被允许的时候,,注:在禁止比较操作时,装载缓冲寄存器的值会立即装入工作寄存器。,框图说明,6.周期寄存器TxPR与比较寄存器TxCMPR相似。它是存放周期值,也是双缓冲结构。分为缓冲寄存器和工作寄存器。缓冲寄存器任何时候也都可以读写。周期缓冲寄存器加载到它的工作寄存器,只能在计数器等于0时进行。,当TxCNT与TxPR相等时,产生周期匹配事件,中断标志位TxPINT位被置位。,在连续计数模式下,有了周期寄存器就可以产生连续的周期信号,再通过比较寄存器控制脉冲
13、占空比,就可以产生任意的PWM波形。,框图说明,7.定时器的下溢、周期匹配和比较匹配事件可以用于启动片内的ADC,这样就可以在没有CPU干预的情况下,实现定时事件与ADC开始转换之间的同步。,问题?,1.EVA、EVB分别有几个定时器?2.EVA/EVB中定时器分别有哪些控制寄存器?它们的权限是什么?3.EVA/EVB中有哪几个寄存器(除控制寄存器外)?4.定时器的时钟来源有哪几个?5.定时器的计数频率和DSP的晶振频率有什么关系?6.什么叫影子寄存器?什么叫双缓冲结构?哪些寄存器具有双缓冲结构?7.比较寄存器的工作寄存器什么情况下加载新值?8.周期寄存器的工作寄存器什么情况下加载新值?9.哪
14、些中断事件可以启动片内的ADC?哪个不可以?10.定时器比较输出取决于哪两个关键位的配置?,1.通用定时器的输入包括:,内部CPU时钟。,外部时钟TCLKINA/B,最高频率是CPU时钟频率的1/4。,方向输入TDIRA/B,控制通用定时器增/减计数。,复位信号RESET。,2.通用定时器的输出包括:,通用定时器比较输出TxCMP(x1、2、3、4)。,到ADC模块的ADC转换启动信号。,9.2.2 通用定时器的功能模块,自身的比较逻辑和比较单元的下溢、上溢、比较匹配和周期匹配信号。计数方向指示位。,TxCON(x1,2,3或4)的映射地址为:7404h(T1CON)7408h(T2CON)7
15、504h(T3CON)7508h(T4CON),单个通用定时器的控制寄存器TxCON(x1,2,3或4)决定一个定时器的操作模式,每个定时器都可对其独立配置。,3.单个通用定时器控制寄存器TxCON,TxCON(x1,2,3或4)各位的定义如下:,TxCON15-14 仿真控制位00 仿真挂起时立即停止01 仿真挂起时当前定时周期结束后停止10 操作不受仿真挂起的影响11 操作不受仿真挂起的影响,TxCON13 保留位,TxCON12-11 4种计数模式选择 TMODE1 TMODE000 停止/保持01 连续增减计数模式10 连续增计数模式11 定向的增减计数模式,TxCON10-8 输入时
16、钟定标器000 x/1 100 x/16001 x/2101 x/32010 x/4 110 x/64011 x/8 111 x/128x=内部时钟、外部时钟或QEP提供的时钟频率,TxCON(x1,2,3或4)各位的定义如下:,TxCON7 使能位的来源0:使用自身的使能位(即 TxCON6 TENABLE)1:不用自身的使能位,定时器2使用定时器1的TENBALE位;定时器4使用定时器3的 TENBALE位来使能或禁止操作,TxCON6 TENABLE 定时器使能与禁止0 禁止定时器操作。也就是说,使定时器保持并且使预定标计数器复位。1 允许定时器操作,TxCON5-4 时钟源选择00 内
17、部时钟01 外部时钟10 保留11 正交编码脉冲电路,只适用于T2CON和T4CON,TxCON(x1,2,3或4)各位的定义如下:,TxCON3-2 定时器比较寄存器重载条件。00计数器的值为0时重载01计数器的值为0或等于周期寄存器的值时重载10立即11保留,TxCON1 TECMPR 定时器比较使能与禁止。0 禁止定时器比较操作1 使能定时器比较操作,TxCON(x1,2,3或4)各位的定义如下:,TxCON0 周期寄存器选择0使用自己的周期寄存器1使用T1PR(EVA)或T3PR(EVB)作周期寄存器而忽略自己的周期寄存器。,全局通用定时器控制寄存器(GPTCONA/B)规定了通用定时
18、器针对不同定时器事件所采取的动作,并指明了它们的计数方向。,4.全局通用定时器控制寄存器(GPTCONA/B),GPTCONA映射地址为7400h,配置定时器1,2,GPTCONB映射地址为7500h,配置定时器3,4,GPTCONA/B15 保留位,4.全局通用定时器控制寄存器(GPTCONA/B),GPTCONA/B12-11 保留位,4.全局通用定时器控制寄存器(GPTCONA/B),GPTCONA/B10-9 使用通用定时器2/4启动ADC事件00无事件启动ADC(模数转换)01设置下溢中断标志来启动ADC(模数转换)10设置周期中断标志来启动ADC(模数转换)11设置比较中断标志来启
19、动ADC(模数转换),GPTCONA/B8-7 使用通用定时器1/3启动ADC事件00无事件启动ADC(模数转换)01设置下溢中断标志来启动ADC(模数转换)10设置周期中断标志来启动ADC(模数转换)11设置比较中断标志来启动ADC(模数转换),4.全局通用定时器控制寄存器(GPTCONA/B),GPTCONA/B6 TCOMPOE 比较输出使能若PDPINTx有效则该位自动设置为0。0 禁止所有通用定时器比较输出(所有比较输出都置于高阻态)1 使能所有通用定时器比较输出,GPTCONA/B5-4 保留位,5.通用定时器的比较寄存器,通用定时器的比较寄存器TxCMPR(x=1,2,3,4)存
20、储与通用定时器的计数器TxCNT(x=1,2,3,4)进行比较的数值。,当发生匹配时,可以:,1.根据GPTCONA/B位的设置的不同,可以使相关的输出发生跳变,或启动ADC,2.可以使中断标志位置位,若中断未屏蔽可以产生中断请求。,6.通用定时器的周期寄存器TxPR,通用定时器的周期寄存器TxPR(x=1,2,3,4)的值决定了定时器的周期。,当通用定时器的周期寄存器TxPR(x=1,2,3,4)的值与定时器计数器TxCNT匹配时,定时器停止并保持当前的值,然后根据计数器所处的计数方式执行复位为零或递减计数。,7.通用定时器的比较和周期寄存器的两级缓存,通用定时器的比较寄存器TxCMPR(x
21、=1,2,3,4)和周期寄存器TxPR(x=1,2,3,4)都带有影子寄存器。,新值都是首先写入影子寄存器中。,当TxCON寄存器中规定的特定定时事件发生时(TCLD1/TCLD0),影子寄存器中的内容才加载到计较寄存器中。,当TxCNT为0时工作的周期寄存器TxCPR才重新加载其影子寄存器的值。,任何时候都可以更新TxPR和TxCMPR影子寄存器的值,以改变下一周期的定时周期和PWM的脉宽。,8.通用定时器的比较输出,TxPIN:00:强制低:立即变低01:低有效 第一次比较匹配发生时,比较输出由高到低,第二次比较匹配发生时,由低到高;在周期匹配时,比较输出从低到高。10:高有效 第一次比较
22、匹配发生时,比较输出由低到高,第二次比较匹配发生时,由高到低;在周期匹配时,比较输出从高到低。11:强制高:立即变高,GPTCONA/B3-2 T2PIN 通用定时器2比较输出极性00 强制低01低有效10 高有效11强制高,GPTCONA/B1-0 T1PIN 通用定时器1比较输出极性 00 强制低01低有效10 高有效11 强制高,9.通用定时器的计数方向,方向输入引脚TDIRA/B,控制通用定时器增/减计数。高电平:增计数 低电平:减计数,通用定时器增/减计数通过GPTCONA/B相应的位(TxSTAT)来反映 1:表示增计数方向 0:表示减计数方向,10.通用定时器时钟,外部时钟接TC
23、LKINA(37号引脚)/TCLKINB(126号引脚),最高频率是CPU时钟频率的1/4。,TxCON5-4,正交编码脉冲电路QEP为定时器既提供时钟又提供计数方向。,11.基于正交编码脉冲的时钟输入,正交编码脉冲电路(QEP)为定时器既提供时钟又提供计数方向。,正交编码脉冲电路(QEP)的输入时钟频率不能由预定标电路改变其比例,正交编码脉冲电路(QEP)的输入时钟频率是每个输入通道频率的4倍,且低于或等于内部CPU时钟的1/4。,正交编码脉冲电路(QEP)的输入通道通道的上升沿和下降沿都被定时器计数。,12.通用定时器的同步,13.通用定时器启动A/D转换,15.通用定时器的中断,1511
24、 10 9 8,7 64 3 2 1 0,(2)EVA中断标志寄存器B(EVAIFRB)地址7430h,154 3 2 1 0,(3)EVA中断标志寄存器C(EVAIFRC)地址7431h,153 2 1 0,(1)EVA中断标志寄存器A(EVAIFRA)地址742Fh,15.通用定时器的中断,(1)EVB中断标志寄存器A(EVBIFRA)地址752Fh,1511 10 9 8,7 64 3 2 1 0,(2)EVB中断标志寄存器B(EVBIFRB)地址7530h,154 3 2 1 0,(3)EVB中断标志寄存器C(EVBIFRC)地址7531h,153 2 1 0,1停止/保持模式,此种模
25、式,通用定时器的操作停止并保持其当前状态,定时器的计数器、比较输出和预定标计数器(分频系数)都保持不变。,9.2.3 通用定时器计数操作,此种模式,通用定时器将按照已定标的输入时钟计数,直到定时器计数器的值和周期寄存器的值匹配为止。产生周期匹配之后在下一个输入时钟的上升沿,计数器TxCNT复位为0,开始另一个计数周期。每个计数周期的脉冲数为TxPR+1,2连续增计数模式,9.2.3 通用定时器计数操作,GP定时器连续递增计数模式下的工作过程,问题?1.对周期寄存器值的修改是通过修改周期缓冲寄存器还是其工作寄存器?2.新的值什么时候加载到周期寄存的工作寄存器?是人工进行的还是自动完成的?3.连续
26、增模式下,可能产生哪几种中断事件?4.连续递增计数模式下,引脚TDIRA/B起不起作用?,在产生周期匹配的下一个CPU时钟周期后,周期中断标志位TxPINT被置位,产生一个中断请求,也可作ADC转换启动信号。,定时器变成0的一个CPU时钟周期之后,定时器的下溢中断标志位TxOFINT被置位,也可向发出一个ADC启动信号。,定时器计数到FFFFh后,定时器的上溢标志位TxUFINT在一个CPU时钟周期之后被置位。,2连续增计数模式,9.2.3 通用定时器计数操作,连续增模式下的中断信号:,如果初值等于周期寄存器的值时,周期中断标志被置位,定时器复位为0,下溢中断标志被置位,然后从0开始继续计数。
27、,如果初值大于周期寄存器的值时,定时器将计数到FFFFh后复位为0,然后从0开始继续计数。,如果初值小于周期寄存器的值时,定时器将计数周期值,然后从0开始继续计数。,定时器初值可以是0000hFFFFh之间的任何值。,2连续增计数模式,9.2.3 通用定时器计数操作,定时器初值的相关问题:,连续增模式特别适合产生边沿触发或非对称PWM波形,以及定时采样、定时显示、定时查询等控制方式。,9.2.3 通用定时器计数操作,2连续增计数模式,作用:,此种模式,定时器将根据TDIRAB引脚的输入,对定标的时钟进行递增(TDIRA/B=1)或递减(TDIRA/B=0)计数。,3定向的增/减计数模式,9.2
28、.3 通用定时器计数操作,TxCON6 TENABLE 定时器使能1与禁止0,该模式下,TDIRA/B电平变化后,计数方向在当前计数周期完成后才改变。,定时器2和4的本模式可用于正交编码脉冲电路,在这种情况下,正交编码脉冲电路为定时器2和4提供计数时钟和方向,这种方式在电机控制,如步进马达的控制、伺服控制中非常方便。,周期、下溢、上溢中断标志位、中断以及相应的事件,产生,与连续递增计数模式一样。,9.2.3 通用定时器计数操作,3定向的增/减计数模式,定时器的计数方向仅在定时器的值达到周期寄存器的值时(或FFFFH,如果初始定时器的值大于周期寄存器的值),才从递增计数变为减计数。定时器的计数方
29、向仅当计数器的值为0时才从减计数变为增计数。如此周而复始。,4连续增/减计数模式,此种模式与定向的增/减计数模式一样,但是在本模式下,引脚TDIRA/B的状态对计数的方向没有影响。,9.2.3 通用定时器计数操作,TxPR=3,TxPR=2,9.2.3 通用定时器计数操作,4连续增/减计数模式,每个周期=2(TxPR)个定时器时钟周期,9.2.3 通用定时器计数操作,4连续增/减计数模式,连续增减模式适用于产生对称的PWM波形,这种波形广泛应用于运动控制系统和电力电子等电器设备中。,9.2.4 通用定时器比较操作,前面讨论了通用定时器4种计数模式,它是定时器最基本的功能,定时器同时还为用户提供
30、了上溢、下溢及周期匹配等多种信息。,除了这些功能以外,定时器通过比较逻辑和PWM输出引脚TxPWM还可以构成波形发生器,特别是PWM波。,由此可见,DSP的定时器功能不仅仅是一般意义的定时或计数功能。,(3)如果用于启动ADC,在比较中断标志位被置位的同时,则产生一个ADC启动信号。,GP定时器的值连续地与相应的比较寄存器的值比较,当两个值相等时,就会发生比较匹配,可通过对TxCON1:TECMPR位置1来使能比较操作。比较操作使能后,当发生比较匹配时,会发生以下情况:,(1)比较中断标志位TxCINT置1。,(2)在匹配后1个CPU时钟周期后,根据GPTCONA/B寄存器相应位的配置情况,相
31、应的PWM输出将发生跳变。主要是:比较输出允许位 GPTCONA/B4:TxCOMPOE=1输出极性 TxPIN=00(强制低)01(低有效)10(高有效)11(强制高),(4)如果比较中断未被屏蔽,则将产生一个外设中断请求。,9.2.4 通用定时器比较操作,思考:产生波形的两个条件?,PWM输出的转换由一个非对称和对称的波形发生器和相应的输出逻辑控制,并且依赖于以下条件:,GPTCONA/B寄存器中相应位的定义。定时器所处的计数模式。在连续增减计数模式下的计数方向。,1PWM输出跳变,9.2.4 通用定时器比较操作,非对称和对称波形发生器依据通用定时器所处计数模式,产生一个非对称和对称的PW
32、M波形输出。,2非对称和对称波形发生器,9.2.4 通用定时器比较操作,在连续增计数模式时,通用定时器会产生一个非对称波形的PWM脉冲,如图所示。,3非对称波形的发生,图9.7 连续增计数模式的通用定时器产生一个非对称波形,9.2.4 通用定时器比较操作,3非对称波形的发生机制,比较匹配前,TxPWM输出无效电平,当比较匹配后输出有效电平,直到周期匹配后再输出无效状态。,TxCMPR,TxCMP/TxPWM,低有效,TxCMP/TxPWM,高有效,TxPR,无效,有效,无效,有效,比较寄存器TxCMPR值的改变只影响PWM脉冲的单边,这也是非对称PWM脉冲的一个特点。,9.2.4 通用定时器比
33、较操作,3非对称波形的发生特例,如果一个周期开始时的比较值为0,则整个周期输出将是有效;如果下一周期的新比较值也是0,则输出将不复位。如果比较值大于周期寄存器中的值,则整个周期输出为无效 如果比较值等于周期寄存器的值,则输出为有效,将保持一个定标后的时钟输入周期;,3非对称波形的发生例题1,9.2.4 通用定时器比较操作,根据刚才所讲的内容,作出以下判断,(1)下列哪种情况可以输出占空比为0%的非对称PWM波?,低有效&TxCMPR=0 低有效&TxCMPRTxPR高有效&TxCMPRTxPR高有效&TxCMPR=0,(2)下列哪种情况可以输出占空比为100%的非对称PWM波?,低有效&TxC
34、MPR=0 低有效&TxCMPRTxPR高有效&TxCMPRTxPR高有效&TxCMPR=0,答案:AC,答案:BD,无效输出脉冲宽度=TxCMPR 计数周期=1 计数周期,有效输出脉冲宽度=(TxPR-TxCMPR+1)计数周期=(4-1+1)计数周期=4 计数周期,3非对称波形的发生有效/无效时间计算,非对称PWM波形的周期=(TxPR+1)计数周期=5 计数周期,占空比=20%,9.2.4 通用定时器比较操作,若DSP2407A所用的无源晶振频率为10MHz,SCSR111:9=001,TxCON10:8=100,GPTCONA1:0=01;使用T1PWM/T1CMP引脚输出,程序片段如
35、下:LDP#DP_EVASPLK#7CH,T1PRSPLK#19H,T1CMPRSPLK#0,T1CNT 根据以上条件,求上题中的输出脉冲有效宽度为 us,占空比为.,非对称波形 例题2,80,20%,若DSP2407A所用的无源晶振频率为10MHz,SCSR111:9=001,为了产生频率为100Hz,占空比为40%的PWM波。其相关的参数应如何配置?GPTCONA1:0=01TxPR=;TxCON10:8=;TxCMPR=.,非对称波形 例题3,(低有效),设x为分频系数,取x=64,TxPR=3124,由于D=40%,3124,110,1250,若DSP2407A所用的无源晶振频率为10
36、MHz,SCSR111:9=001,为了产生频率为100Hz,占空比为40%的PWM波。其相关的参数应如何配置?GPTCONA1:0=10TxPR=;TxCON10:8=;TxCMPR=.,非对称波形 例题3,(高有效),设x为分频系数,取x=64,TxPR=3124,由于D=40%,3124,110,1875,在连续增/减计数模式时,通用定时器会产生对称波形,如图所示。,4对称波形的发生,图9.8 连续增计数模式的通用定时器产生一个对称波形,9.2.4 通用定时器比较操作,4 对称波形的发生机制,图9.8 连续增减计数模式的通用定时器产生一个对称波形,计数操作开始前为无效;保持不变直到第一次
37、比较匹配;第一次比较匹配时,产生触发;保持不变直到第二次比较匹配;第二次比较匹配时,产生触发;保持不变,直到周期结束;,这样就产生了以一个周期中心对称的两边同时变化的PWM波形输出,有效输出脉冲宽度=(2TxPR-TxCMPRup-TxCMPRdown)计数周期=(24 2 2)计数周期=4 计数周期,4对称波形的发生有效/无效时间计算,非对称PWM波形的周期=2(TxPR)计数周期=8计数周期,占空比=50%,9.2.4 通用定时器比较操作,思考:TxCMPRup和TxCMPRdown应该在什么时候修改?,无效输出脉冲宽度=(TxCMPRup+TxCMPRdown)计数周期=(2+2)计数周
38、期=4 计数周期,4 对称波形的发生特殊情况,图9.8 连续增减计数模式的通用定时器产生一个对称波形,如果比较值在周期开始时为0,则周期开始时将输出为有效,并且保持有效不变直到第二次比较匹配发生;如果比较值在周期的后半部分为0,则输出将保持有效不变直到周期结束在这种情况下,如果新比较值仍为0,输出将不会复位为无效,这会重复出现,以保证占空比在0%100%之间;如果前半周期中的比较值大于或等于周期寄存器的值,则第一次跳变不会发生,不过后半周期发生比较匹配时,输出仍将跳变。,5输出逻辑,输出逻辑可进一步调节波形发生器的输出,以生成最终的PWM波形输出,来控制各种不同类型的功率设备。PWM输出可通过
39、配置GPTCONA/B寄存器的相应位来设置高电平有效、低电平有效、强制高电平或强制低电平。,出现写任何一种情况时,所有的通用定时器PWM输出都置为高阻态:,5输出逻辑,软件将GPTCONA/B6置成0;GPTCONA/B6即TCOMPOE位:0 通用定时器比较输出禁止。,PDPINx引脚上的电平被拉低并且未被屏蔽;PDPINx引脚:功率驱动保护,任何一个复位事件发生;复位时,均置成高阻态。,软件将TxCON1置为0.TxCON1:TECMP定时器比较使能位。,9.2.5 通用定时器的PWM输出,为了设置通用定时器以产生PWM输出,需做以下工作:,根据预定的PWM(载波)周期设置TxPR。设置T
40、xCON寄存器以确定计数模式和时钟源,并启动PWM输出操作。将对应于PWM脉冲的在线计算宽度(占空比)的值加载到TxCMPR寄存器中。,设置通用定时器PWM输出操作的方法:,根据所需的PWM(载波)周期设置TxPR设置TxCON寄存器以确定计数模式和时钟源并启动PWM输出操作。将PWM占空比值加载到TxCMPR中,LDP#DP_EVASPLK#5H,T1PR;设置周期寄存器值为5SPLK#41H,GPTCONA;TCOMPOE=1允许定时器比较输出SPLK#3H,T1CMPR;设置比较寄存器值3SPLK#0H,T1CNT;设置计数寄存器初值SPLK#0F4EH,T1CON;TMODE=01 连
41、续增减模式;TPS=111 预分频为128;TENABLE=1 定时/计数使能;TCLKS=00 内部时钟;TECMPR=1定时器比较使能,SELT1PR=0,设CPU内部主频40MHz,PWM脉冲周期为()?占空比为()?有效相位长度为()?,所有的定时器中断标志位均被复位为0。所有的定时器中断屏蔽位都被复位为0,因此所有通用定时器的中断都被屏蔽。,所有通用定时器的比较输出都被置为高阻态。位1-0 T1PIN,通用定时器1比较输出极性 00 强制低 01 低有效 10 高有效 11 强制高 全局通用定时器控制寄存器GPTCONB的映射地址为7500h,各位的意义与GPTCONA类似。,GPT
42、CONAB寄存器中除计数方向指示位外,所有与通用定时器相关的位都被复位为0,因此所有通用定时器的操作都被禁止,计数方向指示位都置成1。,9.2.6 通用定时器的复位,当任何复位事件发生时,将发生以下情况:,可选用连续增模式或连续增/减模式产生PWM输出,选用连续增模式:可产生边沿触发或非对称PWM波形。,选用连续增/减模式:可产生对称PWM波形。,小结,如果采用连续增计数模式产生非对称PWM波形,把所需的PWM周期除以通用定时器输入时钟周期,然后减1得到TxPR值。,如果采用连续增/减计数模式产生对称PWM波形,把所需的PWM周期除以2倍的通用定时器输入时钟周期,就得到TxPR值。,在程序运行
43、过程中,软件可以根据来自实际系统的信号计算PWM的占空比,实时地刷新比较寄存器TxCMPR的值。,st0_temp.usect.b20,1;st1_temp.usect.b20,1;context.usect.b20,7;62-68,在LF2407.CMD文件中有如下定义,MEMORY PAGE 1:REGS:origin=0h,length=5Fh B2:origin=0060h,length=020h/*DARAM B2 BLOCK*/SECTIONS.cinit:PROG PAGE 0.b20:B2 PAGE 1/*Block B2*/.const:SARAM PAGE 1.data:S
44、ARAM PAGE 1,DP=0,;INT2的中断向量为0004H,T1PINT的外设中断向量为0027H。.include F2407REGS.H;引用头部文件.def _c_int0;建立中断向量表.sect.vectors;定义主向量段RSVECTB _c_int0;PM 0复位向量 INT1 B PHANTOM;PM 2中断优先级1 INT2 B GISR2;PM 4中断优先级2 INT3 B PHANTOM;PM 6中断优先级3 INT4 B PHANTOM;PM 8中断优先级4 INT5 B PHANTOM;PM A中断优先级5 INT6 B PHANTOM;PM C中断优先级6,
45、;中断子向量入口定义pvecs.sect.pvecs;定义子向量段PVECTORSBPHANTOM;保留向量地址偏移量 00H BPHANTOM;保留向量地址偏移量 01H BPHANTOM;保留向量地址偏移量 26HBT1PINT_ISR;保留向量地址偏移量 27H T1PINT中断BPHANTOM;保留向量地址偏移量 28H BPHANTOM;保留向量地址偏移量 41H,;主程序开始 初始化部分.text_c_int0 SETC INTM CLRC SXM CLRC OVM CLRC CNF;B0区被配置为数据空间 LDP#0E0H;指向7000h-7080h区 SPLK#81FEH,SC
46、SR1;时钟4倍,CLKIN=6M,CLKOUT=24M SPLK#0E8H,WDCR;不使能WDT LDP#0 SPLK#02H,IMR;使能中断优先级INT2 SPLK#0FFFFh,IFR;清中断标志,LDP#DP_EVA;指向7400h-7480h区SPLK#80H,EVAIMRA;使能T1PINT 中断SPLK#0FFFFh,EVAIFRA;清EVA中断标志SPLK#0,GPTCONASPLK#177H,T1PR;使定时器每1ms产生一次中断SPLK#0,T1CNTSPLK#0164CH,T1CON;TMODE=10 连续增计数模式,;TPS=110 预分频为64;TENABLE=1
47、 定时器计数使能;TCLKS=00 内部时钟;TECMPR=1 定时器1比较禁止;SELT1PR=0 CLRCINTM;开总中断WAIT:NOPBWAIT,;中断程序GISR2:;优先级INT2中断入口;保护现场LDP#0;保存机器上下文SST#0,st0_temp;使用自动寻址,DP-0 SST#1,st1_temp;保存状态寄存器到B2 DARAM.LDP#0 SACLcontext;保存ACC的低16位SACHcontext+1;保存ACC的高16位SARAR1,context+2SARAR2,context+3SARAR3,context+4SARAR4,context+5SARAR5
48、,context+6LDP#0E0HLACCPIVR,1;读取外设中断向量寄存器(PIVR),并左移一位ADD#PVECTORS;加上外设中断人口地址BACC;跳到相应的中断服务子程序,T1PINT_ISR:;通用定时器1中断入LDP#DP_EVASPLK#0,T1CNT,GISR2_RET:;中断返回;恢复现场LDP#DP_EVASPLK#0FFFFH,EVAIFRALDP#0LARAR5,context+6LARAR4,context+5LARAR3,context+4LARAR2,context+3LARAR1,context+2LACCcontext+1,16ADDScontextLS
49、T#1,st1_tempLST#0,st0_tempCLRCINTM;开总中断,因为一进中断就自动关闭总中断RET,;假中断程序PHANTOM KICK_DOG;复位看门狗RETEND,9.3 比较单元,9.3.1 比较单元概述,事件管理器EVA模块和EVB模块中分别有3个全比较单元。每个全比较单元可以单独的配置。每个比较单元都有两个相应的PWM输出。EVA比较单元的时基由通用定时器1(EVA模块)提供。EVB比较单元的时基由通用定时器3(EVB模块)提供。借助可编程死区电路可以产生3对带死区的互补PWM信号。,全比较单元1,全比较单元2,全比较单元3,PWM1,PWM2,PWM3,PWM4,
50、PWM5,PWM6,全比较单元4,全比较单元5,全比较单元6,PWM7,PWM8,PWM9,PWM10,PWM11,PWM12,9.3 比较单元,9.3.1 比较单元概述,9.3 比较单元,9.3.1 比较单元概述,每个事件管理器模块的比较单元包括:,3个16位的比较寄存器(对于EVA模块为CMPRl、CMPR2和CMPR3,对于EVB模块为CMPR4,CMPR5和CMPR6),它们各带一个相应的影子/映像寄存器(可读/写)。,一个16位的比较控制寄存器(对于EVA模块为COMCONA,对于EVB模块为COMCONB),该寄存器为可读写的。,一个16位的动作控制寄存器(对于EVA模块为ACTR