[STM32F0] STM32F030F4P6 ADC采样精度问题

[复制链接]
 楼主| bqyj 发表于 2019-11-16 15:54 | 显示全部楼层 |阅读模式
用STM32F030F4P6做电压采集,外部电路非常简单,100k电阻+10k电阻分压,电压衰减11倍进入MCU ADC管脚采样。
软件通过DMA+过采样,得到MCU管脚上的电压,基本可以做到波动1mV以内。
使用5V 10V 15V 20V基准进行标定时发现,5V下面校准以后,依次测量5V 10V 15V 20V电压,结果分别为:
4.999 10.04 15.08 20.12
随着电压升高,测量结果偏高,20V测量结果误差已经达到0.6%,结果完全可以重复。
测量10k电阻上电压(即MCU管脚的电压):
0.4528V 0.9056V 1.3584V 1.8112V
非常完美的线性关系,但是STM32测试出的MCU管脚电压依次为:
451mV  907mV  1362mV 1819mV

依然是电压越高,测量值越高。
短接掉100k电阻,只保留10k电阻。
0.505V 507mV 高2mV
0.999V 1004mV 高5mV
1.508V 1516mV 高8mV
2.003V 2014mV 高11mV
2.497V 2511mV 高14mV
3.006V 3024mV 高18mV

出现这种现象是什么原因呢?
juventus9554 发表于 2019-11-16 15:57 | 显示全部楼层
MCU内阻的关系吧,加个跟随器看看;
stly 发表于 2019-11-16 16:03 | 显示全部楼层
版主说的对,阻抗不匹配太严重造成的,用跟随器连接
dingy 发表于 2019-11-16 16:06 | 显示全部楼层
一般使用要校准的,软件处理下
renyaq 发表于 2019-11-16 16:10 | 显示全部楼层

做ADC时,采样时间是可以配置的,采样时间要与外部输入阻抗匹配。
在stm32手册的ADC部分都有相关描述。
 楼主| bqyj 发表于 2019-11-16 16:13 | 显示全部楼层
STM32的手册我仔细看过,我遇到的问题和采样时间关系不大,我都是按照最长采样时间来设置的。
 楼主| bqyj 发表于 2019-11-16 16:16 | 显示全部楼层
测试电压是直接从电源上输入的,外部输入阻抗也很小。
 楼主| bqyj 发表于 2019-11-16 16:17 | 显示全部楼层
只能认为STM32的ADC线性度不好,最终分段校准才解决问题。
pangb 发表于 2019-11-16 16:20 | 显示全部楼层
做个信号拟合吧。
renyaq 发表于 2019-11-16 16:24 | 显示全部楼层

是内阻的问题吗
zyf部长 发表于 2019-11-16 16:30 | 显示全部楼层
电压衰减有问题吧
renyaq 发表于 2019-11-16 16:33 | 显示全部楼层
这个误差可以接受吧。
dingy 发表于 2019-11-16 16:36 | 显示全部楼层

使用线性拟合做个信号处理。
supernan 发表于 2019-11-16 16:39 | 显示全部楼层

分压的电阻的问题。
chuxh 发表于 2019-11-16 16:42 | 显示全部楼层

输入内阻的问题
stly 发表于 2019-11-16 16:45 | 显示全部楼层
10k电阻上电压也不一定准确的。
pangb 发表于 2019-11-16 16:51 | 显示全部楼层

这个信号可以接受
xxrs 发表于 2019-11-16 16:54 | 显示全部楼层

前段信号的输入之后有内阻。
chuxh 发表于 2019-11-16 16:57 | 显示全部楼层
如果电压不衰减,看看准不准呢?
juventus9554 发表于 2019-11-16 17:01 | 显示全部楼层
不成线性就是线性拟合。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

390

主题

4526

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部