增强型脉冲捕获模块eCAP_第1页
增强型脉冲捕获模块eCAP_第2页
增强型脉冲捕获模块eCAP_第3页
增强型脉冲捕获模块eCAP_第4页
增强型脉冲捕获模块eCAP_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2016“”第九讲:增强型脉冲捕获模块eCAPeCAP1 1、脉冲捕获基本原理、脉冲捕获基本原理2 2、F28335 F28335 增强型增强型CAPCAP3 3、捕获单元的、捕获单元的APWMAPWM操作模式操作模式4 4、CAPCAP寄存器介绍寄存器介绍5 5、手把手教你、手把手教你-CAP-CAP捕获信号发生器信号边捕获信号发生器信号边沿沿“” “事无巨细,无非因果”,输入对输出有着非常重要的影响。脉冲量的输入是在数字控制系统中最常见的一类输入量,控制器专门设置了脉冲捕获模块(eCAP)来处理脉冲量,通过脉冲捕获模块捕获脉冲量的上升沿与下降沿,进而可以计算脉冲的宽度和占空比,可以采用脉冲

2、信号进行相关控制。 捕获单元模块能够捕获外部输入引脚的逻辑状态(电平的高或低、电平翻转时的上升沿或下降沿),并利用内部定时器对外部事件或者引脚状态变化进行处理。典型应用如下:1.电机测速;2.测量脉冲电平宽度;3.测量一系列脉冲占空比和周期;4.电流/电压传感器的PWM编码信号的解码。脉冲捕获基本原理脉冲捕获基本原理图9.1“” 控制器给每个捕获单元模块都分配一个捕获引脚,在捕获引脚上输入待测脉冲波形,捕获模块会捕获到指定捕获的逻辑状态,如图9.1中的下降沿,捕获单元记录下定时器的时间,两个下降沿间的时间差就是脉冲周期,同理也可以捕获脉冲的上升沿,计算上升沿与下降沿之间的时间差就可以获得占空比

3、,所以捕获单元可以用于测量脉冲周期以及脉冲的宽度。在一些数字脉冲测速场合,如电机的常见测速方法之一,在电机某个固定位置通过光电传感器发出一个脉冲,每周一个脉冲,两个脉冲之间的时间,就是电机的转速。在一些精确控制的场合中,一周当然不止发出一个脉冲,这取决于传感器(光电编码器)的选型与性能。脉冲捕获基本原理脉冲捕获基本原理“”F28335 F28335 增强型增强型CAPCAPF28335共有6组eCAP模块,每个eCAP不但具有捕获功能,而且还可用作PWM输出功能。F28335捕获模块的主要特征如下:1. 150MHz系统时钟的情况下,32位时基的时间分辨率为6.67ns;2. 4组32位的时间

4、标志寄存器;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)

5、;7、一个2位的比较寄存器,一次触发后可以捕获4个时间标签事件;8、采用4级深度的循环缓冲器以进行连续捕获;9、4个捕获事件中任意一个都可以产生中断。见图9.2“”F28335 F28335 增强型增强型CAPCAP图9.2“”F28335 F28335 增强型增强型CAPCAP 事件分频(预定标) 可以对一个输入的捕捉信号进行分频系数为N=262的分频,这在输入信号频率很高的时候非常有用。其框图和信号波形分别如图9.3和图9.4所示。图9.4图9.3“”F28335 F28335 增强型增强型CAPCAP边沿极性选择 四个独立的边沿极性选择器,每个捕获事件可以设置不同的边沿极性; 每个边沿事

6、件由MODULE4序列发生器进行事件量化 通过Mod4计数器将边沿事件锁存到相应的Cap寄存器中,Cap寄存器工作在下降沿。连续/单次控制2位的Mod4计数器对相应的边沿捕获事件递增计数(CEVT1-CEVT4)Mod4计数器循环计数(0-1-2-3-0),直至停止工作。在单次模式下,一个2位的停止寄存器与Mod4计数器的输出值进行比较,如果等于停止寄存器的值,Mod4计数器将不再计数,并且阻止CAP1-CAP4寄存器加载数值。 连续/单次模块通过单次控制方式控制Mod4计数器的开始、停止和复位,这种单次控制方式由比较器的停止值触发,可通过软件进行强制控制。 在单次控制的时候,eCAP模块等待

