340|11

968

帖子

25

资源

纯净的硅(初级)

STM32L496直接测2K左右方波频率误差可以做到1HZ吗? [复制链接]

 

        目前在做一个项目,需要用STM32去测一个传感器的频率,传感器输出频率信号,通过放大整形后输出方波,频率大概在1.5K到3K,要求精度至少做到1HZ以内。目前用STM32CUBEMX进行配置,采用输入捕获的方式去读取一个周期内采集到的数,然后用1秒钟内的计数频率除以采集到的数就是频率了,但是目前我用HAL库写出来的程序误差在2HZ左右,通过普源的信号发生器产生2KHZ的方波,算出来是1998 1997HZ。考虑到HAL库运行效率较低,又用寄存器写了个驱动STM32F103ZET6进行捕获的程序,2KHZ的输入波形误差在10HZ左右,有没有人做过这样的项目,能不能给点思路或者参考历程?

此帖出自stm32/stm8论坛
个人签名这个人不懒,但是仕么都没留下

回复

968

帖子

25

资源

纯净的硅(初级)

这是用手上的精英开发板写的寄存器版本程序,目前误差在10HZ左右

STM32F103zZET6.rar

2.3 MB, 下载次数: 0

个人签名这个人不懒,但是仕么都没留下

回复

9235

帖子

21

资源

版主

496是使用外部晶振吗?

点评

是的 用的外部8M有源晶振  详情 回复 发表于 7 天前

回复

9235

帖子

21

资源

版主

我觉得首先要保证定时器的时钟精度,定时器尽量使用最高的时钟频率,同时捕获多个数据求平均也可以消除接线干扰和上升时间的问题。


回复

968

帖子

25

资源

纯净的硅(初级)

littleshrimp 发表于 2022-1-11 17:43 496是使用外部晶振吗?

是的 用的外部8M有源晶振

点评

定时器使用多少的时钟?试过同时捕获多个数据对比数据之间的波动有多大吗?  详情 回复 发表于 7 天前
个人签名这个人不懒,但是仕么都没留下

回复

9235

帖子

21

资源

版主

天天1 发表于 2022-1-11 19:13 是的 用的外部8M有源晶振

定时器使用多少的时钟?试过同时捕获多个数据对比数据之间的波动有多大吗?

点评

外设是倍频到72M,定时器没有分频,就等于1秒钟产生72000000个数。[attachimg]583037[/attachimg] 496用的是PC6也就是定时器8的通道1做高电平捕获。 [attachimg]583038[/attachimg]代码部分也是很简单的捕获计  详情 回复 发表于 7 天前
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾

回复

968

帖子

25

资源

纯净的硅(初级)

littleshrimp 发表于 2022-1-11 19:15 定时器使用多少的时钟?试过同时捕获多个数据对比数据之间的波动有多大吗?

外设是倍频到72M,定时器没有分频,就等于1秒钟产生72000000个数。 sz.jpg

496用的是PC6也就是定时器8的通道1做高电平捕获。

bh.png 代码部分也是很简单的捕获计数。

dm.png

捕获算出来的频率基本在1HZ内跳动,这是在信号发生器发出2392HZ波形时测得数据,东西在办公室手机里就这一张图了

1641905387(1).jpg

 

 

个人签名这个人不懒,但是仕么都没留下

回复

9235

帖子

21

资源

版主

看你这种多次“采集”到的数据波动厉害应该和输入信号波动有关,试试一次多采集一些数据然后求平均看一下效果。

建议直接使用DMA连续采集,关于DMA捕获可以参考这个帖子:

http://bbs.eeworld.com.cn/thread-1083218-1-1.html

个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾

回复

1035

帖子

26

资源

纯净的硅(初级)

你这个测试的源准不准呢

点评

用的信号发生器产生的波形 用示波器的频率计功能看了,2K的波形示波器显示频率2.0002K测试源应该准的吧  详情 回复 发表于 6 天前

回复

968

帖子

25

资源

纯净的硅(初级)

dql2016 发表于 2022-1-12 13:43 你这个测试的源准不准呢

用的信号发生器产生的波形 用示波器的频率计功能看了,2K的波形示波器显示频率2.0002K测试源应该准的吧

个人签名这个人不懒,但是仕么都没留下

回复

85

帖子

0

资源

一粒金砂(中级)

8m晶振准吗?真的8M.


回复

3979

帖子

0

资源

版主

”采用输入捕获的方式去读取一个周期内采集到的数“这句话表述的方法不是很清楚,纯计数方式是最准的,不需要定时器输入捕获方式,条件是信号频率基本不变至少在一个测量周期基本不变。

2千分一肯定能做到,你测一下单片机自己输出的信号,这个测量数据可以排除软件和晶振的偏差。


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

查找数据手册?

EEWorld Datasheet 技术支持

最新文章 更多>>
    关闭
    站长推荐上一条 1/6 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表