OpenEdv-开源电子网

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

关于STM32的ADC稳定性的问题,请原子兄和各位朋友指导

[复制链接]

9

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2012-3-28
在线时间
1 小时
发表于 2013-3-14 11:39:28 | 显示全部楼层 |阅读模式
起因
我用STM32采集一个电压数据,感觉波动比较大,
修改了ADC采集为定时采集或连续采集,ADC结果的数据为DMA自动传送或程序读取到后程序自己传送,感觉效果差不多;
加了各种硬件滤波,感觉效果不是很明显。
也请教了网络上的各位朋友,有人说STM32的ADC效果不好,跳变很大;有人说STM32的ADC效果很好,波动可以做到2-3个跳变。
做了一些试验,主要是为了请教各位,看是不是我有什么地方出问题了,还是STM32的ADC就是稳定性不好。

附件中有测试数据和程序,程序是用 MDK 3.80 编译的,如果要用 MDK 4.x 编译,请复制 MDK4版本\USER 目录下的文件,覆盖到 USER 目录下
程序是网络上下载下来的,我自己写的程序结果也差不多。

本次试验的说明
1 板子用的是原子的 ALIENTEK MiniSTM32,我买了6、7块板子,都换过了,结果差不多
2 接线都是负端接 ALIENTEK MiniSTM32 的 GND,电阻分压的正端直接取 MiniSTM32 的 3.3V
3 本次试验是为了看STM32的ADC的稳定性,所以数据没有用软件滤波,
  我用了软件滤波,波动(最大值-最小值)大概可以降到未滤波前的 10%,基本可以接受。
4 程序我自己写了一些,也换了网络上各位朋友共享的程序,感觉差不多,现在这个是
  的 3个通道ADC+DMA+串口
  
5 ADC数据结果
-----------------------------------------------------------------------
(1) 第1次试验的电压是用电阻分压

通道 电压(V) 理论值 最小 最大 平均 波动
PC0 CH10 2.0358 2527 2519 2572 2557.438849 53
PB0 CH8 2.8600 3550 3548 3614 3582.064748 66
PB1 CH9 2.4440 3034 3043 3120 3070.784173 77
-----------------------------------------------------------------------
(2) 第2次试验的电压
CH8 CH9 电压是用电阻分压
CH10 电压是用2节新的干电池连接的

通道 电压(V) 理论值 最小 最大 平均 波动
PC0 CH10 3.188 3957 3917 3988 3962.340909 71
PB0 CH8 2.8600 3550 3558 3599 3580.409091 41
PB1 CH9 2.4440 3034 3034 3092 3068.25 58
-----------------------------------------------------------------------

测试的数据.zip

2.64 KB, 下载次数: 825

3个通道ADC+DMA+串口.zip

82.88 KB, 下载次数: 1263

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

45

主题

186

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
387
金钱
387
注册时间
2012-11-26
在线时间
0 小时
发表于 2013-3-14 12:56:21 | 显示全部楼层
是你的参考电压波动吧,我测很稳定
回复 支持 反对

使用道具 举报

9

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2012-3-28
在线时间
1 小时
 楼主| 发表于 2013-3-14 13:58:51 | 显示全部楼层
回复【2楼】859724644:
---------------------------------
我的参考电压是先用DC-DC把12V转5V或直接从电脑的USB取5v,而后通过 1117 转 3.3V ,电压波动应该不大了。如果这个都算电压波动大,那请教大家在实际中是用什么电压的方案。
还有 859724644 能不能把你的采集程序给一个我参考下,谢谢。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-14 14:04:26 | 显示全部楼层
考虑几个方面:
1,被测电压的稳定性。
2,参考电压的稳定性。
3,接线方式(GND尽可能靠近VSSA)
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

9

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2012-3-28
在线时间
1 小时
 楼主| 发表于 2013-3-14 15:07:55 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
1,被测电压的稳定性。 
     1路是用2节新的干电池提供,另外2路是用电阻分压,接线都是负端接 ALIENTEK MiniSTM32 的 GND,电阻分压的正端直接取 MiniSTM32 的 3.3V
2,参考电压的稳定性。 
     参考电压,我是用原子板。
3,接线方式(GND尽可能靠近VSSA)
     原子板,被测电压负端接 ALIENTEK MiniSTM32 的 GND
回复 支持 反对

使用道具 举报

45

主题

186

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
387
金钱
387
注册时间
2012-11-26
在线时间
0 小时
发表于 2013-3-14 15:11:16 | 显示全部楼层
回复【3楼】huangxw:
---------------------------------
我是在项目里用的,取出部分出来你在整理也浪费时间,实在想要也可以提取出来给你。原子的实验就很稳定,基本不跳动。我测得是原子板子的3.3V电压,稳定不变,偶尔跳动下,芯片用的是STM32F103C8T6。
回复 支持 反对

使用道具 举报

9

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2012-3-28
在线时间
1 小时
 楼主| 发表于 2013-3-14 15:23:06 | 显示全部楼层
