版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章事件管理器(EV)第6章事件管理器(EV)6.1
事件管理器概述6.2
通用定时器6.3
比较单元6.4
PWM电路6.5
捕获单元6.6
正交编码脉冲单元6.7
事件管理器中断6.8
事件管理器寄存器
6.9
产生正弦波实例‘28x系列DSP芯片内包含2个事件管理器。每个事件管理器包含:通用定时器、全比较PWM单元、捕获单元以及正交编码脉冲电路(QEP)。PWM单元,产生脉宽调制信号,可以控制直流电机或步进电机的转速;捕获单元,对光电编码器的输出信号进行测量,可以计算电机的转速;正交编码脉冲电路,根据增量光电编码器信号,计算电机的旋转方向等信息。EVA和EVB中,定时器、比较单元和捕获单元的功能完全相同。
6.1事件管理器概述6.1.2EVA内部结构
6.2.1通用定时器结构内部时钟外部时钟计数方向中断信号比较输出PWM输出AD启动控制寄存器TxCON:决定通用定时器的操作模式,例如选择计数模式、时钟、预分频系数、比较寄存器的重装载条件;全局控制寄存器GPTCONA/B:规定了通用定时器针对不同事件采取的动作,指明计数方向,1为递增;定义ADC的启动信号;定时器计数器TxCNT:可以递增/递减计数;比较寄存器TxCMPR:与通用定时器的计数值不断比较,匹配时,产生比较匹配中断;周期寄存器TxPR:决定定时器的计数周期,与计数器值匹配时,产生周期匹配中断;通用定时器的寄存器上溢中断TxOFINT:当通用定时器的计数值达到FFFFH时,发生上溢事件;下溢中断TxUFINT:当计数值达到0000H时,发生下溢事件;比较匹配TxCINT:当计数值与比较寄存器中的值相等时,发生比较匹配事件;周期匹配TxPINT:当计数值与周期寄存器中的值相等时,发生周期匹配事件;发生以上事件会将相应中断标志置位,如果外设中断未被屏蔽,则会产生一个外设中断请求;
通用定时器的中断每个通用定时器都支持4种计数模式:停止/保持模式、连续递增计数模式、定向递增/递减计数模式和连续递增/递减计数模式。对TxCON寄存器中的TMODE1~TMODE0位进行设置,选择不同的计数模式;设置TxCON.6即TENABLE位可以使能或禁止定时器的计数操作;
1.停止/保持计数模式:定时器停止操作,并保持当前状态,定时器的计数器、比较输出和预分频计数器中的值都保持不变。6.2.2通用定时器的计数模式
下例中TxCON.3-2=00,初始TxPR=3,后来TxPR=2定时器的周期为(TxPR+1)
2.连续递增计数模式通用定时器的初始值
通用定时器的初始值可以是0~FFFFH之间的任意值。如果初始值比周期寄存器中的值大时,计数器将从初始值开始计数,一直递增到FFFFH后复位到0,然后以0为初始值重新开始计数;如果初始值等于周期寄存器的值,则将周期中断标志置位,复位到0,下溢中断标志置位,然后以0为初始值继续计数;如果初始值界于0和周期寄存器的值之间时,将递增计数到周期寄存器的值,然后将周期中断标志置位,复位到0,下溢中断标志置位,以0为初始值继续计数;当TDIRA/B引脚输入高电平时,递增计数;当TDIRA/B引脚输入低电平时,递减计数;计数方向由GPTCONA/B中相应位来指示(只读)。3.定向递增/递减计数模式
TxCON.3-2=01,初始TxPR=3,后来TxPR=2
定时器的周期为(2*TxPR)4.连续递增/递减计数模式定时器的计数方向由寄存器GPTCONA/B中的相应位来指示;引脚TDIRA/B的状态被忽略;连续递增/递减计数模式特别适用于产生中心对称的PWM波形,这种波形在电机/运动控制和电力电子技术中广泛应用。4.连续递增/递减计数模式通用定时器的比较操作用来产生脉宽调制PWM信号。方波高电平时间跟周期的比例叫占空比,例如,1秒高电平1秒低电平的PWM波占空比是50%要产生一个PWM信号:1.需要一个定时器计数;计数周期与PWM载波周期相同;2.需要比较寄存器保持调制值:比较值与计数器相比较,匹配时,产生第一次跳变;第二次比较匹配(对称PWM)或者计数周期结束(非对称PWM),产生第二次跳变;PWM信号可以由GP定时器产生,也可以由PWM电路产生;PWM信号概述
每个通用定时器都有一个对应的比较寄存器TxCMPR和一个PWM输出引脚TxPWM;将TxCON[1]位置为1/0,使能/禁止定时器的比较操作;通用定时器的计数值持续地与比较寄存器TxCMPR的值进行比较,当两者相等时,就发生比较匹配;比较匹配发生后,再过1个CPU时钟周期,定时器的比较中断标志置位,并在输出引脚TxPWM上将产生跳变;如果GPTCONA/B选择比较匹配作为ADC启动转换信号,则同时产生ADC启动转换信号SOC;如果比较中断未被屏蔽,将产生一个外设中断申请;在PWM输出引脚TxPWM上可以产生对称或不对称的PWM波形。通用定时器的比较操作计数值周期结束比较值Tpwm/Tcmp(高有效)周期匹配比较匹配定时周期不对称PWM波形发生对称PWM波形发生计数值比较值周期匹配定时周期TPWM/TCMP(高有效)比较匹配1比较匹配2使用通用定时器产生PWM波形的步骤如下:根据PWM载波周期设置计数周期TxPR的值:在连续递增计数模式下,将期望的PWM周期除以通用定时器时钟周期,并减去1,得到的结果装入TxPR;在连续递增/递减计数模式下,将期望的PWM周期除以2倍的定时器时钟周期,得到的值装入TxPR。设置TxCON:选择计数模式、计数时钟源并启动操作;将在线计算得到的PWM脉冲宽度装载入比较寄存器TxCMPR;在运行期间,比较寄存器的值不断更新,新的比较值决定新的PWM脉冲宽度。用通用定时器产生PWM输出每个EV模块各有3个全比较器,每个比较器对应两路PWM输出;EVA模块中,全比较器的时钟由通用定时器1提供,EVB模块中,全比较器的时钟由通用定时器3提供;每个比较单元包括3个16位的比较寄存器CMPRx,各带一个映像寄存器;1个16位的比较控制寄存器COMCONA;1个16位的动作控制寄存器ACTRA,带有1个映像寄存器;6路带三态输出的PWM引脚以及控制和中断逻辑;比较单元的输入:包括来自控制寄存器的控制信号,通用定时器1的时钟信号及下溢信号、周期匹配信号和复位信号。比较单元的输出:一个比较匹配信号,如果比较操作被使能的话,比较匹配信号将中断标志置位,并在对应的PWM引脚上产生跳变。6.3比较单元
EVA比较单元结构通用定时器1的计数值不断地与比较寄存器的值进行比较,当发生匹配时,该比较单元的两个输出引脚发生跳变;动作控制寄存器ACTRA,定义在发生比较匹配时每个输出引脚为高有效电平或低有效电平;比较单元的运行要求寄存器按T1PR、ACTRA、CMPRx、COMCONA和T1CON的顺序设置;
比较单元中,发生比较匹配时输出引脚上的跳变时序、中断标志的设置和中断请求的产生都与通用定时器的比较操作是一样的。
比较单元的工作过程PWM单元由对称/不对称波形发生器、可编程死区单元DBU、PWM输出逻辑和空间向量SVPWM状态机组成;对称/不对称波形发生器与通用定时器中的波形发生器是相同的;PWM电路能够在电机控制和运动控制应用领域中,将CPU开销和用户工作量降到最低程度;产生PWM波形时要涉及的寄存器主要有:定时器1控制寄存器T1CON、比较控制寄存器COMCONA、比较动作控制寄存器ACTRA和死区控制寄存器DBTCONA。6.4PWM电路功率器件三相输出作为控制信号+-串联的2个器件不能同时开通,不能有重叠区PWM信号输入DC电容6.4.1可编程的死区单元晶体管导通比截止快同时导通的瞬间会发生直流电压短路输出供电互补的PWM开关信号电源逆变器电路从一个开关器件的关断信号发出,到同桥臂另一个开关器件加开通信号存在一段时间延迟,这个延迟时间通常称为死区。非对称PWM对称/非对称波形死区死区外设时钟DTPHxDTPHx_死区控制预分频4-bit计数器ENAresetHSPCLK比较器DTPHxDTPHx_PHxDT边沿检测DBTCONA.4-2DBTCONA.11-8可编程死区模块EVA模块的每个比较单元都可以和通用定时器1、可编程死区单元和PWM电路的输出逻辑一起,在专用的输出引脚上产生一对死区和输出极性都可编程的PWM信号;产生PWM波形对寄存器设置的步骤如下:设置和装载比较动作控制寄存器ACTRx;若要使能死区功能,需要设置和装载死区控制寄存器DBTCONx;初始化比较寄存器CMPRx;设置和装载比较控制寄存器COMCONx;设置和装载定时器控制寄存器T1CON(对EVA)/T3CON(对EVB),启动操作;用在线计算得到的新值装载比较寄存器CMPRx。6.4.3用比较单元和PWM电路产生PWM波形捕获单元能够捕获输入引脚CAPx上的跳变;EV模块中共有6个捕获单元,其中EVA模块的捕获单元为CAP1、CAP2和CAP3,EVB模块的捕获单元为CAP4、CAP5和CAP6;每个捕获单元都有一个相应的捕获输入引脚CAPx;EVA模块中,每个捕获单元都可以选择通用定时器2或通用定时器1作为时间基准,CAP1和CAP2必须选择同一个定时器作为时间基准;当在捕获输入引脚CAPx上检测到跳变时,通用定时器的值被捕获,并储存入相应的2级深度FIFO堆栈。6.5捕获单元6.5.1EVA捕获单元结构每个捕获单元都有1个16位的捕获控制寄存器(CAPCONx)、1个16位的捕获FIFO状态寄存器(CAPFIFOx)、1个16位2级深度的FIFO堆栈、1个可屏蔽的中断标志位和1个施密特触发的捕获输入引脚CAPx;用户可以设定跳变的探测方式(上升沿、下降沿或上升下降沿);所有的捕获输入信号都与CPU时钟同步,也就是说为了可靠地捕获跳变,输入信号的当前值必须保持两个CPU时钟周期。如果使用了输入定标电路,则输入信号还必须满足定标电路对脉冲宽度的要求。捕获单元寄存器捕获单元被使能后,捕获输入引脚上特定的电平变换发生后,将所选的通用定时器当前计数值装入相应的FIFO堆栈;如果FIFO堆栈中已经存储了1个或更多的有效值,则将相应的中断标志置位,若中断未被屏蔽,就将产生一个外设中断请求;每次捕获到新的计数值存入FIFO堆栈时,捕获FIFO状态寄存器CAPFIFOx相应的位就进行调整,实时地反映FIFO堆栈的当前新状态。6.5.2捕获单元的操作捕获单元的设置为使捕获单元能够正常工作,必须配置下列寄存器:初始化CAPFIFOx寄存器,清除相应的状态位;设置用于捕获操作的通用定时器工作模式;设置通用定时器比较寄存器;如有必要,设置周期寄存器;配置捕获单元控制寄存器CAPCONx。每个捕获单元都有一个专用的2级深度FIFO堆栈,栈顶寄存器为CAPxFIFO(x=1~6),栈底寄存器CAPxFBOT;栈顶寄存器是只读寄存器,它存放最早捕获到的计数值,读取堆栈时总是返回最早捕获到的计数值;当栈顶寄存器中的值被读走后,栈底寄存器中的新计数值(如果有)将被压入栈顶;捕获单元FIFO堆栈的使用捕获单元使能后,当输入引脚出现一次特定的跳变时,将发生第一次捕获;如果FIFO堆栈原来是空的话,则通用定时器的计数值被写入到栈顶寄存器,同时相应的FIFO状态位置为01(表示FIFO有值);如果在下一次捕获操作之前,读取了FIFO堆栈的值,则FIFO状态位被复位为00(表示FIFO空)。第一次捕获如果在前一次捕获的计数值被读取之前,产生了又一次捕获,则新捕获到的计数值将送至栈底寄存器,同时相应的寄存器状态被置为10(表示FIFO满);第二次捕获能使相应的捕获中断标志置位,如果中断未被屏蔽,则产生一个外设中断请求。第二次捕获如果发生捕获时,FIFO堆栈中已经有2个计数值,则栈顶寄存器中的计数值将被弹出并丢弃,而栈底寄存器的值将被压入到栈顶寄存器中,新捕获到的计数值(第三次捕获的值)将压入到栈底寄存器中,并且FIFO的状态被设置为11,表示FIFO中有1个或更多的计数值已被丢弃。第三次捕获使相应的捕获中断标志位置位,如果中断未被屏蔽,则产生一个外设中断请求。第三次捕获正交编码脉冲QEP(QuadratureEncodedPulses)电路可用于连接光电编码器,通过对引脚上的正交编码输入脉冲进行解码和计数来获得旋转机器的位置和速率等信息;正交编码脉冲是两个频率可变,相位差固定为1/4周期的脉冲序列。当电机轴上的光电编码器产生正交编码脉冲时,可以通过检测两路脉冲的先后次序,确定电机的转动方向;根据脉冲的个数和频率,确定电机的角位置和角速度。EVA模块的QEP电路可以向通用定时器2提供时间基准。采用QEP电路作为时钟源时,通用定时器必须工作在定向递增/递减计数模式;6.6正交编码脉冲单元QEP电路结构Ch.ACh.B正交编码器输出/4什么是正交编码器?间隔空隙/4相位差LED转轴递增光电编码ABCh.ACh.B(00)(11)(10)(01)(A,B)=位置分辨率为/4度.如何通过正交信号来决定方向?00011110正交编码器状态机递增计数递减计数Ch.ACh.B10011100QEP电路的方向检测逻辑能确定两个输入脉冲序列的先后次序,并产生一个方向信号作为通用定时器2(EVA模块)的计数方向。如果QEP1引脚上的输入脉冲领先,则定时器就进行递增计数;相反,如果QEP2引脚上的输入脉冲领先,则定时器进行递减计数。两路正交编码输入脉冲信号的上升沿和下降沿都被QEP电路计数,因此QEP电路产生的时钟信号频率是每一路输入脉冲序列频率的4倍,这个正交时钟被用作通用定时器2的输入时钟。6.6.2QEP解码
GPTimer2作为脉冲计数器
定时器预分频系数为1正向编码连接EVACh.ACh.BCAP1/QEP1CAP2/QEP2QEPdecoderlogicGPTimer2CLKDIR..IndexCAP3/QEPIQEPIEQEPIQUAL正向编码连接EVA当EV模块中有中断产生时,EV中断标志寄存器相应事件的中断标志位置为1;如果标志位未被屏蔽,则外设中断扩展控制器PIE将产生一个外设中断申请;当CPU响应外设中断申请时,所有被置位且使能的中断中,具有最高优先级的外设中断向量将被装载入外设中断向量寄存器PIVR;外设寄存器中的中断标志必须在中断服务子程序中用软件写“1”将其清除。如果不能够成功地清除该位,将不能响应当前外设的下一个中断。6.7事件管理器中断中断包括比较中断、周期中断、上溢中断、下溢中断序号寄存器名称地址大小功能描述1GPTCONA0x0000740016bits通用定时器全局控制寄存器A2T1CNT0x0000740116bits定时器1计数寄存器3T1CMPR0x0000740216bits定时器1比较寄存器4T1PR0x0000740316bits定时器1周期寄存器5T1CON0x0000740416bits定时器1控制寄存器6T2CNT0x0000740516bits定时器2计数寄存器7T2CMPR0x0000740616bits定时器2比较寄存器8T2PR0x0000740716bits定时器2周期寄存器9T2CON0x0000740816bits定时器2控制寄存器6.8事件管理器(EVA)的寄存器10EXTCONA0x0000740916bits扩展控制寄存器A11COMCONA0x0000741116bits比较控制寄存器A12ACTRA0x0000741316bits比较动作控制寄存器A13DBTCONA0x0000741516bits死区时间控制寄存器A14CMPR10x0000741716bits比较寄存器115CMPR20x0000741816bits比较寄存器216CMPR30x0000741916bits比较寄存器36.8事件管理器(EVA)的寄存器17CAPCONA0x0000742016bits捕获单元控制寄存器A18CAPFIFOA0x0000742216bits捕获单元FIFO状态寄存器A19CAP1FIFO0x0000742316bits2级深度FIFO1堆栈20CAP2FIFO0x0000742416bits2级深度FIFO2堆栈21CAP3FIFO0x0000742516bits2级深度FIFO3堆栈22CAP1FBOT0x0000742716bitsFIFO1栈底寄存器23CAP2FBOT0x0000742816bitsFIFO2栈底寄存器24CAP3FBOT0x0000742916bitsFIFO3栈底寄存器6.8事件管理器(EVA)的寄存器25EVAIMRA0x0000742C16bitsEVA中断屏蔽寄存器A26EVAIMRB0x0000742D16bitsEVA中断屏蔽寄存器B27EVAIMRC0x0000742E16bitsEVA中断屏蔽寄存器C28EVAIFRA0x0000742F16bitsEVA中断标志寄存器A29EVAIFRB0x0000743016bitsEVA中断标志寄存器B30EVAIFRC0x0000743116bitsEVA中断标志寄存器C6.8事件管理器(EVA)的寄存器SPWM波形产生原理6.9利用EVA设计正弦波发生器实例6.9.1DSP正弦波产生电路利用EV模块产生SPWM信号时,可以采用查表的方式得到每个PWM周期的正弦波值,经过数据格式变换后存入比较寄存器中;在通用定时器1的比较中断服务子程序中,对比较寄存器的值进行更新;定时器设置为连续递增模式,可以产生非对称的PWM信号;正弦波的频率值等于PWM本身的载波频率除以每个正弦波周期内包含的PWM周期数;查表时采用间隔取数,则可以调整正弦波频率。6.9.2利用EVA产生SPWM的软件设计若已确定正弦波信号的频率,以及每个正弦波周期所包含的PWM周期数,则可以求出PWM信号的周期。例如查表点数为128,要求输出正弦信号的频率为264Hz,则有:fPWM
=f正弦波*128=264*128=33792Hz
可以计算得到定时器的周期:
T1PR
=fCPU/(TPST1*HISCP*fPWM)=150MHz/1*2*33792Hz
=2219.46
其中TPST1和HISCP为分频系数。利用EVA产生SPWM的软件设计#include“DSP281xDevice.h”#include“IQmathLib.h”
//数据格式转换#pragmaDATASECTION(sinetable,”IQmathTables”)Iq30sinetable[512];
VoidGpio_select(void);
//函数原型声明VoidInitSystem(void);InterruptvoidT1_Compare_isr(void);
//定时器1中断服务程序Voidmain(void){Staticintindex=0;
//初始化查表指针InitSystem();
//初始化DSP内核寄存器Gpio_select();
//设置GPIO引脚功能InitPieCtrl();
//初始化外设中断扩展单元InitPieVectTable();
//初始化外设中断扩展向量表EALLOW; //允许更改保护的寄存器PieVectT1CINT=&T1_Compare_isr;
//重新映射定时器1(TIMER1)的比较中断入口RDIS; //禁止更改保护的寄存器PieCtrlRegs.PIEIER2.bit.INTx5=1;
//使能T1比较中断:PIE组2,中断5IER=2;
//使能CPUINT2,通用定时器1的比较中断连接到该中断EINT; //使能全局中断INTMERTM //使能全局实时中断DBGH源程序//EVA的时钟已经在InitSysCtrl()中使能EvaReg.GPTCONA.bit.TCMPOE=1;//比较输出T1PWM或者T2PWM由各自的定时器比较逻辑驱动EvaReg.GPTCONA.bit.T1PIN=1;//比较输出低电平有效EvaReg.T1CON.bit.FREE=0;EvaReg.T1CON.bit.SOFT=0; //仿真器操作挂起时,通用定时器立即停止EvaReg.T1CON.bit.TMODE=2;//连续递增计数模式(不对称PWM波形)EvaReg.T1CON.bit.TPS=0;//输入时钟预分频系数为X/1,即T1CLK为75MHzEvaReg.T1CON.bit.TENABLE=0;//禁止定时器操作,等设置完毕后再启动EvaReg.T1CON.bit.TCLKS10=0;//使用内部时钟EvaReg.T1CON.bit.TCLD10=0;//计数值等于0时,比较器重新装载EvaReg.T1CON.bit.TECMPR=1;//使能通用定时器的比较操作EvaReg.T1PR=1500;
//设置通用定时器1的周期EvaReg.T1CMPR=EvaReg.T1PR/2;//设置通用定时器1比较寄存器EvaReg.EVAIMRA.bit.T1CINT=1;//设置通用定时器1计数器EvaReg.T1CON.bit.TENABLE=1;//启动通用定时器1,开始产生PWM波}初始化EVA通用定时器1voidGpio_select(void){ EALLOW;
GpioMuxRegs.GPAMUX.bit.T1PWM_GPIOA6=1;
//将GPIOA6设置T1PWM引脚EDIS;}通用I/O口选择voidInitSystem(void){EALLOW;SysCtrlRegs.WDCR=0x0068;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 儿童康复区介绍
- T∕CADPA 58-2024 高等教育数字教材出版平台接口技术要求
- 举报网络侵权机制合作协议
- 《宠物医院实务》项目五
- 2026年青岛大学预防医学专业《病理学》科目期末考试卷A
- ZUCC毕业生就业前景
- 锂电池回收行业就业前景
- 安全风险分级管控和隐患排查治理体系培训试题库和答案解析
- 公司法自考试题及答案
- 体育界AI领军人物
- 《高二开学第一课》主题班会课件
- 2020风电场设备事故现场处置方案
- 自考《兽医法规14239》考试复习题库(必备版)
- 《中华民族大团结》(初中)第1课-爱我中华教学课件
- 2021废(污)水处理用复合碳源
- 化学(基础模块)中职PPT完整全套教学课件
- 架空导地线-液压压接(郭学闻)
- 技师培训交直流调速
- 输变电工程项目安全管理台账
- 《高级计量经济学》-厦门大学经济学院
- GB/T 9239.1-2006机械振动恒态(刚性)转子平衡品质要求第1部分:规范与平衡允差的检验
评论
0/150
提交评论