页数:156页文件大小:1.19 MB来源: 数字信号处理器DSP原理与应用ppt课件
本课件围绕事件管理器模块展开,介绍EVA与EVB的结构与寄存器资源,说明通用定时器的四种计数模式、比较单元与PWM波形产生原理、空间矢量PWM的实现方法,以及捕捉单元和正交编码器脉冲电路(QEP)在电机测速中的应用。
事件管理器模块的基本知识2.通用定时器3.比较单元4.脉宽调制电路PWM5.空间失量PWM6.捕捉单元7.正交编码器脉冲电路(QEP)8.事件管理器中断
复杂的模块,可为所有类型电机提供控制技术。1.事件管理器结构LF2407A两个事件管理器模块:EVA和EVB。每个事件管理器模块包括:两个通用定时器(GP)、三个比较单元、三个捕捉单元以及两个正交编码脉冲输入电路(QEP)。
EVA和EVB功能相同,只是名称不同
EV控制寄存器和控制逻辑GP定时器1比较捕捉单元SVPWM状态机输出逻辑预定标GP定时器1输出逻辑全比较单元MUXTDIRAADC转换开始T[4,5]死区带宽单元QEP电路T1CON[8,9,10]TCLKINACLKOUTPWM1...PWM6GP定时器2比较输出逻辑预定标GP定时器[4,5]T2CON[8,9,10]TCLKINACLKOUTTDIRACAP[14,13]DIRCLOCK
的引脚描述见表6-1。输入跳变脉冲宽度至少保持两个CPU时钟周期才能被识别。3.功率驱动保护中断PDPINTx可以用于向电动机的监视程序提供过电压、过电流和异常的温升等异常信息。为功率变换和电动机驱动等系统操作提供安全保证
如果PDPINTx中断被允许,则PDPINTx引脚电平变低后,则驱动所有PWM输出引脚为高阻态,同时产生一个中断请求。复位时,PDPINTx中断被使能。如果PDPINTx中断被禁止,则驱动PWM输出到高阻态的动作也被禁止
引脚名称描述引脚名称捕捉单元4输入,QEP电路输入,QEP电路输入,QEP电路输入,QEP电路输入的外部时钟输入TCLKINBEVA定时器的外部时钟输入TCLKINAEVB定时器的计数方向输入TDIRBEVA定时器的计数方向输入TDIRA表6-1事件管理器的引脚描述
个表列出EVA所有寄存器的地址,EVB的类似。EVA定时器寄存器地址说明名称寄存器地址EVA定时器控制寄存器AGPTCONA74747474747474747408h
EVA比较控制寄存器地址名称寄存器地址比较控制寄存器ACOMCONA7411h比较动作控制寄存器AACTRA7413h死区时间控制寄存器ADBTCONA7415h比较寄存器1CMPR17417h比较寄存器2CMPR27418h比较寄存器3CMPR37419h
EVA捕捉控制寄存器地址名称寄存器地址捕捉控制寄存器ACAPCONA7420h捕捉FIFO状态寄存器ACAPFIFOA7422h两级深度的捕捉FIFO堆栈1CAP1FIFO7423h两级深度的捕捉FIFO堆栈2CAP2FIFO7424h两级深度的捕捉FIFO堆栈3CAP3FIFO7425h FIFO堆栈的底部寄存器,允许读取最近的捕捉值CAP1FBOT7427h CAP2FBOT7428h CAP3FBOT7429h
EVA的中断屏蔽寄存器AEVAIMRA742 Ch EVA的中断屏蔽寄存器BEVAIMRB742 Dh EVA的中断屏蔽寄存器CEVAIMRC742 Eh EVA的中断标志寄存器AEVAIFRA742 Fh EVA的中断标志寄存器BEVAIFRB7430h EVA的中断标志寄存器CEVAIFRC7431h
136.1.5EV中断响应过程事件管理器中断总共分三组,每组均对应一个CPU中断(INT2,3或4)。因为每组中断均有多个中断源,通过外设中断扩展控制器(PIE)模块来处理。
中断请求有如下几个响应阶段:(1)中断源。如果外设中断发生,EVx IFRA、EVx IFRB、或EVx IFRC(x=A或B)相应的标志位被置1
(2)中断使能。事件管理器中断可以分别由寄存器EVx IMRA、EVx IMRB或EVx IMRC(x=A或B)来使能或禁止。(3)向PIE请求。如果中断标志位和中断屏蔽位被置1,那么外设会向PIE模块发送一个外设中断请求。
(4)CPU响应。CPU接收到中断后,IFR相应的位被置1,并响应中断。CPU响应中断后,中断响应被软件控制。(5)PIE响应。PIE使用中断向量更新PIVR寄存器
1.通用定时器概述定时器是事件管理器的核心模块。每个事件管理模块有两个通用定时器(GP),这些定时器可为下列应用提供独立的时间基准:1控制系统中采样周期产生。2为QEP电路和捕捉单元的操作提供时间基准。
3为比较单元和相应的PWM电路操作提供时间基准定时器结构如图6-2所示,由图可知,每个定时器包括
1一个可读写的位双向计数器的寄存器TxCNT,它存储了计数器的当前值,并根据计数方向进行增计数或减计数。2一个可读写的位定时器比较寄存器TxCMPR。3一个可读写的位定时器周期寄存器TxPR。
4一个可读写的位定时器控制寄存器TxCON。5时钟预定标器。6控制和中断逻辑。7一个GP定时器比较输出引脚-TxCMP。8输出逻辑。9其他全局控制寄存器
GP定时器结构框图TxPR周期寄存器(映像)TyPR周期寄存器(映像)Tx CONGPTx控制寄存器控制逻辑比较逻辑GPTCONA/BGP定时器控制寄存器对称/非对称波形发生器TxCMPR比较寄存器(映像)输出逻辑Tx CNTGP定时器计数器MUX内部CPU时钟17TCLKINA/BTDIRA/BADC转换启动信号中断标志TnCON[0]当x=2时,y=1,并且n=2;当x=4时,y=3,并且n=4
通用定时器的输入包括:
停止/保持模式通用定时器停止操作并保持其当前状态,定时器的计数器、比较输出和预定标计数器都保持不变。2.连续递增计数模式本工作模式的示意图如图6-3所示。此种模式,通用定时器将按照已定标的输入时钟计数,直到定时器计数器的值和周期寄存器的值匹配为止。
产生周期匹配之后在下一个输入时钟的上升沿,定时器复位为0,开始另一个计数周期
个CPU时钟周期后,周期中断被置位,产生一个中断请求,也可作ADC转换启动信号。定时器变成0的一个CPU时钟周期之后,定时器的下溢中断标志被置位,也可发出一个ADC启动信号。
定时器计数到FFFFh后,定时器的上溢中断标志在一个CPU时钟周期之后被置位。定时器初值可以是0000h-FFFFh之间的任何值
如果初值大于周期寄存器的值时,定时器将计数到FFFFh后复位为0,然后从0开始继续计数。如果初值等于周期寄存器的值时,周期中断标志被置位,定时器复位为0,下溢中断标志被置位,然后从0开始继续计数。
本模式特别适于边沿触发或非对称PWM波形产生,也适于电机和运动系统的采样周期
定向的增/减计数模式此种模式,定时器将根据TDIRA/B引脚的输入,对定标的时钟进行递增或递减计数。如图6-4所示。图6-425
周期、下溢、上溢中断标志位、中断以及相应的动作与连续递增计数模式一样。定时器2和4的本模式可用于正交编码脉冲电路,在这种情况下,正交编码脉冲电路为定时器2和4提供计数时钟和方向,也可用于运动/电机控制和电力电子设备应用中的外部事件定时
的增/减计数模式一样,但是在本模式下,引脚TDIRA/B的状态对计数的方向没有影响。定时器的计数方向仅在定时器的值达到周期寄存器的值时(或FFFFh,如果初始定时器的值大于周期寄存器的值),才从递增计数变为减计数。
定时器的计数方向仅当计数器的值为0时才从减计数变为增计数。如图6-5所示
GP定时器的值连续地与相应的比较寄存器的值比较,当两个值相等时,就会发生比较匹配。可通过对TxCON[1]置1来使能比较操作。比较操作使能后,当发生比较匹配时,会发生以下情况:1比较中断标志置1。
2相应的PWM输出将发生跳变。3如用于启动ADC,则产生一个ADC启动信号
313.非对称波形的发生在连续增计数模式时,通用定时器会产生一个非对称波形的PWM脉冲,如图6-6所示。图6-6
对称波形的发生在连续增/减计数模式时,通用定时器会产生对称波形,如图6-7所示。32图6-7通用定时器在连续增/减计数模式下的比较/PWM输出
输出逻辑进一步调节波形发生器的输出,以生成最终的PWM波形输出,来控制各种不同类型的功率设备。可通过配置GPTCONA/B寄存器的相应位来设置高有效、低有效、强制高或强制低的PWM输出。
当PWM输出设置为高有效时,它的极性与波形发生器的输出极性相同。当PWM输出设置为低有效时,极性相反。GPTCONA/B寄存器的相应位设定后,PWM输出也可被强制为高电平或低电平
用定时器控制寄存器TxCON Tx CON(x=1,2,3或4)决定一个定时器的操作模式,每个定时器都可独立配置。Tx CON(x=1,2,3或4)的映射地址为:7404h(T1CON)、7408h(T2CON)、7504h(T3CON)和7508h(T4CON)。
Tx CON(x=1,2,3或4)各位的定义如下
位15-14仿真控制位仿真挂起时立即停止仿真挂起时当前定时周期结束后停止操作不受仿真挂起的影响操作不受仿真挂起的影响00011011位13保留。位12-114种计数模式选择00011011停止/保持连续增/减计数模式连续增计数模式定向的增/减计数模式
/1000x/32101x/2001x/64110x/4010x/128111x/8011x=输入时钟频率位7使能位的来源0:使用自身的使能位(TENABLE)1:不用自身的使能位,使用T1CON(EVA)或T3CON(EVB)的使能位来使能或禁止操作
位6定时器使能与禁止1禁止定时器操作。也就是说,使定时器保持并且使预定标计数器复位2允许定时器操作位5-4时钟源选择1.内部时钟2.外部时钟10保留11正交编码脉冲电路,只适用于T2CON和T4CON
位3-2定时器比较寄存器重载条件。值时重载止。1禁止定时器比较操作2使能定时器比较操作
2使用T1PR(EVA)或T3PR(EVB)作周期寄存器而忽略自己的周期寄存器。2.全局通用定时器控制寄存器(GPTCONA/B)GPTCONA/B规定了通用定时器针对不同定时器事件所采取的动作,并指明了它们的计数方向。
映射地址为7400h。各位的意义如下
位15位1440保留位通用定时器2的状态,只读。,只读。01递减计数递增计数位12-11位10-9保留位。使用通用定时器2启动ADC事件
2.设置下溢中断标志来启动ADC(模数转换)10设置周期中断标志来启动ADC(模数转换)11设置比较中断标志来启动ADC(模数转换)位8-7使用通用定时器1启动ADC事件。1.无事件启动ADC(模数转换)2.设置下溢中断标志来启动ADC(模数转换)10设置周期中断标志来启动ADC(模数转换)11设置比较中断标志来启动ADC(模数转换)
位642比较输出使能,如果PDPINTx*有效则该位设置为0。禁止所有通用定时器比较输出(所有比较输出都置于高阻态)使能所有通用定时器比较输出01保留位。位5-4通用定时器2比较输出极性位3-11
1.强制低2.低有效10高有效11强制高全局通用定时器控制寄存器GPTCONB的映射地址为7500h,各位的意义与GPTCONA类似
为了设置通用定时器以产生PWM输出,需做以下工作:
事件发生时,将发生以下情况:GPTCONA/B寄存器中除计数方向指示位外,所有与通用定时器相关的位都被复位为0,因此所有通用定时器的操作都被禁止,计数方向指示位都置成1。
所有的定时器中断标志位均被复位为0。所有的定时器中断屏蔽位都被复位为0,因此所有通用定时器的中断都被屏蔽。所有通用定时器的比较输出都被置为高阻态
_nothing;直接返回的中断服务程序符号_c_int0;复位向量f.ref.sect1_c_int0;PM0复位向量BRSVECT4B_nothing;PM_T1INT;
PM_nothing;PM_nothing;PM_nothing;PMA中断优先级5INT59B_nothing;PMC中断优先级6INT6
的周期中断功能,每1ms产生一次屏蔽开总
asm("sM");OVM");CNF"符号位扩展IMR=0x00GR=0X00;即WD保护位复软件禁止看门狗//允许INT2禁止所有的等待状态}
inttimer1int(){*EVAIMRA=*EVAIMRA|0X0080;*EVAIFRA=*EVA1CON=0X160C;49//允许定时器1的周期中断//清除定时器1周期中断标志//Timer1为连续增计数模式,*T1PER=0X0177;
*T1CNT=0X00;//预分频值为64,使用内部时钟//Timer1的周期寄存器的值根//据1ms延时和预分频值确定//Timer1的计数器清零}
如果不是定时器1周期中断,则直接返回//定时器1周期中断INT(){intflag;flag=*EVA(flag!=0x0080){enable();return;
}//如果是定时器1周期中断定时器1的周期中断,则执行下面的程序*T1CNT=0X00;*EVAIFRA=*EVA定时器,否//则以后的中断将被忽略enable();
return;//允许总中断,因一进中断服务程序后总中断就自动关闭了//中断返回}//其它优先级的中断服务程序,虽然程序中已经禁止,//但可能由于干扰会引起他们的执行,故该中断服务程序无额外操作,直接返回
enable();return;//允许总中断,因一进中断服务程序后总中断就自动关闭了//中断返回//初始化时禁止中断//系统初始化//定时器1的初始化//允许总中断//启动Timer1//等待中断发sable(mer1int();
enable();*T1CON=*T1CON|0X00}
1.比较单元概述事件管理器EVA模块和EVB模块中分别有3个全比较单元,每个比较单元都有两个PWM输出。比较单元的时基由通用定时器1(EVA模块)和通用定时器3(EVB模块)提供。比较单元的功能结构图如图6-8所示
全比较单元与通用定时器中简单比较单元的区别:
每个比较单元包括:
EVB模块EVA模块设置T3PR设置T1PR设置ACTRB设置ACTRA初始化CMPRx初始化CMPRx设置COMCONB设置COMCONA设置T3CON设置T1CON
1.比较控制寄存器(COMCONA和COMCONB)比较单元的操作由比较控制寄存器(COMCONA和COMCONB)控制,均是可读写。比较控制寄存器COMCONA的映射地址为7411h。
各位描述如下:位15比较使能位1禁止比较操作,所有映像寄存器(CMPRx和ACTRA)为透明。2使能比较操作
CMPRx重载条件。,结果不可预测位12空间向量PWM模式使能。1禁止空间向量PWM模式2使能空间向量PWM模式位11-10动作控制寄存器重载条件
PWM输出引脚为高阻态,即比较输出被禁止2PWM输出引脚处于非高阻态,即比较输出被使能位8PDPINTA*的状态位,该位反映PDPINTA*引脚的当前状态
COMCONB映射地址为7511h,各位定义与COMCONA类似。2.比较动作控制寄存器(ACTRA和ACTRB)ACTRA和ACTRB控制6个比较输出引脚的动作。
ACTRA的映射地址为7413h,各位描述如下:位15SVRDIR,空间向量PWM旋转方向位,仅用于产生空间向量PWM输出。1正向(CCW)2负向(CW)
位14-12D2-D0,基本的空间向量位,仅用于产生空间向量PWM输出。62位11-10CMP6ACT1-0,比较输出引脚PWM6上的比较输出方式选择。1.强制低2.低有效10高有效11强制高位9-8CMP5ACT1-0,比较输出引脚PWM5上的比较输出方式选择。
1.强制低2.低有效10高有效11强制高
位7-6CMP4ACT1-0,比较输出引脚PWM4上的比较输出方式选择。强制低5-4CMP3ACT1-0,比较输出引脚PWM3上的比较输出方式选择。强制低11
位3-2CMP2ACT1-0,比较输出引脚PWM2上的比较输出方式选择。强制低1-0CMP1ACT1-0,比较输出引脚PWM1上的比较输出方式选择。强制低11
PWM信号PWM信号(脉宽调制信号)是脉冲宽度根据某一寄存器内的值的变化而变化的脉冲序列。宽度是根据预定值来决定和调制的。在电机控制中,PWM用来控制开关电源器件的开关时间,为电机绕组提供所需的能量,控制电机所需转速和转矩。
1.PWM信号产生用一定时器重复产生与PWM周期相同的计数周期,一
个比较寄存器保持着调制值,在相应的输出上会产生一个转换。输出脉冲的开关时间会与比较寄存器的值成比例。2.死区在许多的运动/电机控制和功率电子应用场合中,两个功率器件(上级和下级)被串联在一个功率支路中,为避免击穿失效,在一个三极管的关断和另一个三极管导通之间经常要插入一个死区,这段时间延迟允许一个三极管在别的三极管导通之前完全关断
PWM输出三个比较单元中的每一个都可与事件管理器的GP定时器一起用于产生一对可编程死区和输出极性的PWM输出。对于每个EV模块中的三个比较单元,共有6个PWM输出引脚,来控制三相交流感应电机或无刷直流电机。
由比较动作控制寄存器提供的输出动作控制的灵活性,使得开关和同步磁阻电机的控制变得非常简单容易。PWM电路可在单任务或多任务场合控制直流有刷电机和步进电机等
的PWM电路概述EVA模块的PWM电路功能结构图如图6-9所示。它包括以下功能单元:1非对称/对称波形发生器;2可编程的死区单元(DBU);3输出逻辑;4空间向量(SV)PWM状态机
1.死区单元及其控制死区波形如图6-10所示,对于一个输入信号PHx,会产生两个输出信号DTPHx和DTPHx-。死区单元用于保证在任何情况下,每个比较单元相关的2路PWM输出控制一对正向导通和负向导通设备时没有重叠,即当一个器件没有完全关断时,另一个器件不导通,以避免功率器件击穿失效。
如图6-11所示
图6-10死区波形图图6-11三相逆变器原理图
(DBTCONA和DBTCONB)死区单元的操作是由DBTCONA(或DBTCONB)来控制的。DBTCONA映射地址为7415h,各位描述如下:位15-12保留。
位11-8DBT3一DBT0。规定了3个4位死区定时器的周期值。位7EDBT3。死区定时器3使能位(对应PWM5和PWM6)1禁止2使能
位6EDBT2。死区定时器2使能位(对应PWM3和PWM4)1。死区定时器1使能位(对应PWM1和PWM2)1禁止2使能位4-2DBTPS2-DBTPS0。死区定时器的预定标器。000001x/1x/2
76011x/8100x/16位4-2DBTPS2-DBTPS0。死区定时器的预定标器。x/32101x/32110x/32111位1-0x:CPU时钟频率保留。DBTCONB映射地址为7515h,各位的意义和DBTCONA的相应位意义一致
比较匹配时,PWMx(x=1~12)输出引脚上的极性和动作。可设定为低有效、高有效、强制低和强制高。6.4.5非对称和对称的PWM产生EV模块中的每个比较单元均可产生非对称和对称的PWM波形。
另外这三个比较单元一起可产生三相对称空间向量PWM输出。用GP定时器产生PWM输出已介绍,下面
产生一个非对称的PWM波形。见图6-12。GP定时器1必须设置为连续递增计数模式,其周期寄存器必须载入一个与所需的PWM载波周期相对应的值
对称的PWM波形产生对称的PWM波形是其调制脉冲在每个PWM周期是对称的。如图6-13所示。对称的与非对称PWM波形相比,优点在于它有两个相同长度的无效区:在每个PWM周期的开始和结束。
这种对称性表现为当正弦调制使用时,它在一个交流电机的相电流中比非对称的PWM信号引起更少的谐波
如该文件利用汇编语言代码定义了复位和中断向量82_nothing;直接返回的中断服务程序符号_c_int0;复位向量f.ref.sect1B_c_int0//PM0复位向量RSVECT4B_nothing//PM_nothing//PM_nothing//PM_nothing//PM_nothing//PMA中断优先级5INT59B_nothing//PMC中断优先级6INT6
用EVB模块的PWM7——PWM12引脚产生不同占空比的屏蔽
iasm("sM");OVM");CNF"符号位扩展D保护位复软件禁止看门狗*IMR=0x00GR=0X0禁止所有的等待状态}
的PWM初始化程序intpX007E;//IOPE1-6被配置为基本功能方式,PWM7-1285//PWM12,10,8低有效,PWM11,9,7高有效//不使能死区控制*ACTRB=0X0666;
*DBTCONB=0X00;*CMPR4=0X1000;*CMPR5=0X3000;*CMPR6=0X5000;*T3PER=0X6000;//设置定时器3的周期寄存器,并设置CMPR4-6,以//确定不同的输出占空比*COMCONB=0X8200;
//使能比较操作*T3CON=0X1000;//定时器3为连续增计数模式}
做任何其它中断直接返回8sable(总中断禁止//系统初始化//PWM输出初始化//启动定时器3*T3CON=*T3CON|0x00}
图6-1488典型的三相功率变换器的结构如图6-14所示
图中Va、Vb和Vc是提供给电动机绕组的电压。六个功率三极管由DTPHx和DTPHx_(x=a、b和c)控制。当上部的三极管导通时(DTPHx=1),下部的三极管关断(DTPHx_=0)。
这样,通过上部三极管的开关状态(QI、Q3和Q5)或DTPHx(x=a、b和c)的状态,就可以计算出提供给电动机的电压Uout
向量当一个支路中的上部三极管导通时,由支路提供给电动机绕组的电压Vx(x=a、b或c)等于供电电压Uab,当三极管关断时,提供的电压为0。上部三极管(DTPHx,x=a、b或c)的开关切换有8种可能的组合方式。
这些组合方式和由之导出的电动机拉直流供电电压Udc确定的线电压和相电压如下表所示。注意a、b和c分别代表DTPHa,DTPHb和DTPHc的值
通过进行一个d-q变换,可以把对应与8种组合方式的相电压映射到—个d-q平面上。这等效于把三个向量(abc)的正交投影映射到垂直子向量(1,1,1)的二维平面上,即d-q平面上,这就产生6个非零向量和两个零向量。
两个零向量位于原点。这8个向量叫做基本空间向量,见图6-15
Vca(Udc) Vbc(Udc) Vab(Udc) Vc0(Udc) Vb0(Udc) Va0(Udc)cba0000000001-102/3-1/3-1/310001-1-1/32/3-1/301010-11/31/3-2/3110-101-1/3-1/32/30010-111/3-2/31/3101-110-3011000000111
量。图6-1593第6章事件管理器基本空间向量近似地给出了电机的电压向
开关模式变化时,只有一个上级三极管改变开关状态。3.用基本空间向量估算电机电压其中,T0由Tp-T1-T2给出,Tp为PWM载波周期。OUT94PUTT2Ux60T1UxT0(O000或O111)
PWM波形事件管理器模块内置硬件电路可以大大简化产生对称PWM波形的操作。软件用来产生空间向量PWM输出。为了产生空间向量PWM输出,软件必须:1设置ACTRx,定义比较输出引脚的极性。
2设置COMCONx,使能比较操作和空间向量PWM模式并设CMPRx的重载条件为下溢
(3)定时器1设为连续增/减计数模式。然后,用户通过软件确定在二维d-q平面上的Uout,分解Uout并在每个PWM周期执行以下操作:1确定两个相邻的向量Ux和Ux+60。
2确定参数T、T和T。3把与Ux对应的开关模式写到ACTRx[14-12],送1至ACTRx[15]。4赋值T/2给CMPR1,T/2+T/2给CMPR2
空间向量PWM硬件事件管理器中的空间向量PWM硬件通过以下操作完成一个空间向量PWM周期。1每个周期的开始,通过定义ACTRx[14-12]将PWM输出设为新的模式Uy。
2增计数期间,如果CMPR1和定时器1第一次发生比较匹配,即匹配值为T1/2,PWM输出转换为Uy+60(ACTRx[15]=1)或Uy模式(ACTRx[15]=0)(U0-60=U300,U360+60=U60)
即匹配值为(T1/2+T2/2),PWM输出转换为模式(000)或(111),它们与第二类输出方式之间只有一位的差别。4减计数期间,如果CMPR2和定时器1第一次发生比较匹配,即匹配值为T1/2+T2/2,PWM输出返回到第二类输出方式。
5如果CMPR1和定时器发生第二次匹配,即匹配值为T1/2,PWM输出返回到第一类输出方式
空间向量PWM波形
产生PWM输出只需要两个寄存器。然而,第三个比较寄存器也不断和定时器1做比较。当一个比较匹配产生时,如果中断标志没有屏蔽相应的比较中断标志位置1并且产生外围设备中断请求。
因此,产生空间向量PWM波形中没有使用比较寄存器,但在某些特殊应用中,它仍旧可以用于时间事件的产生。同样,由于状态机造成的额外时间延迟,对于空间向量PWM模式,比较寄存器的输出变化也要延迟一个时钟周期
CMPR1和CMPR2在空间向量PWM模式下装载值为0时,所有3个比较输出均不工作。所以在空间向量PWM模式下,用户需要保证(CMPR1)≤(CMPR2)≤(T1PR),否则,将会产生无法预计的运行结果
1046.6捕捉单元可记录6个捕捉输入引脚上的事件。共6个捕捉单元,每个事件管理器有3个捕捉单元。EVA:CAP:CAP6-16是EVA的捕捉单元原理框图,EVB的原理框图与EVA一样,仅寄存器不同。
当在捕捉输入引脚CAPx上检测到一个设定的转换时,GP定时器的值被捕捉并存储在相应的2级深度FIFO堆栈中
1061.捕捉单元的特点捕捉单元包括下列特性:
捕捉单元的操作在捕捉使能后,相应输入引脚上的指定跳变会将所选的通用定时器的计数值装入到相应的FlFO堆栈。同时如果有一个或更多有效的捕捉值保存在FlFO堆栈(CAPx Fl FO位不等于0)中,则相应的中断标志位被置1。
如果该中断标志没有被屏蔽,产生一个外设中断请求。从捕捉单元输入引脚处发生跳变到所选通用定时器的计数值被锁存之间的延时需要2个CPU时钟周期
EVA中的每个捕捉单元均可选择GP定时器2或1作为其时间基准,EVB中的每个捕捉单元均可选择GP定时器4或3作为其时间基准。对EVA模块,捕捉单元CAP3有自己独立的时基选择位,这就允许使用2个通用定时器中的任意一个,CAP1和CAP2共用一个时基选择位。
在EVB模块,CAP6有自己独立的时基选择位。捕捉操作不影响与任何GP定时器对应的任何GP定时器操作或比较/PWM操作
捕捉单元的设置为使捕捉单元能正常工作,需对寄存器进行以下设置:
由4个16位的控制寄存器CAPCONA/B和CAPFl FOA/B控制。因为捕捉电路的时间基准是由GP定时器1/2或3/4提供的,所以Tx CON(x=1,2,3或4)寄存器用于控制捕捉单元的操作。
另外,寄存器CMCONA/B也可用于正交编码器脉冲电路的操作。1.捕捉控制寄存器CAPCONx(1)捕捉控制寄存器A(CAPCONA),映射地址:7420h。各位的意义
位15CAPRES。捕捉复位,只能写,读为0。向位15写0将清除所有的捕捉和QEP寄存器。但是,使能捕捉功能时不需要向位15写1。1所有捕捉单元和正交编码脉冲电路的寄存器清02无动作位14-13CAPQEPN。
捕捉单元1和2的控制位。1.禁止捕捉单元1和2,FIF0堆栈保持原内容2.使能捕捉单元1和210保留11保留
位12CAP3EN。捕捉单元3控制位。1禁止捕捉单元3,其FlFO堆栈保持原内容。位10CAP3TSEL。捕捉单元3的通用定时器选择位。。捕捉单元1和2的通用定时器选择位。。捕捉单元3事件启动ADC转换位
11时,启动ADC位7-6CAP1EDGE。捕捉单元1的边沿检测控制位。测位5-4CAP2EDGE。捕捉单元2的边沿检测控制位。1.无检测2.检测上升沿10检侧下降沿
11511上升沿、下降沿均检测位3-2CAP3EDGE。捕捉单元3的边沿检测控制位。1.无检测2.检测上升沿I0检侧下降沿11上升沿、下降沿均检测位1-0保留位(2)捕捉控制寄存器B(CAPCONB),映射地址:7520h。
CAPCONB与CAPCONA各位的意义相同
CAPFl FOx中包括捕捉单元的3个FlFO堆栈的状态位。如果CAPFl FOx的状态位正在更新的同时(因为一个捕捉事件)向CAPFl FOx状态位写数据,写数据优先。
CAPFl FOx寄存器的写操作在编程中很有用。例如,如果“01”写入CAPFl FOx位,则EV模块会认为FIFO有一个输入。随后,每次FIFO获得一个新值,则将产生一个捕捉中断。
(1)捕捉FlFO状态寄存器A(CAPFl FOA)映射地址:7421216h
保留位。CAP3 Fl FO。捕捉单元3的FlFO状态位位15-14位13-121.空2.有一个输入10有两个输入11有两个输入并又捕捉到一个,第一个输入已丢失。位11-10CAP2 Fl FO。捕捉单元
个输入并又捕捉到一个,第一个输入已丢失。位9-8CAP1 Fl FO。捕捉单元到一个,第一个输入已丢失。保留位
(CAPFl FOB)映射地址:7522h,与CAPFl FOA各位的意义相同。6.6.4捕捉单元FIF0堆栈每个捕捉单元有一个2级深度FlFO堆栈。如图6-17所示。
顶部寄存器(存旧值)底部寄存器(存新值)图6-172级深度FIFO堆栈示意图出进
一个指定的转换时,选定的GP定时器的计数器值就会被捕捉,如果堆栈是空的,这个计数器值就会被写入到FlFO堆栈的项层寄存器。同时,相应的状态位被设置为01。如果另外一个捕捉发生之前对FIFO堆栈进行了读访问,则FlFO状态位被复位为00
被读取之前,又发生一次捕捉,那么捕捉的计数器值就会进入底部寄存器。同时,寄存器中相应的FIFO状态位被置为10。当在另外一次捕捉之前读FlFO堆栈时,顶部寄存器中的旧计数器值被读出,底部寄存器中的新计数器值被压入顶部寄存器,相应的状态位设置为01。
第2次捕捉会将寄存器相应的捕捉中断标志位置1,如果中断没有被屏蔽,则会产生一个中断请求
FlFO堆栈中已有两个计数器值,这时如果又有一个捕捉发生,堆栈顶部寄存器中最旧的计数器值被推出并且丢失,然后堆栈底部寄存器的计数器值被向上压入到顶部寄存器,新捕捉的计数器值被写入底部寄存器,并巳将状态位设置为11,表明一个或更多的旧计数器值被丢失。第3次捕捉会将寄存器相应的捕捉中断标志位置1,如果中断没有被屏蔽,则会产生一个中断请求
了一次捕捉,且FlFO中至少有一个捕捉到的计数值时(CAPFl FO位不为0),则相应的中断标志位置1。如果该中断没有被屏蔽,则会产生一个外设中断请求信号。如果使用了捕捉中断,则可在中断服务程序中读取捕捉到的一对计数值。
如果没有使用中断,也可以通过查询中断标志位和FlFO堆栈的状态位来确定是否发生捕捉事件,如果已发生捕捉事件则可以从相应的捕捉单元的FlFO堆栈中读取捕捉到的计数值
了利用DSP的捕获单元3(CAP3)对脉冲宽度进行捕捉的例程。为了便于演示,被捕捉的脉冲由定时器1的比较模块产该文件利用汇编语言代码定义了复位和中断向量12c_int0,_nothing,_capitle.ref.sectreset:int1:int2:int3:int4:int5:int6:bbbbbbb_c_inapi
DSP的CAPTURE模块,由TIMER1的比较模块输出一个PWM波形,//此波形输入CAP4引脚,待CAP4捕捉该PWM的10次上升沿后,停止捕捉,并把10//次捕捉值存于数组result[10/初始化子程序125//定义一个存储结果的数组result[10];
int//定义的中断次数值k=0;int
("setcasm("sM");OVM");CNF"符号位MR=0x00即WD保护位复软件禁止看
int CAP4INT(){*T3PER=0X0FFFF;*T3CON=0X1400;*T3CNT=0X00;WSGR=0x0000;*CAPCONB=0X0A47*IMR=0X08;
//通用定时器3的周期寄存器为0XFFFF//通用定时器3为连续增计数模式//计数器清0//禁止所有等待状态//设置捕获单元4为检测上升沿,且选择//TIMER3为时钟//开总中断//允许中断优先级4的中断*EVBIMRC=*EVBIMRC|0X0001;
//允许CAPTURE4中断*EVBIFRC=*EVBIFRC|0X0FFFF;}
//定时器1初始化子程序,使其比较单元输出一个PWM波形inttimer1int(){128*MCRA=*MCRA|0X100X0080;//配置IOPB4口为定时器1的比较输出//配置IOPE7口为捕捉功能*GPTCONA=*GPTCONA|0X0042;
*T1PER=0X1FE;*T1CON=0X1442;*T1CNT=0X00;*T1CMP=0X0FF;//给定时器1的周期寄存器赋值//允许TIMER1比较输出,并且TIMER1//为连续增计数模式,立即启动//定时器}
//系统初始化//定时器1初始化,使其输出一个PWM波形供捕1mer1int();捉CAP4INT();//捕获单元4初始化//启动定时器3//k保存中断次数值,是全局变量//捕捉10次后,禁止再中断*T3CON=*T3CON|0X00(k==10)break
//若是由于干扰引起其它中断,则执行0前开中断return;}
//判断是否是CAP4中断//返回前开中断//如果不是CAP4中断,则直接返//如果是CAP4//写"1"清除CAP4中断标志//返回前开中断//中断返回131//捕捉中断pint(){intflag;
flag=*EVBIFRC&0X01;if(flag!=0x01turn;回}load();中断,则装载捕捉值*EVBIFRC=*EVBIFRC|0xturn;
}
intload(){result[k]=*CAP4FIFO;//读取捕捉值,存于相应的数组k++;}
(QEP)正交编码脉冲电路可用于连接光电编码器获得旋转机械的位置、方向和速度等信息。QEP电路可以对CAP2(EVA模块)CAP4(EVB模块)引脚上的正交编码输入脉冲进行解码和计数。EVA中QEP电路的原理框图见图6-18
1356.7.1正交编码器脉冲电路概述1正交编码器脉冲引脚两个QEP输入引脚由捕捉单元1和2(或3和4,对于EVB模块)和QEP电路共享。因此CAPCONx寄存器中相应的位必须被正确设置,以使能QEP电路,并禁止捕捉单元,这样就把相应的输入引脚分配给正交编码器脉冲QEP电路,2正交编码器脉冲电路时间基准QEP电路的时间基准可以由通用定时器2(EVB模块的为通用定时器4)提供
通用定时器必须设置成定向的增/减计数模式。并以QEP电路作为时钟源。3.正交编码器脉冲电路的计数通用定时器2或4总是从计数器中的当前值开始计数,因此可以在使能QEP工作模式前将所需的值装载到所选通用定时器的计数器中。
当正交编码器脉冲电路的时钟作为通用定时器的时钟源时,选定的通用
TDIRA和TCLKINA/B(定时器方向和时钟)。用QEP电路作为时钟的GP定时器的周期、下溢、上溢和比较中断标志是根据相应的匹配产生的。如果中断没有被屏蔽,则中断标志将产生外设中断请求信号
序列中哪个序列领先,就可测出电动机的转向。角位置和速度可以通过脉冲计数和脉冲的频率测出。QEP电路的方向检测逻辑测定哪个脉冲序列的相位领先,然后产生一个方向信号作为通用定时器2或4的方向输入。
如果CAP1/QEP1(EVB为CAP4/QEP3)输入为相位领先的脉冲序列,选定的定时器递增计数。如果CAP2/QEP2(EVB为CAP5/QEP4)输入为相位领先的脉冲序列,选定的定时器递减计数
被QEP电路计数,因此送到通用定时器2或4的QEP电路产生的时钟频率是每个输入序列频率的四倍。这个产生的时钟与通用定时器2或4的时钟输入端相连
EVA模块中启动QEP电路的寄存器设置:
QEP电路需作以下设置:
源程序代该文件利用汇编语言代码定义了复位和中断向量14title_c_int0,_nothing.rct_c_int0bres
用于EVB模块的QEP电初始化子4asm("setcasm("sM");OVM");CNF"符号位MR=0x00即WD保护位复软件禁止看
int QEPINT(){*T4PER=0X0FFFF;*T4CON=0X1870;145*T4CNT=0X00;WSGR=0x0000;*CAPCONB=0X0E000;
//通用定时器4的周期寄存器为0XFFFF//通用定时器4为定向增减计数模式,//并且以正交编码脉冲电路作为时钟源//计数器清0//不使能所有的等待状态//使能EVB的QEP电路}
设置IOPE1、IOPE2为输出引脚且//都为高电平146//I/O端口初始化子程序int IOINT(X0186;}//延时子程序int DELAY(){intk;for(k=0;k<30000;k++){;}}
QEP电路初INT();QEPINT;//使IOPE2引脚;//使IOPE1引脚//使IOPE2引脚//使IOPE1引脚
//若由于干扰引起中断请求,则执行此中断服务程序,此中断程序相当于汇编中的假中断程序,即什么事//情也不作,以保证中断系统的完整性,防止程序
所有EVA中断、优先级和分组
以EVA中断标志寄存器A(EVAIFRA)为例,其映射地址为742Fh,各位描述如下:位15-11保留位。读返回0,写无效。位10T1OFINTFLAG。通用定时器1的上溢中断标志读0:标志被复位;
1:标志被置位位9写0:无效1:复位标志位T1UFINTFLAG。通用定时器1的下溢中断标志读0:标志被复位;1:标志被置位写0:无效1:复位标志位
位8152T1CINTFLAG。通用定时器1的比较中断标志读0:标志被复位;1:标志被置位位7写0:无效1:复位标志位T1PINTFLAG。通用定时器1的周期中断标志读0:标志被复位;
1:标志被置位写0:无效1:复位标志位位6-4保留位。读返回0,写无效。位3CMP3INTFLAG。比较单元3中断标志读0:标志被复位;1:标志被置位写0:无效1:复位标志位
位21。比较单元2中断标志读0:标志被复位;1:标志被置位写0:无效1:复位标志位CMP1INTFLAG。比较单元1中断标志读0:标志被复位;1:标志被置位写0:无效1:复位标志位PDPINTAFLAG。
功率驱动保护中断标志读0:标志被复位;1:标志被置位写0:无效1:复位标志位EVAIFRB、EVAIFRC各位意义不再详述
以EVA中断屏蔽寄存器A(EVAIFRA)为例,其映射地址为742Ch,各位描述如下:位15-11保留位。读返回0,写无效。位10T1OFINTENABLE。通用定时器1的上溢中断使能0:禁止1:使能位9T1UFINTENABLE。
通用定时器1的下溢中断使能0:禁止1:使能
位E。通用定时器1的比较中断使能0:禁止1:使能T1PINTENABLE。通用定时器1的周期中断使能0:禁止1:使能位6-4保留位。读返回0,写无效。位3CMP3INTENABLE。比较单元3中断使能0:禁止1:使能
位2CMP2INTENABLE。比较单元2中断使能0:禁止1:使能位1CMP1INTENABLE。比较单元1中断使能0:禁止1:使能位0PDPINTAENABLE。
功率驱动保护中断使能0:禁止1:使能EVAIMRB、EVAIMRC各位意义不再详述
下载地址:{{downurl}}
{{{a}}}
{{#b}}{{{b}}}
{{/b}} {{/title}} {{#nolog}}登陆注册
{{/nolog}} {{#djsx}}点我刷新
{{/djsx}} {{#gocz}} {{/gocz}} {{#ffqr}} {{/ffqr}}