IC输入捕获,与输出比较一样也有有四个通道,分别与输出比较共用4个CCR寄存器,通过通道输入电平信号,我们可以检测到电平跳变,然后将CNT的值锁存到CCR寄存器中,实现测量频率,占空比,用于电机测速等。
那我们首先来介绍一下测量频率的原理
频率测量的方法有测频法和测周法两种。
- 测频法:根据频率的定义(在1s内出现周期的次数),在闸门时间内,计数器对上升沿记次得到N,如果T取1s,那么记次得到的N就是频率。如果T取0.5s,那么频率就是2N。
- 测周法:就是测量1个周期的时间,然后取倒数。利用单片机内部的标准时钟产生一个标准频率的信号,这个信号会驱动CNT记次,在两个上升沿之间CNT记次为N,那么每记一个数的时间就是1/fc,记N个数的时间就是N/fc。最后取倒数,就是频率。
通过以上介绍也可得知,测频法适用于高频信号,在1s内最好多出现几个上升沿。测周法适用于低频信号,1个周期的时间尽量长一点。这样我们可以使记次N尽量大一些,然后减少正负1误差(在记次时会出现计数器记到一半的情况,这时候N就会随机舍去或者取1,称为正负1误差),当N尽量大时,1对N的影响就会减弱了。
这里还有1点需要注意
- 使用测频法测量频率时,测量的间隔时长是Ts,也就是我们设置的时长,也就是说,每隔Ts才会产生测量结果跳变,如果在Ts内频率有变化,其实测量结果取的是平均值。
- 使用测周法测量频率时,是每隔1个周期的时间就产生一次测量结果跳变,一般我们信号都是几百几千赫兹,所以这个跳变会比较剧烈。
这里有一个中界频率,也就是说,当信号频率处于中界频率时,测频法与测周法的N误差是一样的。这个频率怎么算呢?
我们可以通过测频法的fx公式把N算出来,再把测周法的N算出来,两个相等时。可以得出fx,这个fx就是中界频率。
输入捕获理论框图