ADC应用及设计误区(1)

本文深入探讨了ADC在应用过程中的一些常见误区,包括采样率的影响因素,如输入信号频率和通信接口的限制;有效精度的理解,涉及ADC芯片自身和外部电路对精度的影响;以及关于校准的重要性,如何通过校准提高ADC的精度。内容覆盖了ADC在硬件工程和嵌入式硬件领域的关键问题。

        ADC(analog-to-digital converter)在各种电子电路中是必不可少的器件,连接模拟信号与数字信号的桥梁。

 

        没有 ADC,要将模拟信号滤波、求平均等简单功能还可以使用分立 的运放或者专用 的芯片来实现,但是复杂的 FFT 频域分析除了借用仪表将无法进行;而由 ADC 将模拟信号数字化,就可以通过算法实现各种数字滤波、FFT 分析、复杂运算,实现对外界输入信号的多样化分析。

        本文主要讲一些 低速ADC在应用过程中的常见误区。

1. 关于采样率

        采样率顾名思义,就是单位时间内对目标信号的采样频次。图 1 是 ADC 内部简化框图,多通道 ADC 一般由 MUX 选通开关,采样保持电路(SH),量化单元。从 ADC 的选通开关选中某一路通道,到信号经过采样保持再由量化单元输出一次 ADC 的结果即为一次完成采样。



图 1 ADC 内部结构

        在 ADC 芯片内部采样率指 ADC 内核量化单元在单位时间内对输入信号的转换次数;而在整个电路系统中,则是指单位时间内主控 MCU 或 DSP、FPGA 从 ADC 获取采样结果的频次。

1.1 输入信号频率对采样率影响

        谈到 ADC 芯片的采样率,硬件设计人员往往首先考虑的是要满足香农采样定理,输入信号频率 fin 时,ADC 采样率满足 fsample≥2*fin,而在工程应用设计中,一般使用5~10倍fin。

        输入信号一般为多通道,同时需要考虑 ADC 的通道数。选取 n 路 ADC,则需要 ADC 的采样率至少大于 5~10*n*fin。注意,系统中经常遇到多路 ADC 中,只有部分通道需要快速采样,可以考虑使用单通道采样模式,即需要快速采样时不切换内部的开关,保证 ADC 核只采样当前通道,如此可以降低 ADC core 的采样率要求。

1.2 通信接口对采样率的影响

        系统层面对 ADC 结果获取的频率 f_DATA 才是系统真正看到的采样率;ADC 采样结果生成后,需要通过一定的通信总线传输给主控;如果实时性要求非常高,可以使用并行总线,一次性将所有的结果传输完,这种 ADC 其自身的采样率在满足 5~10*n*fin 的情况下,不需要再进一步提高;当使用 SPI 或者 I2C 总线传输时,需要将总线传输时间考虑进来。

        以 I2bit I2C 接口的 ADC 为例,一般要从 I2C 总线的 ADC 获取 12bit ADC 结果,至少需要 4 帧数据:器件地址+读指令(第 1 帧),寄存器地址(第 2 帧),高 4bit ADC 结果(第 3 帧),低 8bit AD 转换结果(第 4 帧);如果 I2C 速率为 1MHz,每帧数据 8bit 加 3 个 ACK,1 个重新启动信号,至少需要 36 个时钟周期才能取数据;即主控从器件获取数据的最高频率不会超过 27.7kHz(1MHz/36)。

2. 关于有效精度

2.1 ADC 精度理解

        谈到 ADC 的精度,有些工程师容易将 ADC 精度与分辨率混为一谈,分辨率是指 ADC 1 个 LSB(最小有效位,least significa-nt Bit)代表的电压,比如 12bit ADC,支持最大的输入范围是 2.5V,则其分辨率是 0.61mV (2.5V/4095)。而精度应该是指给任意一个电压,上报电压与真实电压的符合度,只有理想 ADC,分辨率与精度可以等效。

        在系统中,ADC 上报精度与 ADC 本身的精度、前级信号调整电路都强相关。后面几节分别从 ADC 芯片本身和外置电路上介绍 ADC 上报精度的影响因素。

2.2 芯片对ADC上精度的影响

        理想 ADC 不考虑任何自身偏差的情况下,输入电压与 ADC 上报值的传递函数如下:

  Vin = \frac{ADCODE}{2^{n}-1}\cdot Vref                                              (1)

        式中 Vin 表示 ADC 输入的模拟电压,

        Vref 表示 ADC 的参考电压,

        n 代表 ADC 的位数。

        真实的 ADC 存在的 offset error, gain error, INL 几项偏差,在不做系统校准的情况下,这几项误差合在一起最终形成的偏差通常称为 TUE(Total Unadjusted Error),接下来讲述几种误差,以及 TUE 的参考计算方式。

        Offset Error(OE):ADC 输入电路也有工作范围,通道 offset error 是指实际传递函数与理想传递函数之间的固定偏差,如下图 2 所示。一般可以通过将 ADC 输入管脚短接到 GND,测试出 ADC 上报 code 得到。



