拓冰建站拓冰建站
首页 / 资讯中心 / 正文

精密电路设计实战:信号链误差预算与高精度ADC噪声控制

1. 先从“输入短路还在跳”说起Precision Circuits 到底管什么1.1 一个真实案例24bit ADC 为什么只跑出 12bit 性能有次一位客户带着一块数据采集板来找我板子标称 24bit 分辨率输入端已经用粗铜线短接按理说读到的应该是一个非常稳定的数字但采集结果却在 ±240 个 LSB 之间乱跳。按 ±5V 量程折算每个 LSB 大约是 0.6µV也就是说板子自身在输出约 140µV 的峰峰值噪声。客户怀疑是 ADC 坏了换了几片同样型号问题依旧又怀疑是运放自激加了补偿电容也没用。我拿到板子后并没有急着查原理图而是先问了三个问题参考电压芯片是什么型号LDO 和开关电源怎么布置地平面有没有被切割。答案果然集中在两个地方参考电压源旁边就是一个 DC-DC 的功率电感而且参考源的输出滤波电容用的是 X7R 介质模拟地与数字地之间被一道窄缝切开数字总线跨过缝隙绕了很长一段回流路径。这两个问题叠加起来就是输入短路时码值乱跳的根源。这类问题就是 Precision Circuits 这个领域要解决的日常工作。它不是一个芯片型号也不是某个公司的产品名称而是高精度测量和信号处理链路的设计方法从传感器出来的微小电压经过放大、滤波、参考电压建立、模数转换最后变成一个稳定、可复现、可长期信赖的数字量。凡是要求分辨率达到 16bit 以上、长期稳定性达到 ppm 级、温度漂移可控的场景都会遇到这门学问。1.2 Precision Circuits 的三层含义我理解的 Precision Circuits至少包含三层含义。第一层是信号链设计。从传感器、调理电路、ADC、参考源到数字接口每一级都有各自的误差、噪声、带宽和驱动能力。你不能单独看某一颗芯片的手册而要像计算财务预算一样把整条信号链的误差加起来看总预算是否还够用。第二层是物理实现。同样的原理图换一种 PCB 布局性能可能从 20bit 掉到 14bit。走线长度、去耦电容位置、地回流路径、热源距离这些“图纸之外”的东西往往比芯片选型更能决定最终性能。第三层是验证与校准。高精度系统不是焊完就能用的需要通过合理的测试方法把噪声、漂移、增益误差从数据中分离出来再决定是换器件、改布局还是做软件校准。很多工程师在这层吃了亏用普通示波器去测微伏级信号测出来的根本不是板子的真实性能而是示波器探头的底噪。Precision Circuits 的典型应用领域包括工业变送器、数据采集卡、医疗仪器、科研仪表、音频测试设备和精密计量设备。这些设备的共性是用户对“测量结果能不能信”这件事极其敏感。1 个 LSB 的跳变在示波器上看起来无关痛痒但在一个 6 位半万用表里就意味着显示值的最后一位不稳定客户是不收货的。所以这篇文章我打算从误差预算、信号链结构、电源与地处理、器件选型、调试方法这五条线把做精密电路的思路完整展开。面向的读者是已经会画原理图、会写单片机程序但一碰到“读数反复横跳”“过半天就漂”“批次一致性差”就头疼的工程师。下面从最重要的一个观念说起。2. 精度是预算出来的误差拆解与设计折算方法2.1 静态误差失调、增益误差、温漂与非线性静态误差是指当输入信号不变时系统输出偏离真实值的部分。它们是最容易理解的误差来源但也是最容易被低估的。失调电压是最典型的静态误差。一个运算放大器的输入失调电压标称 ±10µV看起来很小但如果后级增益是 100 倍输出端就变成了 ±1mV。更麻烦的是失调会随温度变化数据手册里通常会给出失调温漂系数比如 0.05µV/°C。假设设备工作温度从 25°C 变化到 45°C这个温漂会额外引入 1µV 的输入等效失调输出端再乘以增益 100就是 100µV 的误差。对 16bit、±10V 量程来说100µV 大约相当于 0.3 LSB还能接受但如果系统目标是 20bit这个误差就完全不能忽略。解决方案有两个方向一是选用自动调零或者斩波放大器这类运放的失调和温漂能做到微伏以下代价是内部会产生频谱分量需要后级滤波处理二是做单点校准在出厂时把失调存起来每次上电读一次。但要注意单点校准只能消除某个温度点下的失调不能消除温漂所以要求高的系统还是要靠硬件指标说话。增益误差主要来自电阻网络。一个同相放大器的增益由两个电阻的比值决定如果使用 1% 精度的厚膜电阻两个电阻的比值误差最大可以到接近 2%。就算单颗电阻标称误差很小如果两个电阻的温度系数不匹配增益同样会随温度漂移。解决增益误差最可靠的方法是使用精密匹配电阻网络也就是把多个电阻做在同一块基底上保证它们随温度变化的方向和幅度高度一致。普通分立电阻的温漂匹配度通常在 10~50ppm/°C而集成电阻网络可以做到 1~5ppm/°C差距很大。非线性误差包括 INL 和 DNL通常被看成 ADC 的指标但模拟前端也会贡献非线性。一个常见的坑是运放输出接近电源轨时开环增益急剧下降导致增益呈现明显的压缩这时系统真实输出会比理想线性模型低。因此精密设计里我习惯把信号摆幅控制在电源轨以内 10%~20%不要为了扩大测量范围而把放大器逼到满幅输出。2.2 动态误差热噪声、建立时间、串扰和地弹动态误差是指系统响应过程中引入的误差它和频率、带宽、时间常数密切相关往往比静态误差更难排查。先看热噪声这是所有电阻都天生带有的。计算公式是[ E_{rms} \sqrt{4kTRB} ]其中 (k) 是玻尔兹曼常数 (1.38\times10^{-23})(T) 是绝对温度(R) 是电阻值(B) 是系统等效噪声带宽。一个 10kΩ 电阻在 25°C、1kHz 带宽内会产生大约 1.29µV rms 的噪声如果带宽放宽到 1MHz噪声就变成 12.9µV rms。所以精密电路必须严格控制带宽该滤波的地方一个都不能省。建立时间是另一个经常被忽视的因素。SAR ADC 在采样瞬间会把内部电容接到输入端相当于一个瞬态负载运放输出会立刻被拉掉一点电压然后靠运放的带宽把它恢复回来。如果运放建立时间不够采样电荷还没来得及恢复ADC 就已经锁存了读数结果就是每次都有一点误差。通常的做法是在运放与 ADC 之间加一个 RC 缓冲网络比如串联 20Ω、并联 1nF 电容让采样瞬间的电荷由电容提供而不是完全依赖运放。当然这个 RC 的值要看具体 ADC 的输入结构照抄别人的电路不一定有用。串扰则是布局层面的话题。一根携带 3.3V 方波的数字线如果和模拟信号线平行走 3cm间距只有 0.3mm寄生电容和互感足以把几十微伏的信号耦合进模拟通路。高频数字边沿的上升时间越短串扰越严重。处理办法是让敏感信号走内层两侧都有完整的参考平面并确保数字走线不穿越模拟区域。地弹是更隐蔽的问题。当数字输出同时翻转时大量瞬态电流流过电源和地引脚会在 PCB 地线上产生压降。即使地平面阻抗只有 1mΩ几百毫安的尖峰电流也能制造几百微伏的电压波动。这些波动如果落在参考点或模拟输入附近就会直接显示为 ADC 码值跳动。2.3 从 LSB 反推器件指标一个 16bit 采集卡的噪声预算计算理解误差来源之后真正有用的技能是把这些误差折算成器件选型指标。举一个具体的例子设计一个 16bit、±10V 输入的数据采集卡。LSB 大小是[ LSB \frac{20V}{2^{16}} 305.18µV ]工程上通常把总误差控制在 1 LSB 以内精密的系统要求 1/4 LSB。如果按 1/4 LSB 分配允许的总噪声峰峰值大约是 76.3µV。噪声的峰峰值和 RMS 之间通常按 6.6 倍换算所以允许的 RMS 噪声大约是[ \frac{76.3}{6.6} \approx 11.6µV ]接下来把系统在 10Hz 等效噪声带宽下过一遍。假设前级使用一个噪声密度为 10nV/√Hz 的运放输入端等效电阻为 10kΩ10kΩ 电阻的热噪声密度约为 12.9nV/√Hz。这两个噪声源合成后的总噪声密度大约是 16.3nV/√Hz。在 10Hz 带宽下的 RMS 噪声只有[ 16.3nV/\sqrt{Hz} \times \sqrt{10} \approx 51.6nV ]从纯噪声密度看这个前端毫无压力。但这只是理想情况。到了 20bit 级别占主导的往往不是放大器的白噪声而是参考源的噪声、电源纹波、外部干扰和热漂移。所以我在做预算时通常会把理论噪声留出 3~5 倍的安全余量并把参考源、电源、PCB 布局的误差单独列出来逐项算而不是只算运放和 ADC。这里给一个简单的 Python 脚本方便读者自己算噪声预算import math k 1.380649e-23 T 298.15 R 10_000 B 10 # 等效噪声带宽单位 Hz resistor_noise math.sqrt(4 * k * T * R * B) amp_noise_density 10e-9 # 10 nV/sqrt(Hz) amp_noise amp_noise_density * math.sqrt(B) total_noise math.sqrt(resistor_noise**2 amp_noise**2) print(f10kΩ 电阻热噪声: {resistor_noise*1e6:.3f} µV rms) print(f运放噪声: {amp_noise*1e6:.3f} µV rms) print(f合成噪声: {total_noise*1e6:.3f} µV rms)注意这里算的是 10Hz 带宽下的结果。如果板子上没有做好抗混叠滤波实际等效噪声带宽可能是 10kHz 甚至更宽噪声会立刻上涨 30 倍以上这就是很多“理论指标很好、实测一塌糊涂”的项目的真相。3. 信号链顶层设计最关键的三个选择差分结构、参考电压和 ADC 架构3.1 单端与差分共模噪声如何被低 CMRR 悄悄带进来输入信号接到 ADC 之前首先要想清楚用单端还是差分。单端结构最简单一根信号线对地测量但缺点也非常明显地平面上的任何噪声都会直接叠加到信号里。如果信号源是热电偶、桥式传感器这类低电平源单端连接的抗干扰能力很差因为信号线的对地电压并不稳定你测到的其实是“信号地噪声”。差分结构用两根线分别携带信号有用信号是两根线之间的差值外部噪声则同时出现在两根线上被当作共模信号。差分放大器或者仪表放大器的作用就是放大差模、抑制共模。这里最关键的是共模抑制比CMRR它和数据手册里给出的简化图完全不同实际系统的 CMRR 受限于电阻匹配精度、输入偏置电流和 REF 引脚的处理方式。一个常见错误是把仪表放大器的 REF 脚直接接地尤其当放大器使用单电源时这会让输出电平严重偏离设计点。REF 引脚的偏置电流需要低阻抗驱动最稳妥的做法是接一个电压跟随器把参考电压精准地送到 REF 脚。如果直接用一个分压电阻去驱动 REF电阻分压器的输出阻抗和温度漂移会破坏整个放大器的 CMRR。3.2 参考电压Vref 的噪声会被 ADC 当成信号放大ADC 的转换结果等于输入电压与参考电压的比值[ DN \frac{V_{in}}{V_{ref}} \times 2^N ]这意味着参考电压的任何波动都会被 ADC 当成输入信号的一部分。更准确地说Vref 的波动会作为一个乘法因子影响转换结果。如果 Vref 有 30µVpp 的噪声而基准标称值是 2.5V这相当于 12ppm 的噪声。对于 24bit ADC 来说LSB 只有 0.3ppm 左右所以参考源的噪声很容易超过量化噪声成为系统的主导噪声源。选参考电压源时工程师往往只盯着初始精度和温度系数却忽略了三个规格输出噪声谱密度、长期稳定性和热迟滞。初始精度可以用软件校准消除温度系数也可以用校准曲线补偿一部分但噪声是随机量无法校准。长期稳定性决定了设备用一年后读数会不会偏热迟滞则决定了同一个温度点升温过程和降温过程测到的值是否一致——这两项指标差的基准芯片会在温箱测试中露出原形。在电路实现上参考电压输出端通常要加 RC 低通滤波把宽带噪声压到极低。但要注意加了滤波器之后参考源的动态响应会变慢当 ADC 采样电流瞬时变化时参考电压来不及恢复就会产生建立误差。所以滤波器带宽不能压得太狠一般建议在 10Hz 到 1kHz 之间折中具体要看 ADC 的参考输入结构和采样速率。3.3 SAR 还是 Δ-Σ别只看分辨率先看测量场景SAR 和 Δ-Σ ADC 在精密系统里都有大量应用选型不该以“谁分辨率高”为标准。SAR ADC 的特点是逐次逼近单次转换速度快延迟低适合多通道扫描和需要快速响应的控制系统。它的劣势在于模拟前端要求高输入端的采样电容会在每次转换前产生“反冲”需要运放有足够驱动能力同时在采样频率附近必须有一阶或二阶抗混叠滤波否则带外噪声会折叠进基带。如果你打算用 SAR 做高精度测量一定要仔细阅读手册里关于输入驱动电路的建议很多参考设计会给出具体的运放型号和 RC 网络参数。Δ-Σ ADC 依靠过采样和数字滤波用时间换分辨率本质上是把模拟滤波的负担转移到了数字域。它对模拟前端的需求温和一些但有两个新要求一是时钟要稳定时钟抖动会直接影响调制器的噪声整形效果二是转换结果有固有延迟不适合高频实时控制。对于直流或低频测量比如温度、应变、电压校准Δ-Σ 往往是更好的选择。我见过不少项目一开始为追求速度选了 SAR结果发现噪声压不下去只好在外部加大量滤波和软件平均最后还不如直接用 Δ-Σ。反过来也有项目用 Δ-Σ 做高速动态测量发现延迟无法满足闭环控制只能推倒重来。架构选择必须和测量场景绑定下面这张表可以快速拍板场景推荐架构核心原因直流信号、低频缓变Δ-Σ过采样数字滤波噪声性能好多通道顺序采样SAR单点转换快切换开销小需要闭环保留波形SAR 或流水线延迟低适合实时处理内置传感器上的高阻源Δ-Σ输入缓冲特性对源阻抗容忍度高极低功耗电池设备SAR无持续运行的数字滤波器功耗可控4. 电源、地和 PCB最后 3 位有效位经常死在图纸之外4.1 LDO 不是保险箱PSRR 随频率升高而恶化精密电路的电源设计最容易犯的错误是以为“信号链电源加一个 LDO 就安全了”。LDO 的电源抑制比PSRR不是一条平直的线。低频段比如 100Hz 时好的 LDO 可以做到 70dB 甚至更好但频率上升到 1MHzPSRR 往往掉到 20dB 以下。而 DC-DC 开关电源的噪声并不是纯粹的 100kHz 基波它包含大量高频谐波和尖峰这些高频分量很容易穿过 LDO进入模拟电源。我的经验是模拟电源链路采用“DC-DC 磁珠/π 滤波 LDO 低噪声后级滤波”的结构。DC-DC 负责把电压降到安全范围LDO 负责纹波抑制π 滤波负责压掉 LDO 自己带不动的残余噪声。给 ADC 供电时模拟电源和数字电源要分开走线即使两路都来自同一个 LDO也应该分别用磁珠各自隔离避免数字逻辑的瞬态电流通过电源耦合约到模拟部分。参考电压源和模拟前端的电源最好再串一级小型低噪声 LDO 或者 RC 滤波。对于电流非常小的参考芯片串联一个 10Ω 电阻然后接 10µF 电容就能把谐振点降低不少。但要注意RC 滤波会引入较大的直流压降必须确认负载电流变化范围内的电源电压仍然满足规范。4.2 统一的模拟地平面比“一刀切”更可靠关于模拟地和数字地业内长期流传一种做法把地平面切成两个孤岛模拟地一边数字地一边然后单点连接。这个做法在少数低频场景下有效但在高速混合信号系统里往往是灾难。原因是地回流电流并不会乖乖沿着你画的线走它会选择阻抗最低的路径。如果你把地平面切了一道缝数字信号回流电流就必须绕过缝隙绕远路这会形成一个巨大的电流环路环路面积越大辐射和耦合噪声越强。结果数字噪声不降反升还会干扰模拟区域。现代混合信号 PCB 更可靠的做法是统一地平面分区布局。把数字器件集中在板子一角让它们的回流电流只在数字区域内流动模拟器件放在另一侧周围铺满完整的地平面。关键信号走内层两侧夹着完整的地铜这样回流面积最小。如果实在需要在数字区和模拟区之间放隔离带也要保证任何高速数字走线不在模拟区域上空跨越并且跨越分割线的信号必须提供紧邻的过孔让回流电流流畅通过。星形接地在某些场景仍然有用比如低噪声基准芯片的参考地、仪表放大器的输出参考地。但它的适用范围是低频、小电流电路不能用于高频数字电路。4.3 去耦电容、开尔文连接与热漂移布局里的毫米级差异同样原理图为什么有人做出来 20bit有人只能做到 14bit答案常常就在布局的毫米级差异里。第一个细节是去耦电容的位置。芯片手册说“在电源引脚旁放置 0.1µF 电容”这个“旁”意味着走线要先到电容再到引脚而不是先到引脚再到电容。如果是后者电源线上的感抗会把去耦电容的作用削弱一大半。参考芯片的 REFC 引脚旁通常会指定必须用 1µF 到 10µF 的低 ESR 电容而且不能图省事换成超小封装因为小封装电容的额定电压和直流偏压特性会影响实际容量。第二个细节是开尔文连接也叫四线连接。当你要测量一个低值电阻比如 1mΩ 时PCB 走线和连接器本身的接触电阻可能比被测电阻还大。这时候应该在电阻本体两端各引出一条独立的采样线直接连到 ADC 或放大器的高阻抗输入端而不是用承载电流的那根线同时采样。这样走线压降就不会进入测量结果。第三个细节是热漂移。精密电阻和基准芯片外部看起来只对温度敏感但温度来源往往不是环境而是板上几个发热大户。LDO、数字控制器、功率驱动芯片都有可能把局部温度抬高十几度。如果精密电阻离 LDO 只有 3mm电阻体感受到的温度会比环境高出不少温漂误差也成倍放大。我的原则是发热器件和敏感器件之间的距离至少保持 10mm 以上实在来不及改布局就在发热器件下方打散热过孔把热量导到背面的铜面减少横向传导。5. 器件清单里的隐形陷阱电阻温度系数、电容偏压特性和连接器热电动势5.1 厚膜和薄膜电阻同样是 0.1%命运完全不同很多人选电阻只看初始精度0.1% 误差就是精密电阻了。但实际上对精密电路来说温度系数、电压系数、噪声和长期稳定性往往比初始精度更重要。厚膜电阻的材料结构决定了它的电压系数比较明显外加电压变化时阻值会有微小变化而且噪声谱比薄膜电阻高一个数量级。薄膜电阻虽然贵一些但温度系数能控制在 10~50ppm/°C噪声更低长期稳定性更好。如果是高精度的比例电路比如分压器、增益网络最理想的选择是同一薄膜工艺制造的电阻网络因为同一基片上电阻的温漂方向和比例能够高度匹配这和用两颗独立电阻拼出来的电路完全不是一个概念。下面这张表可以帮你在选型时快速权衡电阻类型典型初始精度温度系数噪声典型用途厚膜0.5%~5%100ppm/°C 起中等上拉、限流、LED薄膜0.1%~1%5~50ppm/°C低精密分压、仪表放大、滤波金属箔0.005%~0.1%0.05~2ppm/°C极低计量标准、基准分压电路绕线0.01%~1%10~20ppm/°C低大功率低感、低噪声低频应用如果你在低成本项目里被迫使用厚膜电阻至少要保证它在信号路径中不处于决定增益或比例的位置并且工作温度变化不大。否则后续校准会非常痛苦因为厚膜电阻的温漂并不是一个稳定的常数批次不同、流过它的功率不同漂移行为都会变化。5.2 X7R 电容的容量消失问题滤波器的截止点会悄悄跑偏陶瓷电容里的 X7R、X5R 介质常被工程师当成普通电容随手就用。但在精密电路里这种电容有一个非常隐蔽的陷阱直流偏压会导致容量大幅下降。一颗标称 10µF、耐压 25V 的 X7R 电容在 10V 直流偏压下有效容量可能只剩标称值的 20%~50%。如果这颗电容正好用在参考源的滤波网络里截止频率可能会偏移到完全不同的位置整个系统的噪声整形性能也就跟着变了。更麻烦的是这种容量衰减随电压变化信号电压不同滤波效果也不一样。信号通路的电容我尽量选用 C0G/NP0 介质。虽然它的容量上限通常只有 1µF 左右但温度系数接近零电压系数很小损耗角正切也低性能稳定得多。需要更大容值时可以选薄膜电容比如聚丙烯或者聚苯硫醚电容它们适合用于积分器、滤波器和采样保持电路。陶瓷 X7R 仍然可以在电源滤波、参考源的大容量“电荷储能”位置使用但要知道它的有效容值会打折设计时要留足余量。5.3 微伏级误差也可能来自连接器和继电器很多精密设备的“神秘漂移”最终查出来是在连接器和继电器上。连接器的金属接触处本质上是两种金属的接触。不同材料之间只要存在温度梯度就会产生热电动势Thermal EMF也就是一个微伏级的电压。常见规格的镀锡连接器在引脚两侧温度差 1°C 时可能产生几微伏到几十微伏的热电动势。对于高精度直流测量这已经是非常大的误差来源。解决办法有几个方向选择低热电动势的连接器设计比如镀金触点、同种金属配对让输入端子尽量远离发热源保持两端温度一致使用继电器的扫描开关时选择低热电动势的型号或者干脆在测量序列里做正反接测量把热电动势的固定部分抵消掉。另外连接器的镀层老化和微动磨损会导致接触电阻不稳定。镀金连接器虽然贵但长期可靠性好得多。工业现场做在线测量的设备如果没有预算用镀金接插件至少要在外壳设计和安装时避免振动和热循环带来的微动磨损。6. 把精度调到板子上一套完整的上电排查与定位方法6.1 输入短路的均值与标准差先分清失调和噪声拿到一块新板子我从来不直接接传感器而是先把输入端可靠短接跑一轮原始数据。具体做法是用一段短而粗的铜线直接跨接在信号输入端和对应的回流端之间然后采集 1000 次 ADC 读数。对这批数据做两个统计量均值反映系统失调标准差反映噪声水平。更直观的是计算峰峰值噪声它大约是标准差的 6.6 倍。如果短接后的均值偏移很大比如 500µV而输入信号本身是 ±10V这可能意味着失调可以通过软件校准消除但温漂部分仍然残留。如果标准差比预期大很多就要进一步判断噪声从哪来。我的经验是把输入短接位置改成靠近 PCB 板上 ADC 前端的测试点而不是通过一根 1 米长的线缆接出去否则你测到的可能不是板子的问题而是线缆的天线效应。6.2 用平均次数做“白噪声测试”噪声有没有按 sqrt(N) 下降判断噪声到底是白噪声还是外部干扰一个很有效的办法是看多次平均后噪声的变化。如果 ADC 的噪声是以白噪声为主对 N 次读数求平均RMS 噪声应该按 (\sqrt{N}) 倍下降。平均 4 次噪声大约降 6dB
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门