1. 从一次选型翻车说起:为什么标称16位不代表你能拿到16位
前两年帮一个做传感器校准的团队选直流电源,对方需求写得很明确:输出电压0-30V,电流0-5A,要求精度优于1mV。我翻了一圈规格书,挑了一台标称“16位DAC设定、16位ADC回读”的机型递过去,心想这配置怎么都够了。结果上机一测,设定5V输出,用六位半表一量,实际输出在5.8mV上下晃,回读值倒是漂亮得很,跟设定值几乎一模一样。对方工程师当场就笑了:你这回读是回读的DAC寄存器吧?
这件事之后我把那台电源拆开研究了一遍,才发现问题出在几个地方:DAC确实是16位的,但基准源是普通的TL431级别,温漂几十个ppm;输出级的运放失调电压没做校准;ADC回读采样的是DAC之后的缓冲节点,而不是真正的输出端。三个环节各自“看起来还行”,串起来就把精度吃掉了。
所以这篇想聊的核心就一句话:分辨率和精度是两码事,而且中间隔着的距离,比大多数人想象的要远得多。如果你正在选直流电源、正在做ADC/DAC电路设计、或者正在被“多少位”这种参数迷惑,这篇内容应该能帮你省下不少试错成本。我会从分辨率与精度的本质区别讲起,一路拆到DAC设定链路、ADC回读链路、基准源与温漂、校准与验证方法,最后给一套可以直接抄的选型检查清单。
2. 分辨率与精度的本质区别:一把尺子的刻度数和它准不准
2.1 分辨率描述的是“能分多细”,精度描述的是“离真值多远”
这两个概念经常被混用,但它们的定义域完全不同。
分辨率(Resolution)是一个纯粹的“量化粒度”概念。一个16位DAC,在0-30V满量程下,理论最小步进是30V/65536≈0.458mV。这个数字只告诉你“它能输出相邻两个码值之间差0.458mV”,至于这0.458mV对应的实际电压是不是真的准,它不管。就像一把尺子上画了1000条刻度线,分辨率很高,但如果这把尺子本身是用橡皮做的,刻度再密也没用。
精度(Accuracy)描述的是输出值与真值之间的偏差,通常用几种方式表达:
| 表达方式 | 含义 | 典型场景 |
|---|---|---|
| 绝对误差 | 输出与真值的最大偏差,如±(0.05%+5mV) | 电源规格书常见 |
| 相对误差 | 偏差占设定值的百分比 | 宽量程设备 |
| INL/DNL | 积分非线性/微分非线性,描述传递曲线偏离理想直线的程度 | ADC/DAC芯片手册 |
| 增益误差与失调误差 | 传递函数的斜率偏差与截距偏差 | 校准前的原始指标 |
一个残酷的事实是:分辨率是精度的上限,但远不是精度的保证。16位分辨率意味着你理论上最多能分辨0.458mV,但如果基准源温漂导致满量程漂了10mV,那你的实际有效精度可能连12位都不到。
2.2 有效位数(ENOB):把精度翻译成“等效多少位”
工程上更实用的一个概念是有效位数(Effective Number of Bits, ENOB)。它把信噪比和失真折算回位数,公式是:
ENOB = (SINAD - 1.76) / 6.02其中SINAD是信号与噪声加失真比,单位dB。举个例子,一个标称16位的ADC,如果实测SINAD只有80dB,那ENOB=(80-1.76)/6.02≈13.0位。也就是说,你花了16位的钱,实际拿到的是13位的性能。
这个折算在直流电源场景下同样适用。电源的“设定精度”和“回读精度”都可以用类似思路去评估:把实际偏差折算成满量程的百分比,再反推等效位数。我一般会做一个快速估算:
满量程30V,实测最大偏差3mV,则相对精度为3mV/30V=0.01%,等效位数约为log2(1/0.0001)≈13.3位。如果规格书写的是16位,那说明有约3位的性能被基准源、运放、布局、温漂吃掉了。
2.3 为什么厂商喜欢拿分辨率说事
因为分辨率好写、好看、好比较。16位就是比12位听起来厉害,客户一看参数表就觉得高级。但精度指标往往要标注测试条件:温度范围、负载条件、预热时间、校准周期。这些条件一加,数字就不好看了。
我在实际选型时养成了一个习惯:先看精度指标和它的测试条件,再看分辨率。如果规格书只写了分辨率没写精度,或者精度指标没有标注温度范围和负载范围,那基本可以认为厂商在回避问题。
3. DAC设定链路:从寄存器码值到输出端子,中间有六道坎
3.1 基准源:整个链路的“地基”
DAC的输出电压本质上是基准电压乘以一个比例系数。所以基准源的精度和稳定性直接决定了DAC输出的上限。
常见的基准源方案对比:
| 方案 | 初始精度 | 温漂 | 适用场景 |
|---|---|---|---|
| TL431 | ±0.5%~±2% | 50-100ppm/°C | 对精度要求不高的场合 |
| 普通带隙基准(如LM4040) | ±0.1%~±0.5% | 20-50ppm/°C | 一般工业应用 |
| 埋齐纳基准(如LM399) | ±0.05% | 0.5-2ppm/°C | 高精度仪器 |
| 深埋齐纳(如LTZ1000) | ±0.01% | 0.05ppm/°C | 计量级设备 |
温漂的影响可以用一个简单计算感受一下:假设基准源温漂50ppm/°C,环境温度变化10°C,满量程30V的情况下,输出漂移=30V×50ppm×10=15mV。这已经超过了很多应用能接受的误差范围。
实操心得:如果你看到一台电源标称高精度但没提基准源型号,大概率用的是普通带隙基准。真正做高精度的机型,规格书里一定会把基准源作为卖点写出来。
3.2 DAC本身的INL和DNL:非线性是绕不过去的
即使基准源完美,DAC芯片本身的传递曲线也不是理想直线。INL(积分非线性)描述的是实际传递曲线与理想直线的最大偏差,DNL(微分非线性)描述的是相邻码值之间步进的一致性。
一个16位DAC如果INL是±4LSB,那在满量程30V下,最大非线性误差=4×0.458mV≈1.83mV。这个误差是DAC固有的,校准只能修正增益和失调,修正不了非线性。
选DAC时我一般会关注这几个参数:
- INL/DNL:高精度场合建议INL≤±1LSB
- 建立时间:影响输出响应速度,但直流场景下不是关键
- 输出噪声密度:影响输出的短期稳定性
- 封装与热阻:影响自热导致的漂移
3.3 输出缓冲与增益级:运放的失调和漂移
DAC的输出通常要经过缓冲或放大才能驱动负载。这一级引入的误差主要来自:
- 输入失调电压(Vos):普通运放可能几百μV到几mV,精密运放可以做到几μV
- 失调温漂:普通运放几μV/°C到几十μV/°C
- 增益误差:由反馈电阻的精度和匹配度决定
- 共模抑制比和电源抑制比:影响抗干扰能力
以OPA227为例,Vos典型值10μV,温漂0.1μV/°C,在30V满量程下,失调误差折算到输出端(假设增益为1)只有10μV,完全可以忽略。但如果用的是普通LM358,Vos可能到2mV,温漂7μV/°C,温度变化20°C就是140μV的漂移,折算成等效位数就损失了约2位。
3.4 功率级:从控制信号到实际输出的最后一公里
直流电源的功率级通常是一个线性调整管或开关变换器。线性调整管的优势是噪声低、响应快,但效率低;开关变换器效率高,但纹波和噪声大。
对于精度要求高的场景,线性调整管是首选。但线性调整管也有自己的问题:
- 调整管的饱和压降:影响最低可输出电圧
- 热漂移:调整管发热会导致结温变化,进而影响输出
- 负载调整率:负载电流变化时输出的稳定性
我见过一些电源在空载时精度很好,一加负载就漂了几mV,问题就出在负载调整率上。规格书里的“负载调整率”指标一定要看,通常用mV/A或百分比表示。
3.5 PCB布局与接地:看不见的误差源
即使所有器件都选对了,布局不好照样翻车。几个关键点:
- 基准源和DAC的接地:必须单点接地,避免功率地和信号地混在一起
- 输出采样点:ADC回读一定要从输出端子附近采样,不能从DAC输出节点采样
- 热对称:差分对和基准源要远离发热元件,或者做热对称布局
- 屏蔽与滤波:输出端加适当的RC滤波,但要注意滤波电阻会引入负载调整率误差
踩坑记录:曾经有一台电源回读值一直比实际输出高约2mV,查了半天发现是ADC采样点选在了DAC缓冲输出端,而缓冲器到输出端子之间有一个0.1Ω的走线电阻,5A负载时压降就是0.5mV,加上走线温漂,刚好凑出2mV的偏差。
3.6 校准:把系统误差修掉,但修不掉随机误差
校准能解决的是系统性误差:增益误差、失调误差、以及一定程度的非线性。校准解决不了的是随机误差:噪声、温漂、时漂。
校准的方法通常有两种:
- 出厂校准:厂商在标准条件下用高精度表逐台校准,把校准系数存在EEPROM里
- 用户校准:提供校准接口,用户用外部标准表自行校准
我建议选支持用户校准的机型,因为出厂校准的条件和你实际使用的条件可能差别很大。而且随着时间推移,器件老化会导致校准系数失效,能自己重新校准会方便很多。
4. ADC回读链路:你以为读的是输出,其实读的是“你以为的输出”
4.1 回读采样点:最容易做手脚的地方
这是我在开头提到的那个案例的核心问题。ADC回读的采样点决定了你读到的到底是什么。
常见的采样点选择:
| 采样点 | 读到的内容 | 优缺点 |
|---|---|---|
| DAC寄存器值 | 设定值,不是实际输出 | 最不准,但最稳定 |
| DAC缓冲输出 | 接近设定值,但没算功率级误差 | 较准,但忽略输出级 |
| 功率级输出端 | 实际输出,但可能引入噪声 | 最准,但需要滤波 |
| 负载端(远端采样) | 负载实际得到的电压 | 最准,但需要额外走线 |
真正诚实的做法是从功率级输出端或负载端采样。但这样读出来的值会有噪声和纹波,看起来“不稳定”,有些厂商为了数据好看就选择从前面采样。
4.2 ADC的参考电压:和DAC基准源同样重要
ADC的转换结果=输入电压/参考电压×满量程码值。所以参考电压的精度直接影响回读精度。
如果DAC和ADC共用同一个基准源,那基准源的漂移会在设定和回读两个环节同时体现,某种程度上会“相互抵消”——但这只是让回读值看起来跟设定值一致,实际输出照样漂。这就是为什么有些电源“设定和回读很一致,但实际输出不准”。
4.3 ADC的输入调理:分压、缓冲与滤波
ADC的输入范围通常远小于电源的输出范围,所以需要分压。分压电阻的精度和温漂直接影响回读精度。
- 电阻精度:0.1%精度的电阻,在30V满量程下引入的最大误差是30mV
- 电阻温漂:普通厚膜电阻温漂100ppm/°C,精密薄膜电阻可以做到5-25ppm/°C
- 分压比匹配:两个电阻的温漂要匹配,否则分压比会随温度变化
输入缓冲运放的失调和偏置电流也会引入误差。如果分压电阻阻值较大(比如几百kΩ),运放的偏置电流流过电阻会产生额外压降。
4.4 ADC的采样与滤波:速度与精度的权衡
直流电源的回读不需要高速采样,但需要低噪声。常见的做法是:
- 过采样:以远高于需要的速率采样,然后数字平均,可以降低噪声、提高有效位数
- 模拟滤波:在ADC输入前加RC低通滤波,截止频率根据需要的响应速度确定
- 数字滤波:在MCU里做滑动平均或中值滤波
过采样的效果可以用公式估算:每4倍过采样可以提升1位有效分辨率。一个12位ADC过采样256倍,理论上可以达到16位有效分辨率(前提是噪声是随机的且幅度足够)。
实操技巧:我在做ADC回读时习惯用“采样-排序-去掉最高最低-平均”的流程。比如连续采64个点,排序后去掉最高的8个和最低的8个,剩下的48个取平均。这样既能抑制突发噪声,又能保留足够的响应速度。
5. 温漂、时漂与噪声:精度指标里最容易被忽略的三个“漂”
5.1 温漂:精度指标的温度系数
几乎所有精度指标都会随温度变化。规格书里如果只写了“25°C下的精度”,那这个指标在实际使用中参考价值有限。
温漂的来源包括:
- 基准源的温漂
- DAC/ADC的增益温漂和失调温漂
- 分压电阻的温漂
- 运放的失调温漂
- 功率级的热漂移
整机温漂通常是各环节温漂的叠加。如果各环节温漂方向一致,会累加;如果方向相反,会部分抵消。但设计时不能指望抵消,要按最坏情况估算。
一个实用的估算方法:把各环节的温漂折算到输出端,然后求和。比如基准源50ppm/°C、DAC增益温漂10ppm/°C、分压电阻25ppm/°C,总温漂约85ppm/°C。温度变化20°C,满量程30V下漂移=30V×85ppm×20≈51mV。
5.2 时漂:老化与长期稳定性
器件会随时间老化,精度会慢慢漂移。基准源的年漂移通常在几十ppm到几百ppm,精密电阻的年漂移在几ppm到几十ppm。
时漂没法通过校准完全消除,只能通过定期校准来修正。选型时要关注规格书里的“长期稳定性”指标,通常用ppm/1000小时或ppm/年表示。
5.3 噪声:短期稳定性的敌人
噪声决定了输出的短期稳定性,也影响回读值的可重复性。噪声来源包括:
- 基准源的噪声
- DAC/ADC的量化噪声
- 运放的电压噪声和电流噪声
- 电阻的热噪声
- 电源纹波和开关噪声
噪声通常用峰峰值或RMS值表示。在直流电源场景下,我更关注低频噪声(0.1Hz-10Hz),因为它直接影响输出的短期漂移。
实测经验:用六位半表观察电源输出,如果最后两位数字一直在跳,说明噪声水平在几十μV到几百μV量级。如果最后一位稳定,说明噪声在10μV以下。这个观察方法虽然粗糙,但很实用。
6. 一套可以直接抄的选型与验证清单
6.1 选型阶段:规格书里必须找到的七个数字
拿到一台电源的规格书,我一般按这个顺序找关键指标:
- 设定精度:标注测试条件(温度、负载、预热时间)
- 回读精度:同样要看测试条件
- 温度系数:ppm/°C,最好分电压和电流分别标注
- 负载调整率:mV/A或百分比
- 纹波与噪声:mVrms或mVpp,标注带宽
- 长期稳定性:ppm/1000小时或ppm/年
- 基准源类型:如果规格书没写,直接问厂商
如果这七个数字里有三个以上找不到,我基本会放弃这款。
6.2 到货验证:用六位半表做三步测试
电源到手后,别急着上系统,先做三步验证:
第一步:空载精度测试
设定几个典型电压点(比如1V、5V、10V、20V、30V),用六位半表测量实际输出,记录偏差。同时记录回读值,对比回读值与实际值的差异。
第二步:负载调整率测试
在设定电压不变的情况下,从空载到满载逐步加载,记录输出电压的变化。计算负载调整率=mV/A。
第三步:温漂测试
如果条件允许,把电源放进温箱,在20°C、25°C、30°C、40°C下分别测量输出,计算温度系数。没有温箱的话,可以用热风枪局部加热基准源和DAC区域,观察输出变化。
6.3 常见问题排查表
| 现象 | 可能原因 | 排查方法 |
|---|---|---|
| 回读值与实际输出差异大 | 采样点选错 | 检查ADC采样点是否在输出端 |
| 设定值与回读值一致但输出不准 | 基准源漂移或功率级误差 | 测量基准源电压,检查功率级 |
| 空载准、加载后漂 | 负载调整率差 | 检查输出走线电阻和反馈采样点 |
| 开机准、预热后漂 | 温漂 | 监测关键器件温度,做温漂测试 |
| 最后几位数字跳动 | 噪声 | 检查滤波和屏蔽,增加过采样 |
| 长期使用后精度下降 | 时漂 | 重新校准,检查器件老化 |
6.4 几个容易被忽略的细节
- 预热时间:高精度电源通常需要15-30分钟预热才能达到标称精度,规格书里的精度指标一般是在预热后测的
- 校准周期:建议每年校准一次,高精度场合半年一次
- 环境温度:尽量在23±5°C的环境下使用,温度波动越小越好
- 负载特性:容性负载和感性负载可能引起振荡,影响精度
- 线缆压降:大电流场合要用远端采样,否则线缆压降会直接吃掉精度
7. 回到那个16位电源的案例
最后说回开头那台电源。后来我帮那个团队换了一台基准源是LM399、DAC用AD5791、输出级用OPA227加线性调整管的机型,价格贵了不到一倍,但实测设定5V输出,六位半表读数在5.0002V到5.0008V之间,回读值与实际值的偏差在0.3mV以内。温漂测试从20°C到40°C,输出变化约1.5mV,折算温度系数约2.5ppm/°C。
这个案例给我的教训是:选电源不能只看位数,要看整个信号链的每一个环节。DAC的位数只是起点,基准源、运放、功率级、布局、校准、回读采样点,每一环都在决定最终的精度。而精度指标本身也要看测试条件,没有条件的精度数字都是耍流氓。
如果你现在正在选型,我的建议是:先明确你的实际精度需求(不是分辨率需求),然后按第6节的清单去筛规格书,到货后按三步验证法实测。别被“16位”“24位”这种数字迷惑,实测数据才是唯一可信的。