目录
- IC(Input Capture)输入捕获
- 输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存到CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数
- 每个高级定时器和通用定时器都拥有4个输入捕获通道
- 可配置为PWMI模式,同时测量频率和占空比
- 可配合主从触发模式,实现硬件全自动测量
四个输入捕获和输出比较模块共用4个CCR寄存器,输入捕获的4个输入引脚和输出比较的4个输出引脚相同。
1.频率测量
频率的定义是1s内出现了多少个周期。测频法适用于高频情况,在闸门时间T内,计次N越大,测得频率越准确。测周法适用于低频情况,以标准频率计次,计次N越大,测得频率越准确。高频和低频可以通过中界频率来划分,两种方法的N相同说明误差相同,此时求得的频率为中界频率。
2.输入捕获结构
输入信号经过输入滤波器和边沿检测器,输入滤波器可以滤除高频毛刺防止误触发,边沿检测器可以选择高电平触发,或者低电平触发,当出现指定电平时,边沿检测电路会触发后续电路执行动作。其实里面有两套输入滤波器和边沿检测器,分别经过滤波和极性选择得到输出信号TI1FP1和TI1FP2,分别通往通道1和通道2的后续电路。
TI1和TI2信号进来,可以选择各走各的或者交叉连接。为什么要交叉连接呢?一是可以灵活切换后续捕获电路的输入,一会想选CH1作为输入,一会想选CH2作为输入,这样就可以通过数据选择器,灵活选择输入。二是可以把一个引脚的输入,同时映射到两个捕获单元,这也是PWMI模式的经典结构。
第一个通道可使用上升沿触发,捕获频率,第二个通道可使用下降沿触发,捕获占空比。两个通道同时对一个引脚进行捕获,就能同时测量频率和占空比了,这就是PWMI模式。
预分频器可以对输入信号进行分频,分频后的触发信号就可以触发捕获电路工作了。每来一个信号,CNT的值(CNT的数值可以用来记录两个上升沿之间的时间间隔),就会向CCR转运一次。转运的同时,会发生一个捕获事件,这个事件会在状态寄存器置标志位,同时也可产生中断。如果想在捕获瞬间处理一些事情的话,就可以开启捕获中断。
使用输入捕获测频率时,每次捕获后,要把CNT清0,这样上升沿再捕获时,取出的CNT才是两个上升沿的时间间隔。捕获后清0的操作可以通过主从触发模式,自动完成。
ICF[3:0]定义了TI1输入的采样频率和数字滤波长度。滤波原理是以采样频率对信号采样,当连续N个值都为高电平,输出才为高电平。CC1P可用来选择极性。
主模式可以将定时器内部的信号,映射到TRGO引脚 ,用于触发别的引脚。从模式是接收其他外设或者自身外设的一些信号,用于控制自身定时器的运行。触发源选择,选择指定的一个信号,得到TRGI,TRGI去触发从模式。例如对CNT清0,触发源选择TI1FP1,从模式执行Reset。
例如定时器的级联,可以选择一个定时器主模式输出更新信号到TRGO,另一个定时器选择上一个定时器触发从模式,从模式选择执行外部时钟模式1的操作。
TI1FP1上升沿触发,正常的捕获周期,TI1FP2配置为下降沿触发,通过交叉通道,去触发通道2的捕获单元。 整个工作情况:首先上升沿,CCR1捕获,同时清零CNT,CNT++,然后,在下降沿这个时刻,触发CCR2捕获,此时CCR2的值就是CNT在高电平时的计数值,知道下一次上升沿,CCR1捕获周期,CNT清零。CCR2/CCR1就得到占空比。
3.输入捕获模式测频率(测周法)
先用PWM模块,在PA0端口输出一个频率和占空比可调的波形,测量波形的输入口是PA6。使用杜邦线将PA6与PA0连接,可实现测量自己PWM模块产生波形的频率。为了便捷调节生成波形的频率,用函数来调节频率,由于改变ARR,频率和占空比都会变,所以选择改变PSC的值(TIM_PrescaleConfig())。
输入捕获初始化:
第一步,RCC开启时钟,把GPIO和TIM的时钟打开。
第二步,GPIO初始化,把GPIO配置成输入模式,上拉输入或者浮空输入。
第三步,配置时基单元,让CNT计数器在内部时钟驱动下自增运行。
第四步,配置输入捕获单元,包括滤波器、极性、直连通道还是交叉通道、分频器这些参数。
第五步,选择从模式的触发源。
第六步,选择出发之后执行的操作。
第七步,开启定时器。