[STM32F0] STM32F030F4P6 ADC采样精度问题

[复制链接]
1883|37
 楼主| bqyj 发表于 2021-11-14 23:26 | 显示全部楼层 |阅读模式
用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

出现这种现象是什么原因呢?
zyf部长 发表于 2021-11-14 23:27 | 显示全部楼层
MCU内阻的关系吧,加个跟随器看看;
renyaq 发表于 2021-11-14 23:29 | 显示全部楼层
版主说的对,阻抗不匹配太严重造成的,用跟随器连接
dingy 发表于 2021-11-14 23:31 | 显示全部楼层
一般使用要校准的,软件处理下
午夜粪车 发表于 2021-11-14 23:34 | 显示全部楼层

做ADC时,采样时间是可以配置的,采样时间要与外部输入阻抗匹配。
在stm32手册的ADC部分都有相关描述。
 楼主| bqyj 发表于 2021-11-14 23:36 | 显示全部楼层
STM32的手册我仔细看过,我遇到的问题和采样时间关系不大,我都是按照最长采样时间来设置的。
wyjie 发表于 2021-11-14 23:40 | 显示全部楼层
测试电压是直接从电源上输入的,外部输入阻抗也很小。
 楼主| bqyj 发表于 2021-11-14 23:43 | 显示全部楼层
只能认为STM32的ADC线性度不好,最终分段校准才解决问题。
juventus9554 发表于 2021-11-14 23:45 | 显示全部楼层
做个信号拟合吧。
renyaq 发表于 2021-11-14 23:48 | 显示全部楼层
是内阻的问题吗
zyf部长 发表于 2021-11-14 23:50 | 显示全部楼层
电压衰减有问题吧
jiajs 发表于 2021-11-14 23:53 | 显示全部楼层
这个误差可以接受吧。
dingy 发表于 2021-11-14 23:56 | 显示全部楼层
使用线性拟合做个信号处理。
huwr 发表于 2021-11-19 22:49 | 显示全部楼层
分压的电阻的问题。
dingy 发表于 2021-11-19 22:58 | 显示全部楼层
输入内阻的问题
wuhany 发表于 2021-11-19 23:00 | 显示全部楼层
10k电阻上电压也不一定准确的。
午夜粪车 发表于 2021-11-19 23:01 | 显示全部楼层
这个信号可以接受
jlyuan 发表于 2021-11-19 23:04 | 显示全部楼层
前段信号的输入之后有内阻。
juventus9554 发表于 2021-11-19 23:06 | 显示全部楼层
如果电压不衰减,看看准不准呢?
xxrs 发表于 2021-11-19 23:08 | 显示全部楼层
不成线性就是线性拟合。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

390

主题

4526

帖子

2

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