好问题!MCU 内置的 ADC 与专用 ADC 芯片哪个好?

在以单片机、处理器或数据采集系统处理现实世界信息时,现实中的物理量大多是连续变化的模拟量,例如温度、压力、声音、电压、电流、位移、心电信号等;而计算机系统只能直接处理离散的数字量。因此,必须使用一种电路把模拟信号转换为数字信号,这种电路就是 A-D 转换器,也常称为 ADC。
A-D 中的 A 表示 Analog,即模拟;D 表示 Digital,即数字;Converter 表示转换器。从系统设计角度看,ADC 大致可以分为两类:
第一类是 A-D 转换器专用 IC。这类器件以模拟性能为核心目标,通常用于对精度、噪声、线性度、采样速度或通道特性有明确要求的场合。
第二类是 单片机内置 A-D 转换器。这类 ADC 是 MCU 的片上外设之一,优势是成本低、体积小、系统集成度高,适合精度和速度要求不太严苛的应用。
理解这两类 ADC 的差别,是进行嵌入式模拟采集系统设计的基础。

A-D 转换器专用 IC 的现状与发展趋势
采样率、分辨率与 ADC 架构的关系
评价 ADC 时,最基础的两个指标是 采样率 和 分辨率。
采样率通常以 sps 表示,即 samples per second,每秒采样次数。采样率决定了系统能够处理的信号频率上限。按照采样定理,采样率至少要达到信号最高频率的 2 倍;但在实际工程中,为了给模拟滤波器、相位裕量和抗混叠设计留出空间,通常希望采样率达到信号最高频率的 2.5 倍以上,甚至更高。
分辨率表示 ADC 能把输入电压范围划分成多少个离散等级。N 位 ADC 的理想量化级数为:
[ 2^N ]
因此,分辨率越高,理论上能分辨的电压变化越细。例如 8 位 ADC 有 256 个码,10 位 ADC 有 1024 个码,12 位 ADC 有 4096 个码。
不过,必须特别注意的是,高分辨率不等于高精度。分辨率只是说明输出码有多细,而精度还受到积分非线性、微分非线性、偏移误差、满量程误差、噪声、基准源稳定度、输入驱动能力、PCB 布局等因素影响。因此在选择高精度 ADC 时,不能只看位数,还必须查看 INL、DNL、offset error、gain error、SNR、THD 等参数。
从 ADC 的技术分布看,采样率和分辨率通常存在权衡关系: 高分辨率 ADC 多数采样率较低;高速 ADC 多数分辨率较低。不同转换架构在这一平面上分布不同。