图 2 ADC Offset Error vs. 输入电压

        Gain Error(GE):指真实上报传递函数与理想曲线斜率的差异,如图 3 所示。一般是通过 ADC 测试 ADC 上报全 1 时,输入电压与 ADC 最大输入电压的差值获得。





图 3 ADC Gain Error vs. 输入电压

        INL: 整个 ADC 输入范围内,真实上报值与理论值最大的偏差,如图 4 所示。





图 4 ADC INL vs. 输入电压

        由于以上 OE, GE 和 INL 并不一定总在同一位置最大,因此直接将三个值加起来可能会得到一个比较离谱的最坏值,三者在一定程度上来说是相对独立的,因此在考虑三者对 TUE 影响时,各 IC 厂家一般采用三者的矢量和作为更为合理的 TUE,即:

 TUE=\sqrt{OE^{2}+GE^{2}+INL^{2}}                                               (2)

        需要注意的是,在计算是需要将三者归一到同一单位,一般较多的是归一到 LSB,OE 和 GE 如果给的是电压 V,可以按照理论的 ADC 上报公式转换为 LSB。

        上述计算 TUE 的公式仅考虑了 OE,GE 的理想情况,实际 ADC 的 OE 和 GE 都会随着温度变化而变化,较为完善的 ADC 规格书中会有 OE 和 GE 的温度漂移系数,单位可能是 LSB/℃或者ppm/℃,在计算真实TUE时需要将温漂系数也考虑起来,只是将上式中OE和GE进行修正:

OE(T_1)=OE(T_0)*[1+(T_1 - T_0)*Tcof__OE]                                (3)

GE(T_1)=GE(T_0)*[1+(T_1 - T_0)*Tcof__GE]                                (4)

        上述公式中 T0 代表规格书标示测试 OE 和 GE 规格时的温度,通常标注的都是 25℃,Tcof_OE和Tcof_GE指温漂系数。

2.3 外部电路对 ADC 上报精度的影响

        许多设计人员了解的是整体系统对报精度的要求,但是往往错误的将系统上报精度直接等效到 ADC 自身的精度。如果采样信号直接送到 ADC 管脚,那么可以近似这么认为,但是真实情况往往不是这样。以下是常见的一个电流采样电路。



图 5 光电流采样电路

        上述采样电路中Rin是电流采样电阻将电流转为电压,运放 U1 通过 R1~R4将Rin上的电压放大,再经过 Rfilter、Cfilter 低通滤波后送到 ADC,图中R1=R2,R3=R4。

        运放 U1 的输出电压理论值:V_U1=Iin*Rin/R1*R3,实际上 V_U1 存在以下几个偏差,采样电阻Rin的偏差,运放 offset 电压的偏差 U1_os, 运放偏置电流 Ibias 引入的偏差以及运放输入电阻R1,R2,反馈电阻R3的精度;而真正进入 ADC 的电压,还需要分两种情况讨论,在采样电流是近似直流量,可以认为运放输出电压就是 ADC 看到的电压,将外部电路的偏差与 ADC 本身的偏差做矢量和计算即可;另一种情况下,如果采样电流是有一定频率的信号,则 Rfilter,Cfilter组成的低通滤波对运放的输出信号也会有一定衰减,需要将这部分衰减也考虑在内,如此得到的才是最终系统可获得的真实上报值。

3. 关于校准

上节讲了真实 ADC 的误差来源,为了保证 AD 的精度,可以通过一些校准手段来将 TUE 降低。

ADC 芯片本身可以设计时先预留 OTP 或者 efuse,用于记录出厂标准值,具体校准的过程就是在出厂的 ATE 测试机台上,特定温度下给定两个标准的电压 V0, V1,记录给定电压对应的上报值 VAD0, VAD1;用户在系统中使用 ADC 时,可以从 OTP 或者 Efuse 中回读 ATE 机台上 2 个测试点的上报值,计算 k, b 系数; 新的公式如下:

  Vin = \frac{V0-V1}{VAD0-VAD1}\cdot VAD+\frac{VAD0\cdot V1-VAD1\cdot V0}{VAD0-VAD1}             (5)

在实际应用中,仅仅校准ADC的偏差并不能得到真正准确的上报,如2.3节所讲,外部电路的偏差对AD上报也会有影响,而且往往外部电路的精度影响要远大于ADC本身的偏差;外部电路中的电阻1%的偏差,运放Vos、RC滤波电路引入的偏差不计算的情况下就至少会存在1%的偏差;为了获得更好的精度,系统也可以参考芯片出厂校准的方式,给定多个准确的值,记录对应的AD上报,最终做曲线拟合。

参考文档

[1] ADC Accuracy Part 2: Total unadjusted error explained: ADC Accuracy Part 2: Total unadjusted error explained - Precision Hub - Archives - TI E2E support forums

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值