首页/文章/ 详情

ADC 采样不准?吃透这几个方法,精度直接拉满

1天前浏览47

前言 

GD32 MCU 嵌入了数个(个数取决于选型)SAR ADC,通过这个模块,能够灵活方便的将模拟信号转化为数字信号。ADC 的精度不仅受自身设计与工艺因素的影响,也会受到多种外部因素的影响,想要在实际应用中达到标称的精度,需要在软件配置端与外围电路的设计上给与足够的重视。本应用笔记给出了 SAR ADC 的基本工作原理、常见指标参数以及改善 ADC 采样精度的几个方向与手段,以获得 ADC 的最佳精度。

ADC 简介 

ADC 转换包括采样、保持、量化、编码四个步骤。采样阶段需要在规定的采样时间内将外部信 号的电压完整无误的采样到 ADC 的采样电容上,即在采样开关 SW 关闭的过程中,外部输入 信号通过外部的输入电阻 RAIN 和以及 ADC 采样电阻 RADC 对采样电容 CADC 充电。如图 1-1. ADC 采样基本框图所示,每次采样过程可以简化为外部信号通过输入阻抗以及采样电阻对采 样电容的充电(即采样电容零状态的单位阶跃响应)如图 1-2. ADC 采样阶段单位阶跃响应所 示。当采样时间结束后,采样误差表示为采样电容上的电压与信号源上的电压差值。在一次理 想的采样过程中,这个电压差值应该保持在 0.5LSB 以内(LSB 为 SAR ADC 的最小的电压分 辨率,0.5LSB 为 SAR ADC 的量化误差)。
量化阶段,将采样开关 SW 打开,然后由 ADC 时钟驱动,基于切换电容技术,将 ADC 采样电 容上的电压逐次与不同权重的参考电压做比较,逐位确定 N 位数据每一位上的值(N 为 ADC 的采样位数),然后编码输出数字码值。在量化过程中,参考电压 VREF+需要对切换电容网络进 行充电。VREF+基准需要在量化过程中保持稳定。 
图1-1. ADC采样基本框图
文章图片
图1-2. ADC采样阶段单位阶跃响应
文章图片

ADC 的性能指标 

