资讯动态

AD/DA芯片选型实战:参数拆解与系统验证

发布时间:2026/9/29 2:04:55 来源:尧图企业网站定制
做硬件设计这些年AD/DA 这两类芯片一直是最容易被低估的部分。很多人做板子的时候主控选型能讨论三天电源方案能吵到半夜到了 AD/DA 这里就一句话找个能用的就行结果板子回来一测数据跳得像抽奖。我自己也栽过跟头早年做一个称重采集板图便宜选了颗 12 位 ADC标称参数看着挺漂亮实测有效位数只有 9 位多一点最后整机精度差了一个数量级只能推倒重来。从那以后我就养成了习惯——AD/DA 的选型不看宣传语只盯着参数表一行一行对。这篇随笔就把我在 AD/DA 芯片选型过程中对各项参数的理解整理出来从 ADC 的分辨率、采样率、输入结构到 DAC 的建立时间、毛刺、输出形式再到手册上不写但决定成败的基准源、时钟抖动和板级布局。内容偏实操适合正在做采集板、控制板、仪器仪表、音频或电机反馈回路的朋友参考不管你是刚接触 AD/DA 的新手还是想把手里的方案再抠一抠的老手应该都能找到点有用的东西。1. 选型之前先把需求锁死AD/DA 到底在系统里干什么1.1 从信号链倒推需求而不是从参数表正推我见过太多人选 AD/DA 的方式是打开供应商官网把参数从高到低排序挑一个看起来最强的。这个思路在别的器件上也许问题不大但在 AD/DA 上几乎必然翻车。原因很简单AD/DA 是信号链的中间枢纽它的上游是传感器和调理电路下游是主控、存储和通信两头任何一个约束变了中间这颗片子就得跟着变。所以正确的顺序是倒推。先问清楚这几件事被测量的物理量是什么它的信号带宽有多宽幅度范围是多大源阻抗大概是多少噪声底在什么水平再问采集端的采样节奏——是每秒采几十次看趋势还是几百 kSPS 做波形分析或者上 MSPS 做频谱最后问主控侧能提供什么接口SPI 时钟能跑到多少有没有 DMA是几路并行采。举个具体的场景。做温度采集热电阻或者热电偶本身的时间常数就是秒级信号带宽可能不到 10 Hz这种情况你需要的是一颗高分辨率、低噪声、低速度的 Σ-Δ 型 ADC比如 24 位的 ADS1256 这类重点看它的无噪声分辨率和 50/60 Hz 工频抑制。反过来做电机电流环PWM 载波 20 kHz需要在一个 PWM 周期内采到相电流那就要一颗几 MSPS 的 SAR 型 ADC重点看采样保持的建立时间、通道间串扰和同步能力位数只要 12 到 16 位就够。这两类需求对应完全不同的芯片族参数表上根本没有可比性。把需求写成一句话应该长这样信号带宽 0 到 2 kHz幅度 ±10 V源阻抗小于 100 Ω要求有效位数不低于 16 位单通道采样率不低于 10 kSPS通过 SPI 与主控相连单板 8 通道扫描。这句话写出来选型范围基本就缩小到个位数了。1.2 精度、速度、成本的三元悖论AD/DA 上有三个参数永远在互相拉扯精度、速度、成本。你可以同时拿到任意两个但很难三个全都要。这不是厂商故意留的坑而是电路物理层面的限制。高精度需要大的采样电容、低噪声的模拟前端、高稳定度的基准源这些都会占用面积和功耗高速度需要快速的比较器阵列、深流水线、高速数字接口功耗和面积同样上去了。两者叠加芯片的制造成本和封装难度都会跳一个台阶。所以市面上 24 位 100 MSPS 的 ADC 几乎看不到不是做不出来是做出来没人买得起也用不起。我自己的经验是先把最低可接受精度和必须达到的速度钉死然后在这两个边界内找成本最优解。不要在需求阶段就写精度越高越好这句话对选型毫无帮助只会让你在对比表里纠结到天荒地老。实际做法是反推系统的总误差预算里AD/DA 这一段允许占多少。比如整机要求 0.1% 的测量精度那么 ADC 引入的误差就应该控制在 0.02% 以内留出余量给传感器、基准和调理电路。0.02% 对应的有效位数大概是 12 位多一点那么选一颗标称 16 位的 ADC 就非常稳完全没必要上 24 位去烧钱。1.3 一张需求定义表能省掉多少返工我现在做项目会强制自己填一张采集需求表就六列通道数、信号带宽、输入量程、要求有效位数、采样率、接口类型。这张表看着简单但它能把我觉得变成我算过。项目填写内容备注通道数8 路单端 / 4 路差分差分可省一半通道数信号带宽DC ~ 2 kHz决定采样率和滤波器输入量程±10 V决定前端衰减与基准要求有效位数≥ 16 bit决定噪声与参考指标采样率≥ 20 kSPS/通道留 5 到 10 倍余量接口SPI / 20 MHz决定数据吞吐上限提示这张表最好在画原理图之前就定稿并且让做结构、做软件的人都看一眼。我曾经因为没跟软件同事确认接口速率选了一颗只能跑 1 MHz SPI 的 ADC8 通道全速采集时数据根本刷不过来最后只能降速运行。2. ADC 参数逐条拆解手册上每一行都在说什么2.1 分辨率、量化噪声与有效位数 ENOB分辨率就是你最熟悉的那个数字——12 位、16 位、24 位代表输出码的位数。分辨率决定了理想情况下最小能分辨的电压也就是 1 LSB 满量程 FSR / 2^N。一颗 16 位、5 V 满量程的 ADC1 LSB 大约是 76 µV。这个数字先记住后面很多判断都要用到它。但分辨率不等于精度。位数的物理意义是量化台阶的粗细而量化过程本身就会引入噪声。对于一个满幅正弦输入理想 N 位 ADC 的信噪比是 SNR 6.02N 1.76 dB。16 位理论上是 98 dB24 位是 146 dB。这条公式我建议直接背下来它把位数和噪声这两个看起来不搭界的概念连起来了。真正重要的是 ENOB有效位数。它由实测的 SINAD信号与噪声失真比换算而来ENOB (SINAD - 1.76) / 6.02。手册里通常会给出典型值和最小值你要看的是最小值。一颗标称 16 位的 ADC如果 SINAD 最小值只有 86 dB那 ENOB 就是 (86 - 1.76) / 6.02 ≈ 14 位也就是说低两位基本是噪声。这个换算我在选型时每次都会算一遍因为厂商的营销页面只会写16 位不会主动告诉你 ENOB 是多少。还有一个更狠的指标叫无噪声分辨率Noise-Free Bits。它是用峰峰值噪声而不是 RMS 噪声算的。对于近似高斯分布的噪声峰峰值大约是 RMS 的 6.6 倍换算成位数要减掉大约 2.7 位。所以一颗 ENOB 14 位的 ADC无噪声分辨率可能只有 11 位多一点。如果你的应用是看单次采样值的绝对准确性比如阈值判断那就得看无噪声分辨率如果是做平均、做频谱看 ENOB 就够了。2.2 采样率、奈奎斯特带宽与过采样的取舍采样率决定了能无混叠采到的最高频率理论上限是采样率的一半这就是奈奎斯特频率。但实际工程里没人敢贴着奈奎斯特频率用一般会让信号带宽落在采样率的 1/5 到 1/10 以内把抗混叠滤波器的压力降下来。混叠这个概念值得说透。假设采样率 10 kSPS那么 6 kHz 的干扰信号会被折叠成 4 kHz 出现在数据里而且折叠之后你再也分不清它原本是 6 kHz 还是 4 kHz。这就是为什么模拟前端必须加抗混叠滤波器。滤波器要衰减多少按照经验如果你要保住 16 位精度那么高于奈奎斯特频率的杂散至少要被压到 -100 dB 以下。这里有个算术题很能说明问题。信号带宽 1 kHz采样率 10 kSPS奈奎斯特频率 5 kHz。从 1 kHz 到 5 kHz 只有 2.3 个倍频程要求在这个区间里衰减 100 dB一阶 RC 每倍频程才 6 dB二阶 12 dB算下来需要七八阶电路复杂度和噪声都会失控。这就是过采样存在的原因把采样率提到 100 kSPS奈奎斯特频率变成 50 kHz从 1 kHz 到 50 kHz 有 5.6 个倍频程四阶滤波器就能搞定还能顺便享受过采样带来的 SNR 提升——每 4 倍过采样大约换来 1 位的有效精度256 倍过采样理论上能多出 4 位。注意过采样只对白噪声有效。如果前端存在固定的工频干扰或者开关电源的尖峰那是确定性干扰过采样加平均是压不下去的必须从源头或者滤波器上解决。2.3 输入结构单端、差分、量程与基准的关系ADC 的输入结构是选型时最容易被忽略、后期最容易出问题的地方。单端输入简单一根信号线对地但抗共模干扰能力差地线上的任何波动都会直接进到数据里。差分输入用两根线采集的是两者之差共模干扰被大幅抑制同时还能抵消偶次谐波失真代价是通道数减半、前端电路翻倍。对于毫伏级、长线缆、有电机或变频器干扰的场合我基本上都推荐差分。这一点不用犹豫多花的那点电路成本远比后期整改 EMC 便宜。再看量程。单端输入时满量程通常等于基准电压 Vref差分输入时满量程是 Vref 的两倍因为是正负两半加起来。搞清楚这个关系很重要因为它决定了外部基准怎么选。输入是 ±10 V 而基准只有 2.5 V 的时候你必须在前端做衰减把 ±10 V 压到 ±2.5 V 以内衰减网络会引入新的误差源电阻的温漂和比例失配都会直接反映到测量结果上所以一定要用高精度、低温漂的电阻对比如 0.1% / 25 ppm 的金属膜。还有输入阻抗。SAR 型 ADC 的输入是开关电容结构采样瞬间会向输入端抽一股电流形成一个电压反冲。如果信号源阻抗太大这个反冲就来不及建立采样结果就会偏低。手册里会给出最大源阻抗或者建议驱动运放带宽这个参数必须遵守。我的做法是前端一律加一颗运放做缓冲哪怕源阻抗看起来不高多一颗运放的成本远比事后改板低。运放选型时重点看建立时间、压摆率、输入偏置电流和噪声密度像 OPA365、OPA192 这类都是做 ADC 驱动比较常见的选择。2.4 直流精度三兄弟失调、增益与 INL/DNL直流精度看三个指标失调误差Offset Error、增益误差Gain Error和积分非线性/微分非线性INL / DNL。失调误差是输入为零时输出码不为零的偏差量通常用 LSB 或 mV 表示很多芯片支持内部或外部校准把它消掉。增益误差是实际转换斜率与理想斜率的偏差一般也是通过校准解决。这两项可以通过软件标定补偿所以在选型时优先级可以放低一点只要不是离谱得过分。真正卡脖子的是 INL 和 DNL。INL 表示实际转换曲线偏离理想直线的最大量它反映的是整体线性度校准也救不回来。DNL 表示相邻两个码的宽度与理想 1 LSB 的偏差如果 DNL 超过 ±1 LSB就意味着存在失码——某些输出码永远不会出现转换曲线出现非单调。对于做闭环控制的场合非单调是致命的控制环路可能在某个码附近来回震荡。一般规则是DNL 保证小于 ±1 LSB 的芯片可以放心用标称 16 位的 ADC 如果 INL 只有 ±4 LSB那它的绝对精度大概只有 14 位水平你需要自己判断够不够。做仪表、做计量类应用时INL 是必须逐颗确认的硬指标。2.5 交流指标SNR、THD、SFDR 到底该看哪个交流指标有四兄弟SNR信噪比、THD总谐波失真、SINAD信纳比和 SFDR无杂散动态范围。它们从不同角度描述同一件事选型时要根据应用侧重点来挑。SNR 只算噪声把谐波当成信号的一部分不管。它适合评估这个小信号能不能从噪声里捞出来典型场景是成像、微弱信号检测。THD 只算谐波不管噪声适合音频、超声这类对谐波敏感的场合——人耳对谐波失真很敏感但对宽带噪声的容忍度反而高一些。SINAD 是噪声加谐波一起算是最综合的指标前面算 ENOB 用的就是它。SFDR 则是看最大的那根杂散相对于信号有多低它关心的是最坏情况雷达、通信接收机这类应用会重点看它。我的判断逻辑是如果系统里后面还要做数字滤波和平均优先看 SNR 和 SINAD如果信号的波形保真度重要音频、振动分析优先看 THD如果系统里有强干扰源某个固定频点可能被抬起那就看 SFDR因为它反映的是最差的那根杂散。2.6 接口与数字侧SPI、I2C、并口、LVDS 怎么挑接口决定了你能把数据搬多快也决定了布线和主控负担。I2C 最省线两根线能挂一堆器件但速率通常只有几百 kHz 到 3.4 MHz而且总线仲裁和多主机的开销不小适合低速多通道场景比如 ADS1115 这类 16 位小芯片。SPI 是主力四根线速率从几 MHz 到几十 MHz配合 DMA 使用时 CPU 几乎不参与搬运做中高速采集非常合适。并行接口速度快但引脚多FPGA 上用得比较多。LVDS 和 JESD204B 这类高速串行接口则是给几十 MSPS 以上、多通道同步采样的场合准备的需要专门的收发器和时钟方案普通 MCU 玩不转。选接口时有个硬性算法把所有通道的数据吞吐加起来再乘上协议开销看主控能不能扛住。SPI 传 16 位数据每帧通常要 24 位含通道地址和状态位甚至 32 位实际有效带宽只有标称的六到七成。8 通道、每通道 20 kSPS、每帧 24 位总速率就是 8 × 20000 × 24 3.84 Mbps加上帧间隔和命令开销SPI 至少要跑 8 MHz 才舒服。这个数算出来你就知道主控的 SPI 够不够用也知道了要不要上 DMA。提示多通道 ADC 要注意单通道有效采样率。一颗标称 200 kSPS 的 8 通道 ADC轮询扫描时每通道只有 25 kSPS。很多人在选型时只看了总速率做出来才发现单通道速度差了好几倍。3. DAC 选型别只盯着位数看3.1 建立时间、压摆率与更新率的关系DAC 的位数是起点不是终点。真正的速度瓶颈是建立时间Settling Time也就是输出从跳变开始到稳定在目标值某个误差带内所需要的时间。手册上会给出建立到 ±0.5 LSB 用时多少微秒这个数字。这里有个容易被忽略的细节建立时间决定了 DAC 的实际可用更新率上限。一颗建立时间 1 µs 的 16 位 DAC理论更新率不可能超过 1 MHz实际工程里通常取 1/3 到 1/5也就是两三百 kHz。你如果按 1 MSPS 去设计波形发生输出根本来不及稳定波形会严重失真。压摆率Slew Rate是另一回事它描述的是输出变化的斜率单位 V/µs。压摆率不足会导致大信号跳变时出现斜坡而不是陡沿波形顶部变圆。做快速脉冲输出时压摆率往往比建立时间更早成为瓶颈。3.2 电压输出还是电流输出输出缓冲不能省DAC 的输出形式主要有电压输出和电流输出两类。电流输出的 DAC 速度更快、线性度更好但必须配一个 I/V 转换电路通常用运放做跨阻放大这时候运放的带宽和偏置电流会直接影响精度。电压输出的 DAC 内部集成了输出缓冲用起来方便适合直接驱动后级。不管哪种输出端都要考虑负载。很多 DAC 的电压输出驱动能力只有几毫安直接带一个几百欧的负载输出就会掉下去还会因为负载变化引起增益误差。我的习惯是在 DAC 输出后面串一个小的隔离电阻再加一级缓冲运放隔离电阻同时还能起到限流和保护作用。另外注意容性负载DAC 的输出缓冲遇到大电容容易振荡需要串电阻或者加隔离网络。3.3 毛刺能量与单调性控制环路的隐形杀手DAC 的毛刺Glitch是个很有意思的参数。当输入码发生跳变时——尤其是像 0x7FF 到 0x800 这种多个位同时翻转的情况——内部开关的动作时序不可能完全一致输出会出现一个短暂的尖峰。这个尖峰的面积用 nV·s 表示就是毛刺能量。对于慢速应用毛刺会被后级滤波掉无所谓。但对于直接驱动功率级的场合这个尖峰可能被放大成真实功率导致发热、噪声甚至损坏器件。选择带毛刺抑制或者用温度计编码结构的 DAC 能显著降低这个问题代价是芯片更贵。单调性是另一个硬指标。理想的 DAC 应该是输入码增加时输出只增不减但实际芯片因为失配可能出现某个码附近输出反而下降的情况。对于闭环控制非单调会直接引起振荡。选型时一定要确认手册标注的是保证单调还是典型单调前者才是可信的。3.4 多通道同步与接口带宽需要多路同步输出比如三相波形发生、多轴运动控制时通道间的同步误差是核心指标。异步更新的 DAC 每通道的更新时间不同相位会出现偏差支持同步更新的器件可以在一个命令里把多个通道同时刷新相位一致性有保障。还有一种做法是用一颗多通道 DAC 配一个共享的 LDAC 引脚把所有通道的更新锁在一起。这个方案成本低但对 PCB 布线有要求LDAC 到各个通道的走线尽量等长避免因为边沿到达时间不同产生额外偏差。我在做多轴控制板时就吃过这个亏LDAC 走线一头长一头短结果两轴的输出在示波器上差了将近 20 ns虽然不大但在高速插补时会产生明显的轮廓误差。接口带宽同样要算。用 SPI 更新一颗 16 位 DAC一帧至少 24 位更新率 100 kHz 就需要 2.4 Mbps 的 SPI 速率多通道还要乘通道数。串行菊花链Daisy Chain是常见做法几颗 DAC 串起来用一次传输更新全部省引脚代价是传输时间变长。4. 手册参数之外决定成败的板级与系统因素4.1 基准源和时钟抖动精度的天花板很多人把大量精力花在选 ADC 上却随手用主控的电源引脚做基准这是最典型的错误。ADC 的转换结果本质上是输入电压与基准电压的比值再乘以满码值。基准漂移多少测量结果就跟着漂多少。一颗温漂 100 ppm/°C 的基准在 50 °C 的温升下就会带来 0.5% 的误差前面辛辛苦苦选的 16 位 ADC 全部白费。基准源的选型要点是初始精度、温度系数、长期漂移和噪声。初始精度可以校准后面三项不行。做 16 位以上的采集我一般会选温度系数在 10 ppm/°C 以内、噪声在 µV 级的基准比如 REF5025 或者 ADR4550 这类。同时基准的走线要当模拟信号处理远离开关电源用电容紧靠引脚去耦最好单独走一层模拟地。时钟抖动对高速采集的影响同样致命。采样时刻的任何抖动都会转换成幅度误差且误差随输入信号频率上升而放大。抖动引起的 SNR 上限可以用 -20log(2π·f·σt) 估算。取信号频率 100 kHz、抖动 20 ps代入得 2π × 1e5 × 2e-11 ≈ 1.26e-5换算成 dB 约 98 dB。如果换成 10 MHz 信号、1 ps 抖动则是 84 dB 左右。可以看到频率越高对抖动越敏感。做高分辨率采集时给 ADC 单独配一个低抖动的时钟源比换一颗更贵的 ADC 效果更明显。4.2 电源、地去耦与布局模拟器件的电源抑制能力是有限的。手册里那个 PSRR 参数通常在特定频率下比如 100 kHz 以下才有几十 dB到几 MHz 就掉到个位数了。也就是说开关电源的高频纹波会几乎无衰减地打到你辛辛苦苦设计的模拟电路上。我的做法是模拟部分一律用 LDO 从主电源再降一级LDO 的输出噪声和 PSRR 要看清是哪个频段的。数字电源和模拟电源分开走在单点用磁珠或者 0 Ω 电阻连接。ADC 的每个电源引脚都要有 0.1 µF 和 1 µF 的组合去耦高频的额外加 1 nF电容必须紧贴引脚走线越短越好绝对不能走长长的回头线。地平面这件事值得单独说。混合信号器件的 AGND 和 DGND 到底怎么接争论了很多年。我现在的做法是如果芯片手册明确要求分开就严格按手册做通常在芯片下方用一个连接点把两个地拼上如果手册没有要求就干脆用完整的地平面把模拟区域和数字区域通过布局隔开而不是用地分割把回流路径切断。分割不当造成的地环路往往比不分割更糟糕。注意ADC 下方不要走任何高速数字线尤其是时钟和 PWM。哪怕是内层走线容性耦合也足以把噪声灌进去。我遇到过一例SPI 时钟线从 ADC 正下方穿过采集数据里出现了与 SPI 时钟同频的杂散改版之后噪声直接降了一半。4.3 前端驱动与抗混叠滤波ADC 的前端是整个信号链里最需要动脑子的地方。它要完成三件事把信号幅度调整到 ADC 的量程内把源阻抗降下来让采样建立充分把高频干扰滤掉防止混叠。抗混叠滤波器的阶数和截止频率要和采样率一起算。前面说过为了在奈奎斯特频率处获得足够的衰减可能需要多阶滤波。实际工程里常用的做法是差分 RC 运放有源滤波两级组合第一级 RC 先把高频毛刺压掉第二级有源滤波提供陡峭的滚降。滤波器本身的噪声也要算进总噪声预算电阻值越大热噪声越大所以不要为了省电流把电阻取到几十 kΩ 以上。单端转差分也是常见的需求。可以用变压器适合交流信号不引入噪声或者专用单端转差分运放如 ADA4940 系列适合直流信号。变压器的低频响应差不适合直流耦合运放方案灵活但会引入噪声和失调需要权衡。4.4 温漂与长期稳定性前面聊的都是常温 25 °C 下的参数。真实产品要在 -40 到 85 °C 甚至更宽的范围里工作这时候温漂就成了主角。温漂的来源有好几个基准的温度系数、电阻对的比例温漂、运放的失调温漂、ADC 自身的失调和增益温漂。它们大部分是同向叠加的最坏情况下误差会累加。做宽温产品时我会列一张误差预算表把每一项在温度范围内的最大偏差算出来加总之后看是否满足指标。如果超了优先从基准和电阻对入手因为这两个通常是最大的贡献者。长期稳定性容易被忽略。有些器件的参数在出厂时很好但经过几百小时的老化会缓慢漂移。对于要求免校准、长寿命的产品要么选用长期漂移指标明确的器件要么在系统里保留一个校准通道定期自校准。做工业仪表的朋友应该都有体会客户最不能接受的就是用了半年精度就变差了。5. 一次完整选型实操从需求到验证5.1 需求量化与参数计算拿一个真实做过的项目来说8 通道模拟量采集模块输入 ±10 V信号带宽 DC 到 2 kHz要求测量精度 0.05% 满量程通过 SPI 与主控相连板子空间受限。先算精度对应的位数。0.05% 满量程大约是满量程的 1/2000对应约 11 位。但这只是最低要求考虑到前端衰减网络、基准和噪声的贡献我给 ADC 留 3 到 4 位余量也就是目标 ENOB 不低于 15 位选一颗 16 位的 SAR 型 ADC 比较合适。再算采样率。信号带宽 2 kHz按 10 倍余量取 20 kSPS/通道8 通道轮询总速率 160 kSPS。一颗 200 kSPS 的 8 通道 SAR ADC 刚好覆盖但如果需要更高余量就得上 500 kSPS 的型号。接着算噪声预算。16 位、±10 V 输入、差分结构下满量程是 20 V1 LSB 是 20 / 65536 ≈ 305 µV。0.05% 满量程的误差是 20 × 0.0005 10 mV看起来比 1 LSB 宽得多说明 16 位确实够用。但如果按 ENOB 15 位算有效 1 LSB 是 610 µV仍然远小于 10 mV 的预算余量充足。最后算接口。8 通道 × 20 kSPS × 32 位/帧 5.12 MbpsSPI 时钟至少要跑到 10 MHz 才能留出余量。主控的 SPI 最高跑 20 MHz配合 DMA 完全够用。把这些数字列出来选型范围就很清楚了8 通道、16 位、200 kSPS 以上、SPI 接口、支持差分输入、内置或推荐外部基准的 SAR 型 ADC。这类器件市面上有好几款比如 AD7606内置基准和前端布线省心但贵一些或者 ADS8688集成度高、通道切换快具体选哪个要看成本、封装和供货。5.2 候选器件对比与取舍对比项方案 A集成前端方案 B分立前端位数 / 通道16 位 / 8 通道16 位 / 8 通道单通道速率200 kSPS500 kSPS内置基准有无需外置前端电路只需 RC 保护需运放衰减 缓冲PCB 面积小大约多 30%单板成本偏高中等调试难度低中温漂可控性一般好可自行选低温漂器件我最后选了方案 B。原因是这个项目对温漂要求高内置基准的温度系数只有 10 ppm/°C 左右而我能买到 3 ppm/°C 的外置基准配合 0.1% / 25 ppm 的精密电阻对整体温漂可以压到内置方案的一半以下。代价是 PCB 大了一圈前端多了 8 颗运放和一批阻容。如果这是一款成本敏感、精度要求 0.2% 的消费类产品我会毫不犹豫选方案 A省下来的开发时间和板子面积更值钱。这个取舍过程就是选型的核心。没有绝对更好的方案只有在特定约束下更合适的方案。把约束列清楚答案自然浮现。5.3 打样验证与关键节点测试选完芯片不要直接量产一定要先做评估板验证。评估板的作用不只是看看能不能跑通而是提前暴露那些参数表上看不出来的问题前端运放的反冲恢复、通道切换后的串扰、基准在不同负载下的稳定性、SPI 在最高速率下的误码率。我一般会测这几个点加直流输入看 INL 曲线加低频正弦看 ENOB 和 THD加满量程方波看通道串扰和建立时间快速轮询所有通道看相邻通道的相互影响最后做一次温度循环看漂移。这五项测下来基本能判断这颗芯片在你的设计里能不能用。测试的时候输入源很关键。用一个普通的信号发生器去测 16 位 ADC 的 ENOB很可能测出来就是源的问题而不是 ADC 的问题。至少要保证源的 THD 比 ADC 好 10 dB 以上或者用高精度的直流源加上音频分析仪这类专用设备。5.4 主控侧读取STM32 SPI 加 DMA 的实操要点数据搬过来这一步看着简单坑却不少。以 STM32 系列为例用 SPI 加 DMA 读 ADC 是我用得最多的组合CubeMX 里配置起来不复杂但有几个细节必须注意。第一是片选。SPI 的 NSS 在硬件模式下有时序问题我一般改成软件控制 GPIO在 DMA 传输启动前拉低、传输完成中断里拉高。这样时序完全可控也方便同时挂多个 SPI 从设备。第二是 DMA 的缓冲和中断。ADC 是连续采集的话用 DMA 环形模式Circular加半传输中断和传输完成中断两个半区轮流处理能避免单缓冲时数据被覆盖的问题。缓冲长度建议设成数据帧长度的整数倍不然会出现半帧撕裂。第三是 SPI 模式匹配。ADC 手册里的时序图会标明数据在时钟的哪个边沿有效对应 SPI 的 CPOL 和 CPHA 设置。这个如果配错读回来的数据会整体偏移一位很多人第一反应是芯片坏了其实只是模式配错。另外注意 MSB/LSB 优先多数 ADC 是 MSB 优先偶尔有例外。第四是速率匹配。SPI 时钟不能超过 ADC 支持的上限也不能超过主控的上限还要考虑长走线的信号完整性。20 MHz 的 SPI 在 10 cm 以上的走线上就可能出现边沿劣化这时候要降速或者加串阻。第五是数据对齐。ADC 输出 16 位数据时很多型号实际返回 24 位或者 32 位其中低位是状态位或者填充位。读回来之后要先移位对齐再做后续处理这一步漏掉数据就会整体放大 256 倍看起来很离谱但确实经常发生。提示调试 SPI 读数据时先用低速比如 1 MHz读一个已知的固定值很多 ADC 有内部测试通道或固定输出模式确认链路通了再提速。这样能把通信问题和信号问题分开定位省下大量时间。6. 常见问题与排查速查6.1 数据跳动大、噪声超标这是最高频的问题。排查顺序建议从后往前先断开模拟输入把 ADC 输入短接到地看输出的噪声有多大。如果短接之后噪声仍然很大说明问题在 ADC 本身、基准或者电源如果短接后很干净说明噪声是从前端或者信号源进来的。短接测试时还要注意有些 ADC 在输入接近零时有特殊的非线性最好用中间电平比如基准的一半做测试点。另外测试一定要用电池或者低噪声 LDO 供电的源别用开关电源直接供否则你测的是电源的噪声。如果确认是前端引入的重点查三处运放的电源去耦是否到位、前端电阻是否取值过大热噪声、抗混叠滤波器是否把有用信号之外的干扰放进来。还有一个隐蔽的原因是地环路——信号源和采集板分别接不同的电源地两地之间有电位差这个差模电压会直接变成测量误差。差分输入能缓解但根治要靠单点接地或者隔离。6.2 精度不达标、线性度差精度不达标通常不是 ADC 的问题而是系统性的误差累积。我会按这个顺序排查先用高精度万用表测基准的实际输出看是不是和标称有偏差再测前端衰减电阻的实际比例0.1% 的电阻如果有 0.05% 的失配在 16 位系统里就是 33 LSB 的误差然后做多点标定用线性拟合看残差残差的形状能告诉你误差来自哪里——如果是 S 形曲线多半是运放的线性度或者输入超范围如果是单调的斜坡那是增益误差如果是一条平线但整体偏移那是失调。温度相关的精度问题要在温度箱里跑。常温达标、高低温超标是最常见的情况这时候每一项误差的温度系数都要重新核算优先换掉贡献最大的那一个。6.3 通信读不到数据或数据错位通信问题分三类完全读不到、读到但全是固定值、读到但数值不对。完全读不到先量片选和时钟有没有波形再确认 ADC 的复位和启动时序。有些 ADC 上电后需要一个配置序列才进入转换模式如果没发这个序列它会一直沉默。读到固定值通常是 ADC 没有真正开始转换返回的是某个寄存器的默认值。检查转换启动命令是否发出、通道选择寄存器是否写对。数值不对但变化正常八成是数据对齐或者字节序的问题。SPI 是 MSB 优先还是 LSB 优先返回帧里哪几位是数据、哪几位是通道号这些都要对着时序图逐位核对。我习惯在调试时把原始字节按二进制打印出来一位一位对比猜快得多。6.4 常见问题速查表现象可能原因排查方向数据始终为 0 或满码输入超范围、前端断线量前端各节点电压噪声大且与电源同频电源纹波、去耦不足换 LDO、加去耦、分离模拟数字电源噪声大但与信号频率相关时钟抖动、采样时序换低抖动时钟、检查采样开关时序通道间串扰明显轮询过快、采样保持建立不足降速、增加通道间延时、加缓冲运放读数整体偏移固定量失调未校准、基准偏差校准失调、实测基准电压高低温下精度变差温漂、电阻对失配换低温漂基准和电阻、做温度补偿SPI 数据整体错位CPOL/CPHA 或位序配置错误对照时序图逐位核对数据放大 2 的整数倍数据对齐错误检查返回帧长度和移位操作建立时间不够前端运放带宽不足换高带宽运放、降源阻抗输出码非单调DNL 超标或器件选型不当换成保证单调的型号这张表是我这些年攒下来的每次遇到问题先扫一眼能省下不少示波器和逻辑分析仪的架机时间。最后分享一点个人体会AD/DA 选型这件事最难的不是看懂参数而是判断哪些参数对你的系统真正重要。同一颗芯片放在音频产品里关注的是 THD放在称重模块里关注的是无噪声分辨率放在电机控制里关注的是建立时间和通道同步。把应用场景想透参数表就变成了一张清晰的地图想不透再多的参数也只是一堆数字。我现在做新项目会把选型理由写成一段话贴在原理图旁边过半年回头看还能想起来当初为什么这么选这个习惯帮我避免了很多上次为什么这么设计的困惑。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