(纯干货)使用STM32测量频率和占空比的几种方法

使用平台:官方stm32f429discovery开发板,180mhz的主频,定时器频率90mhz。
相关题目:
(1)测量脉冲信号频率f_o,频率范围为10hz~2mhz,测量误差的绝对值不大于0.1%。(15分)
(2)测量脉冲信号占空比d,测量范围为10%~90%,测量误差的绝对值不大于2%。(15分)
思路一:外部中断
思路:这种方法是很容易想到的,而且对几乎所有mcu都适用(连51都可以)。方法也很简单,声明一个计数变量tim_cnt,每次一个上升沿/下降沿就进入一次中断,对tim_cnt++,然后定时统计即可。如果需要占空比,那么就另外用一个定时器统计上升沿、下降沿之间的时间即可。
缺点:缺陷显而易见,当频率提高,将会频繁进入中断,占用大量时间。而当频率超过100khz时,中断程序时间甚至将超过脉冲周期,产生巨大误差。同时更重要的是,想要测量的占空比由于受到中断程序影响,误差将越来越大。
总结:我们当时第一时间就把这个方案pass了,没有相关代码(这个代码也很简单)。不过,该方法在频率较低(10k以下)时,可以拿来测量频率。在频率更低的情况下,可以拿来测占空比。
思路二:pwm输入模式
思路:翻遍st的参考手册,在定时器当中有这样一种模式:
简而言之,理论上,通过这种模式,可以用硬件直接测量出频率和占空比。当时我们发现这一模式时欢欣鼓舞,以为可以一步解决这一问题。
但是,经过测量之后发现这种方法测试数据不稳定也不精确,数据不停跳动,且和实际值相差很大。st的这些功能经常有这种问题,比如定时器的编码器模式,在0点处频繁正负跳变时有可能会卡死。这些方法虽然省事,稳定性却不是很好。
经过线性补偿可以一定程度上减少误差(参数在不同情况下不同):
freq=frequency*2.2118-47.05;
这种方法无法实现要求。所以在这里我并不推荐这种方法。如果有谁能够有较好的程序,也欢迎发出来。
(网友点评:
1、你前期出问题,可能与输入滤波有关,如果你待测信号不超过2mhz,则输入使用【0011: fsampling=fck_int, n=8】滤波可能是一个不错的选择。
“st的这些功能经常有这种问题”我没遇到过,stm32的定时器各种模式我基本都使用过。2、你输入捕捉效率太低了,另外,如果真的是高频的话,程序中应当动态根据测得的频率值来修改psc,以实现动态精度适应还有,输入捕捉真心不需要每次都进中断,1mhz的信号,你每秒捕捉100万次,值都是一样有意义吗?是否可以每秒捕捉10次取平均值?把细节处理好就行了。

思路三:输入捕获
思路:一般来说,对stm32有一定了解的坛友们在测量频率的问题上往往都会想到利用输入捕获。首先设定为上升沿触发,当进入中断之后(rising)记录与上次中断(rising_last)之间的间隔(周期,其倒数就是频率)。再设定为下降沿,进入中断之后与上升沿时刻之差即为高电平时间(falling-rising_last),高电平时间除周期即为占空比。
该方法尤其是在中低频(<100khz)之下精度不错。
缺点:稍有经验的朋友们应该都能看出来,该方法仍然会带来极高的中断频率。在高频之下,首先是cpu时间被完全占用,此外,更重要的是,中断程序时间过长往往导致会错过一次或多次中断信号,表现就是测量值在实际值、实际值×2、实际值×3等之间跳动。实测中,最高频率可以测到约400khz。
总结:该方法在低频率(10000)则确认为频率数据,同时adc测量占空比确认为占空比数据。否则再使用输入捕获方法测量得到频率、占空比数据。
对于各个方法存在的线性误差,使用了线性补偿来提高精度。一般情况下,使用存储在rom中的数据作为参数,当需要校正时,采用如下校正思路:
波形发生器生成一些预设参数波形(例如10hz,10%;100k,50%;2m,90%……),在不同区间内多次测量得到数据,随后以原始数据为x,真实数据为y,去除异常数据之后,做y=f(x)的线性回归,并取相关系数最高的作为新的参数,同时存储在rom当中。
我认为,我的这篇文章,应当是很全面了。当然,限于水平,存在着未完善和不正确的地方,也欢迎指正。

基于PID系统的单向测径仪具备工业控制功能
解析数据管理的重要性和作用
智能电销机器人略胜人工外呼一筹的秘密在这里
变频器系统信号干扰种类及出现原因
【硬声推荐】最新技术来袭!2022慕尼黑电子展精选展品视频来了!
(纯干货)使用STM32测量频率和占空比的几种方法
一文解析车载充电机的功能与趋势
TL494搭建的DC-DC直流变换电路解析
智能穿戴市场"秋意"渐起 仍有破局之道
长沙市长周海兵公布经济社会发展成就:主要指标完成,制造业蓬勃发展
纵目科技泊车产品通过两项重要认证并获得证书
摩托罗拉骁龙888旗舰的细节介绍
DeepMind又出AI大招
常用的电子灌封胶胶水有哪些
库卡CEO提前离职,侮辱了中国人的智商
剖析物联网开发板的原理图设计
2023 中国国际橡塑展:DOMO 化学扩大 TECHNYL®产品系列,以满足中国市场对 电动汽车和可持续解决方案的强劲需
CREE(科锐)公司的历史和产品变迁
初售23万,如今不到9万!外观不输超跑,上班族开它撩妹没毛病
1000亿美元投向美国高速网络计划 拜登2万亿美元振兴计划出炉