评估 ADC 性能的好坏通常有两类指标,一种为静态性能参数,一种为动态性能参数。在这里 先介绍这几种参数的定义。 在静态性能参数中,主要有以下几种:  偏置误差(Offset error) ADC 的偏置误差定义为第一个码字转换(从 0x00 到 0x01)所对应的实际电压偏离理想电压位置的差值。如图 1-3. 偏置误差所示。 
图1-3. 偏置误差
文章图片
增益误差(Gain Error) 
ADC 的增益误差是指最后一次码字转换中实际转换与理想转换点电压之间(对于 12bit ADC 来说,即从 0xFFE 到 0xFFF)的差值。如图 1-4. 增益误差所示。
图1-4. 增益误差
文章图片
微分非线性误差(DNL) 
微分非线性误差定义为实际量化台阶宽度与对应于 1LSB 的理想电压值之间的差异。指每一个 码字宽度偏离理想的 1LSB 的程度。计算方法为每个码字模拟量的宽度减去一个 LSB 的值, 当码字宽度大于一个 LSB 宽度时,DNL 为正值,反之,DNL 为负值。如图 1-5. 微分非线性 误差所示。
图1-5. 微分非线性误差
文章图片
积分非线性误差(INL) 
积分非线性误差是指一个码字的实际输入点与传输函数线上理想输入之间的偏移。传输函数线 可以定义为第一次实际转换与最后一次实际转换所连接的线,即 ADC 的偏置和增益误差点之 间的一条直线。如图 1-6. 积分非线性误差所示。
图1-6. 积分非线性误差
文章图片
在精密信号链系统中,对于 ADC 来说,往往关注的主要是 ADC 的静态特性参数。然而对于采 样率达到 MSPS 的 SAR ADC 而言,有时也会用于采样频率较快的交流信号,因此对于交流输 入信号的真实复现也尤为重要,在这种场景中,我们更关注信号中的频域特性。一些动态特性 参数也需关注,主要包括下面几种,通常需要借助对采样信号的 FFT 变换来分析频域特性。 以下为 ADC 采样一组周期信号,并进行 FFT 分析后的典型频谱,如图 1-7. ADC 采样信号 FFT 频谱图所示。 
图1-7. ADC采样信号FFT频谱图
文章图片
信噪比(SNR) 
信噪比代表了频谱中信号的有效值和噪声的有效值之间的比值。然后取对数,再乘以 20,从而 得到 dB 形式的 SNR 的值。
SNDR(信纳比) 
信纳比代表了频谱中信号功率的有效值比上噪声加上所有谐波分量的功率之和。因此从定义上 看,信纳比是必然会小于信噪比的。 
ENOB(有效位数) 
在许多应用场合,惯于使用有效位数来描述 ADC 的性能。ENOB 通常使用信纳比来计算。如 下公式(1-1):
文章图片
THD(总谐波系数) 
总谐波系数表述基波信号的有效值与所有谐波的有效值之和的比值
ADC 采样过程中的理论分析 
针对 SAR ADC 工作时的模型,根据电路理论,计算系统零状态的单位阶跃响应,见下公式(1- 2):
文章图片
基于以上讨论,对于 SAR ADC,在设计其外围电路时首先考虑的是采样时间以及外部信号源内阻,如果忽略这些基本参数,则采样结果很难达到理想的精度。 
以上讨论的是 SAR ADC 最基本的工作情况。 
然而在实际情况中来,我们通常会在信号源与 ADC 接口之间添加一个 RC 滤波器,用来限制 到达 ADC 输入端的信号带外噪声,以获得更精准的采样结果。其等效图如下图所示,信号源 在进入 ADC 通道前先经过一个等效输入阻抗(将信号源阻抗与 RC 滤波器电阻作为 RAIN),再 经过一个对地电容 CIN,如下图所示:
图1-8. 添加外部电容CIN的ADC采样框图
文章图片
前面电路公式的前提是电路是从零状态开始响应,即 CADC 的初始电压为 0,但实际采样过程 中采样电容上的初始电压并不为 0,这个电压的取值与具体的 ADC 输入结构有关。在 SAR ADC 的充电再分配结构中,如果使用了预采样电路,则该电压的值可能等于 VREF+或者 GND。 在某些特殊情况下。为了降低电容上的电压应力,经特殊设计,该初始电压可以被设定为 1/2VREF+,在连续以及扫描模式采样时,该初始电压可能等于上一个采样通道的信号电压。 
通常而言,信号的输入阻抗 RAIN 会显著大于 ADC 的采样电阻 RADC,因此在 ADC 的采样开关 SW 闭合时,输入电容与采样电容上电压与时间的关系可如下图所示: 可以将开关 SW 闭合后的时间段简化分为两个部分,即 T1 时间段与 T2 时间段。
图1-9. 采样过程电压变化图
文章图片
设 α 为输入电容 CIN 与 CADC 的电容容量比值。
假定采样电容 CADC 初始电压为 CADC(0),在 T1 时间段内,输入电容的电荷通过 ADC 采样电阻 流向 ADC 采样电容,最终达到一个稳定值,此时,不再有能量转移。 
根据电荷重分配可得经过 T1 时间段后 CIN 与 CADC 平衡后的电压如公式(1-5)以及电压变化 量如公式(1-6):
文章图片
容易得出,输入电容与采样电容的比值越大,产生的电压降落(或电压尖峰,取决于采样开关 闭合前采样电容上的初始电压与外部输入电容上的电压)的幅值越小。 
在 T2 时间段内,输入电容与采样电容上的电压已经相等,电路实际上可等效为输入信号源通 过信号的输出阻抗对采样电容与输入电容并联的充电。 
由电路理论知识: 
在 T2 时间段内,采样电容上的电压如公式(1-7)所示:
文章图片
其中τ2为 T2 阶段的时间常数,为(RAIN+RADC)*(CADC+CIN)。 
在采样结束,我们同样需要采样电容上的实际电压与输入信号电压的差值小于 1/2LSB,带入 相关公式,可得如下结果公式(1-8):
文章图片
其中,VREF 为满量程电压。
从公式中我们能发现,当 VIN=VREF,CIN=0,VCADC=0 时,则输入阻抗的要求与前述简单情况 一致。在信号与 ADC 输入端中间添加 RC 滤波器后,对于采样时间和信号输入电阻的要求会更高。
提高采样精度的几种方法 
基于 SAR ADC 的几个工作流程,需要保证在每个流程都不引入导致误差的可能性,我们从以 下几个方面讨论提高 ADC 采样精度的措施。
MCU 供电电源 
在 GD32 MCU 不同的系列或者封装中,有将 VREF+引脚单独引出的,也有 VREF+引脚未单独引出,而是在芯片内部与 VDDA 连接在一起,详细信息请参考所选 MCU 的 datasheet。 
在 GD32 部分系列中,在内部有一个精准的内部参考源(典型电压 2.5V),可以用作 ADC 工作时的参考电压,该内部参考电压可以连接到 VREF 引脚上,但需要留意的是,该内部参考源带载能力不强,谨慎选择所带负载大小。
由于在量化编码的过程中,VREF+需要对转化电容网络充电,在量化过程中,也会有对基准源抽 取电荷的动作,因此,如果没有其他的去耦措施,一个稳健且干净的 VREF+基准会显著影响 ADC 量化的精度,我们建议对于这两个电源采用纹波噪声系数更小的 LDO 来供电。对于 VREF+基准 源,我们建议靠近引脚并联一个 uF 级以及一个 nF 级的去耦电容,一方面可以滤除来自外部低频与高频的电源噪声,另一方面,也可使 ADC 在量化编码过程的基准源更加稳定。
在 layout 过程中,相关电源线的走线上,我们推荐加宽电源迹线,以减小迹线的 ESR,在量化阶段,减小转化电容网络瞬间充电对输入基准源的影响。 
相同的情况,在一些场景中,VDD 与 VREF+来自同一颗 LDO,然后在 LDO 与 VREF+之间串联一 颗磁珠,如图 2-1. VREF+串联磁珠图所示,以屏蔽外部电源对于 VREF+的影响。这里需要注意选择磁珠时,需要关注磁珠的 RDC(直流电阻)参数,应当优先选取 RDC 小的型号,以减小在 磁珠上造成的直流压降。直流电阻小,通常磁珠的高频处的阻抗也会小,因此这也是一个抗干扰与采样精度的权衡过程。另外,通常不建议在此处将磁珠换成电感,由于 VREF+在量化编码过程中,会存在高频的脉冲电流,如果靠近 VREF+引脚的去耦电容设置不合适,则比较容易引起 VREF+电压的震荡,影响 ADC 的精度。
图2-1. VREF+串联磁珠图
文章图片
引脚电容设置
系统的硬件解耦对于采样精度提高尤为重要,我们推荐如图 2-2. 引脚电容设置图所示解耦电容的配置方式,在 MCU 端,对于模拟电源引脚,建议就近放置一个 1uF 与一个 10nF 的陶瓷 电容(ESR 较低)。对于其他的数字电源 VDD 引脚,就近放置一个 100nF 的陶瓷电容。对于 MCU 接地引脚,建议将模拟地与数字地采用 0 欧姆电阻或者磁珠连接,以屏蔽数字地对于模拟地的干扰。
图2-2. 引脚电容设置图
文章图片

