0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ADC的各种指标如何理解,如何提高ADC转换精度

电子设计 来源:电子设计 作者:电子设计 2020-12-24 13:55 次阅读

在此我们简要总结一下ADC的各种指标如何理解,以及从硬件到软件都有哪些可以采用的手段来提高ADC的转换精度。

1.ADC指标

除了分辨率,速度,输入范围这些基本指标外,衡量一个ADC好坏通常会用到以下这些指标:失调误差,增益误差,微分非线性,积分非线性,信噪比,信纳比,有效位数,总谐波失真。让我们以下图为例来看一下这些指标的意义。

LSB

参数中经常用LSB作为单位,比如说差分非线性为2 LSB。这究竟是多大一个值呢?为了简单起见,我们以一个3bit分辨率,满量程为5V的ADC为例。1个LSB对应的电压大小为5V/7=714mV。如果是8bit分辨率,那么1个LSB对应5/255=19mV。

图中横轴为输入电压Vin增长方向,纵轴为数字输出。理想情况下输入电压每增长1LSB(714mV),那么输出会向上跳变一次,对应虚线L1所在转换曲线。但实际电路往往会引入偏差,转换曲线往往如 L2 所对应曲线。

失调误差(Offset Error)

电压从0开始增大时,引起输出第一次跳变的电压值,与理论上应该引起第一次跳变的电压值(0.5 LSB)的差值。衡量小电压时的转换精度。如图中,理论上应该在0.5 LSB处跳变,实际电压增大到1 LSB时才跳变,所以Offset Error是 1–0.5 = 0.5 LSB。

增益误差(Offset Error)

可以理解为实际转换曲线偏离理想曲线的程度。用最接近满量程时跳变点电压值和理论跳变点电压值的差表示。

差分非线性 DNL(Differential Non-Linearity)

理论上每增加或减少1 LSB 的电压,都会引起输出对应的一次跳变。但实际情况可能如图中a,b处所示,电压的步距大于或小于1个LSB的理论步距。

a 处 DNL = 1.5 – 1 = 0.5 LSB;

b 处 DNL = 0.5 – 1 = -0.5 LSB;

积分非线性 INL(Integral Non Linearity)

差分非线性累积起来造成的对实际转换曲线的最大偏离就是INL。如图中所示,需要注意的是INL不能表征对理想转换曲线的偏离程度。

总不可调整误差 TUE(Total Unadjusted Error)

实际转换曲线与理想转换曲线之间最大的偏离。在最糟糕的一点,我们通过ADC得到的电压,与实际电压的差值。通俗讲就是最不准的一点差多少。

思考一下,如果 DNL 和 INL 都非常好,那么是不是说明 TUE 就非常好?

对,还真不一定。即使线性度非常好,如果增益误差大,还是会导致最终结果大的偏差。

信噪比 SNR(Signal-to-Noise Ratio)

有用信号与噪声的能量比。我们总是期望信噪比越大越好。对于一个 N-Bit 分辨率的ADC来说,如果输入是一个满量程的正弦信号,在只考虑量化噪声的情况下,可以推导出一个有用的公式:

SNR = 6.02N + 1.76dB

推导过程见参考文档ADI: MT-001

此公式直观的表明了ADC分辨率和信噪比之间的量化关系。

信纳比 SINAD (Signal-to-Noise-and-Distortion Ratio)

实际ADC是无法达到理想状态的,它的输出除了会引入噪声,还会引入输入信号的谐波。SINAD是有用信号能量,与谐波(Distortion)加噪声(Noise)能量的比,它更能体现现实世界中的ADC性能。

SINAD = 20log(S/(N+D))

*而SNR = 20log(S/N)

有效位数 ENOB(Effective Number of Bits)

体现ADC实际性能相当于多少位。可以从SINAD推出:

ENOB = (SINAD–1.76)/6.02

*和理想情况下的位数对应:NOB =(SNR - 1.76)/6.02。

总谐波失真 THD(Total Harmonic Distortion)

有用信号能量与谐波能量的比。

THD = 20log(S/D)

2.如何提高转换精度

模拟电源(VDDA)和电压参考(VREF)

有的单片机ADC模块会引出单独的电源引脚和电压参考引脚,最好用LDO给这些引脚供电,或者用磁珠和滤波电容把这部分电源从数字部分隔离出来。

输入信号的输出阻抗

下图是ADC采样简化等效电路。ADC采样和保持电路的等效输入电阻电容Radc,和Cadc,手册中都会给出。在采样期间,开关SW会接通外部的信号输入电路,给采样电容Cadc充电至和输入信号相等(接近),之后SW断开,ADC对采样电容上的电压进行转换。如果采样时间过短,或者输入信号的输出阻抗过大,将导致采样电压不准。在信号源输出阻抗过高时,可以考虑增加一级运放。

高频串扰

如果与模拟输入引脚靠近的IO上有高频翻转的信号,或者PCB上有与输入信号长距离的平行走线,串扰将干扰输入信号。应避免ADC引脚临近信号高频翻转。在ADC输入布线和临近的走线之间用地线隔离开也可以避免ADC精度下降。

Wait,Stop模式

如果ADC在Wait和Stop模式下还可以工作,在此种模式下可以最大限度的降低MCU电源的波动,提高ADC的转换精度。

过采样(Oversampling)

如果采样频率为fs,那么对于fs/2以内的信号频率既可以获得完整信息。过采样是用远高于所需的采样频率去采样,这样噪声就会均摊在整个采样频带内。我们用数字滤波器可以滤除有用信号频带之外的噪声,从而使频带内的信噪比提高,获得更高的分辨率。对多次转换结果进行平均也可以提高结果的精度。

芯片内部校正

