9、增强型脉冲捕获模块eCAP

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第九讲:增强型脉冲捕获模块eCAP1、脉冲捕获基本原理2、F28335增强型CAP3、捕获单元的APWM操作模式4、CAP寄存器介绍5、手把手教你-CAP捕获信号发生器信号边沿“事无巨细,无非因果”,输入对输出有着非常重要的影响。脉冲量的输入是在数字控制系统中最常见的一类输入量,控制器专门设置了脉冲捕获模块(eCAP)来处理脉冲量,通过脉冲捕获模块捕获脉冲量的上升沿与下降沿,进而可以计算脉冲的宽度和占空比,可以采用脉冲信号进行相关控制。捕获单元模块能够捕获外部输入引脚的逻辑状态(电平的高或低、电平翻转时的上升沿或下降沿),并利用内部定时器对外部事件或者引脚状态变化进行处理。典型应用如下:1.电机测速;2.测量脉冲电平宽度;3.测量一系列脉冲占空比和周期;4.电流/电压传感器的PWM编码信号的解码。脉冲捕获基本原理图9.1控制器给每个捕获单元模块都分配一个捕获引脚,在捕获引脚上输入待测脉冲波形,捕获模块会捕获到指定捕获的逻辑状态,如图9.1中的下降沿,捕获单元记录下定时器的时间,两个下降沿间的时间差就是脉冲周期,同理也可以捕获脉冲的上升沿,计算上升沿与下降沿之间的时间差就可以获得占空比,所以捕获单元可以用于测量脉冲周期以及脉冲的宽度。在一些数字脉冲测速场合,如电机的常见测速方法之一,在电机某个固定位置通过光电传感器发出一个脉冲,每周一个脉冲,两个脉冲之间的时间,就是电机的转速。在一些精确控制的场合中,一周当然不止发出一个脉冲,这取决于传感器(光电编码器)的选型与性能。脉冲捕获基本原理F28335增强型CAPF28335共有6组eCAP模块,每个eCAP不但具有捕获功能,而且还可用作PWM输出功能。F28335捕获模块的主要特征如下:1.150MHz系统时钟的情况下,32位时基的时间分辨率为6.67ns;2.4组32位的时间标志寄存器;3.4级捕获事件序列,可以灵活配置捕获事件边沿极性;4.四级触发事件均可以产生中断;5.软件配置一次捕获可以最多得到4个捕获时间;6.可连续循环4级捕获;7.绝对时间捕获;8.不同模式的时间捕获;9.所有捕获都发生在一个输入引脚上;10.如果eCAP模块不作捕获使用,可以配置成一个单通道输出的PWM模式。eCAP模块中一个捕获通道完成一次捕获任务,需要以下关键资源:1、专用捕获输入引脚;2、32位时基(计数器);3、4*32位时间标签捕获寄存器;4、4级序列器,与外部eCAP引脚的上升/下降沿同步;5、4个事件可独立配置边沿极性;6、输入捕获信号预定标(2-62);7、一个2位的比较寄存器,一次触发后可以捕获4个时间标签事件;8、采用4级深度的循环缓冲器以进行连续捕获;9、4个捕获事件中任意一个都可以产生中断。见图9.2F28335增强型CAP同步信号CTRPHS32位相位寄存器TSCTR32位计数器同步输出同步输入CAP1APWM周期寄存器CAP2APWM周期寄存器CAP3APWM周期影子寄存器CAP4APWM周期影子寄存器32323232323232CTR(0-31)CMP0-31事件识别PRD(0-31)LD1LD2LD3LD4CTROVFDelta-modeECCTL2[SYNCI_EN,SYNCOSEL,SWSYNC]RSTECCTL1[CAPLDEN,CTRRSTX]极性选择极性选择极性选择极性选择分频APWM模式CTR[0-31]PRE[0-31]CMP[0-31]PWM比较逻辑CTR=PRDCTR=CMP模式选择CAPECCTL2[CAP/APWM]ECCTL1[EVTPS]ECCTL1[CAPxPOL]连续或者一次性模式中断触发和标志管理PIECTR=OVFCTR=PRDCTR=CMP图9.2F28335增强型CAP事件分频(预定标)可以对一个输入的捕捉信号进行分频系数为N=2~62的分频,这在输入信号频率很高的时候非常有用。其框图和信号波形分别如图9.3和图9.4所示。图9.4图9.3F28335增强型CAP边沿极性选择Ø四个独立的边沿极性选择器,每个捕获事件可以设置不同的边沿极性;Ø每个边沿事件由MODULE4序列发生器进行事件量化Ø通过Mod4计数器将边沿事件锁存到相应的Cap寄存器中,Cap寄存器工作在下降沿。连续/单次控制2位的Mod4计数器对相应的边沿捕获事件递增计数(CEVT1-CEVT4)Mod4计数器循环计数(0-1-2-3-0),直至停止工作。在单次模式下,一个2位的停止寄存器与Mod4计数器的输出值进行比较,如果等于停止寄存器的值,Mod4计数器将不再计数,并且阻止CAP1-CAP4寄存器加载数值。连续/单次模块通过单次控制方式控制Mod4计数器的开始、停止和复位,这种单次控制方式由比较器的停止值触发,可通过软件进行强制控制。在单次控制的时候,eCAP模块等待N(1-4)个捕捉事件发生,N的值为停止寄存器的值。一旦N值达到后,MOD4计数器和CAP寄存器的值都被冻结。如果向CAP控制寄存器ECCTL2中的单次重加载RE-ARM位写入1后,Mod4计数器就会复位并从冻结状态恢复作用,同时如果将CAP控制寄存器ECCTL1中CAP寄存器加载使能CAPLDEN位置1,那么CAP1-CAP4寄存器会再次加载新值。在连续模式下,Mod4计数器持续工作(0-1-2-3-0),捕捉值在一个环形缓冲里按顺序不断的写入CAP1-CAP4。图9.5为连续/单次控制框图。图9.5F28335增强型CAP32位计数器与相位控制计数器为事件捕获提供时基,其时钟信号为系统时钟的分频。通过软件或硬件强制,可以用相位寄存器与其他计数器同步。在APWM模式中,这个相位寄存器在模块之间需要相位差时很有用。在四个捕捉事件的数值加载中,可以选择复位这个32位计数器,这点对时间偏差捕捉很有用。首先32位计数器的值被捕获到,然后被LD1-LD4中任意一个信号复位为0。其工作原理框图如图9.6所示。图9.6CAP1-CAP4寄存器通过32位的定时/计数器总线加载数值,当相应的捕获事件发生时,CTR[0-31]值加载到相应的CAP寄存器中。通过控制CAP控制寄存器ECCTL1[CAPLDEN]位可以阻止捕捉寄存器数值的加载。在单次模式下,一个停止信号产生的时候(StopValue=Mod4)该位被自动清除(不加载)。在APWM模式下CAP1与CAP2寄存器为有效的周期寄存器和比较寄存器;CAP3与CAP4寄存器相对CAP1与CAP2寄存器为独立的影子寄存器(APRD与ACMP)。中断控制捕捉事件的发生(CEVT1-CEVT4,CTROVF)或者APWM事件的发生(CTR=PRD,CTR=CMP)都将会产生中断请求。这些事件中的任一个事件都可以被选作中断源(从eCAPx模块中)连到PIE。中断使能寄存器(ECEINT)用于使能/屏蔽中断源。中断标志寄存器(ECFLG)包含中断事件标志和全局中断标志位(INT)。如果相应的中断事件使能标志位为1,INT标志位为0,那么一个中断脉冲就会告知PIE。在其他的中断脉冲产生之前,在中断服务程序里必须通过中断清除寄存器(ECCLR)清除全局中断标志和相应的中断事件。通过强制中断寄存器(ECFRC)可以强制发生某个中断事件,这个在测试的时候比较有用。注意:CEVT1、CEVT2、CEVT3、CEVT4标志工作在捕捉模式(ECCTL2[CAP/APWM]==0);CTR=PRD,CTR=CMP标志工作在APWM模式(ECCTL2[CAP/APWM]==1);CNTOVF标志在两种模式下都可工作。F28335增强型CAP如果eCAP模块不用作捕获输入,可以将它用来产生一个单通道的PWM。计数器工作在计数增模式,可以提供时基能产生不同占空比的PWM。CAP1与CAP2寄存器作为主要的周期和比较寄存器,CAP3与CAP4寄存器作为周期和比较寄存器的影子寄存器,其原理框图如图9.7所示。捕获单元的APWM操作模式图9.7时间计数器不断与2个32位的比较寄存器比较。CAP1与CAP2用作周期与比较寄存器。与影子寄存器APRD、ACMP(CAP3、CAP4)配合形成双缓冲机制。如果选择立即模式,只要数据写入影子寄存器,影子寄存器的值就会立即加载到CAP1或者CAP2寄存器;如果选择周期加载模式,在CTR=PRD的时候,影子寄存器的值就会加载到CAP1或者CAP2寄存器。写数值到有效寄存器CAP1/2后,数值也将写到各自相应的影子寄存器CAP3/4里。在初始化的时候,周期值与比较值必须写到有效寄存器CAP1与CAP2,模块会自动复制初始化数值到影子寄存器中。在之后的数据更改时,只需要使用影子寄存器就可以了。APWM产生波形如图9.8所示。捕获单元的APWM操作模式图9.8下面进行实例讲解。第一:捕获外部信号,可以设置为捕捉信号的上升还是下降沿,该功能一般最常用;第二:计算外部方波信号的周期和占空比,在这里可以分别对CAP1、CAP2、CAP3和CAP4上升沿或下降沿动作进行设置,当外部信号和当前CAPx设置一致时,并将当前CTR值赋给CAPx寄存器。这样,可以根据四个CAPx寄存器里面的值,进行捕获的方波信号周期和占空比的计算。另外,CTR的变化模式取决于ECap6Regs.ECCTL1.bit.CTRRSTx的设置,如果为‘0’,则动作匹配时,不复位CTR,将一直往上增加,直至溢出;如果为‘1’,则动作匹配时,复位CTR。如果,一个程序当中,四个CAPx均用到的话,假如:CAP1:上升沿CAP2:下降沿CAP3:上升沿CAP4:下降沿对于输入信号,第一上升沿时,CAP1动作,并且产生CEVT1事件(如果该事件中断使能的话,则可以进入中断),同时将CTR数加载到CPA1中;接下来,下降沿时,CAP2动作,并且产生CEVT2事件(如果该事件中断使能的话,则可以进入中断),同时将CTR数加载到CAP2中;再接下来,上升沿时,CAP3动作,并且产生CEVT3事件(如果该事件中断使能的话,则可以进入中断),同时将CTR数加载到CAP3中;再接下来,下降沿时,CAP4动作,并且产生CEVT4事件(如果该事件中断使能的话,则可以进入中断),同时将CTR数加载到CAP4中;接下来在从CAP1往返动作。这时在一个循环里,可以利用四个CAPx里面的值进行周期和占空比的计算。如果,程序不需要计算输入信号的周期和占空比,那么可能只要用到一个CAPx,这时就更简单了。(如下面觉得例子),这时CTR可以不运行(ECap6Regs.ECCTL2.bit.TSCTRSTOP=EC_FREEZE),CAPx寄存器加载也可以禁止(ECap6Regs.ECCTL1.bit.CAPLDEN=EC_DISABLE;)。以上2个其实均为CAP口捕获功能,对应的I/O口为输入。ECAP口另外一个功能是产生APWM,和上述2个有很大的差别,对应的I/O口为输出。由于上面2个比较常用,特别是第一个,所以接下来,对设置CAP口为捕获功能的配置进行相关说明,以Ecap为例:首先要设置GPIO引脚:EALLOW;GpioCtrlRegs.GPAPUD.bit.GPIO1=0;//Enablepull-uponGPIO1(CAP6)//GpioCtrlRegs.GPBPUD.bit.GPIO49=0;//Enablepull-uponGPIO49(CAP6)//InputsaresynchronizedtoSYSCLKOUTbydefault.//Commentoutotherunwantedlines.GpioCtrlRegs.GPAQSEL1.bit.GPIO1=0;//SynchtoSYSCLKOUTGPIO1(CAP6)//GpioCtrlRegs.GPBQSEL2.bit.GPIO49=0;//SynchtoSYSCLKOUTGPIO49(CAP6)GpioCtrlRegs.GPAMUX1.bit.GPIO1=2;//ConfigureGPIO1asCAP6//GpioCtrlRegs.GPBMUX2

1 / 26
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功