常见 ADC 架构主要包括:
| ADC 架构 | 主要优势 | 主要限制 | 典型应用方向 |
|---|---|---|---|
| ΔΣ 型,即 Delta-Sigma 型 | 分辨率高,SNR 高,可实现 20 位以上分辨率;线性误差较容易校正;原理上不易出现 missing code;通常可简化抗混叠滤波器 | 采样率较低;响应慢;不适合高速切换多路输入;高速型号功耗会增加 | 精密测量、传感器、称重、音频、低速高精度采集 |
| 逐次毕竟型,即 SAR 型 | 功耗低;采样率可在上限以下灵活设定;容易与多路复用器组合扩展通道数;通用性强 | 18 位以上较难获得高精度;DNL 可能恶化;严重时可能出现 missing code | 通用数据采集、传感器、MCU 外接 ADC、低功耗系统 |
| Flash 型 | 速度最快;基本上不需要采样保持电路 | 分辨率难以提高;高分辨率时代价高、功耗大;输入电容大,对前级驱动要求高 | 高速示波器、通信、雷达、超高速数字化 |
| 流水线型(Pipeline 型) | 能在较高速度下实现比 Flash 型更高的分辨率 | 从开始转换到输出数据之间存在较长延迟,即 latency | 中高速数据采集、视频、通信 IF 采样、仪器仪表 |
高分辨率 ADC:SAR 与 ΔΣ 是主流
在低速、高精度 ADC 领域,主流架构是 SAR 型 和 ΔΣ 型。它们大致覆盖到 10 Msps 以内的采样率范围。
SAR 型 ADC 的特点是功耗较低、控制简单、采样率灵活,因此非常适合通用用途。市场上可以获得 8 位到 24 位左右的 SAR ADC,其中 10 位、12 位、16 位产品非常常见。SAR ADC 往往适合多通道扫描式采样,比如传感器阵列、工业监测、便携设备等。
ΔΣ 型 ADC 的优势在于高分辨率。常见产品可以达到 12 位到 24 位,甚至还有用于地震仪等特殊领域的 32 位产品。ΔΣ 型 ADC 通过过采样和数字滤波来提高有效分辨率。它并不是只以目标输出采样率工作,而是在内部以目标采样率数倍到数百倍的频率进行调制和运算,再经过数字滤波、抽取后输出数据。正因为内部实际运行速度较高,所以与 SAR ADC 相比,ΔΣ ADC 要进一步降低功耗并不容易。
从发展趋势看,SAR ADC 未来会继续朝着更高速、更高分辨率、低功耗方向发展;而 ΔΣ ADC 已经在分辨率上具有优势,未来的关键在于提高速度和降低功耗,尤其是低功耗化会成为重要竞争点。
高速 ADC:Flash 型与流水线型
在高速 ADC 领域,目前主流架构是 Flash 型 和流水线型。
Flash 型 ADC 最适合高速化。其基本思想是使用大量比较器同时判断输入电压所在的量化区间,因此转换速度极快。为了进一步提高采样率,还可以使用 时间交织 技术,即在同一芯片中放入两个或更多 ADC,让它们以错开的时刻轮流采样。通过这种方式,可以实现数 Gsps 的采样率。对于超高速采集领域,比如示波器上的应用,时间交织采样甚至使采样率超过 40 Gsps。
Flash 型 ADC 的问题是分辨率难以提高。因为每增加 1 位分辨率,比较器数量会大幅增加,电路面积、输入电容、功耗和成本都会迅速上升。因此 Flash ADC 通常用于 8 位左右的高速场合,市场上也有 12 位级产品,但代价较高。
流水线型 ADC 在速度上不如 Flash 型极致,但能在高速与较高分辨率之间取得平衡。
工程上评价 ADC 难度时,不能只看分辨率,也不能只看频率,而应同时考虑“分辨率 × 频率”的综合难度。比如 8 位、1 GHz 级示波器通道已经非常困难;而 14 位、100 MHz 级采集系统同样困难。一个方向追求时间轴速度,另一个方向追求电压轴精细程度,都会给模拟前端、时钟、PCB、基准源和电源完整性带来很大挑战。
未来无论是 Flash 型还是流水线型 ADC,除了继续提高速度和分辨率之外,低功耗会越来越重要。过去在高性能仪器中可能容忍较大功耗,但现代系统更重视能效、散热和便携性。降低电源电压是降低功耗的重要手段之一。
分辨率与精度的关系
分辨率表示 ADC 可以把输入电压范围划分得多细。例如输入范围为 0~10 V,如果用 10 个显示等级表示,那么每个等级约对应 1 V;如果用 4096 个等级表示,每个等级约对应 2.44 mV。分辨率越高,电压刻度越细。
但分辨率只是“刻度有多细”,并不保证“刻度有多准”。一个 ADC 可以有很高分辨率,但如果其实际转换曲线明显偏离理想直线,精度仍然很差。相反,也可能存在分辨率不高但精度较好的 ADC。
工程上常见误区是把“20 位分辨率”误解为“20 位精度”。例如音频 ADC 可能拥有很高分辨率,但它面向交流音频信号,通常会进行 DC 截止,直流精度不一定好。因此,如果用于精密直流测量,就不能只看音频 ADC 的位数。
精度通常用实际输入输出特性相对于理想直线的偏差来表示。误差来源包括偏移电压、寄生电容、残余阻抗、参考电压误差、增益误差、温度漂移、非线性等。
因此,选型时应坚持一个原则:
分辨率 ≠ 精度。
想要高精度时,必须同时确认分辨率、INL、DNL、offset error、gain/full-scale error、噪声和参考源条件。
非线性误差、INL 与 DNL
ADC 的非线性误差描述的是实际转换特性相对于理想线性关系的偏离。通常可以在实际特性曲线附近画一条参考直线,然后测量实际曲线与这条直线之间的偏差。
专用 ADC 中,非线性误差通常进一步分为两类:
积分非线性误差 INL INL 表示整个转换曲线相对于理想或拟合直线的偏差。它类似于放大器的非线性失真,通常难以通过简单偏移或增益校准完全消除。INL 大时,即使 ADC 位数很高,转换结果也不能代表真实输入。
微分非线性误差 DNL DNL 表示相邻两个数字码之间实际电压宽度与理想 1 LSB 宽度之间的误差。DNL 过差时,可能出现 missing code,即某些数字码永远不会输出。更严重时,当模拟输入增加,输出码反而局部下降,破坏单调性。
在反馈控制系统中,如果 ADC 输出不单调,可能会导致本应为负反馈的局部区域变成正反馈,造成控制异常。因此在控制、电源调节、伺服和闭环测量系统中,DNL 与单调性非常重要。
单片机内置 A-D 转换器的性能
MCU 内置 ADC 的基本定位
过去,A-D 转换器大多是独立专用 IC。后来,随着混合信号工艺发展,越来越多单片机把 ADC 集成到芯片内部,形成所谓单片单片机的数据采集能力。
这种集成方式在体积、成本和系统简化方面非常有利。但从模拟设计角度看,ADC 是高度依赖精密模拟技术的电路,而 MCU 内部存在大量数字逻辑,会产生开关噪声。过去在 PCB 设计中,模拟电路和数字电路通常要尽量隔离,而 MCU 内置 ADC 则把二者放在同一芯片上。因此,MCU 内置 ADC 的性能是否能满足要求,需要认真评估。
多数 MCU 内置 ADC 的分辨率集中在 8~12 位。对很多消费电子、简单传感器、按键电压检测、温度监测、电池电压监控等应用,这个等级已经足够。而且 MCU 的成本优势明显,尤其适合大批量生产。
普通 MCU 内置 ADC 的有效精度通常比标称位数低 1~2 位。
原因在于提高 ADC 性能会增加芯片面积、模拟隔离难度、测试成本和工艺要求,这会削弱单片 MCU 低成本的优势。因此 MCU 内置 ADC 通常追求“够用”,而不是追求专用 ADC 级性能。
如果 ADC 实际有效性能约为 8 位,则它仍可以满足许多应用。例如 8 位有 256 个码,理论 1 LSB 约为 0.4%,在温度显示到 1 ℃、电池电压粗略监测、简单传感器采集等场合可能足够。
0.1% 精度测量需要多少位 ADC?
假设希望用 ADC 进行 0.1% 精度的电压测量,首先要看量化误差是否允许。
不同分辨率下的 1 LSB 与量化误差如下:
| 分辨率 | 1 LSB | 量化误差 |
|---|---|---|
| 8 位 | 约 0.4% | ±0.2% |
| 10 位 | 约 0.1% | ±0.05% |
| 12 位 | 约 0.025% | ±0.0125% |
8 位 ADC 不可能实现 0.1% 测量。 因为仅量化误差就已经达到 ±0.2%,超过目标精度。
10 位 ADC 理论上勉强可能,但余量极小。 10 位 ADC 的量化误差为 ±0.05%。如果希望总误差不超过 0.1%,那么非线性误差、偏移误差、满量程误差、参考源误差等总和必须控制在剩余的 ±0.05% 以内,也就是约 ±0.5 LSB 以内。对于普通 MCU 内置 10 位 ADC 来说,这通常很难实现。
以 ADC108S022 专用 ADC IC 为例,ADC108S022 是一款 10 位、8 通道 SAR ADC,采样率 50~200 ksps。其主要规格包括:
| 参数 | 数值 |
|---|---|
| 分辨率 | 10 位 |
| 采样频率 | 50~200 ksps |
| 模拟输入电容 | track 模式 33 pF,hold 模式 3 pF |
| 非线性误差 | ±0.3 LSB max |
| 偏移误差 | ±0.7 LSB max |
| 满量程误差 | ±0.4 LSB max |
| 量化误差 | ±0.5 LSB max |
| SNR | 61.4 dB min |
| THD | -73.4 dB max |
| 通道串扰 | -79.8 dB typ |
从非线性误差 ±0.3 LSB max 来看,它已经具备接近 12 位级别的线性度。如果偏移误差和满量程误差能够通过校准消除,那么剩余主要误差可控制在 ±0.5 LSB 以内,理论上能够接近 0.1% 测量要求。
但这种设计余量很小。为了充分发挥 10 位专用 ADC 的性能,外围电阻、基准电压源、模拟前端、PCB 布局和温漂控制都需要高质量设计,反而可能增加系统成本。
因此,工程上更合理的做法是:
若目标是 0.1% 精度测量,建议选择 12 位 ADC。
12 位 ADC 的量化误差只有 ±0.0125%,给非线性、增益、偏移、参考源和模拟前端留下了更大误差预算。虽然 ADC 本身可能略贵,但外围电路不必极限设计,系统总成本和可靠性反而更好。
MCU 内置 ADC 的最大优势是系统简单。设计者不需要额外增加 ADC 芯片,也不需要设计复杂的数字通信接口,只需把模拟信号接到 MCU 引脚,配置寄存器即可开始采样。
这会带来多个好处,包括成本低、PCB 面积小、功耗较低、软件控制方便、通道切换灵活,并且适合与定时器、DMA、中断和控制算法紧密配合。例如电池电压检测、旋钮位置读取、温度传感器采样、简单电流检测、按键电阻梯形网络识别等应用,通常都可以使用内置 ADC 完成。
内置 ADC 的典型限制
内置 ADC 虽然方便,但并不是高精度测量的万能方案。它通常与数字逻辑、CPU、存储器、时钟、通信外设共享同一颗芯片。CPU 开关噪声、数字 IO 翻转、电源纹波、内部基准误差和片上布线耦合,都可能影响 ADC 性能。
常见限制包括:
第一,有效分辨率低于标称位数。即使 MCU 手册写着 12 位 ADC,实际系统可能只能稳定获得 10 位甚至更低的有效位数。
第二,参考电压质量有限。ADC 的输出码值本质上是输入电压与参考电压的比值。如果参考电压波动,转换结果也会随之波动。使用 MCU 电源作为参考时,电源噪声会直接变成测量误差。
第三,输入阻抗和采样时间受限。SAR ADC 输入端的采样电容需要在采样窗口内充电完成。若外部信号源阻抗太大或前端滤波电阻过大,就会引入采样误差。
第四,多通道切换存在残留影响。当 ADC 多路复用器从一个通道切换到另一个通道时,前一通道的电荷可能影响后一通道,尤其在两个通道电压差较大、源阻抗较高时更明显。
第五,模拟与数字地线、电源、布线难以完全隔离。MCU 本身是混合信号器件,其内部数字噪声不可完全避免。
适合使用内置 ADC 的场景
当应用对精度和噪声要求不高,或者信号本身变化较慢且幅度较大时,内置 ADC 通常足够。例如:
电池电量监测中,电压分辨率要求可能只有几十毫伏;温度传感器监测中,系统允许通过软件平均提高稳定性;电机控制中,电流采样更关注控制环路实时性而不是绝对计量精度;人机接口中,电位器或电阻按键只需要区分不同状态。
如何在 MCU 内置 ADC 与专用 ADC IC 之间取舍
ADC 选型的核心不是“位数越高越好”,而是要根据系统需求综合判断。
如果应用只需要粗略测量,例如电池电压、温度趋势、按键电阻分压、低成本传感器采集,那么 MCU 内置 ADC 通常已经足够。它的优势是低成本、小体积、软件控制方便、系统集成度高。
如果应用需要 0.1% 级精度、较高线性度、低噪声、高 SNR、多通道同步、高速采样、差动输入或明确的 AC 性能指标,则应优先考虑专用 ADC IC。
一般工程经验可以归纳为:
8 位 ADC 适合 1% 量级的粗略测量;
10 位 ADC 可用于一般传感器采集,但要实现 0.1% 精度非常吃紧;
12 位 ADC 是 0.1% 级测量更合理的起点;
16 位以上 ADC 更适合精密仪器、工业测量和低频高精度传感器;
ΔΣ ADC 适合低速高精度;
SAR ADC 适合通用、中低功耗、多通道应用;
流水线型 ADC 适合中高速高分辨率应用;
Flash ADC 适合极高速低至中等分辨率应用。
最终,ADC 的好坏不能只由分辨率决定。真正决定系统性能的是 ADC 架构、采样率、分辨率、INL、DNL、噪声、基准源、模拟前端、滤波器、电源、PCB 布局、校准方法和软件处理的整体配合。
在嵌入式模拟采集系统中,正确的问题不是“这个 ADC 有多少位”,而是:
更多有关于 ADC 的参考资料和教程,请在吴川斌的博客网站内搜索关键字:ADC
或者访问这条搜索链接 ;
❤️ 如果这篇文章对您有帮助,欢迎打赏支持

扫描上方二维码,用微信打赏

