OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5394|回复: 7

请教-等精度频率计数器的问题

[复制链接]

8

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2019-4-19
在线时间
8 小时
发表于 2019-8-4 15:48:16 | 显示全部楼层 |阅读模式
3金钱
在看到教程的等精度频率计数器那一节时,有几个问题不太明白,想请教一下。
这个频率计数器算出一个频率值所需的时间大概是多少?当系统时钟为50MHz,门控时间为GATE_TIME = 16'd5_000;
如果把门控时间设置成1000,对计数的速度影响大吗?
不知道为什么,这个计数器的频率分辨率是5KHz,就是说,6KHz的信号,11KHz的信号算不出来,只有恰好是5KHz的整数倍的信号才能算出来?

最佳答案

查看完整内容[请看2#楼]

例程里的门控时间是以被测信号为时钟的周期计算的。所以如果修改成1000,对计数速度的影响取决于被测信号的频率。你说的测量结果有误差是因为程序作了除法运算,会损失精度。另外被测时钟信号质量也会影响测量结果。这个例程的代码后来有更新,更新后的代码很大程度上改善了这个问题
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

202

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
839
金钱
839
注册时间
2018-7-29
在线时间
128 小时
发表于 2019-8-4 15:48:17 来自手机 | 显示全部楼层
例程里的门控时间是以被测信号为时钟的周期计算的。所以如果修改成1000,对计数速度的影响取决于被测信号的频率。你说的测量结果有误差是因为程序作了除法运算,会损失精度。另外被测时钟信号质量也会影响测量结果。这个例程的代码后来有更新,更新后的代码很大程度上改善了这个问题
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165186
金钱
165186
注册时间
2010-12-1
在线时间
2106 小时
发表于 2019-8-5 01:40:45 | 显示全部楼层
帮顶
回复

使用道具 举报

9

主题

202

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
839
金钱
839
注册时间
2018-7-29
在线时间
128 小时
发表于 2019-8-5 09:18:58 | 显示全部楼层
SunML 发表于 2019-8-5 08:38
例程里的门控时间是以被测信号为时钟的周期计算的。所以如果修改成1000,对计数速度的影响取决于被测信号的 ...

修改后的代码你可以试一下

21_top_cymometer_gate_base_ref_clk.zip

192.03 KB, 下载次数: 54

回复

使用道具 举报

8

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2019-4-19
在线时间
8 小时
 楼主| 发表于 2019-8-5 16:26:44 | 显示全部楼层
SunML 发表于 2019-8-5 09:18
修改后的代码你可以试一下

非常感谢您的解答。这个问题我昨晚仔细想了一下,这个等精度频率计数器,测得一次频率值取决于两个因素,一个是被测信号的频率,二是设置的门控时间,在不同被测频率下,测量时间是不一样的,今天我重新写了一个最普通的频率计数器,发现精度也不错,在低频下虽然无法准确测得频率,但是太低的频段对我不太重要。
所以还是建议,能在教程里加上其他的频率计的例程,有时候太复杂的方法,反而不容易理解。
回复

使用道具 举报

9

主题

202

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
839
金钱
839
注册时间
2018-7-29
在线时间
128 小时
发表于 2019-8-5 23:59:32 来自手机 | 显示全部楼层
你分析的是对的,不过等精度的意义正是在于误差与输入频率无关。能把这个搞明白,传统频率计实现起来自然就非常简单
回复

使用道具 举报

8

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2019-4-19
在线时间
8 小时
 楼主| 发表于 2019-8-8 11:39:03 | 显示全部楼层
SunML 发表于 2019-8-5 23:59
你分析的是对的,不过等精度的意义正是在于误差与输入频率无关。能把这个搞明白,传统频率计实现起来自然就 ...

因为现在做了一个小系统,需要测量其他部分的频率,但是需要在不同频率下保持相同的测量时间,因此写了一个固定闸门时间的频率计模块,但是实际使用的时候,前面的模块输送给FPGA引脚的频率为14KHz,电压的峰峰值为4.7-5.7V,发现计数器模块计算的频率为30KHz左右,我想请问一下,这个是因为信号的电压和FPGA引脚不匹配吗?因为我之前用标准信号源进行过测试,是能够准确统计频率的。
回复

使用道具 举报

0

主题

131

帖子

0

精华

初级会员

Rank: 2

积分
175
金钱
175
注册时间
2019-7-1
在线时间
6 小时
发表于 2019-8-8 13:46:58 | 显示全部楼层
帮你顶一下帖子
IIS7站长  http://www.iis7.com/
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-10-3 07:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表