打印
[STM32F0]

STM32F030F4P6 ADC采样精度问题

[复制链接]
791|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 | 只看该作者
一般使用要校准的,软件处理下

使用特权

评论回复
5
午夜粪车| | 2021-11-14 23:34 | 只看该作者

做ADC时,采样时间是可以配置的,采样时间要与外部输入阻抗匹配。
在stm32手册的ADC部分都有相关描述。

使用特权

评论回复
6
bqyj|  楼主 | 2021-11-14 23:36 | 只看该作者
STM32的手册我仔细看过,我遇到的问题和采样时间关系不大,我都是按照最长采样时间来设置的。

使用特权

评论回复
7
wyjie| | 2021-11-14 23:40 | 只看该作者
测试电压是直接从电源上输入的,外部输入阻抗也很小。

使用特权

评论回复
8
bqyj|  楼主 | 2021-11-14 23:43 | 只看该作者
只能认为STM32的ADC线性度不好,最终分段校准才解决问题。

使用特权

评论回复
9
juventus9554| | 2021-11-14 23:45 | 只看该作者
做个信号拟合吧。

使用特权

评论回复
10
renyaq| | 2021-11-14 23:48 | 只看该作者
是内阻的问题吗

使用特权

评论回复
11
zyf部长| | 2021-11-14 23:50 | 只看该作者
电压衰减有问题吧

使用特权

评论回复
12
jiajs| | 2021-11-14 23:53 | 只看该作者
这个误差可以接受吧。

使用特权

评论回复
13
dingy| | 2021-11-14 23:56 | 只看该作者
使用线性拟合做个信号处理。

使用特权

评论回复
14
huwr| | 2021-11-19 22:49 | 只看该作者
分压的电阻的问题。

使用特权

评论回复
15
dingy| | 2021-11-19 22:58 | 只看该作者
输入内阻的问题

使用特权

评论回复
16
wuhany| | 2021-11-19 23:00 | 只看该作者
10k电阻上电压也不一定准确的。

使用特权

评论回复
17
午夜粪车| | 2021-11-19 23:01 | 只看该作者
这个信号可以接受

使用特权

评论回复
18
jlyuan| | 2021-11-19 23:04 | 只看该作者
前段信号的输入之后有内阻。

使用特权

评论回复
19
juventus9554| | 2021-11-19 23:06 | 只看该作者
如果电压不衰减,看看准不准呢?

使用特权

评论回复
20
xxrs| | 2021-11-19 23:08 | 只看该作者
不成线性就是线性拟合。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

390

主题

4526

帖子

2

粉丝