回复【6楼】859724644:
---------------------------------
我用了原子的实验,测 3.3V 电压是很稳定,但如果被测电压不是 3.3v,波动也不小。
我做了试验,3.3v很稳定,我用电阻分压(没有用可变电阻无级调整),如果电压下降到接近3.2V时,出现比较大的波动。
我个人认为STM32的ADC饱和电压应该是小于 3.3V,这样测量3.3V电压,即使有波动也是在饱和范围内,所以看不出波动,感觉跳变很小。
我看了网络上的ADC试验都是测量 3.3V 的,859724644 你的项目板子测测 < 3.0V 的信号,看看波动如何可以吗?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-14 22:48:27 | 显示全部楼层
回复【5楼】huangxw:
---------------------------------
改天我测试下。这两天忙...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2013-3-16
在线时间
7 小时
发表于 2013-4-6 01:14:03 | 显示全部楼层
电压跳动不是一般的大
回复 支持 反对

使用道具 举报

2

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2013-5-24
在线时间
9 小时
发表于 2013-5-24 09:23:20 | 显示全部楼层
我在公司做的板子上使用两路AD(PC0和PC1),PC1不接模拟电压时采集的数据非零但是波动很小,PC0不接模拟电压时采集的电压波动很大,不知道为什么。
回复 支持 反对

使用道具 举报

27

主题

259

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
387
金钱
387
注册时间
2014-8-19
在线时间
0 小时
发表于 2014-9-26 17:50:43 | 显示全部楼层
回复【6楼】859724644:
---------------------------------
你测的是电源极限值,你试用个电位器一端接开发板的3.3。另一端接地,调电位器,试试还稳定不稳定?反正我测试极为稳定
回复 支持 反对

使用道具 举报

27

主题

259

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
387
金钱
387
注册时间
2014-8-19
在线时间
0 小时
发表于 2014-9-26 17:52:12 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
老大,这个试验请你抽空一定要给个结论。
回复 支持 反对

使用道具 举报

27

主题

259

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
387
金钱
387
注册时间
2014-8-19
在线时间
0 小时
发表于 2014-9-26 17:53:17 | 显示全部楼层
回复【11楼】dongbaohui:
---------------------------------错了一个字,极不稳定
回复 支持 反对

使用道具 举报

6

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2014-11-3
在线时间
0 小时
发表于 2014-11-27 21:52:51 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
原子哥,为什么我单独用ADC采集数据然后通过串口显示在电脑上时,ADC采集的数据波动在15以内,但是当我把FATFS文件系统添加到ADC程序中后(把数据存入SD卡),采集到的数据却有120几的波动呢?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-27 23:00:15 | 显示全部楼层
回复【14楼】Mars_man:
---------------------------------
可能是其他操作干扰了ADC输入引脚的电压吧。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2014-11-3
在线时间
0 小时
发表于 2014-11-27 23:06:58 | 显示全部楼层
回复【15楼】正点原子:
---------------------------------
好!我明天试试换个引脚,我的FATFS是参考您的F4,FATFS实验里面的程序,我用的ADC输入引脚是PA6,不知道是不是程序吧这个脚给干扰。
回复 支持 反对

使用道具 举报

33

主题

984

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8050
金钱
8050
注册时间
2014-8-13
在线时间
1597 小时
发表于 2015-5-2 10:00:01 | 显示全部楼层

解决方案在这里:分享:STM32F407的ADC真的不够精准吗?教你设置STM32F407的ADC参数使其精度高于千分之一

http://www.openedv.com/posts/list/51312.htm

回复 支持 反对

使用道具 举报

22

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
158
金钱
158
注册时间
2014-11-3
在线时间
1 小时
发表于 2015-6-11 13:37:05 | 显示全部楼层
你用了滤波电路了吗?用了基本跳动一个字
回复 支持 反对

使用道具 举报

10

主题

84

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
338
金钱
338
注册时间
2015-1-24
在线时间
55 小时
发表于 2015-7-23 23:37:29 | 显示全部楼层
回复【15楼】正点原子:
---------------------------------
原子哥,AD的稳定性测了吗?
我用它来做示波器的采样,极不稳定啊。
学无止境
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-7-26 22:17:24 | 显示全部楼层
回复【19楼】n85gzj:
---------------------------------
我测试还行啊,呵呵
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

35

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
369
金钱
369
注册时间
2014-4-3
在线时间
30 小时
发表于 2016-4-2 15:19:06 | 显示全部楼层
遇到同样的问题。。。请问楼主解决了没?
回复 支持 反对

使用道具 举报

9

主题

80

帖子

0

精华

初级会员

Rank: 2

积分
192
金钱
192
注册时间
2015-2-9
在线时间
51 小时
发表于 2016-4-2 16:25:41 来自手机 | 显示全部楼层
不要怀疑片子问题 多从自己的软硬件上找问题
回复 支持 反对

使用道具 举报

1

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2013-5-29
在线时间
20 小时
发表于 2016-8-24 13:21:28 | 显示全部楼层
我的四路ADC转换出现楼主同样的问题,我的输入电压很稳(电压源),5位半的表最后面的数字只跳动上下2数字,但ADC后的数字从串口输出变化老大了,TL431做基准稳定在3.246V(表量数字不跳);捉急啊;
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2015-4-10
在线时间
6 小时
发表于 2016-12-29 17:02:26 | 显示全部楼层
本帖最后由 querli_wjh 于 2016-12-29 17:06 编辑

注意一下PCB接地点STM32F030xx  和STM32F103 ADC跳动值不会超过1,如果连续采样多次,取中间值一点都不会变。
回复 支持 反对

使用道具 举报

11

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
345
金钱
345
注册时间
2017-3-17
在线时间
86 小时
发表于 2020-10-20 09:56:47 | 显示全部楼层
发现波动挺大的!波动达到了0.07V,有人解决了吗?
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-4 20:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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