发新帖我要提问
12
返回列表
打印

输入捕获测量频率有误差怎么办

[复制链接]
楼主: shangelaila
手机看帖
扫描二维码
随时随地手机跟帖
21
流行音乐| | 2010-6-25 20:19 | 只看该作者 回帖奖励 |倒序浏览
我用STM32F103C8的捕获功能实现了测量10MHz频率,分辨率达到1Hz。也完全可以做到0.1Hz的分辨率,只是分辨率越高,就需要越多的测量周期来求平均值,即需要的测量时间就越长。
至于误差,这还与系统时钟(晶振)的误差有关。晶振误差一般在30ppm以内,所以测量150kHz频率时误差为4.5Hz。如果你有理想的精准时钟信号,用捕获功能测量150kHz信号的误差就完全能达到0.1Hz以内,方法是测量多个周期并求平均值。

使用特权

评论回复
22
流行音乐| | 2010-6-25 20:40 | 只看该作者
测量比较高的频率时(例如150kHz),如果只测量一个信号周期,注定误差会很大。
假设MCU定时器时钟为100MHz,则捕捉功能的时间分辨率为0.01us,150kHz信号的周期为6.666667us,则捕捉功能测得的周期为6.66us或6.67us(因为捕捉分辨率为0.01us),误差达到 0.01/6.67=0.15%, 0.15%*150000Hz=225Hz。
所以,如果只测量150kHz信号的一个周期,那么测量误差将达到225Hz。

使用特权

评论回复
23
shangelaila|  楼主 | 2010-6-25 21:01 | 只看该作者
21# nongfuxu
额。。不清楚 - -! 我还在研究官网的DEMO。。。最短可接收测频闸门是在哪里设置的啊?

使用特权

评论回复
24
shangelaila|  楼主 | 2010-6-25 21:02 | 只看该作者
22# 流行音乐
测量多个周期的话是不是把输入信号设成外部中断,然后开一个定时器计数,最后算频率?

使用特权

评论回复
25
nongfuxu| | 2010-6-26 10:10 | 只看该作者
**和鸭讲,讲还是不讲?

使用特权

评论回复
26
shangelaila|  楼主 | 2010-6-26 10:37 | 只看该作者
26# nongfuxu
呵呵,不好意思。。刚学不太懂啊。。还是讲讲吧

使用特权

评论回复
27
香水城| | 2010-6-26 11:04 | 只看该作者
22# 流行音乐
测量多个周期的话是不是把输入信号设成外部中断,然后开一个定时器计数,最后算频率?
shangelaila 发表于 2010-6-25 21:02


你绕圈子问了这么多,说明你根本没有看我给你的例子,还是先研究一下手册和例子,再来问一些有针对性的问题吧,:L

使用特权

评论回复
28
nongfuxu| | 2010-6-26 11:15 | 只看该作者
香帮主说得好!

使用特权

评论回复
29
zchong| | 2010-6-27 09:29 | 只看该作者
楼主的思路是对的,不过stm32已经帮你考虑到了,所以它有捕获功能,又快又好又方便。

使用特权

评论回复
30
sun1238898| | 2014-3-27 13:04 | 只看该作者
流行音乐 发表于 2010-6-25 20:19
我用STM32F103C8的捕获功能实现了测量10MHz频率,分辨率达到1Hz。也完全可以做到0.1Hz的分辨率,只是分辨率 ...

请问您怎么测试到10Mhz的频率的,是否可以分享一下代码,谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则