7、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.5“”F28335 F28335 增强型增强型CAPCAP 32位计数器与相位控制 计数器为

8、事件捕获提供时基,其时钟信号为系统时钟的分频。通过软件或硬件强制,可以用相位寄存器与其他计数器同步。在APWM模式中,这个相位寄存器在模块之间需要相位差时很有用。在四个捕捉事件的数值加载中,可以选择复位这个32位计数器,这点对时间偏差捕捉很有用。首先32位计数器的值被捕获到,然后被LD1-LD4中任意一个信号复位为0。其工作原理框图如图9.6所示。图9.6“” CAP1-CAP4寄存器通过32位的定时/计数器总线加载数值,当相应的捕获事件发生时,CTR0-31值加载到相应的CAP寄存器中。 通过控制CAP控制寄存器ECCTL1CAPLDEN位可以阻止捕捉寄存器数值的加载。在单次模式下,一个停止

9、信号产生的时候(StopValue=Mod4)该位被自动清除(不加载)。 在APWM模式下CAP1与CAP2寄存器为有效的周期寄存器和比较寄存器;CAP3与CAP4寄存器相对CAP1与CAP2寄存器为独立的影子寄存器(APRD与ACMP)。 中断控制 捕捉事件的发生(CEVT1-CEVT4,CTROVF)或者APWM事件的发生(CTR=PRD,CTR=CMP)都将会产生中断请求。 这些事件中的任一个事件都可以被选作中断源(从eCAPx模块中)连到PIE。 中断使能寄存器(ECEINT)用于使能/屏蔽中断源。中断标志寄存器(ECFLG)包含中断事件标志和全局中断标志位(INT)。 如果相应的中断

10、事件使能标志位为1,INT标志位为0,那么一个中断脉冲就会告知PIE。 在其他的中断脉冲产生之前,在中断服务程序里必须通过中断清除寄存器(ECCLR)清除全局中断标志和相应的中断事件。通过强制中断寄存器(ECFRC)可以强制发生某个中断事件,这个在测试的时候比较有用。 注意:CEVT1、CEVT2、CEVT3、CEVT4标志工作在捕捉模式(ECCTL2CAP/APWM=0);CTR=PRD,CTR=CMP标志工作在APWM模式(ECCTL2CAP/APWM=1);CNTOVF标志在两种模式下都可工作。F28335 F28335 增强型增强型CAPCAP“”如果eCAP模块不用作捕获输入,可以将

11、它用来产生一个单通道的PWM。计数器工作在计数增模式,可以提供时基能产生不同占空比的PWM。CAP1与CAP2寄存器作为主要的周期和比较寄存器,CAP3与CAP4寄存器作为周期和比较寄存器的影子寄存器,其原理框图如图9.7所示。捕获单元的捕获单元的APWMAPWM操作模式操作模式图9.7“”时间计数器不断与2个32位的比较寄存器比较。CAP1与CAP2用作周期与比较寄存器。与影子寄存器APRD、ACMP(CAP3、CAP4)配合形成双缓冲机制。如果选择立即模式,只要数据写入影子寄存器,影子寄存器的值就会立即加载到CAP1或者CAP2寄存器;如果选择周期加载模式,在CTR=PRD的时候,影子寄存

12、器的值就会加载到CAP1或者CAP2寄存器。写数值到有效寄存器CAP1/2后,数值也将写到各自相应的影子寄存器CAP3/4里。在初始化的时候,周期值与比较值必须写到有效寄存器CAP1与CAP2,模块会自动复制初始化数值到影子寄存器中。在之后的数据更改时,只需要使用影子寄存器就可以了。APWM产生波形如图9.8所示。捕获单元的捕获单元的APWMAPWM操作模式操作模式图9.8“”下面进行实例讲解。“”第一:捕获外部信号,可以设置为捕捉信号的上升还是下降沿,该功能一般最常用;“”第二:计算外部方波信号的周期和占空比,在这里可以分别对CAP1、CAP2、CAP3和CAP4上升沿或下降沿动作进行设置,

