OpenEdv-开源电子网

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

【STM32H750】ADC采集到的电压比用万用表测量值高45mV

[复制链接]

0

主题

2

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2019-10-29
在线时间
2 小时
发表于 2019-10-29 12:51:07 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 lxx9718 于 2019-10-29 12:54 编辑

最近用STM32H750VBT6做一个项目,过程中遇到一个ADC问题。就是用ADC采集数据的时候,采回来的数据比万用表测量值高约45mV。
反复查了好多遍,始终找不到问题点在哪。

下面是测出来的表格,ADC换算是:电压 = ADC值 x 3300 / 4096

ADC结果采用的是16位结果右移四位,取12位

VDDA和VREF+短接,通过一个0R电阻到3.3V电源
VSSA通过0R电阻接GND
VDDA和VSSA之间有1uF+100nF电容

ADC输入部分是1.2K+100nF的RC低通

ADC换算万用表误差
190mV
145mV
45mV
225mV
181mV
44mV
280mV
229mV
51mV
333mV
290mV
43mV
442mV
396mV
46mV
497mV
450mV
47mV
559mV
514mV
45mV
790mV
748mV
42mV
888mV
846mV
42mV
952mV
910mV
42mV
1151mV
1112mV
39mV
1305mV
1266mV
39mV
1454mV
1405mV
49mV
1686mV
1639mV
47mV
1857mV
1811mV
46mV
2000mV
1956mV
44mV
2206mV
2170mV
36mV
2508mV
2460mV
48mV
2706mV
2660mV
46mV
2866mV
2820mV
46mV

补充一点,如果把ADC输入直接用跳线短接到GND,采集回的结果是50mV
直接用跳线短接到3.3V,结果是4095;



最佳答案

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

这种现象遇到过多次,首先你要保证你的电源部分是高精度,低纹波的。AD采样电路也要有必要的滤波和跟随电路,如果用到了运放,其中的电阻要高精度,低温漂。AD部分基准你直接用的3.3电路转的,你就要保证你的3.3V是准确的,用万用表量一下看,是不是3.300V,否则你的公式就不对了,如果不行就用外部基准,另外你要保证你的万用表也是绝对精准的,最好也用示波器采一下看看
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

32

主题

286

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1364
金钱
1364
注册时间
2014-3-27
在线时间
358 小时
发表于 2019-10-29 12:51:08 | 显示全部楼层
这种现象遇到过多次,首先你要保证你的电源部分是高精度,低纹波的。AD采样电路也要有必要的滤波和跟随电路,如果用到了运放,其中的电阻要高精度,低温漂。AD部分基准你直接用的3.3电路转的,你就要保证你的3.3V是准确的,用万用表量一下看,是不是3.300V,否则你的公式就不对了,如果不行就用外部基准,另外你要保证你的万用表也是绝对精准的,最好也用示波器采一下看看
回复

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2019-10-29 15:43:38 | 显示全部楼层
用示波器看看电源和地的波形,如果确定不是外部电路引起的,就用软件将误差消除掉。
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2019-10-29
在线时间
2 小时
 楼主| 发表于 2019-10-30 15:29:36 | 显示全部楼层
wjfhsym 发表于 2019-10-29 12:51
这种现象遇到过多次,首先你要保证你的电源部分是高精度,低纹波的。AD采样电路也要有必要的滤波和跟随电路 ...

电源部分精度确实不算好,但问题不是出在这,电源不干净的影响是AD值噪声误差大。
如果电源不是3.300,影响的是换算比例。
现在的问题是AD值整体向上偏移了。
回复

使用道具 举报

32

主题

286

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1364
金钱
1364
注册时间
2014-3-27
在线时间
358 小时
发表于 2019-10-31 10:22:13 | 显示全部楼层
lxx9718 发表于 2019-10-30 15:29
电源部分精度确实不算好,但问题不是出在这,电源不干净的影响是AD值噪声误差大。
如果电源不是3.300, ...

关注一下它的AD输入阻抗要求和采样时间,另外STM32 AD好像都有个自校准功能,你可以试一下,不过自校准本质也是对电源误差进行的修正。
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2019-10-29
在线时间
2 小时
 楼主| 发表于 2019-11-1 13:55:01 | 显示全部楼层
wjfhsym 发表于 2019-10-31 10:22
关注一下它的AD输入阻抗要求和采样时间,另外STM32 AD好像都有个自校准功能,你可以试一下,不过自校准 ...

这个也考虑过,但是输入阻抗过大或者采样时间不够的话,一般是AD采样值会比实际电压值低,比如原本1V的信号,因为内部采样电容充电不够,只采到0.9V这样。
我试过把采样周期从1.5个周期到850.5个来回调,没用。
而且我的AD引脚上有一个100nF的电容,等效阻抗肯定是能满足10k要求的
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2020-4-1
在线时间
0 小时
发表于 2020-4-1 11:26:02 | 显示全部楼层
我也遇到了,误差非常大,而且没规律,你是不是也用寄存器控制的ADC啊 ,感觉寄存器控制的代码有点太简单了,好像没有加自校验部分逻辑。   如果也是的话,那就是他们原驱动代码有问题了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-4-25 11:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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