APP下载

STM32频率测量误差分析与比较

2022-01-26李广柱

柳州职业技术学院学报 2021年6期
关键词:主从计数器时钟

李广柱

(长沙学院,长沙 410022)

0 引言

STM32 单片机具有高速数据处理能力、强大的中断处理能力,较低的功耗[1]4,被广泛应用在家用电器、工业控制和自动化等领域[2]。在很多应用领域都存在频率测量的任务需求,STM32 单片机提供了输入捕获、主从模式等多种测频方法,文章从测频误差的角度对比这两种测频方法,推导了两种方法的测频误差公式并进行分析,在此基础上介绍了两种测频方法的应用场景,可作为具体应用时选择正确频率测量方法的参考。

目前,具有类似功能的国产单片机,如兆易半导体生产的GD32 系列[3]、灵动微电子生产的MM32 系列[4],性能与STM32 一致,且价格更优惠,供货更方便。文章比较的两种测频方法,也适用于GD32、MM32系列单片机。

1 两种测频方法基本原理及误差分析

1.1 输入捕获法测频原理与误差分析

输入捕获法测量信号频率的时序示意图如图1所示。

图1 输入捕获法测频时序示意图

对于STM32 系列单片机来说,高级控制定时器和通用定时器都具有输入捕获功能,图1 中TIMx 选用其中任意一个皆可。图1假定TIMx 工作在向上计数模式,t0时刻,待测外部信号产生第一个上升沿,将TIMx 的计数器清零,TIMx 从0 开始计数;t1时刻,待测外部信号产生第二个上升沿,TIMx的计数器清零的同时,计数值存储到捕获/比较寄存器TIMx_CCR1中。t0到t1时刻的时间差即为待测外部信号的周期,倒数即为信号的频率。

记频率f的测量误差为Δf,则:

式(3)反映了测频的最大相对误差是时钟抖动因素和计数误差之和。

1.2 主从模式法测频原理与误差分析

主从模式法测量信号频率的时序示意图如图2所示。

图2 主从模式法测频时序示意图

对比图1和图2可以发现,主从模式法有两点不同,其一,计数的时钟改变为待测外部信号;其二,主从模式法需要同时采用两个计数器,一个作为主计数器,另一个作为从计数器,图2 中TIMx、TIMy 分别为主计数器和从计数器,STM32系列单片机的高级控制定时器和通用定时器都可作为从计数器,从计数器选定后,主计数器只有四种选择[1]237。

从计数器TIMy 对待测外部信号计数,图2 假定TIMy 工作在向上计数模式;另一方面,主计数器TIMx 通过分频得到一个慢速时钟,t0时刻,TIMx时钟产生第一个上升沿,将TIMy的计数器清零,TIMy从0开始计数;t1时刻,TIMx时钟产生第二个上升沿,TIMy 的计数器清零的同时,计数值存储到捕获/比较寄存器TIMy_CCR1中。

对式(4)求微分,可以得到主从模式法测频的相对误差:

类似可知,主从模式法测频相对误差的最大值亦满足式(3)。

由式可见,两种测频方法相对误差的最大值皆为晶振频率抖动造成的误差和计数误差之和。针对两种测频方法而言,晶振频率抖动造成的误差是一致的,且可以补偿[5],故以下仅考虑计数误差造成的影响。注意到计数误差ΔN=±1,因此|ΔN|=1,故由计数误差引起的两种测频方法的相对误差最大值皆为1/N。

2 测频误差对比分析

输入捕获法和主从模式法,由计数误差引起的测频相对误差皆为1/N,但两种测频方法下的计数值N却不同。参见图2,若主从模式法采用的主计数器时钟为某个确定值,由图1和图2可见,待测外部信号的频率越高,输入捕获法对应的计数值N 就越小,对应的测频相对误差就越大;主从模式法对应的计数值N 就越大,对应的测频相对误差就越小。也就是说,对于输入捕获法,待测外部信号的频率越高,测频相对误差越大;主从模式法则相反,待测外部信号频率越高,测频相对误差越小。

若STM32采用的内部工作时钟为72MHz,图1所示的输入捕获法采用的TIMx 使用72MHz 时钟;同时假定主从模式法采用的主计数器使用的时钟为1Hz,则对于不同频率的待测外部信号,两种测频方法下的相对误差如图3所示。

图3 两种测频方法计数误差对比

图3的横坐标为待测外部信号的频率,纵坐标为最大计数误差,两者皆为对数坐标。当输入捕获法定时器所用时钟频率减小时,图3 中显示的误差曲线上移,计数误差增加。主从模式法所用主计数器的时钟频率减小时,误差曲线下移,计数误差减少。两种测频方法使用时钟频率改变,计数误差随着待测外部信号频率的变化趋势不变。

由图3可见,输入捕获法适用于低频的待测外部信号;主从模式法适用于高频的待测外部信号。当待测外部信号频率为8.48KHz时,两种测频方法的计数误差一致。此时若要降低测频误差,采用输入捕获法测频时,需提高输入捕获法定时器的时钟频率;若采用主从模式法测频,则需要降低主计数器的时钟频率。通过图3可知,此时改变两种测频方法的时钟频率,对测频的计数误差改善有限。因此,如果需要高精度测量8.48KHz左右的信号时,需采用其他方法。

3 结论

STM32 以及国产单片机GD32、MM32 具有多个定时器,可以实现输入捕获法、主从模式法等多种频率测量的功能。文章在介绍这两种测频方法原理的基础上,推导了测频误差公式,可以发现两种测频方法的最大相对误差具有相同的表达式。通过对两种方法对比研究发现,输入捕获法适用于测量低频信号,主从模式法适用于测量高频信号。当待测外部信号频率在8.48KHz 左右时,两种测频方法的误差接近。这一结论对于测频时选择恰当的测频方法有一定的参考价值。

猜你喜欢

主从计数器时钟
采用虚拟计数器的电子式膜式燃气表
古代的时钟
Antarctica's pretty pink snow
Boy dresses up to honor school security officer
基于ACS880变频器XD2D主从功能的采煤机牵引调速系统设计
这个时钟一根针
基于Multisim10.1的任意进制计数器的设计与实现
有趣的时钟
SR620型与53230A型计数器的性能测试
算盘是个“小气鬼”