打印
[资源共享]

单片机中ADC采集都存在哪些误差?

[复制链接]
1756|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jcky001|  楼主 | 2022-9-23 14:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 jcky001 于 2022-9-23 14:56 编辑

ADC的种类很多,对应的精度和误差也有很多,本文就来讲讲关于ADC精度和误差的内容。

ADC介绍

ADC:Analog Digital Converter,指模数转换,也就是(电压)模拟量转换成数字量。大多数MCU中都集成了ADC模块,同时ADC也是在产品开发中使用率较高的一个模块,相信大部分人都使用过ADC这个功能。在STM32中内置最多四个高级12位ADC控制器(ADC1、2、3、4)。当然,ADC控制器数量多少取决于STM32型号,还有部分STM32具有16位采样的ADC(如STM32F373)。他们提供自校准功能,用于提高环境条件变化时的ADC精度。我们平时在使用ADC中要求不是很高,可能就没有在于ADC转换的值是否精确。但是,有些特定场合就需要更精确的转换值,那么我们就需要对ADC做更多了解。下面章节带领大家了解相关内容。

ADC误差


在涉及模数转换的应用中,ADC精度会影响整体的系统质量和效率。为了提高此精度,有必要了解与ADC相关的误差。

ADC误差主要包含:ADC自身和环境导致的误差。

1、ADC自身导致的误差

说误差之前,先说下ADC精度,为便于参考,将精度误差表达为1 LSB的倍数:



1 LSB = VREF+ / 2^12.(1)偏移误差
偏移误差是第一次实际转换和第一次理想转换之间的偏离。第一次转换发生在数字ADC输出从0变为1时。理想情况下,当模拟输入介于0.5 LSB和1.5 LSB之间时,数字输出应为1。仍然是理想情况下,第一次转换发生在0.5 LSB处。用EO表示偏移误差。可通过应用固件轻松校准偏移误差。正偏移误差的表示方法

负偏移误差的表示方法

(2)增益误差增益误差是最后一次实际转换和最后一次理想转换之间的偏离。增益误差用EG表示。正增益误差的表示方法:
负增益误差的表示方法:

(3)微分线性误差微分线性误差(DLE)为实际步进和理想步进之间的最大偏离。这里的“理想情况”不是指理想传输曲线,而是指ADC分辨率。理想情况下,1 LSB的模拟输入电压变化量应导致数字代码变化。如果需要大于1 LSB的模拟输入电压才能导致数字代码变化,将观察到微分线性误差。因此,DLE对应于从一个数字代码变为下一个数字代码所需的最大额外电压。


使用特权

评论回复
沙发
jcky001|  楼主 | 2022-9-23 14:57 | 只看该作者
(4)积分线性误差积分线性误差为任何实际转换和端点相关线间的最大偏离,用EL表示ILE。端点相关线可以定义为A/D传输曲线上连接第一次实际转换与最后一次实际转换的线。EL是指与每一次转换的这条线的偏离。因此,端点相关线对应于实际传输曲线并且与理想传输曲线不相关。 (5)总未调整误差总未调整误差(TUE)为实际和理想传输曲线间的最大偏离。此参数指定可能发生的会导致理想数字输出与实际数字输出之间最大偏离的总误差。TUE是记录到的任何输入电压的理想预期值与从ADC获得的实际值之间的最大偏离。
2、ADC环境导致的误差(1)参考电压噪声由于ADC输出为模拟信号电压与参考电压之比,因此模拟参考上的任何噪声都会导致转换后数字值的变化。在某些封装中,VDDA模拟电源被用作参考电压(VREF+),因此VDDA电源的质量会影响ADC误差。(2)参考电压/电源调节电源调节对于ADC精度十分重要,因为转换结果是模拟输入电压与VREF+值之比。当连接到VDDA或VREF+时,如果这些输入上的负载及其输出阻抗导致电源输出下降,将在转换结果中产生误差。(3)外部参考电压参数当使用外部参考电压源(VREF+引脚上)时,该外部参考源有一些重要参数。必须考虑三个参考电压规格:温度漂移、电压噪声和长期稳定性。(4)模拟输入信号噪声在采样时间内,小而高频率的信号变化可导致较大转换误差。此噪声由电气设备(例如电机、发动机点火、电源线)生成。它增加了不需要的信号,因此会影响源信号(例如传感器)。这样一来,导致ADC转换结果不准确。(5)最大输入信号幅度的ADC动态范围匹配不佳为获得最高ADC转换精度,ADC动态范围必须与待转换信号的最大幅度相匹配。我们假设待转换信号在0 V与2.5 V之间变化,并且VREF+等于3.3 V。如下图所示,有部分未使用的ADC转换范围,也会使转换后信号精度下降。

如何提高ADC采集数据准确性


这个问题之前写过相关的内容,只是没有单独提出来说,这里汇总一下。

1、减少ADC相关误差的影响

上面描述了“ADC自身导致的误差”,使用STM32 ADC自校准功能或通过微控制器固件可以轻松补偿偏移误差和增益误差。

之前在分享的代码中有提到,比如通过软件校正:




