1、dsp课件6-事件管理器7.1 事件管理器概述每个240 x器件都包括两个事件管理器和每事件管理器包括、和。EVA和EVB的定时器、比较单元及捕获单元的功能都相同,只是定时器和单元的名称不同,起始地址分别为7.1.1 事件管理器结构框图7.1.2 事件管理器寄存器事件管理器A、B的定时器寄存器地址事件管理器A、B的比较控制寄存器地址事件管理器A、B的捕获控制寄存器地址中断寄存器事件管理器A、B的中断寄存器地址7.1.3 事件管理器中断1.当功率变换器过压、过流、过温,保护功率器件,如IGBT。2.如PDPINTx中断未被屏蔽,当PDPINTx引脚被拉到低电平,则所有PWM都处于高阻态,关断驱动
2、信号。3.PDPINTx中断发生。两级中断:底层中断和高层中断u中断源产生u对应中断屏蔽寄存器使能u外设中断扩展控制器(PIE)请求,装载中断向量u中断请求相或之后产生INTn请求uCPU响应7.2 通用定时器:1.16位的定时器增/减计数器2.16位的定时器比较寄存器3.16位的定时器周期寄存器4.16位的定时器控制寄存器5.可选择内部或外部时钟及其预定标器6.控制和中断逻辑用于4个可屏蔽中断7.可选择方向的输入引脚TDIRx(用于定向增减计数模式的向上或向下计数)7.2 通用定时器General-Purpose Timer Block Diagram(x=2 or 4)when x=2:y
3、=1 and n=2 when x=4:y=3 and n=4TxPR(shadowed)TyPR(shadowed)Compare logicControl logicOutput logicTxCMPR(shadowed)GPTCONA(shadowed)TxCNTTxCONMUXSymm/asymWaveformgerneratorInternalCPU clockInterrup flagsADC startTCLKINATDIRATxPWM/TxCMP7.2.2 通用定时器功能模块u内部CPU时钟。u外部时钟,最大频率是CPU时钟频率的1/4。u方向输入,用于控制通用定时器定向增/减
4、计数模式。u复位信号RESET。u 通用定时器比较输出TxCMP。u 至模数转换启动信号。u 比较逻辑和比较单元的下溢、上溢、比较匹配和周期匹配信号。u 计数方向指示位。3.通用定时器控制寄存器(TxCON)Bit 1211 TMODE1/TMODE0。计数模式选择。00 停止/保持 01 连续增/减计数模式 10 连续增计数模式 11 定向增/减计数模式Bits 1514 Free,Soft.Emulation control bits.00 Stop immediately on emulation suspend01 Stop after current timer period is
5、complete on emulation suspend10 Operation is not affected by emulation suspend11 Operation is not affected by emulation suspendBit 13 Reserved.Reads return zero,writes have no effect.Bit 108 TPS2-TPS0。输入时钟预定标系数Bit 7 T2SWT1/T4SWT3。定时器2、4的周期寄存器的使能选择位。为0时,定时器2和定时器4使用自身的使能位;为1时,定时器2与定时器1同时启动,定时器3与定时器4同时
6、启动。Bit 6 TENABLE。定时器使能位。0禁止。1使能。Bit 54 TCLKS1/TCLKS0。时钟源选择。0 0 Internal0 1 External1 0 Reserved1 1 QEP Circuit(in case of Timer 2/Timer 4)Reserved(in case of Timer 1/Timer 3)000 x/1 100 x/16001 x/2 101 x/32010 x/4 110 x/64011 x/8 111 x/128x=device(CPU)clock frequencyBits 32 TCLD1,TCLD0.Timer Compare
7、 Register Reload Condition.00 When counter is 001 When counter value is 0 or equals period register value10 Immediately11 ReservedBit 1 TECMPR.Timer compare enable.0 Disable timer compare operation1 Enable timer compare operationBit 0SELT1PR。周期寄存器选择。0 使用自身的周期寄存器。1 使用T1PR(在EVA模块)或T3PR(在EVB模块)作为周期寄存器,
8、忽略自身的周期寄存器。在定时器2、4中有效,定时器1、3中保留。4.全局通用定时器控制寄存器(GPTCONA/B)GPTCONB内容与GPTCONA一样,只是把定时器1、2改为定时器3、4。通用定时器比较寄存器的值与计数器的值相等(匹配)时,发生以下事件:1.根据GPTCONA/B位设置的不同,比较输出发生跳变,或启动ADC。2.相应中断标志被置位。3.如中断未屏蔽将产生外设中断请求。周期寄存器的值决定定时器的周期,当计数器达到周期值时,计数器复位为0或者开始递减计数。n 比较寄存器和周期寄存器都含有。新值是写到影子寄存器中的。的内容加载到比较寄存器的事件由TxCON决定。的值加载是在计数器(
9、TxCNT)为零时。n 如果计数器要初始化成非零的数,则周期寄存器应该先初始化,否则,将保持不变到下一次下溢。n 比较输出TxPWM可规定为、,或。n 当它为/时,发生时比较输出由/。n 如果通用定时器处于,时比较输出由高至低/由低至高。n 如果通用定时器处于,周期匹配时比较输出/。n 通用定时器的计数方向由通用定时器控制寄存器GPTCONA/B决定。读位TxSTAT的状态。n 时钟源可选择或。n 外部时钟频率必须小于等于CPU时钟频率的1/4。n 每个通用定时器可选择灵活的预定标因子。通过正确的配置,通用定时器2、4可分别与1、3同步,实现如下:nEVA模块1.置T1CON的TENABLE位
10、为1,置T2CON的T2SWT1位为1,同时启动两个定时器的计数器。2.在启动同步操作前,定时器1、2的计数器初始化成不同的值。3.置T2CON的SELT1PR位为1,使定时器2用定时器1作为它的周期寄存器。nEVB模块作类似的操作,使定时器3、4同步。GPTCONA/B的位可规定由通用定时器的事件发生,如下溢、比较匹配或周期匹配。当内部CPU时钟被仿真器中止,如调试时设置断点,仿真悬挂就发生。设置TxCON可定义仿真悬挂器件通用定时器操作。通用定时器在EVAIFRA、EVAIFRB、EVBIFRA、EVBIFRB中有12个中断标志:1.上溢TxOFINT(X=1、2、3、4):计数器的值达到
11、FFFF时。2.下溢TxUFINT(X=1、2、3、4):计数器的值达到0000时。3.比较匹配TxCINT(X=1、2、3、4)4.周期匹配TxPINT(X=1、2、3、4)Note:每个中断标志位都是在每个事件发生后被置位。7.2.3 通用定时器的计数操作通用定时器有4种可选的操作模式:1.停止/保持模式2.连续增计数模式3.定向增/减计数模式4.连续增/减计数模式1、停止/保持模式(TMODE10 00)通用定时器的操作停止并,定时器的计数器、比较输出和预定标计数器都保持不变。2、连续增计数模式(TMODE10=01)p 通用定时器将按照定标的输入时钟增计数,直到计数器与周期寄存器的值相
12、等为止,下一个CPU时钟周期的,通用定时器复位为零。开始另一个计数周期。p 计数器TxCNT的初始值的设置(4种初始设置值)。p 一定的时刻产生相应的中断。p GPTCONA/B的TxSTAT指示位自动为1,可选择内部或外部时钟。TDIRA/B被忽略。周期匹配Tenable计数开始置周期匹配中断标志置下溢中断计数脉冲33120TxCNT120120TxPR=4-1=3TxPR=3-1=2连续增计数模式下的工作过程例程:LDP#232;指向7400h7480h单元SPLK#41H,GPTCONA;TCOMPOE=1 允许定时器比较输出SPLK#3H,T1PR;设置周期寄存器SPLK#3H,T1C
13、MPR;设置比较寄存器SPLK#0H,T1CNT;设置计数寄存器SPLK#0174EH,T1CON;增计数模式,TPS=111 预分频为128;TENABLE=1 定时器计数使能,TCLKS=00 内部时钟;TECMP=1 定时器T1CON;TMODE=10 连续1比较使能,SELT1PR=0 通用定时器连续增计数模式(TxPR=3或2)3、定向增/减计数(TMODE10=11)通用定时器根据定标时钟和TDIRA/B引脚输入来增减计数:1.TDIRA/B保持为高时,定时器增计数到周期寄存器的值。2.初值大于周期寄存器的值时,计数到FFFFh,定时器计数器复位到零,继续增计数到周期寄存器的值。3
14、.TDIRA/B保持为低时,定时器减计数直到0。当TDIRA/B继续为低时,计数器重新载入周期寄存器的值。4.初值大于周期寄存器的值时,减计数到周期的值。5.一定的时刻产生相应的中断。6.TDIRA/B电位的变化体现到计数器的时间:当前计数到周期值加1个CPU时钟周期。定向增/减计数模式下的工作过程Tenable增计数开始置周期匹配中断标志置下溢中断计数脉冲周期匹配33120TxCNT1203下溢TDIRA/B两周期的延时减计数开始例程:LDP#232;指向7400h7480h单元SPLK#41H,GPTCONA;TCOMPOE=1 允许定时器比较输出SPLK#3H,T1PR;设置周期寄存器S
15、PLK#3H,T1CMPR;设置比较寄存器SPLK#0H,T1CNT;设置计数寄存器SPLK#01F4EH,T1CON;TMODE=11定向增/减计数模式,TPS=111 预分频为128;TENABLE=1 定时器计数使能,TCLKS=00 内部时钟;TECMPR=1 定时器1比较使能,SELT1PR=0上图为通用定时器定向增/减计数模式(TxPR=3)TDIRA/B引脚的电位不影响计数器:p 除第一个周期外,定时器的周期为2TxPR。p 计数器的值达到周期寄存器的值时,计数方向从增变为减,计数器的值为零时,从减计数变为增计数。,计数到FFFFh,定时器计数器复位到零,开始正常的连续增/减计数
16、。p 初值为周期寄存器的值时,计数器减计数到零,然后正常计数。p 一定的时刻产生相应的中断。p 计数方向可从GPTCONA/B的方向位读出。p 可选内部、外部时钟。连续增减计数模式下的工作过程Tenable增计数开始置周期匹配中断标志置下溢中断计数脉冲TxCNT3120周期匹配120下溢312周期匹配120下溢周期匹配1210下溢1210下溢TxPR=3定时器周期为236TxPR=2TxPR=3TxPR=2定时器周期为224周期匹配例程:LDP#232;指向7400h7480h单元SPLK#41H,GPTCONA;TCOMPOE=1 允许定时器比较输出SPLK#3H,T1PR;设置周期寄存器S
17、PLK#3H,T1CMPR;设置比较寄存器SPLK#0H,T1CNT;设置计数寄存器SPLK#0F4EH,T1CON;TMODE=10 连续增/减计数模式,TPS=111 预分频为128;TENABLE=1 定时器计数使能,TCLKS=00 内部时钟;TECMPR=1 定时器1比较使能,SELT1PR=0上图为通用定时器连续增/减计数模式(TxPR=3或2)通用定时器的中断软件实现特定中断服务子程序:T1PINT_ISR:CLRC INTM RET假中断程序:PHANTOM:KICK_DOG RETEND主程序:.text_c_int0;系统初始化,对INT2,T1PINT(EVAIMRA)使
18、能WAIT:NOPB WAIT建立中断向量表.sect.vectors;定义主向量段RSVECTB _c_int0;PM 0复位向量 INT1B PHANTOM;PM 2中断优先级1INT2B GISR2;PM 4中断优先级2INT3 B PHANTOM;PM 6中断优先级3INT4 B PHANTOM;PM 8中断优先级4INT5 B PHANTOM;PM A中断优先级5INT6 B PHANTOM;PM C中断优先级6RESERVED B PHANTOM;PM E 模拟量输入中断(保留)SW_INT8 B PHANTOM;PM 10 用户定义软件中断 SW_INT31 B PHANTOM;
19、PM 3E 用户定义软件中断.WORD 0FFFFH.WORD 0FFFFH ;.WORD 0FFFFH.WORD 0FFFFH ;PASSWORDS通用中断服务子程序:GISR2:;优先级INT2中断入口;保护现场LDP#0E0HLACCPIVR,1;读取外设中断向量寄存器(PIVR),并左移一位ADD#PVECTORS;加上外设中断入口地址BACC;跳到相应的中断服务子程序中断子向量入口定义pvecs.sect“.pvecs”;定义子向量段PVECTORS B PHANTOM;保留向量地址偏移量-0000h B PHANTOM;保留向量地址偏移量-0001h B PHANTOM;保留向量地
20、址偏移量-0026hB T1PINT_ISR;保留向量地址偏移量-0027h T1PINT中断B PHANTOM;保留向量地址偏移量-0028h B PHANTOM;保留向量地址偏移量-0041h7.2.4 通用定时器的比较操作n相关寄存器:TxCMPR 输出引脚:TxPWMn当比较匹配,且比较使能时,产生:1.匹配中断寄存器标志位在匹配后的1个CPU时钟后置位。2.1个时钟周期后,根据GPTCONA/B配置,产生PWM跳变。3.启动模数转换。4.如比较中断未被屏蔽,则产生外设中断请求。非对称波形产生下图为连续增计数模式产生的非对称波形,1.计数开始前为零,2.保持不变直到比较匹配发生。3.比
21、较匹配时,PWM产生触发。4.发生匹配周期结束后,如果下一个周期的比较值不是零,则在周期结束后复位为零。5.初始设置比较值为0时,输出一直为1;比较值大于周期值,输出始终为0。对称波形产生下图为连续增/减计数模式产生的对称波形:1.计数开始前为零。2.保持不变直到第一次比较匹配发生。3.第一次比较匹配时,PWM产生触发,保持不变到第二次周期匹配。4.第二次匹配时产生触发,保持不变到周期结束。5.如果没有第二次匹配且下一周期新比较值不为零,则在周期结束后复位为零。6.如果比较值在周期开始时为0,则周期开始时将输出为1,且保持1到第二次比较匹配发生。7.如比较值在周期后半部分是0,则输出将保持1到
22、周期结束。8.占空比0100。输出逻辑n PWM输出可规定为高有效、低有效、强制高或强制低。n 强制高/低时,PWM输出立即被置成1/0。n 出现以下情况,PWM输出都置为高阻态:1.软件将GPTCONA/B6置成0;2.PDPINTX引脚电平被拉低,且未被屏蔽;3.复位;4.软件将TxCON1置0。有效/无效时间计算n连续增模式:无效时间:TxCMPR个定标时钟有效时间:TxPR+1-TxCMPR个定标时钟n连续增/减模式:有效时间:2TxPR-TxCMPRup-TxCMPRdown无效时间:TxCMPRupTxCMPRdown通用定时器的PWM输出n 4个通用定时器总共有4个PWM输出n
23、可选择连续增或连续增/减模式n PWM输出设置方法:1.设置TxPR2.设置TxCON3.计算脉冲宽度,加载TxCMPRn 当DSP复位时,PWM输出置为高阻态7.3 比较单元n 时间管理器EVA有3个,EVB有3个,每个全比较有两个PWM输出,。n 3个16位(CMPR1、CMPR2、CMPR3),各自都带影子寄存器。n 一个可读/写的(COMCONA/B)。n 一个16位的(ACTRA/B)。n 6个比较/PWM输出引脚。n 控制和中断逻辑。比较单元结构图1、比较输入/输出n输入:1.控制寄存器的控制信号2.通用定时器1、33.比较寄存器4.复位信号n输出:PWM引脚2、比较操作模式比较单
24、元的比较操作模式由比较控制寄存器(COMCONx决定),下列需要确定:是否被。是否被,如未使能,置为高阻态。n比较寄存器用它们的影子寄存器的值。n空间矢量PWM输出模式是否被使能第一步:设置方式控制寄存器ACTRx第二步:设置周期寄存器TxPR第三步:初始化CMPRx第四步:设置比较控制寄存器COMCONx第五步:定时器控制寄存器TxCON4、比较单元的中断和复位 作用:是否产生比较中断n每个比较单元都有一个,如被使能,匹配后1个CPU时钟后,中断标志被置位。n复位时PWM引脚为高阻态。5、比较单元寄存器n 比较单元的操作由比较控制寄存器COMCONA/B控制,由COMCONX.15位使能比较
25、操作n 当比较事件发生时,(ACTRA/B)控制6个比较输出引脚。Bit 15 CENABLE。比较使能位。0 禁止比较操作 1 使能比较操作Bit 1413 CLD1/CLD0。00 T1CNT=0 01 T1CNT=0或T1CNT=T1PR 10 11 保留Bit 12 SVENABLE。空间矢量PWM使能位。0 禁止 1 使能Bit 1110 ACTRLD1/ACTRLD0。00 T1CNT=0 01 T1CNT=0或T1CNT=T1PR 10 11 保留Bit 9 FCOMPOE。比较输出使能位。0 高阻 1 使能 比较控制寄存器COMCONA比较动作控制寄存器ACTRAn 控制比较输
26、出引脚 CMPxACT1/0 00 强制低 01低有效 10 高有效 11强制高7.4 脉宽调制电路PWMn每个事件管理器8路PWM输出:6路全比较单元的,2路通用定时器的,PWM特性如下:1.16位寄存器2.016us的可编程死区PWM输出对3.PWM载波频率可根据需要改变PWM载波频率4.PWM脉冲宽度可改变5.外部可屏蔽的功率驱动保护中断6.可产生空间矢量PWM波形7.自动重载比较寄存器和周期寄存器值7.4.1 与比较单元相关的PWM电路 PWM波形由下列寄存器控制:对于EVA模块,T1CON、COMCONA、ACTRA、DBTCONA,对于EVB模块,T3CON、COMCONB、ACT
27、RB、DBTCONBEVM的PWM发生器的功能n 9路独立的PWM输出n 最小死区位1个CPUCLKn PWM脉宽的最小调节步长为1个CPUCLKn 最大16位的PWM分辨率n 可n 可n 具有n 可编程的产生非对称、对称和空间矢量PWM输出n 比较和周期寄存器,减小了CPU的额外开销1、死区控制寄存器DBTCONXn 16位,可读可写n 预分频器n 内部CPU时钟输入n 死区的设置位n 控制逻辑DBT3DBT0 4位死区定时器的周期值BIT7BIT5 3个死区定时器使能BIT4BIT2 3位死区定时器预分频设置2、死区的产生功率器件三相输出作为控制信号+-串联的2个器件不能同时被关闭,不能有
28、重叠区PWM信号的输入DC 电容2、死区的产生to motor phasesupply rail互补的PWM开关信号 晶体管导通比截止快 同时导通的瞬间-短路2、死区的产生n 输入波形PHx,产生死区后的输出波形DTPHx、DTPHx_。PHxDT死区ClockDTPHx非对称PWMDTPHx_4-bit periodPrescaler4-bitCounterENAresetHSPCLKcomparatorDTPHxDTPHx_PHxDTedgedetectDBTCONA.4-2DBTCONA.11-82、死区的产生n 设DBTCONx.118位中的值为m,且BIT42位中的值对应的预分频因子
29、为x/p,则死区为pm个CPUCLK。例如:DBT3DBT01111 对应15 BIT4BIT2=110 对应32CPUCLK死区值1525ns3212uSEDBT3765420EDBT2EDBT1 DBTPS2 DBTPS1reservedreserved1315141312108DBT3DBT0DBT1DBT2911DB Timer Enable0=disable1=enable DB Timer Prescaler000=1100=16001=2101=32 010=4 110=32 011=8 111=32DB Timer Periodreserved reserved reserve
30、d reservedDBTPS0比较单元的输出逻辑n每个比较单元的输出方式可以为低有效、高有效、强制低和强制高,输出极性和方式通过ACTRX配置。以下任何一种情况,输出置为高阻态。1.软件清COMCONX9位.2.PDPINT中断使能,PDPINTX0。3.复位7.4.2 比较单元和PWM产生PWM信号是一串宽度变化的脉冲序列,脉冲宽度由调制信号决定。每个事件管理器中,可编程死区的PWM输出引脚有6个,可用来控制三相交流感应电机。如需要,每个通用定时器的比较单元可产生1路PWM输出。2、产生PWM的寄存器设置PWM输出的设置严格按以下步骤:n设置和装载ACTRx寄存器n如使能死区,则设置和装载
31、DBTCONx寄存器n设置TxPRn初始化CMPRx寄存器n设置和装载COMCONx寄存器n设置TxCONn计算脉冲宽度,加载CMPRx寄存器n更新CMPRx寄存器,使输出占空比发生变化。n通用定时器应设为连续增计数模式nT1PR装入PWM载波周期nCOMCONA相应位用来设置比较操作使能nDBTCONX设置死区n一个死区将用于所有PWM输出通道4、对称PWM波形的产生n 计数模式应设置为连续增/减计数模式。n 每个周期有两次匹配,新比较值匹配后就更新了比较寄存器的值。PWM输出应用程序示例SYSINIT:SETC INTM CLRC SXM CLRC OVMCLRC CNF ;B0 被配置为
32、数据存储空间 LDP#0E0HSPLK#81FEH,SCSR1 ;CLKIN=6 M,KOUT=24 M SPLK#0E8H,WDCR;不使能WDTLDP#0SPLK#0002H,IMR;使能INT2SPLK#0FFFFH,IFR;清全部中断标志RET主程序:.text_c_int0 CALL SYSINITCALL PWM_INITWAIT:NOPB WAITPWM_INIT:LDP#DP_PF2 ;指向7080h7100h区LACLMCRCOR#007EH ;IOPE16被配置为基本功能方式:PWM712SACLMCRCLDP#DP_EVB;指向7500h7580h区SPLK#0FFFFH
33、,EVBIFRA;清EVB 全部中断标志SPLK#0666H,ACTRB;PWM12,10,8 低有效,PWM11,9,7 高有效SPLK#00H,DBTCONB;不使能死区控制SPLK#10H,CMPR4;设置比较初值 PWM7高电平占50/60,;低电平占10/60SPLK#20H,CMPR5;设置PWM9,10的比较寄存器SPLK#30H,CMPR6;设置PWM11,12的比较寄存器SPLK#60H,T3PR;设置定时器3周期寄存器,SPLK#0A600H,COMCONB;使能比较操作SPLK#0,T3CNTSPLK#41H,GPTCONB;TCOMPOE=1,T3PIN=01SPLK#
34、080H,EVBIMRA;通用定时器3周期中断使能 SPLK#0174EH,T3CON ;TMODE=10 连续增计数模式,TPS=111 预分频为128;TENABLE=1 定时器计数使能,TCLKS=00 ;内部时钟;TECMPR=1 定时器3比较使能,SELT3PR=0 CLRCINTM;开总中断RET建立中断向量表.sect.vectors;定义主向量段RSVECTB _c_int0;PM 0复位向量 INT1B PHANTOM;PM 2中断优先级1INT2B GISR2;PM 4中断优先级2INT3 B PHANTOM;PM 6中断优先级3INT4 B PHANTOM;PM 8中断优
35、先级4INT5 B PHANTOM;PM A中断优先级5INT6 B PHANTOM;PM C中断优先级6RESERVED B PHANTOM;PM E 模拟量输入中断(保留)SW_INT8 B PHANTOM;PM 10 用户定义软件中断 SW_INT31 B PHANTOM;PM 3E 用户定义软件中断.WORD 0FFFFH.WORD 0FFFFH ;.WORD 0FFFFH.WORD 0FFFFH ;PASSWORDS通用中断服务子程序:GISR2:;优先级INT2中断入口;保护现场LDP#0E0HLACC PIVR,1;读取外设中断向量寄存器(PIVR),并左移一位ADD#PVECT
36、ORS;加上外设中断入口地址BACC;跳到相应的中断服务子程序中断子向量入口定义pvecs.sect“.pvecs”;定义子向量段PVECTORS B PHANTOM;保留向量地址偏移量-0000h B PHANTOM;保留向量地址偏移量-0001h B PHANTOM ;保留向量地址偏移量-002EEh B GP_ISR ;保留向量地址偏移量-002Fh T3PINT中断 B PHANTOM;保留向量地址偏移量-0030h B PHANTOM;保留向量地址偏移量-0041h7.5 捕获单元当捕获引脚检测到所选跳变时,所选通用定时器的计数器值被捕获并存入中。可产生捕获中断。n捕获单元在捕获引脚
37、出现跳变时触发n共6个捕获单元。EVA、EVB各3个nCAP1/CAP2(CAP4/CAP5)一定要用。EVA捕获单元结构图Can latch on:rising edge falling edge bothTTL Signalmin.valid width:2 CPUCLK lo2 CPUCLK hiGP Timer 1CounterT1CNT 0-15EdgeDetectCAP3TOADCCAP1,2,3MUXGP Timer 2CounterT2CNT0-15CAPCONA 9,10EnableCAPCONA 12-142-Level DeepFIFO/3.CAPCONA8Edge Se
38、lectCAPCONA 2-7CAPCONA 15CAPRESETADC Start(CAP 3)CAPFIFOA 8-13CAPxFIFO StatusRS2/37.5.2 捕获单元操作n当捕获引脚检测到所选跳变时,置位相应中断标志位,并将GP计数值被捕获并存入2级深的FIFO中。n使能捕获中断,则产生中断n跳变到计数器值被锁存需2个CPUCLKCAP1和CAP2共用一个时基,CAP3也可共用,也可用单独的时基。2、捕获单元的设置设置步骤:n 清零初始化捕获FIFO状态寄存器(CAPFIFOx)。n 设置所选通用定时器的操作模式n 如需要,设置GP定时器的比较寄存器和周期寄存器。n 设置相应
39、的捕获控制寄存器。捕获控制寄存器CAPCONxn 完成捕获单元的禁止或使能n 捕获单元的时钟选择n 启动模数转换n 设置捕获单元引脚的跳变沿捕获FIFO状态寄存器CAPFIFOxn 反映是否有值压人FIFO堆栈和堆栈中值的个数捕获单元FIFO栈n 每个捕获单元都有一个专用的2级FIFO栈 顶层栈CAPxFIFO 底层栈包括CAPxFBOT 顶层FIFO寄存器存放相应捕获的旧计数值。n 如读取前FIFO状态寄存器的相应位为10或11,读取后变为01,堆栈中只有一个值,如读取前FIFO状态寄存器的相应位为01,读取后变为00,堆栈为空。捕获单元中断n当捕获堆栈FIFO中至少有一个捕获到的计数值,则
40、相应中断标志位置位。n中断标志置位后,若该中断使能,则产生中断n在捕获中断中可读取捕获到的计数值7.6 正交编码脉冲电路间隔空隙/4 相位差LEDshaft rotationCh.ACh.BQuadrature Output from Photo Sensors/4Incremental Optical EncoderQuadrature Encoder Pulse7.6 正交编码脉冲电路7.6 正交编码脉冲电路Ch.ACh.B(00)(11)(10)(01)(A,B)=00011110QuadratureDecoderState MachineincrementcounterdecrementcounterPosition resolution is/4 degrees.7.6 正交编码脉冲电路*GP Timer 2 selected as pulse counter*Timer Prescaler bypassed(i.e.Prescale always 1)Ch.ACh.BCAP1/QEP1CAP2/QEP2QEPdecoderlogicGP Timer 2CLKDIR.IndexCAP3/QEPIQEPIEQEPIQUAL