OpenEdv-开源电子网

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

STM32 MINI 做低频示波器

[复制链接]

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2013-11-1
在线时间
0 小时
发表于 2013-11-1 21:18:31 | 显示全部楼层 |阅读模式
买了STM32 MINI之后一直爱不释手 但是出于我51 和 AVR都没学就直接上手STM32实在是鸡肋 之前学过一段时间的FPGA 所以对于ADC 还有TFT液晶绘制波形还是有很多地方不懂
用ADC采集到了数据之后怎么样计算信号的频率?当ADCCLK14Mhz时采样速度是1us 这样理论才是应该可以最大采样到多大频率的信号?ADC是否超于3.3v就不可以测量了?如何计算采样信号频率 要做FFT吗?
在采集到波形之后 图形绘制时 我是每次从左到右采集完一次就LCD_CLEAR一次 但是这样子的波形会闪烁 有什么算法可以改进波形的显示
本人实在菜鸟 喜欢各位指点一下 还没有学习UCGUI 是否用UCGUI绘图更方便些?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-11-1 23:10:20 | 显示全部楼层
1M的采样率,根据采样定理,最快可以采集500Khz频率的波形。
然后计算频率,不一定要用fft。
绘图会闪的解决办法:不要全部清,而是清那些有显示的就不会闪了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2013-11-1
在线时间
0 小时
 楼主| 发表于 2013-11-2 21:48:32 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥 按照你的说法我清屏的时候采用一列一列清屏的方式 现在不会闪烁了 但是从输出波形来看只能检测到50HZ频率的波形...波形到了之后就会出现明显的失真了,我想问一下这是ADC采样速率的问题吗?因为采样速率太慢所以我显示在屏幕上的波形才会失真???怎么改变ADC的采样速率,是改变

ADC1->SMPR2|=7<<9;      //通道3  239.5周期,提高采样时间可以提高精确度  
ADC1->SMPR2|=7<<6;      //通道2  239.5周期,提高采样时间可以提高精确度  
ADC1->SMPR2|=7<<3;      //通道1  239.5周期,提高采样时间可以提高精确度  
ADC1->SMPR2|=7<<0;      //通道0  239.5周期,提高采样时间可以提高精确度  

这里来改变速度还是

RCC->CFGR&=~(3<<14);   //分频因子清零
//SYSCLK/DIV2=12M ADC时钟设置为12M,ADC最大时钟不能超过14M!
//否则将导致ADC准确度下降! 
RCC->CFGR|=2<<14;        
这里改变ADC的时钟频率
望原子哥指点啊 我对示波器的原理确实还不是很懂....
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-11-2 22:35:57 | 显示全部楼层
降低采样时间
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2013-11-1
在线时间
0 小时
 楼主| 发表于 2013-11-3 00:05:40 | 显示全部楼层
原子哥:我把采样时间降到了最低 全部置零了 可是还是只能看到正好50HZ的波形:
ADC1->SMPR2|=0<<9;      //通道3  1.5周期,提高采样时间可以提高精确度  
ADC1->SMPR2|=0<<6;      //通道2  1.5周期,提高采样时间可以提高精确度  
ADC1->SMPR2|=0<<3;      //通道1  1.5周期,提高采样时间可以提高精确度  
ADC1->SMPR2|=0<<0;      //通道0  1.5周期,提高采样时间可以提高精确度  
这么写有地方是不对的吗???随便想问下这里
ADC1->SMPR2|=0<<0; 中的|=0<<0;是什么意思 是将低三位都置零吗?  <<这个符号是什么意思...
真的是小白啊 望原子哥指点~~>
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
发表于 2013-11-3 02:23:42 | 显示全部楼层
你可以恢复的最高的频率的信号,除了看奈奎斯特定理外,也要看你的信号带宽是多少。
如果带宽有限制的话,也是可以试试做高频率的信号恢复的。
回复 支持 反对

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
发表于 2013-11-3 10:09:26 | 显示全部楼层
还有一个问题,你一个周期的点数应该足够多。
乃奎斯特采样定理虽然可以1MHz,最大可以采集的500KHz的信号,它这是保证频域上不混叠,但不保证时域上波形完整。
比如你的采样频率频率1mhz,一个500KHz的正弦信号,你一个周期才两个点,打出来的波形根本不会是正弦波。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-11-3 12:02:00 | 显示全部楼层
回复【5楼】apple163995:
---------------------------------
0<<0还是0,不论多少位都是0,说白了,就是设置为0.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2015-9-7
在线时间
1 小时
发表于 2015-9-16 21:25:04 | 显示全部楼层
你好  LZ,请问你的问题解决了吗?我也遇到同样的问题!急求答案
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2016-7-13
在线时间
2 小时
发表于 2016-7-13 16:02:47 | 显示全部楼层
请问问题解决了吗。。。。求开源。。。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-13 17:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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