一、IC(Input capture)输入捕获
输入捕获,就是当通道输入引脚引入指定电平跳变(即是指上升沿和下降沿)是,当前的CNT的值会被保存在CCR中,用于测量PWM波的频率、占空比、脉冲间隔、电平持续时间等参数
每个高级定时器与通用计时器都有4个输入捕获通道,初级定时器没有输入捕获通道
可以配置为PWMI模式,同时测量频率和占空比,可以配合主从触发模式,实现硬件全自动检测,将两个模式结合起来,就可以实现硬件安全自动执行测量频率占空比
二、频率测量方法
对于STM32来说,只能测量数字信号,如果想要测量一个正弦波,就需要搭建一个信号预处理电路,比如利用运放搭建一个比较器,如果电压较高,需要考虑隔离的问题
1.测频法:在闸门时间T内,对上升沿(也可也是下降沿,极性不同而已,效果等价 )计次,得到N,则频率fx = N/T,适合测量高频信号,数据跟新频率满,数据更加稳定,自带一个杂波过滤,受杂波影响较小
2.测周法:两个上升沿内,以标准频率fc计次,得到N,则频率为fx=fc/N,适合测量低频信号。由于是一个周期即可得出结果,数据更新快,数据跳变快,受杂波影响较明显
3.中介频率:测周法与测频法误差相等的频率点。测频法和测周法都会有一个正负1误差:测频法在闸门时间内出现9.54个周期,那么0.54就需要舍弃或者进一;对应的,测周法在一个周期内,可能会出现10.65个标准周期,0.65也需要进行舍弃或者进一。fm = (fc/T)**0.5。让前面两个式子连立化简可得。当待测频率小于中介频率时,使用测频法误差更小;而大于中介频率时,测周法误差更小
测频法可以利用对射式红外传感器相关代码模拟实现,每来一次上升沿就实现+1
三、电路实现测周法
输入每条线路上的滤波器和边缘检测器各有两套,比如TI1与TI2,TI1进行两套输入滤波和边沿检测之后可以选择性的将信号传输给IC1或者IC2,目的是可以灵活使用TI,更重要的原因是,将一个引脚的输入痛同时映射到两个捕获单元,是PWMI模式的经典结构。但是只有1与2,3与4分别对应
PWMI模式的工作原理:由一个引脚,如TI1获取数据,然后通过IC1获取频率数据,同时通过IC2获取占空比
实现方式:上升沿触发输入捕获,CNT用于计数计时,分别完成周期与标准频率次数的获取。每次触发CNT之后都需要重新计零,可以通过主从触发模式实现
滤波器工作原理:对输入的电波进行连续采样,如果连续n次采样都是高/低电平,就输出为高/低电平,如果中间出现抖动,则保持原先输出,以达到削弱杂波影响的效果
主从触发模式:主模式、从模式、触发源选择的简称。主模式从内部信号源获取信号,然后通过TRGO输出,控制其他硬件;触发源选择可以看做是从模式的一部分,从相对应的引脚获取信号,然后控制从模式实现操作。分别对应三个函数。触发源选择选择CI1FT1作为触发源,从模式选择复位操作。而且只能使用通道一与通道二,通道3、4只能进行手动清零