[STM32F1] stm32如何用定时器外部计数模式测频率?比较精确的测量

[复制链接]
19233|29
 楼主| 粉尘墨事 发表于 2015-1-26 15:58 | 显示全部楼层 |阅读模式
stm32如何用定时器外部计数模式测频率?比较精确的测量
mmuuss586 发表于 2015-1-26 18:23 | 显示全部楼层

技术模式时,库例程有测量频率的参考程序;
F1文件夹下有;
比较精确的测量,对精度要求多少呢?

评分

参与人数 1威望 +1 收起 理由
粉尘墨事 + 1 很给力!

查看全部评分

airwill 发表于 2015-1-26 22:04 | 显示全部楼层
可以借助那个占空比测量的例程, 精确测量信号周期到1个定时器时钟. 可以得到比较精确的频率了
zchong 发表于 2015-1-26 22:19 | 显示全部楼层
外部计数模式是如何测频的呢?只能计数吧
测频需要使用捕获单元,可以测的很准。
huzi2099 发表于 2015-1-27 01:24 | 显示全部楼层
计数模式可以的,可以测很高的频率,也很准,前提是等周期的信号.
 楼主| 粉尘墨事 发表于 2015-1-29 11:05 | 显示全部楼层
airwill 发表于 2015-1-26 22:04
可以借助那个占空比测量的例程, 精确测量信号周期到1个定时器时钟. 可以得到比较精确的频率了 ...

你说的是输入捕获吧,我尝试过了,不过我测得是12M的频率,误差很大
 楼主| 粉尘墨事 发表于 2015-1-29 11:05 | 显示全部楼层
mmuuss586 发表于 2015-1-26 18:23
技术模式时,库例程有测量频率的参考程序;
F1文件夹下有;
比较精确的测量,对精度要求多少呢? ...

测12M的频率,误差控制在1K吧
 楼主| 粉尘墨事 发表于 2015-1-29 11:07 | 显示全部楼层
zchong 发表于 2015-1-26 22:19
外部计数模式是如何测频的呢?只能计数吧
测频需要使用捕获单元,可以测的很准。 ...

可以的,我已经解决了,目前可以测到40M左右,手头没有示波器,不知道精度怎么样。
 楼主| 粉尘墨事 发表于 2015-1-29 11:08 | 显示全部楼层
huzi2099 发表于 2015-1-27 01:24
计数模式可以的,可以测很高的频率,也很准,前提是等周期的信号.

为什么要是等周期的信号呢?
myxiaonia 发表于 2015-1-29 11:21 | 显示全部楼层
粉尘墨事 发表于 2015-1-29 11:07
可以的,我已经解决了,目前可以测到40M左右,手头没有示波器,不知道精度怎么样。 ...

f1测12M难度不小,f1最大频率才72M,输入捕获用中断模式,光是中断进出栈好几个时钟周期过去了,若是查询模式,其他啥事都不干,可能也很困难,40M都搞定了,用的什么方法
 楼主| 粉尘墨事 发表于 2015-1-29 11:52 | 显示全部楼层
myxiaonia 发表于 2015-1-29 11:21
f1测12M难度不小,f1最大频率才72M,输入捕获用中断模式,光是中断进出栈好几个时钟周期过去了,若是查询 ...

是的,第一个方案我用的是输入捕获,频率太大导致误差也很大,捕获计数很小。计算出频率误差很大(可能这种方式没有掌握好)
第二个方案:我用了外部中断,就是来一个脉冲中断一次计一次数。发现太占时间了(否掉)
第三个方案:用一个定时器外部计数,用72M计数,达到最大值溢出(对溢出计数),另一个计数器定时1s.1S时间到读出此时计数定时器的计数数值加上溢出计数*65536。就可以了
mmuuss586 发表于 2015-1-29 12:05 | 显示全部楼层
粉尘墨事 发表于 2015-1-29 11:07
可以的,我已经解决了,目前可以测到40M左右,手头没有示波器,不知道精度怎么样。 ...

:loveliness:
能测40M的话,效果很好了;
低频的时候估计就不行了吧;
myxiaonia 发表于 2015-1-29 12:13 | 显示全部楼层
粉尘墨事 发表于 2015-1-29 11:52
是的,第一个方案我用的是输入捕获,频率太大导致误差也很大,捕获计数很小。计算出频率误差很大(可能这 ...

重采样求平均啊,思路不错

响应速度会有影响吧

用32测这么高的频率感觉不怎么好
 楼主| 粉尘墨事 发表于 2015-1-29 17:54 | 显示全部楼层
myxiaonia 发表于 2015-1-29 12:13
重采样求平均啊,思路不错

响应速度会有影响吧

没有重采样求平均,就是在1S内累加计数。刚刚测了有误差,有时候误差达到几十K。要求误差做到100HZ以内啊。有没有方法实现?
 楼主| 粉尘墨事 发表于 2015-1-29 17:57 | 显示全部楼层
mmuuss586 发表于 2015-1-29 12:05
能测40M的话,效果很好了;
低频的时候估计就不行了吧;

误差要求在100Hz以内,怎么做?刚刚看一个计数器(产品)都精确到小数后一位了,吓出一身冷汗呀。
huzi2099 发表于 2015-1-29 19:12 | 显示全部楼层
粉尘墨事 发表于 2015-1-29 11:08
为什么要是等周期的信号呢?

技术方式的思路通过对边沿的计数值和计数周期的比值推算一个周期的时间,不等周期就没意义也就不成立了.
huzi2099 发表于 2015-1-29 19:15 | 显示全部楼层
计数方式和时钟关系不大,主要是硬件能够计数的最小脉冲宽度.
 楼主| 粉尘墨事 发表于 2015-1-30 08:58 | 显示全部楼层
huzi2099 发表于 2015-1-29 19:12
技术方式的思路通过对边沿的计数值和计数周期的比值推算一个周期的时间,不等周期就没意义也就不成立了. ...

嗯,不等周期频率也会变的,那么就测不准了
zh113214 发表于 2015-1-30 11:06 | 显示全部楼层
要想误差小,测量仪器非常重要。
sun1238898 发表于 2015-1-30 11:28 | 显示全部楼层
你这频率测试真高,单片机我估计反应不过来
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

16

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部