【STM32】TIM输入捕获-学习笔记
1、输入捕获简介
- IC(Input Capture)输入捕获
- 输入捕获模式下,当通道输入引脚出现指定电平跳变时(高低电平变化),当前CNT的值将被锁存到CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数
- 每个高级定时器和通用定时器都拥有4个输入捕获通道 可配置为PWMI模式,同时测量频率和占空比
- 可配合主从触发模式,实现硬件全自动测量
输入捕获和输出比较的4通道:
4个输入捕获和输出比较通道共用4个CCR寄存器,它们的CH1~CH4四个通道引脚也是共用的。所以对于同一个定时器,输入捕获和输出比较只能使用其中一个,不能同时使用。
2、频率测量
频率的基本定义:1秒内出现多少个重复周期,那频率就是多少赫兹。所以下面测频法中,我们在1s闸门时间内,对上升沿进行计次,计次多少,频率值就是多少Hz,这个乜问题。按频率定义进行测量的方法叫测频法。这里闸门时间也不是一定为1s,如果闸门时间是2秒,就是计次值除2,就是频率。如果闸门时间是0.5秒,那就是计次值×2,就是频率。
测周法基本原理: 周期的倒数就是频率。
测周法和测频法都是用来测量信号频率的方法,它们的区别主要在于测量原理和应用场景上:
测周法(周期计数法):测周法是通过计算信号周期的方式来确定频率值。具体来说,测周法先测量信号一个完整周期的时间,然后通过周期的倒数来计算频率。这种方法适用于稳定的周期性信号,例如正弦波信号或方波信号。
测频法(相位比较法):测频法是通过比较待测信号与已知频率基准信号(或参考信号)的相位差来确定频率值。通过测量相位差的变化,可以计算出待测信号的频率。这种方法适用于需要高精度频率测量的场合,例如无线通信系统或科学实验中。
总的来说,测周法适用于周期性稳定的信号,测频法适用于需要高精度的频率测量。测频法测量结果更新慢一些,数据相对稳定;测周法测量更新快,数据更新也快。高频适合使用测频法,低频适合使用测周法。选择哪种方法取决于信号的特性和测量的要求。
中介频率:测频法计次和测周法计次,计次N尽量要大一些,N越大,相对误差越小。因为在上面两个方法中,计次可能会存在正负1误差:具体解释
当待测频率小于中介频率时,测周法误差更小,选择测周法。 当待测频率大于中介频率时,测频法误差更小,选择测频法更合适。
本节输入捕获测频率,使用的是测周法。那如何实现测周法测频率? 先了解框图
3、定时器框图
比如这里我们可以配置上升沿触发捕获,每来一个上升沿,CNT转运到CCR一次,又因为这个CNT是内部标准时钟驱动的,所以CNT的数值就可以用来记录两个上升沿之间的时间间隔,这个时间间隔就是周期,再取个倒数,就是测周法的频率了。细节:每次捕获之后,都要把CNT清零一下,这样下次上升沿再捕获的时候,取出的CNT才是两个上升沿的时间间隔。
滤波和边沿检测电路
这里设计了两套滤波和边沿检测电路, 第一套电路经过滤波和极性选择,得到TI1FP1,输入给通道1的后续电路。 第二套电路经过另一个滤波和极性选择,得到TI1FP2,输入给下面通道2的后续电路。
同理,下面TI2信号进来,也经过两套滤波和边沿检测电路, 第一套电路经过滤波和极性选择,得到TI2FP1,输入给上面通道1的后续电路。 第二套电路经过另一个滤波和极性选择,得到TI2FP2,输入给通道2的后续电路。
在这里两个信号进来,可以选择各走各的,也可以选择交叉。 进行交叉连接的原因:①可灵活切换捕获电路的输入,比如你一会想要用CH1作为输入,一会想用CH2作为输入,这样就可以通过数据选择器灵活的进行选择。②可以把一个引脚的输入,同时映射到两个通道捕获单元,这也是PWMI的经典结构,比如这里第一个通道使用上升沿触发,捕获周期,第二个通道使用下降沿触发,捕获占空比,两个通道同时对一个引脚进行捕获,就可以同时测量频率和占空比。这就是PWMI模式。一个通道灵活切换两个引脚和两个通道同时捕获一个引脚。这就是这里交叉一下的作用和目的。
电路执行细节:
输入捕获通道
CCMR1的ICF位可以控制滤波器的参数,滤波器是如何工作呢?看数据手册
上图简单理解为,这个滤波器的工作原理就是以采样频率对输入信号进行采样,当连续N个值都为高电平,输出才为高电平;连续N个值为低电平,输出才为低电平。如果信号出现高频抖动,导致连续采样N个值不都完全一样,那输出就不会变化,这样就可以达到滤波效果。采样频率越低,采样个数N越大,滤波效果就越好。如果波形噪声比较大,那就可以把采样频率参数设置大一点,这样就可以过滤噪声了。
主从触发模式
之前我说过,每次捕获之后,都要把CNT清零一下,这样下次上升沿再捕获的时候,取出的CNT才是两个上升沿的时间间隔。在这里硬件电路就可以在捕获之后自动完成CNT的清零工作,如何完成自动清零工作呢?这就用到主从触发模式了。
比如这里 TI1FP1的上升沿触发捕获通道IC1这一路,同时还可以触发从模式,在这个从模式里面,就有电路可以自动完成CNT的清零,所以可以看出,这个从模式就是可以完成自动化的利器。
主从触发模式细节:
- 主模式:将定时器内部信号,映射到TRGO引脚,用于触发别的外设。
- 从模式:接受其他外设或者自身外设的一些信号,用于控制自身定时器的运行,也就是被别的信号控制。
- 触发源选择:选择从模式的触发信号源,是从模式的一部分,触发源选择,选择指定的一个信号, 得到TRGI,TRGI去触发从模式,从模式就会在它的列表里选择一项操作来自动执行。
下图红连就是上面说的让TI1FP1信号自动触发从模式,从模式让CNT自动清零。 先捕获后清零
有关信号的一下解释:
各种主模式的解释:
比如想实现定时器的级联,你可以选择一个定时器主模式输出更新信号到TRGO,另一个定时器选择上一个的定时器触发从模式,从模式选择执行外部时钟模式1的操作,这就可以实现定时器级联了。
从模式触发源可选信号:
触发从模式后执行的操作:
输入捕获基本结构
框图解释:31:40
注意:这里的CNT的值是有上限的,ARR的值一般设置为65535,那CNT最大也只能计数65535。如果信号频率太低,CNT计数值可能会溢出
PWMI基本结构
PWMI模式使用了两个通道同时捕获一个引脚,可以同时测量频率和占空比。
以上就是使用了两个通道同时测量频率和占空比。
PWMI模式例子: