尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

运放偏置电路导致ADC采样不准?从失调电压到温漂的完整排查指南

运放偏置电路导致ADC采样不准?从失调电压到温漂的完整排查指南 1. 先搞清楚偏置电路到底在做什么搞硬件的人应该都吃过ADC采样不准的亏传感器信号经过一级运算放大器放大送进ADC读出来的值要么整体偏了一个固定的数要么跳得让人抓狂要么随着设备温度慢慢漂。很多人的第一反应是ADC选型有问题甚至怀疑是PCB布局不行结果折腾半天最后发现病根在运算放大器偏置电路上。我自己在调试这类前端时踩过不少坑所以把排查思路、计算方法和常见错误整理出来希望对正在跟“采样不准”死磕的人有帮助。先澄清一个基本概念偏置电路的任务是给运放提供一个合适且稳定的直流工作点让交流信号能够被正常放大。很多人以为只要接成典型放大电路就能工作实际上信号源、运放供电方式和ADC输入结构都会对偏置点造成影响。偏置设计一旦出错运放可能还能输出波形但直流电平不对ADC读到的自然不准。1.1 运算放大器的输入级不是“理想大门”理想运放的输入阻抗无穷大、输入电流为零但现实中的运放并不是这样。运放输入级通常由双极型晶体管或场效应管构成双极型输入级需要一定的基极电流也就是输入偏置电流场效应管输入级虽然输入电流极小但依然存在栅极漏电流。这个电流会在外部电阻上产生电压直接把偏置点“顶歪”。更麻烦的是运放还有输入失调电压Vos。也就是说当两个输入端的电压真正相等时输出并不等于零而是有一个固有偏移。这个偏移随温度还会变化。偏置电路的作用之一就是把这些非理想因素对整体链路的影响压到最低。可以用一个生活化类比理解运放像一个放大器输入端是两个“秤钩”理想情况下不称东西时读数正好为零但实际秤盘本身就有重量如果偏置电路设计得不好就像秤盘上永远放了一块看不清的小石头你称什么都多了或少了这一块。1.2 单电源系统里的“虚地”从哪来在双电源供电比如正负5V系统里信号可以围绕0V上下摆动运算放大器的输出也能顺利输出负电压偏置相对简单。但在绝大多数嵌入式系统里只有单电源比如3.3V或5V运放无法输出负电压也不能处理负的输入电压这时就必须人为制造一个“中间电位”把所有信号整体抬升到ADC可采集的正区间。这个“中间电位”就是偏置电压最常见的做法是用两个等值电阻分压得到电源电压的一半再经过电压跟随器缓冲后送入运放的同相端。听起来很简单但问题恰恰出在这里很多设计直接用一个电阻分压网络接运放没有考虑分压点阻抗、运放偏置电流和参考电压源的纹波结果中点电位并不是想象中的VCC/2。比如说两个100kΩ电阻分压理论上中点电压稳定但如果你把分压点直接接到一个输入偏置电流为100nA的运放输入端这个电流在50kΩ等效源阻抗上会产生5mV的压降。5mV看起来不大如果后级增益是20倍等效到ADC输入就是100mV足以让一个12位、参考电压3.3V的ADC产生上百个LSB的误差。1.3 偏置电路出错后的典型症状偏置电路引起的ADC采样问题症状很有迷惑性但仔细分辨还是能找到规律的。第一种症状是零输入时读数不为零。传感器没有信号ADC却输出一个相对稳定的码值这通常是偏置点偏移导致。第二种症状是小信号放大正常大信号时波形削顶或削底这是因为偏置点不在输出电压范围的中间信号摆到某一侧时先碰到电源轨。第三种症状是不同批次、不同温度下测量结果差异很大今天校准好的零点过两天或者温度一升高又开始漂。我见过不少人遇到这些问题时反复检查ADC配置甚至怀疑芯片是假货实际上用万用表测一下运放输出端的静态电压问题立刻暴露。这也是为什么我一直强调画原理图时偏置电路一定要单独计算、单独验证不能复用参考设计就完事。2. 偏置电路误差的完整链条解析偏置电路带来的ADC采样误差通常不是单一因素造成的而是一条完整的误差链信号源阻抗、运放失调参数、偏置参考网络、ADC输入端口的电荷注入每个环节都会贡献一部分误差。要解决问题必须把整条链路拆开看。2.1 失调电压那个安静的“零点漂移”输入失调电压Vos是运放最基础的直流误差参数定义为让输出电压为零时两个输入端之间需要施加的电压差。Vos的来源是输入差分对的晶体管失配包括几何尺寸、掺杂浓度、应力等等。普通通用运放的Vos在几百微伏到几毫伏之间精密运放可以做到10微伏以下斩波稳零运放甚至可以做到微伏级。Vos对ADC采样精度的影响要折算到输出端。如果运放增益为G那么输出端等效的失调误差就是Vos乘以G。举例一颗Vos为1mV的运放增益为10输出端就有10mV的等效偏移对于一个参考电压3.3V的10位ADC1LSB约等于3.2mV10mV偏移就是3个LSB。如果系统还要求零点必须精确这个误差完全不可接受。更隐蔽的是Vos会随温度变化通常数据手册会给出温漂系数单位是μV/°C。一颗Vos1mV、温漂为5μV/°C的运放温度变化40°C就会额外产生200μV的偏移经放大后仍然可观。选型时不能只看25°C下的典型值必须关注全温度范围内的最大值。2.2 输入偏置电流与源阻抗的纠缠输入偏置电流Ib是第二个容易踩坑的参数。对双极型输入运放Ib通常在纳安到微安级别对CMOS或JFET输入运放Ib可以低到皮安级别。但这并不代表CMOS运放就永远更优因为CMOS运放通常输入噪声和失调电压更大选型时需要权衡。Ib对偏置电路的影响本质上是欧姆定律电流流过电阻必然产生压降。在一个典型的同相放大电路中信号源通过一个电阻连接到运放同相端如果这个电阻是100kΩ而Ib是50nA那么仅此一项就会产生5mV的附加电压。如果这个电压恰好落在信号通路上就会被后级放大。更麻烦的是Ib还有温度系数并且正负输入端的偏置电流通常并不相等两者的差值叫输入失调电流Ios。Ios造成的误差比Ib更难补偿因为它没有固定方向。很多教科书会建议在反相输入端串联一个阻值等于同相端源阻抗的电阻来“平衡”偏置电流这个方法在双极型运放上确实有效但CMOS运放输入漏电流太小且随机性强反而不建议强行平衡否则会增加噪声和额外误差。2.3 温漂数据“慢慢变歪”的元凶ADC采样值如果随着开机时间或环境温度慢慢漂移多半和温漂有关。温漂主要来自四个环节运放的Vos温漂和Ib温漂、偏置分压电阻的温漂、参考电压源的温漂以及ADC内部基准的温漂。普通厚膜贴片电阻的温漂通常在100ppm/°C以上温度变化10°C阻值变化0.1%。如果偏置网络依赖两个电阻的分压比哪怕两个电阻同型号也会因为各自温漂不一致导致分压点移动。我实测过一组普通0603电阻组成的1/2分压电路从25°C升到65°C分压电压漂了将近8mV。这个值已经超过很多高精度ADC一个LSB的数倍了。解决温漂问题没有捷径要么选用低温度系数的薄膜电阻或金属箔电阻要么选用内部集成基准的ADC或者使用软件定时校准。还有一种工程上非常实用的做法是让偏置电压尽量接近ADC输入范围的中间区域并且留有足够裕量这样即使温漂不超过设计余量系统依然能保证正常工作。2.4 共模电压与摆幅限制被忽视的边界运算放大器对输入信号的共模电压有明确限制数据手册里叫共模输入电压范围。简单说两个输入端的电压平均值必须落在运放规定的范围内超过这个范围输入级可能关断、翻转或者性能急剧恶化。偏置电路设置的工作点如果太靠近电源轨共模电压余量就会不足导致小信号放大正常大信号或特定输入电压下突然非线性。输出摆幅同样有边界。轨到轨运放虽然号称输出能到电源轨但实际带负载条件下离轨还有几十毫伏到几百毫伏的饱和压降。如果偏置点设得离某一侧电源轨太近信号摆幅稍大就会削波。ADC读数这时候表现为“某一段几乎不变化”曲线像被踩平了一样。设计偏置电路时一定要把共模输入范围和输出摆幅都画进闭环设计里。我习惯的做法是先把信号峰值叠加到偏置点上算出最高和最低输出电压再检查这两个值是否落在运放保证的输出线性区间内。不要只凭数据手册首页的“rail-to-rail”几个字就放心要翻到Detailed Specifications里看输出电流条件下的最大值和最小值。3. 实操从零设计一个抗偏置误差的ADC采样前端理论讲再多不如一个带完整数值的例子实在。这一节我以一个常见的工业传感器采集场景为例把设计过程从头到尾走一遍重点展示偏置网络参数怎么算、怎么选电阻、还要怎么接ADC。设计目标这样定传感器输出一个差分信号范围是-1V到1V属于双极性信号。系统只有单电源3.3VADC参考电压也是3.3V12位精度。我们希望通过偏置电路把这个负电压信号搬移到0.2V到3.0V之间让ADC既能采到正负半周又不会削顶削底。3.1 第一步先定增益和输出电压范围差分信号-1V到1V峰峰值为2V。目标输出范围0.2V到3.0V跨度2.8V。所以整个前端的信号增益是2.8倍。中点在输入为0V时对应输出1.6V这个1.6V就是我们需要建立的偏置工作点。此时要做一个重要选择用仪表放大器还是普通运算放大器。仪表放大器自带增益电阻和Ref接口直接把Ref接到1.6V基准上就能实现电平搬移设计最简单。如果手里只有普通运放就需要自己搭偏置叠加电路。下面我按普通运放方案继续因为这种方案更通用也能把计算过程讲透。我选用同相端偏置注入电路运放同相端有两个输入电阻一个接传感器信号Vin一个接参考电压Vref两个电阻在同相端汇合形成对输入信号和参考电压的加权叠加。同相端电压V可以写成V H*Vin (1-H)*Vref其中H由两个电阻的比值决定。输出端电压等于V乘以运放增益G。根据两个边界条件列方程输入-1V时输出0.2V输入1V时输出3.0V。先算增益GH 1.4也就是输出增量除以输入增量的一半。再算偏置G(1-H)*Vref 1.6V。这里G和H之间存在耦合需要联立解。我习惯先把运放闭环增益G定下来再反推H。取G2那么H0.71-H0.3代入偏置方程得到0.6*Vref1.6V所以Vref2.67V。这个电压可以用3.3V分压得到也可以用2.5V基准源加微调。考虑到实际电阻精度我会选择Vref3.3V然后重算G和H的组合。用3.3V做参考时G*(1-H)3.31.6GH1.4两式相加得到G*(1-HH)3.3? 不是两式相加是GH G(1-H)3.3/3.3? 让我重新推GH1.4G*(1-H)1.6/3.30.485两式相加G1.885。H1.4/1.8850.743。这样G1.885反馈电阻和增益电阻比例约0.885可以用Rf8.87kΩ、Rg10kΩ实现这是E96系列里的标准值。两个输入电阻的比值由H决定HRb/(RaRb)0.743可取Ra3.4kΩ、Rb9.76kΩ或者用Ra3.48k、Rb10k的近似值。实际焊接时我会先用E96电阻做初次调试再根据实测偏置电压微调。3.2 第二步偏置参考网络的分压、缓冲和去耦前面算出需要一个3.3V的参考电压Vref很多低成本设计会直接拿电源VCC当作这个参考。我强烈建议不要把系统电源直接当作ADC前端偏置参考因为数字电路、通信模块、电源纹波都会叠加到VCC上这些噪声会通过偏置网络进入信号链路。正确的做法是使用独立基准源比如REF3033、ADR3633这类低噪声精密基准芯片。它们输出稳定噪声低温漂小价格也不贵。如果项目实在要省成本必须用电源分压那么分压点必须经过两级处理先用电容大容量滤波再用运放电压跟随器缓冲最后才送到信号运放的同相端。从3.3V基准到Vref输入点之间我还会串一个隔离电阻并在运放同相端放置一个100nF陶瓷电容到地。这个电容的作用是滤除参考线上的高频噪声并给运放提供一个低阻抗交流路径。电阻和电容组成低通滤波器截止频率要远低于信号带宽但又不能过低导致上电建立时间太长。对于直流偏置应用截止频率取1Hz到10Hz都完全够用。分压电阻本身的精度会影响偏置电压。理论上0.1%精度、25ppm温漂的薄膜电阻是比较合适的起步配置。我在早期项目里用过1%厚膜电阻结果两块板卡之间偏置电压差异达到十几毫伏虽然单板可以校准但批量生产时每片都要单独校准非常痛苦。3.3 第三步运放输出到ADC之间的接口匹配运放输出端不能直接接到ADC引脚这是很多参考设计没有强调的细节。ADC内部通常有一个采样保持电路采样开关闭合瞬间会从外部抽取一股电荷如果运放的输出阻抗偏高电压会被瞬间拉低需要一定时间才能恢复。如果ADC采样时刻正好落在恢复过程中转换结果就会偏小。解决方法是加一个RC低通滤波器典型值是串联22Ω到100Ω电阻并联1nF到10nF电容。电阻的作用是隔离采样电容的电荷注入电容的作用是提供瞬态电荷储备。但这个RC的截止频率必须算好不能影响信号建立时间。以100Ω和1nF为例低通截止频率约1.6MHz对几十kHz以内的信号完全够用同时又有足够的带宽让信号快速稳定。采样电容的电荷恢复还和运放带宽有关。12位ADC通常要求采样源输出阻抗足够低以保证在采样窗口内电压建立到0.5LSB以内。粗略估算如果采样时间是1μs需要运放和RC网络的组合时间常数远小于这个值。我遇到过使用增益带宽积只有1MHz的运放驱动高速ADC的情况结果采样率一提高读数就明显偏低就是建立时间不够。这种情况下要么换更高带宽的运放要么增大采样保持时间要么前端驱动运放后接一个本地大电容作电荷水库。3.4 第四步误差预算验证算出器件参数不代表设计结束我习惯把所有误差来源折算成LSB做一张误差预算表。以一个参考电压3.3V、12位ADC为例1LSB约等于0.8mV。运放Vos为0.5mV等效到ADC输入端约0.9mV即1.1个LSB。运放Ib为10nA流过等效源阻抗20kΩ产生0.2mV误差约0.25个LSB。基准源温漂25ppm/°C温度变化30°C偏置电压漂移约2.5mV折算为3个LSB。反馈电阻比例误差如果0.1%增益误差还会贡献约1.7个LSB。把这些加起来最坏情况总误差可能达到6到8个LSB对于一般传感器采集系统可以接受但对于要求千分之一精度的系统就不够了。如果误差超出预期就要逐项优化换精密运放、降低分压电阻、使用低温漂基准或增加软件校准。误差预算的意义不是算出精确的最终值而是告诉你哪个环节最值得花钱和精力去改进。4. 典型错误设计复盘我踩过的三个坑光讲原理和计算还不足以让读者避坑我把自己实际项目里踩过、也帮别人排查过的三个典型错误完整复盘一下。每个案例都能在文章开头那类“ADC采样不准”的问题里找到影子。4.1 反相放大电路在单电源下没有直流偏置有一年做电池供电的电流采集模块为了省电整个模拟前端只有3.3V供电。原理图参考了一篇老应用笔记里的反相放大结构运放反相输入端接传感器输出反馈电阻和输入电阻决定增益输出直接进ADC。上电后发现信号越强ADC读数反而越小后来干脆读数几乎为零。查到最后才发现问题单电源下反相放大器无法输出负电压整个信号路径根本不在正常工作点。反相放大器的同相端在理论上应该接地但在单电源系统里这个“地”必须被抬升到电源中点否则输入信号负半周时输出会被电源轨挡住。教科书上的经典电路图都是用正负双电源画的直接搬到单电源系统就会栽跟头。正确的改法是把同相端接到Vref偏置点也就是用前面计算的1.6V供电。这样输出就围绕1.6V摆动ADC读到的零点码也变成了接近1.6V对应的值。如果没有独立的Vref至少也要用两个电阻分压加电容滤波产生一个中点参考。4.2 分压电阻用太大偏置电流把偏置点带歪另一个项目里为了降低静态功耗我把供电电压分压网络设计成两个1MΩ电阻串联中点接运放同相端。刚开始常温下测试零点还正常但批量出样后部分板卡ADC零点读数差异非常大有的偏正几百个LSB有的偏负几百个LSB。原因就是输入偏置电流。偏置电流在1MΩ电阻对地等效阻抗上产生的压降非常明显而且偏置电流本身有批次差异和温度变化。数据手册上典型值可能只有20nA但最大值可能是50nA或100nA按50nA乘500kΩ等效阻抗计算就是25mV的偏置误差再乘后级增益彻底把ADC读数带偏。后来我把分压电阻改成10kΩ加10kΩ功耗升高了大概两个毫安但偏置电压稳定了很多。如果想同时兼顾功耗和精度不能继续加大电阻而是应该加一级运放电压跟随器把分压点和高阻网络隔离开。还有一条路是选择输入偏置电流极低的CMOS运放让Ib本身小到可以忽略但要注意CMOS运放的低频噪声通常比双极型运放大。4.3 运放输出直连ADC采样瞬间电压被“抽空”第三个案例发生在采样率提升之后。产品原型在1kSPS采样率下精度很好我把采样率调到50kSPS后ADC读数开始有规律地偏低尤其在高通道切换时更加明显。用示波器探头点在ADC输入引脚能够清楚看到每个采样开始瞬间都有一个几十毫伏的负向毛刺随后缓慢恢复。这个毛刺就是ADC采样电容向运放输出吸取电荷造成的。运放的闭环输出阻抗不是零从几十欧到数百欧都有可能电荷抽取瞬间只能靠输出引脚上的分布电容补电电压自然会跌落。解决办法很简单在运放输出和ADC输入之间加一个RC滤波器电阻用49.9Ω或100Ω电容用1nF到10nF并且电容尽量靠近ADC引脚放置。同时把运放从低带宽类型换成高带宽类型这样毛刺恢复时间大大缩短。改完以后再测采样毛刺几乎看不到了ADC读数也稳定下来。5. 常见问题排查与快捷验证方法设计经验再多还是会遇到稀奇古怪的问题。这一节整理一个排查清单遇到ADC采样不准时可以按顺序查少走弯路。5.1 采样值整体偏大或偏小先查偏置点拿到一块“ADC读数整体偏移”的板子我第一步不是看代码而是用万用表测运放输出端的直流电压。把输入端短路到地运放输出应该等于设计好的偏置电压。如果实际测出来的值和理论值偏差超过预期就先处理偏置点。测偏置点时要注意万用表负载效应。普通万用表输入阻抗10MΩ对于低阻抗节点影响很小但如果被测节点本身阻抗很高比如1MΩ分压网络的中点万用表会分走一部分电流导致读数偏低。这种时候要用示波器或者高输入阻抗的表笔或者先把电路断电测分压电阻阻值再计算。偏置点确认无误后再检查增益电阻是否焊对、是否使用正确精度。很多时候是小电阻虚焊或者附近有锡珠导致增益误差。用热成像仪或放大镜目检通常能发现。5.2 采样值跳变、非线性用示波器看这里采样值来回跳往往和噪声或功率地干扰有关但也不排除偏置电路本身不稳。我会先把ADC输入端的波形用示波器抓出来触发模式打在ADC采样时钟的上升沿看采样时刻前端电压是否已经稳定。如果波形在采样窗口内仍然有明显的斜坡或衰减说明建立时间不够。这时要么降低RC滤波的截止频率要么增加采样时间要么换带宽更高的运放。如果波形本身噪声很大则偏置参考滤波电容、PCB地的布局可能要重新检查。手头没有差分探头的时候我一般用两个探头测两端再相减但要注意探头地线夹子一定不能形成地环路。非线性问题还要检查信号是否超出运放线性摆幅。把输入信号从小到大慢慢扫描同时记录ADC读数画出输入输出曲线。如果曲线在末端明显弯曲而不是直线说明偏置点或者增益设置太接近电源轨需要重新调整增益或参考电压。5.3 温度一高数据就飘温漂排查顺序设备运行一段时间后读数漂移首先判断是自发热还是环境温度变化。用手触摸运放和基准芯片表面如果明显发烫就得考虑元件本身的温漂。用电吹风或热风枪对可疑器件局部加热观察ADC读数是否快速变化可以迅速锁定是哪一颗元件主导漂移。接着看基准源和分压电阻。低温漂基准源是温漂控制的关键如果基准源温漂超标后级做得再好也无济于事。电阻温漂用眼睛看不出来最有效的办法是焊接前后对比或者用恒温箱做温度扫描。工程上如果时间紧张直接换成温漂25ppm或更低的薄膜电阻通常问题就解决了。软件上也有补救办法。很多ADC支持差分测量或比例测量同时采集一个参考通道将信号通道除以参考通道来消除基准温漂和电源变化。这个做法在电桥类传感器里很常用能显著提高系统稳定性。硬件上留出这个参考通道哪怕是机器贴片时多放两个电阻也值得。5.4 问题速查表方便排查我把这一节的内容整理成一张速查表现象可能原因优先检查项解决办法采样值整体偏大或偏小偏置点偏移、增益电阻误差万用表测运放输出静态点校准Vref、换精密电阻采样值跳变采样电容电荷注入、电源噪声示波器看ADC输入采样窗口加RC滤波、更换运放大信号削顶或削底偏置点不在输出范围中心、输出摆幅不足输入输出曲线扫描调整偏置点、降低增益温度升高后漂移运放Vos温漂、电阻温漂、基准漂移热风枪局部加热定位换低漂器件、软件温度补偿低采样率正常、高采样率偏低运放建立时间不足示波器看采样瞬间波形增大采样时间、换高带宽运放批量板间差异大电阻精度、基准离散性测多块板偏置电压换低温漂高精度电阻、校准前面提到的“双二极管偏置电路”等经典偏置结构在一些教材里还能看到利用二极管的钳位特性为运放建立静态工作点。但在低功耗、宽温度范围和需要稳定ADC采样的场景里二极管正向压降的温漂系数大约是-2mV/°C用来做偏置会带来极大的误差。我的态度很明确高性能ADC前端优先使用精密基准源加低漂移电阻不要在偏置网络上省成本。这套排查方法看起来很朴素但确实有效。我后来处理“ADC采样不准”类问题时基本都先假设是模拟前端偏置的问题而不是ADC本身。这个习惯帮我省了大量时间。每次设计前端时我也会强制自己先写一版误差预算表把运放失调、偏置电流、基准误差、电阻误差逐项折算成LSB再决定哪些地方值得用贵器件、哪些地方能省。这个过程本身就逼着我把偏置电路的问题想清楚了。
返回列表