13、当外部信号和当前CAPx设置一致时,并将当前CTR值赋给CAPx寄存器。这样,可以根据四个CAPx寄存器里面的值,进行捕获的方波信号周期和占空比的计算。另外,CTR的变化模式取决于ECap6Regs.ECCTL1.bit.CTRRSTx的设置,如果为0,则动作匹配时,不复位CTR,将一直往上增加,直至溢出;如果为1,则动作匹配时,复位CTR。“”如果,一个程序当中,四个CAPx均用到的话,假如:CAP1:上升沿CAP2:下降沿CAP3:上升沿CAP4:下降沿“”对于输入信号,第一上升沿时,CAP1动作,并且产生CEVT1事件(如果该事件中断使能的话,则可以进入中断),同时将CTR数加载到CPA

14、1中;接下来,下降沿时,CAP2动作,并且产生CEVT2事件(如果该事件中断使能的话,则可以进入中断),同时将CTR数加载到CAP2中;再接下来,上升沿时,CAP3动作,并且产生CEVT3事件(如果该事件中断使能的话,则可以进入中断),同时将CTR数加载到CAP3中;再接下来,下降沿时,CAP4动作,并且产生CEVT4事件(如果该事件中断使能的话,则可以进入中断),同时将CTR数加载到CAP4中;接下来在从CAP1往返动作。这时在一个循环里,可以利用四个CAPx里面的值进行周期和占空比的计算。“”如果,程序不需要计算输入信号的周期和占空比,那么可能只要用到一个CAPx,这时就更简单了。(如下面

15、觉得例子),这时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

16、; / Enable pull-up on GPIO1 (CAP6)/ GpioCtrlRegs.GPBPUD.bit.GPIO49 = 0; / Enable pull-up on GPIO49 (CAP6)/ Inputs are synchronized to SYSCLKOUT by default./ Comment out other unwanted lines.GpioCtrlRegs.GPAQSEL1.bit.GPIO1 = 0; / Synch to SYSCLKOUT GPIO1 (CAP6)/ GpioCtrlRegs.GPBQSEL2.bit.GPIO49 = 0;

17、/ Synch to SYSCLKOUT GPIO49 (CAP6)GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 2; / Configure GPIO1 as CAP6/ GpioCtrlRegs.GPBMUX2.bit.GPIO49 = 1; / Configure GPIO49 as CAP6EDIS;“”Ecap6的外部信号输入引脚,可以选择GPIO1或GPIO49。“”其次,初始化功能寄存器设置:ECap6Regs.ECEINT.all = 0 x0000; / Disable all capture interruptsECap6Regs.ECCLR.all =

18、 0 xFFFF; / Clear all CAP interrupt flagsECap6Regs.ECCTL1.bit.CAPLDEN = EC_DISABLE; / Disable CAP1-CAP4 register loadsECap6Regs.ECCTL2.bit.TSCTRSTOP = EC_FREEZE; / Make sure the counter is stopped“”/ Configure peripheral registersECap6Regs.ECCTL2.bit.CAP_APWM = EC_CAP_MODE; /CAP modeECap6Regs.ECCTL2

19、.bit.CONT_ONESHT = EC_ONESHOT; / One-shotECap6Regs.ECCTL2.bit.STOP_WRAP = EC_EVENT1; / Stop at 1 eventsECap6Regs.ECCTL1.bit.CAP1POL = EC_FALLING; / Falling edge 其中,ECap6Regs.ECCTL2.bit.REARM这位决定ECAP口能否多次捕捉,外部信号的边沿。如果在中断响应函数里面没有“ECap6Regs.ECCTL2.bit.REARM = 1;”语句,则该ECAP口以后不响应信号边沿中断;如果为有“ECap6Regs.ECCTL2.bit.REARM = 1;”语句,则该ECAP口可以继续响应下一次中断。“”ECAP可以产生以下几个中断:CTR = CMPCTR = PRD - 针对APWM功能CTROVFCEVT4CEVT3CEVT2CEVT1 - ECAP口,CAPx对应的动作匹配“”最后,外部PIE和CPU中断使能。DINT;EALLOW; / This is needed to write to EALLOW protected registersPieVectTable.ECA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论