很多单片机内部都有校正机制(Calibration),每次上电后执行一次Calibration,可以以提高ADC的精度。

温度的影响

ADC受温度影响比较大,特别是失调误差和增益误差。如果芯片工作温度范围很宽,可以在不同的温度下预先测量,按温度做出查找表以在实际工作时做校正。

混入白噪声

这种方法对提高直流信号的分辨率很有用。如果输入信号接近直流而且很稳定,那么输出就不会产生跳变,比如输出一直是0x15A,我们无法确认输入电平是更接近0x159,还是更接近0x15B。那么我们可以人为地把白噪声混入信号,使信号产生小的波动从而输出产生跳变,然后再通过数学平均得出一个精度更高的数值。实际操作中可以用GPIO产生一个方波然后通过阻容耦合进输入信号引脚。

审核编辑:符乾江


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6004

    文章

    44008

    浏览量

    621632
  • adc
    adc
    +关注

    关注

    95

    文章

    5657

    浏览量

    539721
收藏 人收藏

    评论

    相关推荐

    ADC都有哪些分类

    逐次比较输入信号与参考电压的大小,逐步逼近输入信号的数值,并将其转换为数字输出。SAR ADC具有高速、低功耗和高精度的特点,适用于各种应用场合。 闪存型
    的头像 发表于 02-16 16:24 3026次阅读
    <b class='flag-5'>ADC</b>都有哪些分类

    adc的参考电压与转换结果的精度有何关系

    的定义、影响精度的因素以及提高精度的方法。 首先,让我们回顾一下ADC的基本原理。ADC是一种电子设备,用于将模拟信号转换为数字信号。它是现
    的头像 发表于 12-28 10:42 1102次阅读

    详述ADC精度和分辨率的差异

    在与使用模数转换器(ADC)的系统设计人员进行交谈时,我最常听到的一个问题就是: “你的16位ADC精度也是16位的吗?” 这个问题的答案取决于对分辨率和
    发表于 12-20 06:55

    已知INL和DNL,怎么计算ADC转换精度呢?

    请教: 已知INL和DNL,怎么计算ADC转换精度呢?
    发表于 12-06 06:16

    如何提高AT32的ADC转换精度

    如何提高AT32的ADC转换精度设计者在使用AT32芯片ADC模块时,提供注意事项和软、硬件的设计建议。
    发表于 10-24 07:36

    如何在STM32F10xxx上得到最佳的ADC精度

    STM32F10xxx微控制器产品系列,内置最多3个先进的12位模拟/数字转换模块(ADC),转换时间最快为1μs,这个ADC模块还具有自校验功能,能够在环境条件变化时
    发表于 10-10 06:26

    网上说使用ADC的时候,adc位数不够可以用软件算法提高吗?

    网上说使用ADC的时候,adc位数不够可以用软件算法提高。 这种多次平均滤波的办法,可以提高几位呢?我用单片机自带的ADC,还差两位才能达到
    发表于 09-27 07:47

    Σ-ΔADC的设计指标有哪些?

    Σ-ΔADC的设计指标有哪些?  Σ-ΔADC(Sigma-Delta ADC)是一种高精度、高分辨率的模数
    的头像 发表于 09-17 16:44 494次阅读

    adc模数转换器的作用

    等领域。ADC的作用是将模拟信号转换成数字信号,数字信号可以更好地被储存和处理,进一步实现信号的分析与处理,提高信息的精度和可靠性。本文将详细介绍A
    的头像 发表于 09-02 10:13 1523次阅读

    如何在STM32系列器件获取最佳的ADC精度

    STM32微控制器内置最多四个高级12位ADC(取决于器件)。提供自校准功能,用于提高环境条件变化时的ADC精度。在涉及模数转换的应用中,
    发表于 08-31 10:47 0次下载

    影响单片机ADC转换精度的主要误差

    本篇文章列出了影响模数转换精度的主要误差。这些类型的误差存在于所有模数转换器中,转换质量将取决于它们的消除情况。STM32微控制器数据手册的ADC
    发表于 08-04 10:35 1661次阅读
    影响单片机<b class='flag-5'>ADC</b><b class='flag-5'>转换</b><b class='flag-5'>精度</b>的主要误差

    ADC的内部原理是什么?如何获得ADC最佳精度呢?

    STM32微控制器中内置的ADC使用SAR(逐次逼近)原则,分多步执行转换转换步骤数等 于ADC转换器中的位数。每个步骤均由
    的头像 发表于 06-21 17:17 1003次阅读
    <b class='flag-5'>ADC</b>的内部原理是什么?如何获得<b class='flag-5'>ADC</b>最佳<b class='flag-5'>精度</b>呢?

    常被忽略的九项ADC技术指标

    模数转换器(ADC)的种类繁多,我们总是很难弄清哪种ADC才最适合既定应用。数据手册往往会使问题变得更加复杂,许多技术指标都以无法预料的方式影响着性能。 选择
    的头像 发表于 06-17 09:54 569次阅读

    浅谈ADC的分辨率与精度

    为确保系统满足所需的精度规范,透彻了解不同的误差源非常重要。决定信号链精度的最关键要素之一是A/D 转换器 (ADC),这是本文的重点。请记住,AD
    发表于 05-22 11:39 2331次阅读
    浅谈<b class='flag-5'>ADC</b>的分辨率与<b class='flag-5'>精度</b>

    谈谈ADC的分辨率与精度

    为确保系统满足所需的精度规范,透彻了解不同的误差源非常重要。决定信号链精度的最关键要素之一是A/D 转换器 (ADC),这是本文的重点。请记住,AD
    发表于 05-15 14:06 4938次阅读
    谈谈<b class='flag-5'>ADC</b>的分辨率与<b class='flag-5'>精度</b>