ADC_StartCalibration(ADC1);

使用特权

评论回复
板凳
jcky001|  楼主 | 2022-9-23 14:58 | 只看该作者

2、使外部环境误差最小化

(1)参考电压/电源噪声最小化也就是在VREF和VDDA引脚连接外部去耦电容。

(2)模拟输入信号噪声消除
通过添加外部RC滤波器以消除高频。(3)将ADC动态范围与最大信号幅度进行匹配也就是将参考电压范围匹配采样电压(当然,需要有参考电压引脚的芯片才行)。

同时,也可以使用放大器针对ADC范围调整输入信号范围:

(4)温度影响补偿第一种方法是完整描述偏移和增益漂移特性,并在存储器中提供查询表,以便根据温度变化修正测量值。此校准方法需要额外的成本和时间。第二种方法包括使用内部温度传感器和ADC看门狗,以在温度变化达到给定值时重新校准ADC。(5)优化PCB布局

  • 将模拟和数字布局分开
  • 隔离模拟和数字电路电源
  • 对供电和接地使用单独的PCB层

3、提高精度的软件方法(1)平均采样

  • 平均会降低速度但可以提高精度

(2)数字滤波(抑制DC值中的50/60 Hz噪声)

  • 设置适当的采样频率(这种情况下,从计时器触发十分有用)。
  • 对采样数据执行软件后处理(例如,对50 Hz噪声及其谐波抑制进行组合滤波)。

(3)AC测量的快速傅里叶变换(FFT)

  • 此方法可以显示被测信号中的谐波部分。
  • 由于使用了更强的计算能力,因此速度较慢。

(4)ADC校准:偏移、增益、位权重校准

  • ADC校准可减少内部ADC误差。但是,必须知道内部ADC结构。

(5)使CPU生成的内部噪声最小化应用设计必须确保

  • ADC转换期间来自微控制器的干扰尽可能小。
  • 使采样和转换期间的数字信号变化量最小化(数字静默)。

好了,本文就写到这里,希望能对大家有所帮助。


使用特权

评论回复
地板
tpgf| | 2022-10-8 14:47 | 只看该作者
一般大部分adc的自身精度都相差不是很多了

使用特权

评论回复
5
nawu| | 2022-10-8 15:01 | 只看该作者
在大部分情况下 仅仅使用芯片自带的滤波应该就够用了

使用特权

评论回复
6
aoyi| | 2022-10-8 15:33 | 只看该作者
VREF和VDDA引脚连接外部的这个去耦电容,一般手册上是不是已经给出了推荐的电容呢

使用特权

评论回复
7
zljiu| | 2022-10-8 15:42 | 只看该作者
非常重要的一点就是 要注意采样频率和被采样信号一定要匹配 不是说越快就越好的

使用特权

评论回复
8
gwsan| | 2022-10-8 15:54 | 只看该作者
如果吧vdda和vdd连在一起 有影响吗

使用特权

评论回复
9
tfqi| | 2022-10-8 16:04 | 只看该作者
jcky001 发表于 2022-9-23 14:58
2、使外部环境误差最小化
(1)参考电压/电源噪声最小化也就是在VREF和VDDA引脚连接外部去耦电容。(2)模 ...

一般最低什么配置的单片机可以运行快速傅里叶变换而不卡顿呢

使用特权

评论回复
10
chenqianqian| | 2022-10-9 08:12 | 只看该作者
模拟电源引脚可以加滤波器处理一下

使用特权

评论回复
11
tabmone| | 2022-10-9 20:35 | 只看该作者
AD采样都采用了一定的数学算法。

使用特权

评论回复
12
jkl21| | 2022-10-9 20:55 | 只看该作者
误差不全是由分辨率决定的               

使用特权

评论回复
13
ulystronglll| | 2022-10-9 21:21 | 只看该作者
电源纹波会导致地线抖动,从而影响ADC内部的比较器,影响采集。

使用特权

评论回复
14
uytyu| | 2022-10-9 21:52 | 只看该作者
采样精度误差极小,实际数据仍需要经过后期软件算法处理。

使用特权

评论回复
15
kmzuaz| | 2022-10-9 22:33 | 只看该作者
如果你的信号本身变化不大,但需要去掉一些毛刺,你可以在信号取出端并联一个小电容,吸收一下毛刺,改善信号质量。

使用特权

评论回复
16
uiint| | 2022-10-10 17:58 | 只看该作者
ADC采集的信号波动,怎么得到稳定的数据?

使用特权

评论回复
17
soodesyt| | 2022-10-10 20:07 | 只看该作者
ADC实际和理想传递曲线间的恒定差异。这个值是测得的将ADC输入短接至地而获得的数字输出。

使用特权

评论回复
18
fengm| | 2022-10-10 20:59 | 只看该作者
误差的数据怎么产生                    

使用特权

评论回复
19
xiaoyaozt| | 2022-10-10 21:57 | 只看该作者
如果基准不够稳定,那么采集出来的数据抖动就会比较大。

使用特权

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

本版积分规则

1519

主题

4601

帖子

6

粉丝