一、脉冲捕获基本原理
事无巨细,无非因果,输入对输出有着非常重要的影响。脉冲量的输入是在数字控制系统中最常见的一类输入量,控制器专门设置了脉冲捕获模块(eCAP)来处理脉冲量,通过脉冲捕获模块捕获脉冲量的上升沿与下降沿,进而可以计算脉冲的宽度和占空比,可以采用脉冲信号进行相关控制。
捕获单元模块能够捕获外部输入引脚的逻辑状态(电平的高或低、电平翻转时的上升沿或下降沿),并利用内部定时器对外部事件或者引脚状态变化进行处理。典型应用如下:
1.电机测速;
2.测量脉冲电平宽度;
3.测量一系列脉冲占空比和周期;
4.电流/电压传感器的PWM编码信号的解码。
控制器给每个捕获单元模块都分配一个捕获引脚,在捕获引脚上输入待测脉冲波形,捕获模块会捕获到指定捕获的逻辑状态,如图1中的下降沿,捕获单元记录下定时器的时间,两个下降沿间的时间差就是脉冲周期,同理也可以捕获脉冲的上升沿,计算上升沿与下降沿之间的时间差就可以获得占空比,所以捕获单元可以用于测量脉冲周期以及脉冲的宽度。在一些数字脉冲测速场合,如电机的常见测速方法之一,在电机某个固定位置通过光电传感器发出一个脉冲,每周一个脉冲,两个脉冲之间的时间,就是电机的转速。在一些精确控制的场合中,一周当然不止发出一个脉冲,这取决于传感器(光电编码器)的选型与性能。
图1
二、F28335 增强型CAP
A. F28335共有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模式。
B. eCAP模块中一个捕获通道完成一次捕获任务,需要以下关键资源:
1、专用捕获输入引脚;
2、32位时基(计数器);
3、4*32位时间标签捕获寄存器;
4、4级序列器,与外部eCAP引脚的上升/下降沿同步;
5、4个事件可独立配置边沿极性;
6、输入捕获信号预定标(2-62);
7、一个2位的比较寄存器,一次触发后可以捕获4个时间标签事件;
8、采用4级深度的循环缓冲器以进行连续捕获;
9、4个捕获事件中任意一个都可以产生中断。
图2
C. 事件分频(预定标)
可以对一个输入的捕捉信号进行分频系数为N=2~62的分频,这在输入信号频率很高的时候非常有用。其框图和信号波形分别如图3和图4所示。
图3
图4
D. 边沿极性选择
? 四个独立的边沿极性选择器,每个捕获事件可以设置不同的边沿极性;
? 每个边沿事件由MODULE4序列发生器进行事件量化
? 通过Mod4计数器将边沿事件锁存到相应的Cap寄存器中,Cap寄存器工作在下降沿。
E. 连续/单次控制
?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。图5为连续/单次控制框图。
图5
32位计数器与相位控制
计数器为事件捕获提供时基,其时钟信号为系统时钟的分频。通过软件或硬件强制,可以用相位寄存器与其他计数器同步。在APWM模式中,这个相位寄存器在模块之间需要相位差时很有用。在四个捕捉事件的数值加载中,可以选择复位这个32位计数器,这点对时间偏差捕捉很有用。首先32位计数器的值被捕获到,然后被LD1-LD4中任意一个信号复位为0。其工作原理框图如图6所示。
图6
CAP1-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标志在两种模式下都可工作。
三、捕获单元的APWM操作模式
如果eCAP模块不用作捕获输入,可以将它用来产生一个单通道的PWM。计数器工作在计数增模式,可以提供时基能产生不同占空比的PWM。CAP1与CAP2寄存器作为主要的周期和比较寄存器,CAP3与CAP4寄存器作为周期和比较寄存器的影子寄存器,其原理框图如图7所示。
图7
时间计数器不断与2个32位的比较寄存器比较。
?CAP1与CAP2用作周期与比较寄存器。
?与影子寄存器APRD、ACMP(CAP3、CAP4)配合形成双缓冲机制。如果选择立即模式,只要数据写入影子寄存器,影子寄存器的值就会立即加载到CAP1或者CAP2寄存器;如果选择周期加载模式,在CTR=PRD的时候,影子寄存器的值就会加载到CAP1或者CAP2寄存器。
?写数值到有效寄存器CAP1/2后,数值也将写到各自相应的影子寄存器CAP3/4里。
?在初始化的时候,周期值与比较值必须写到有效寄存器CAP1与CAP2,模块会自动复制初始化数值到影子寄存器中。在之后的数据更改时,只需要使用影子寄存器就可以了。APWM产生波形如图8所示。
图8
四、CAP寄存器介绍
五、手把手教你-CAP捕获信号发生器信号边