ADC 参考电压设置的影响

ADC 输入信号幅值范围为 VSSA 到 VREF+,对于部分小封装 MCU,VREF+与 VDDA 在芯片内部连 接在一起。VREF+电压的设置需严格参考 datasheet 手册中的规定范围,采样信号的幅值不应超出 VREF+的幅值,对于无 VREF+引脚的 MCU,采样信号的幅值不应超出 VDDA 的幅值,否则可能会导致模拟电源漏电,严重影响 ADC 性能。 
此外,我们可以思考下如何根据 ADC 输入信号幅值范围设置合理的 VREF+,或者根据配置完毕的 VREF+设置合理的 ADC 信号输入范围。 
举个例子: 
当输入信号电压范围为 0-2.6 V 时,若设置 VREF+为 3.6 V,采样信号进入 GD32 MCU 12bit ADC,在忽略采样误差的前提下,可以得出采样结果数字量范围为 0-2958,采样结果能够分 辨出 0.9 mV 的电压,然而对于 2759-4095 之间的采样码值均未出现;若改版硬件,使得 VREF+ 为 2.6 V,此时,采样结果数字量范围为 0-4095,ADC 能够分辨出的最小电压为 0.6 mV。显 然后者均有更高的采样精度。 
因此在项目的硬件设计阶段,如果对于采样精度有要求的前提下,我们需要评估下 ADC 输入 信号的电压范围,配置输入信号电压的最大值略小于 VREF+,以提高采样精度。
IO 口引入超范围电压的影响 
任何模拟引脚(或相邻的数字输入引脚)上如果存在小于 GND 的负电压时(不大于-200 mV 的负电压可以被认为是安全的),会引入从该 IO 口流出的负电流。这种情况下会显著影响 ADC 的采样结果,为了更精确的采样结果,需要确保相关 IO 口上在 ADC 工作期间不要有负电压的存在。 
ADC 采样的 IO 口在非采样时间也不要引入高于 VDDA 的电压,可能会造成对 ADC 内核的漏电,引起采样精度的变差。
信号源输入电阻的影响 
从前文理论分析可知,SAR ADC 采样对于信号的输入电阻是有明确要求的,对于一个具体的 ADC,其采样电阻 RADC 与采样电容 CADC 已经不可更改,当 ADC 的采样时钟,采样周期等可 配置参数配置完毕时,则外部信号的输入阻抗则是有一个最大值的要求,即公式(1-4):
文章图片
配置的不同的采样周期所对应的最大输入电阻,在对应 MCU 型号 datasheet 中会给出,用户 也可根据公式与实际情况自行计算。 
图 2-3. CIN 电压波形图为 GD32 一款 MCU 在开启 ADC 采样时,在输入电容 CIN 上采到的电 压信号波形。
可以看出,在采样开关 SW 闭合后,电压会显著掉下来,但是只要采样时间和信号输入阻抗满 足我们手册要求,那么在采样时间得到满足后电压就可以恢复到与实际信号电压相差 0.5LSB 以内。 
图2-3. CIN电压波形图
文章图片
接下来我们再考虑一种极端情况,当信号源的输入电阻要求已经明显不满足手册要求了,我们可以采用什么方法? 
按如下举例: 
在实际使用中,会经常有采样锂电池电压的需求。由于锂电池的电压往往会高于 MCU ADC 的 采样电压(ADC 的采样范围为 VSSA 到 VREF+),因此用户会经常采用两个电阻分压,然后将分 压结果送进 ADC 通道进行采样。对于锂电池供电应用,客户对于功耗往往有严苛要求,因此, 如图 2-4. 锂电池电压采样电路所示的这两个分压电阻往往会被设置的很大,以减小无谓功耗。 
图2-4. 锂电池电压采样电路
文章图片
上图中,假设锂电池电压为 24V,R2 = 1M 欧姆,R1 = 9M 欧姆,则进入 ADC 通道的电压为 2.4V,在 ADC 的采样范围之内,无谓功耗取电池电压除以 R1 与 R2 的和,此时浪费的额外无谓功耗仅为 2.4uA,看起来很美好,但我们来计算一下这个分压电路的输出阻抗,该电路的输 出阻抗为 R1 与 R2 电阻的并联,结果为 0.9M 欧姆。参考下 GD32F150x 芯片手册关于 RAIN 与采样周期的表格,如下: 
表 2-1. fADC=14MHz 采样周期与外部输入阻抗关系
文章图片
显然在 ADC 采样时钟为 14MHz 的情形下,当采样周期设到最大值 239.5 个周期时,允许的 最大输入阻抗为 219.9k 欧姆。0.9M 欧姆远大于 219.9k,因此,由于采样时间无法配置为更 大,此时 MCU 的 ADC 采样已无法做到精确采样了。 
此时,我们有几种方法来改善此种情况下的 ADC 采样:
如果电路仍然可以修改的情况下,建议添加一个运放跟随电路,实现阻抗匹配; 
如果对于采样率没有要求的情况下,我们可以降低 ADC 的采样时钟,变相提高采样时间来使 得采样电容充电到正确电位; 
在功耗要求可以放宽时,我们可以同比例缩小 R1,R2 这两个电阻,比如 R1 = 900k,R2 = 100k,此时该分压电路的输出阻抗变为 90k,配置合适的采样周期,已经能够满足 ADC 的阻 抗要求;
如果上述更改由于种种条件限制,已不能实现。当外部电路的输出阻抗已经超过 ADC 电路的 最大输入阻抗要求了,我们思考另外一种方式来保证 ADC 采样精度的情况下顺利完成 ADC 采样。 
由前述理论定量分析可得,如果在 ADC 输入通道上并联一个对地的输入电容 CIN,则在 ADC 采样开关闭合后的 TI 时间段内,采样电容上的电荷会通过采样电阻传递到外部输入电容上, 引起输入电容上的电压降落或者尖峰(取决于采样电容上的电压)。这个电压降落或者是尖峰 如果小于量化误差即 0.5LSB,则不会影响 ADC 采样的精度。
文章图片
这里我们容易看到,在这种情况下,ADC 的采样频率需要尤为注意,因为当输入电容上发生电 压掉落或者电压毛刺后,需要通过输入电阻 RIN 将这些电荷补充上(或者释放掉,取决于采样 电容上电压与输入电压大小),因此我们需要保证每两次采样之间需要一定的延时,否则输入电容会由于不断给采样电容充电导致输入电容上电压被不断拉低而超出 0.5LSB 误差的精度要 求。如图 2-5. 采样间隔时间不足理论参考图所示:
图2-5. 采样间隔时间不足理论参考图
文章图片
如图 2-6. 采样间隔时间不足实际参考图所示,在一个实际的采样过程,由于输入阻抗过大, 且每两次采样之间预留延时不够长,造成 CIN 电压被不断拉低。
图2-6. 采样间隔时间不足实际参考图
文章图片
因此在每两次采样中间加上必要的延时是必要的。接下来我们讨论这个延时取多大值合适。 
根据前文理论知识,这个间隔时间包括给输入电容对采样电容充电时间 T1 加上外部输入信号 对输入电容加上采样电容之和充电的时间 T2,在外部输入阻抗比较大时,T1 阶段的时间常数 是远小于 T2 阶段的时间常数的,因此 T2>>T1,这里我们仅考虑 T2 时间。
对于 T2 时间段,由公式(1-7)计算当采样电容电压与输入信号 VIN 差 0.5LSB 时的时间为 T2,解如下方程,可得此时 T2 的表达式:
文章图片
因此我们有结论:对于 SAR ADC 在采样时间内,采样电容上的电压必须被充分充放电,其被 充电的电压值与外部输入电压之间的差值不应超过 0.5LSB,否则无论后级 ADC 性能如何卓 越,都无法真实反映信号的幅值。对于极大输入阻抗,我们添加了一颗电容来限制单次采样时 的电压跌落或上升毛刺的幅值,但是此种情形下,需要在每两次采样之间添加足够的时延给内 部采样电容充电,以保证采样开关关闭时,采样电容上的电压与外部信号的电压差在量化误差 范围一列。 
特别的,当 ADC 工作在连续采样或者扫描采样时,如果由于输入阻抗过大,且未被及时修正 时,输入阻抗过大通道的采样结果会受前一个采样通道信号的影响,通过增大采样时间以满足 输入阻抗的影响会显著改善这个现象。
I/O 引脚串扰的影响 
由于引脚甚至包括芯片内部 bonding 线之间的电容耦合,I/O 之间的串扰会对 ADC 的采样精 度产生显著影响,尤其是 ADC 当前的模拟采样通道邻近有持续数字 I/O 的电平翻转动作(典 型情况如 PWM 输出)。如图 2-7. 模拟与数字 I/O 串扰结构图所示。 
图2-7. 模拟与数字I/O串扰结构图
文章图片
如图 2-8. 模拟与数字 I/O 串扰波形图,是在实际情景中,ADC 的采样通道紧邻在 PWM 输出 时的信号波形情况,在 PWM 发生电平翻转的瞬间,在相邻的采样通道上会造成信号的波动, 如果此时 ADC 完成了一次采样,则可能会造成采样结果出现较大的误差。 
图2-8. 模拟与数字I/O串扰波形图
文章图片
有几种实践方法可以尝试来减弱 IO 之间串扰对 ADC 采样的影响,首先,在引脚规划上,就需 要提前规划将那些需要持续翻转的数字 I/O 在物理位置上远离 ADC 采样通道;如果由于资源 限制,频繁翻转的数字 I/O 无法远离模拟采样口,我们可以在后期 layout 上采取一些措施来减 弱影响,比如我们可以通过在数字 I/O 与模拟通道之间加上一定面积的 GND 来隔离,如图 2-9. 模拟与数字 I/O 之间添加地屏蔽所示,当然,由于包地屏蔽无法覆盖芯片内部,bonding 线之 间的串扰仍会继续存在。此外,减慢数字信号的边沿也会减弱串扰的影响,如对数字信号添加 电容值适当的电容,减慢 MCU 数字 IO 口的驱动速度,也能显著减慢这个数字信号边沿。软 件层面,我们同样有一些尝试,比如在数字 I/O 口不翻转的时候进行一次 ADC 转换,当然前提是应用允许这么做。
图2-9. 模拟与数字I/O之间添加地屏蔽
文章图片
软件提高 ADC 的采样精度 
在 GD32 部分系列 MCU 中具有 ADC 的片上硬件过采样功能,硬件过采样单元执行数据预处 理以减轻 CPU 负担。它能够处理多个转换,并将多个转换的结果取平均,借此以提高 ADC 采 样结果的精度。采样结果值可根据如下公式(2-2)计算得出,其中 N 和 M 的值可以被调整, 过采样单元可以通过设置 ADC_OVSAMPCTL 寄存器的 OVSEN 位来使能,它是以降低数据 输出率为代价,换取较高的数据分辨率。Dout(n)是指 ADC 输出的第 n 个数字信号:
文章图片
片上硬件过采样单元执行两个功能:求和和位右移。过采样率 N 是在 ADC_OVSAMPCTL 寄 存器的 OVSR[2:0]位定义,它的取值范围为 2x 到 256x。除法系数 M 定义一个多达 8 位的右 移,它通过 ADC_OVSAMPCTL 寄存器 OVSS[3:0]位进行配置。
文章图片
文章图片
和标准的转换模式相比,过采样模式的转换时间不会改变:在整个过采样序列的过程中采样时 间仍然保持相等。每 N 个转换就会产生一个新的数据,一个等价的延迟为 N x tADC = N x (tSMPL + tCONV)。
对于不具备片上硬件过采样单元的 MCU,软件算法上亦可采用常用的一些滤波算法来降低输 入信号采样值的波动。例如最常见的平均算法,滤波过程中需要占用CPU的算力与一定的RAM 空间。这种平均算法适用于输入信号变化慢,偶有脉冲型干扰的情形。如果信号变化频率已经 大于这个平均滤波算法的执行频率,则会丢失信号变化的细节,平均后的采样结果不能重现信 号的所有信息。



说明:本文来源网络;文中观点仅供分享交流,不代表本公 众号立场,转载请注明出处,如涉及版权等问题,请您告知,我们将及时处理。


来源:电力电子技术与新能源
非线性燃料电池电源电路电磁兼容汽车电力电子MATLAB新能源芯片Simulink理论电机控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-11-06
最近编辑:1天前
获赞 174粉丝 339文章 2395课程 0
点赞
收藏
作者推荐

硬件工程师必会系列_村田电容基本知识

硬件工程师必会系列_村田电容基本知识 说明:本文来源网络;文中观点仅供分享交流,不代表本公 众号立场,转载请注明出处,如涉及版权等问题,请您告知,我们将及时处理。来源:电力电子技术与新能源

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