ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

电压跟随器中那颗电阻的学问:反馈取点同时解决失调与保护

电压跟随器中那颗电阻的学问:反馈取点同时解决失调与保护 1. 电压跟随器为什么“简单却不省心”1.1 理想跟随器与实际电路之间的差距电压跟随器也叫单位增益缓冲器是模拟电路里最基础的电路之一。理想情况下它输出等于输入、输入阻抗无穷大、输出阻抗为零能完美隔离前后级。很多初学者觉得这电路简单到没什么好讲的一个运放输出直接连反相输入端正相输入端接信号完了。但从“能跑”到“好用”中间的坑比想象中多得多。我自己做过一批基于LM358的传感器信号调理板电路看起来一模一样有的批次输出纹丝不动有的批次满载时偏了将近100mV还有几块板子在插拔信号线时芯片直接报废。最后排查下来问题都出在那个“没必要”的电阻上。这颗电阻就是电压跟随器设计进阶的第一个分水岭电阻放在哪、阻值选多大、反馈从哪里取直接决定了直流精度、稳定性和芯片寿命。1.2 失调电压的两副面孔Vos与Ib的工程区别一说到“失调电压”大部分工程师第一反应是运放数据手册里的Vos。LM358的Vos典型值在2mV左右最大5mV这个参数在大多数跟随器场景下完全可以接受。但真正让输出产生误差的往往不是Vos而是输入偏置电流Ib在源阻抗上产生的压降。这个区别非常关键。Vos是运放输入级内部不对称导致的“固定误差”跟外部电路几乎无关而Ib引起的误差是电流流过外部阻抗产生的电压降方向、大小完全由外部电路决定。LM358是双极性运放输入偏置电流方向是从输入端往外流的典型值50nA最差能到几百nA。如果你在正输入端串了一个100kΩ的电阻Ib流过它就会产生5mV甚至几十mV的误差直接淹没Vos。在计算“总失调”时经验公式可以写成Vout_error ≈ Vos Ib⁻ × R⁻ Ib⁺ × R⁺其中R⁺和R⁻分别是正负输入端对地的等效直流阻抗。在电压跟随器中负输入端直接接输出输出阻抗被环路增益压得很低所以Ib⁻×R⁻这一项几乎可以忽略但如果你在正输入端串了保护电阻或者信号源内阻本身很大Ib⁺×R⁺这一项就会成为主要误差源。很多做传感器采集的工程师都吃过这个亏信号源内阻10kΩ起步运放选了个偏置电流几百nA的双极性运放结果零点漂移大得离谱。这也是为什么高阻信号源场合推荐JFET或CMOS运放的原因。1.3 芯片保护需求输入过压、浪涌与容性负载第二个被忽视的问题是芯片保护。电压跟随器经常被用来缓冲外部信号而外部信号线在外面走一圈之后什么事都可能发生插拔瞬间的静电放电、电机启停造成的浪涌、电源上电顺序导致的过压反灌。LM358的输入级并没有完整的ESD保护结构或者说它的保护能力相当有限。数据手册上给出的输入电压范围是-0.3V到Vcc0.3V一旦外部超过这个范围输入级的ESD二极管或者寄生PN结就会正向导通电流直接灌进芯片。限流不够的话芯片就“啪”一下没了。另一个常见问题是容性负载。跟随器的输出如果直接接一根长同轴线或者一个大电容很容易自激振荡。运放输出级存在一定的开环输出阻抗这个阻抗和负载电容构成一个额外的极点降低了相位裕度。轻则方波变圆、波形振铃重则高频啸叫、芯片发烫。这些问题单独看都不难解决但难的是用最少的元件同时解决。于是就有了我这篇文章想讲的核心内容在特定位置放一颗电阻同时控制直流误差和提升芯片的可靠性。2. 那颗电阻到底串在哪里三种位置对比2.1 正输入端串联电阻偏置电流补偿与ESD限流最常见的一种做法是在正输入端串联一颗电阻很多人以为这样能同时起到偏置补偿和输入保护的作用。这个想法对一半错一半。从保护角度看正输入端串电阻确实有效。当输入电压超出电源轨时这颗电阻限制了流入输入级ESD二极管的电流。比如输入被拉高到12V电源是5V如果没有串电阻ESD二极管相当于被硬生生正向导通流过几毫安甚至几十毫安的电流串了10kΩ电阻后电流被限制在(12-5.7)/10k≈0.63mA大多数运放的输入级都能扛住这个量级。从失调角度看事情就没那么简单了。如前面提到的正输入端串电阻会引入Ib⁺×R⁺的压降反而可能增加总失调。只有当信号源内阻为正、且恰好与负输入端的等效阻抗匹配时两颗偏置电流在两端产生的压降才会相互抵消。这也是常规反相/同相放大器设计里讲究“输入电阻平衡”的原因。但电压跟随器和普通放大器有个本质区别负输入端直接接的是输出端它的等效阻抗不是信号源内阻而是闭环后的输出阻抗通常只有几十毫欧。要让正负输入端阻抗平衡正输入端的串联电阻也应该接近于零。所以想靠一颗“大阻值”电阻同时实现ESD限流和Ib补偿在单位增益结构里基本是不可能的必须另想办法。2.2 输出端串联电阻隔离容性负载和短路保护输出串联电阻是目前工业上用得最多、也最实用的保护方案在音频功放、电源缓冲、传感器驱动电路里都能看到它的身影。它的核心作用有两个。第一是隔离容性负载。运放输出脚和负载之间串一颗几百欧的电阻把负载电容和运放输出阻抗隔开避免电容直接落在运放反馈环路里形成振荡。第二是限制短路电流。如果输出端意外对地短路运放不会直接输出一个很大的电流硬抗而是通过这颗电阻把电流限制在安全范围内。但很多人栽就栽在这个电阻的反馈取点位置。反馈如果是从运放输出引脚那里拉出来的负载电流流过电阻的压降就完全反映在输出端负载越重误差越大。这就是一个典型的“人为制造失调电压”的接法输出精度被自己的保护电阻毁了。2.3 反馈取点位置决定一切这节内容是全篇文章的关键建议反复读三遍。先给结论那颗电阻必须放在“运放输出引脚”和“真正的输出节点”之间而且反馈线必须从“真正的输出节点”取回不是从电阻前面取。画成文字版就是错误接法运放输出脚连线到Riso一端Riso另一端接负载反馈线从运放输出脚电阻前拉到反相输入端。正确接法运放输出脚连线到Riso一端Riso另一端接负载反馈线从Riso另一端负载端拉到反相输入端。这两种接法在外观上只差一根线的位置电气特性天差地别。错误接法下Riso在反馈环路之外负载电流Iload流过Riso产生的压降全部体现在输出电压上相当于输出精度被恶化了Iload×Riso。正确接法下Riso被包含在反馈环路之内运放会自动调整输出电压让负载端的电压精确等于输入信号Riso上的压降由运放自己“消化掉”。我还特意强调一点这个分享不是停留在理论推导层面的“学院派结论”我是在实际量产项目中踩过坑后才彻底理解的。当时做一批音频信号分配板输出用运放驱动50Ω同轴线缆保护电阻选了100Ω反馈直接从运放脚取。空载测试一切正常接上负载后输出幅度掉了一大截拿示波器一量才发现同轴线末端电压只有开路的82%。后来把反馈线从电阻末端拉回来同样一颗100Ω电阻带载精度和空载几乎一致频响也平直了。从那以后我给自己定了一条规矩所有带输出电阻的电路先问一句“负载端的电压被反馈采样了吗”。3. 进阶推导怎么用一颗输出电阻同时解决失调和保护3.1 为什么这颗电阻不会引入新的失调回到标题说得“同时解决失调电压和芯片保护”。严格说输出串联的电阻并没有降低运放自身的Vos但它通过反馈接法避免了保护电阻自己成为新的失调源。下面推导一遍传导路径。设输入参考电压为Vin运放开环增益为A运放输出引脚内部等效源为VoaRiso两端分别为Voa端和Vout端负载电流为Iload。正确接法下反馈压力落在Vout上运放的工作方式如下Vout A × (Vin - Vout)所以闭环输出Vout A/(1A) × Vin当A趋近无穷大时Vout≈VinRiso上的压降由运放自身输出电压升高来补偿。换句话说无论Iload多大只要运放没进入饱和、输出电流在额定范围Vout始终等于Vin。整体来看Vout相对于Vin的误差由Vos决定和Riso阻值、Iload大小都没关系。错误接法下反馈压力落在Voa上输出电压变为Vout A/(1A) × Vin - Iload × Riso最后多出来的一项是纯粹的直流误差而且随着负载电流变化。这个误差在工程上完全可以理解成“负载调制”但它表现出来的现象就是加入保护电阻后输出失调变大。所以我说正确接法下一颗电阻同时满足保护需求和直流精度本质上是用反馈环路把那颗电阻“隐藏”了起来。3.2 电阻值怎么选从限流和稳定性两个角度看Riso的阻值选择并没有哪个固定值适合所有场景需要根据负载和芯片的输出能力来权衡。我给出两组参考计算公式。第一按短路保护需求确定下限。假设运放最大允许输出电流为Isc_max电源电压为Vcc则Riso至少要满足Riso ≥ Vcc / Isc_maxLM358的短路输出电流典型值在40mA左右但持续短路时芯片会发热我一般按20mA作为安全阈值。单电源5V供电时Riso≥5V/20mA250Ω取标称值270Ω就能把短路电流限制在18.5mA左右。双电源±5V供电、输出摆到10V时Riso至少500Ω我常用470Ω或510Ω。第二按容性负载稳定性确定上限。Riso和负载电容Cload构成一个零点典型经验值是让Riso×Cload的乘积对应的时间常数不小于1μs左右。比如驱动1μF电容Riso取值不小于1Ω到10Ω就够了这时候主要矛盾可能是短路电流不是稳定性。驱动100nF电容Riso取几十欧到一两百欧就非常稳。实际项目中我会先用Multisim做AC扫描观察相位裕度再根据实际情况调整。阻值过大也有坏处运放输出节点和负载节点之间的电压差随负载电流变大而变大运放可能提前进入饱和或者输出级驱动电流受限。做压摆率测试时Riso太大会让上升沿变慢这在高频信号缓冲时要特别注意。3.3 LM358的工程限制与折中方案LM358有一堆独特的脾气选Riso时也要把这些因素考虑进去。首先是它的大信号输出特性。LM358输出级是准互补推挽上管是PNP达林顿结构大电流输出时本身就有一定的饱和压降通常几百毫伏到一伏不等。加上Riso之后如果负载电流很大运放可能先在内部饱和Vout端就开始跟不上了。所以Riso不能无限取大否则重载下保护是有了精度却保不住。其次LM358的输出电流能力有限。数据手册给出的是典型的电流源/电流阱能力拉电流大约20mA灌电流大约10mA。接上Riso之后短路电流被限制住但正常工作时也要确保负载电流不超过这个范围否则输出波形会削顶。第三偏置电流方向的特殊性。前面说了LM358的Ib是从输入端往外流的如果你同时还做了正输入端的阻抗匹配两颗输入端的压降方向是一致的没有平衡抵消的效果。所以LM358做电压跟随器时正输入端尽量不要串大电阻。这也是为什么很多老工程师依赖LM358时会在输入端并联一个电容而不是串电阻来滤波怕的就是串电阻影响直流误差。如果信号源确实需要滤波可以改成RC低通串一颗小电阻100Ω级别再加电容到地电容对直流没影响电阻带来的Ib压降也小比直接串100kΩ合理得多。4. Multisim仿真验证完整流程4.1 搭建两种反馈接法对比电路我用的Multisim版本是14.3不同版本界面略不同但操作逻辑基本一致。下面以LM358为例把整个仿真验证过程写清楚。新建一个电路文件从菜单“Place→Component”里搜索LM358选LM358AD或者LM358N都可以。注意Multisim里同一个型号往往有多个厂家的模型TI和安森美的模型参数略有差异仿真结果也会不完全一样。追求和手头芯片一致的话选对应厂商的模型。放置两个运放左边那个模拟“错误接法”右边那个模拟“正确接法”互相对照。电源部分我用双电源±5V输入信号用1V直流源负载用100Ω电阻Riso用500Ω电阻。错误接法连线输入信号1V接运放正输入运放输出脚接Riso一端Riso另一端接负载电阻100Ω到地反馈线从运放输出脚Riso之前拉到反相输入端。正确接法连线输入信号1V接运放正输入运放输出脚接Riso一端Riso另一端接负载电阻100Ω到地反馈线从Riso和负载电阻的连接点真正的输出节点拉到反相输入端。4.2 直流工作点测量误差对比明显打开“Simulate→Analyses→DC Operating Point”在输出节点上添加探针运行仿真。正常接法的输出节点电压应该非常接近1V误差基本来自模型里的Vos和Ib实测在mV量级以下。错误接法就有意思了因为反馈采的是运放输出脚而不是负载端Riso上的压降完全暴露在外面。电路里负载电阻100Ω流过的电流约等于1V/(100500)1.67mARiso两端压降约1.67mA×500Ω0.833V所以错误接法的输出电压只有1-0.8330.167V左右误差高达83%。这不是夸张而是真实会发生的情况。如果读者手头有实物用电阻搭一下测万用表结果完全一致。值得说明的是电流源负载场景比这个更极端。如果是给后级电路提供恒定电流错误接法的输出误差和Riso成正比且随负载动态变化这是绝对不可接受的。4.3 参数扫描阻值变化对精度的影响趋势为了让大家直观看到“反馈取点”的决定性作用可以用Multisim的参数扫描功能。点击“Simulate→Analyses→Parameter Sweep”选择Riso为扫描对象从100Ω扫到2kΩ步长100Ω输出节点选负载端电压。仿真结果会画出一条曲线。正确接法下这条线几乎是一条水平直线输出电压不随Riso变化错误接法下输出电压随Riso增大而明显下降呈现一条斜线。这个仿真实验非常经典可以作为团队培训教材来用五分钟就能让新人记住反馈取点的意义。再做一组扫描把负载电阻从100Ω改成200Ω两种接法都会变化正确接法依然平直错误接法的斜率更缓了。这说明负载越重错误接法的误差越严重而正确接法对负载变化完全免疫。4.4 输入过压与容性负载仿真Multisim里的LM358模型一般不包含完整的ESD结构所以输入过压保护没法百分百仿真出芯片被损坏的物理过程。但我们仍然可以通过电流探针来验证在输入引脚上串一个电压源模拟内部ESD二极管导通的电压钳位然后观察Rin限制电流的效果。更实际的验证方法是换一个角度在输入端施加瞬态高压脉冲比如用PULSE电压源从0V跳到12V电源轨是±5V正输入端的电压会超过VccGND二极管导通压降。给正输入端串一个10kΩ电阻用电流探针量输入端电流就能看到电流被限制在微安到毫安级别。而在没有电阻的电路里电流会直接冲到几十毫安。这个差异就是保护效果的直接体现。容性负载仿真用AC Analysis来做。让负载变成1μF电容分别在“没有Riso”“有Riso但反馈取点错误”“有Riso且反馈从负载端取”三种情况下跑AC扫描观察幅频特性曲线在单位增益频率附近的峰起。没有Riso的电路在1μF负载下增益曲线通常会有一个明显的尖峰加了Riso并正确反馈后尖峰被压平相位裕度明显改善。如果还想更直观可以搭一个阶跃响应电路用10kHz方波输入观察输出过冲和振铃。Riso阻值不够时输出波形尾部能看到一串衰减振荡这就是相位裕度不足的典型表现。4.5 Multisim使用中两个高频问题的处理做仿真时经常遇到两个让人抓狂的问题顺手分享一下解决方法。第一个是“无法访问数据库”的报错。这个通常是Multisim的组件数据库索引损坏或者安装路径里有中文/特殊字符。解决方法是关闭软件删除C盘用户目录下National Instruments相关的组件缓存文件夹然后以管理员身份重新运行Multisim让它重新扫描数据库。如果还不行就把软件彻底卸载重装安装时选择“以管理员身份运行安装程序”并确保路径全英文。实测下来重装能解决九成以上的数据库访问问题。第二个是仿真速度慢的问题。电路稍微复杂一点Multisim的瞬态仿真就慢得让人想砸键盘。可以在“Options→Global Preferences→Simulation”里调整仿真步长把“Maximum time step”适当调大牺牲一点精度换速度。另外如果电路里有很多数字器件把仿真模式从“Mixed”改成“Analog”有时也能快不少。跑高频率瞬态仿真时把“Clamp input signal”选项打开防止信号超范围导致步长崩坏。5. 实测与仿真之间的差异必须知道的坑5.1 Multisim模型不等于真实芯片Multisim里的LM358模型通常在开环增益、带宽、输入偏置电流、输出摆幅等方面比较接近真实芯片但它默认不带ESD结构、不带热效应、不带批次误差。所以仿真里看到“输出精确等于1.000V”不代表实物也是这个值。我在实际测试中使用了一块用LM358搭的跟随器板正确接法下在±5V供电、负载100Ω、Riso470Ω条件下空载输出和输入差约为1.8mV这是Vos和Ib共同作用的结果接上重负载后输出误差只增加了大约0.2mV这在万用表四位半精度下几乎可以忽略。如果你拿Multisim跑同样的电路看到的误差可能只有几微伏。这不是Multisim错了而是模型没把Vos和Ib建模得那么细。想要更贴近真实可以在运放输入端并联一个小电压源来模拟Vos或者在输入端串一个电流源模拟Ib。虽然Multisim不直接提供这种非理想模型但用外部手段加进去并不难这样仿真结果就能贴近实测。5.2 电阻的真实性阻值、功率、寄生电感仿真里的电阻只有阻值这一个参数实际电阻还有功率、精度、温度系数、寄生电感和串联电阻。Riso如果选择碳膜电阻在高频情况下寄生电感可能引起额外的阻抗影响稳定性换成功率型绕线电阻寄生电感更严重高频隔离效果反而变差。所以做高频缓冲电路时Riso推荐用贴片厚膜电阻或者无感电阻。功率计算也不能漏。Riso上消耗的功率PIload²×Riso。假设输出电流10mA、Riso470Ω功率就是0.047W选择0603封装的1/10W贴片电阻勉强够用但余量不大如果要长期满载运行建议选0805封装1/8W或者1206封装1/4W留足余量才可靠。5.3 示波器测量方法对结果的影响测量输出波形时示波器探头的地线夹如果太长本身就构成了一个寄生电感和负载电容振荡测出来的振铃未必是电路真实行为。测高频信号时用探头自带的短弹簧地针不要用长的鳄鱼夹地线。另外测量正确接法下的Vout节点时示波器探头输入电容通常10pF左右也算一个负载电容在输出端并上去可能改变稳定性。所以测完波形之后把探头断开再确认一遍直流电平避免探头影响测量结果。5.4 双电源与单电源的差异LM358支持单电源供电但单电源下输出摆幅距离地会有几十毫伏到几百毫伏的残余电压输出低电平时尤其明显。如果系统负压部分需要跟随到接近0V单电源LM358可能做不到。这种场合要么换用轨到轨运放要么加一个小的负电源。串联Riso会让这个问题更明显。单电源5V供电、空载时输出大约能拉到几十毫伏接上负载后灌电流方向上的输出低电平可能抬高到数百毫伏。如果系统对0V电平有严格要求务必实测低电平极限。6. 折腾之后的几点经验这圈玩下来我个人的体会是电压跟随器看似是“一根线短接”的事真正要做得可靠反馈取点、保护电阻、电源轨、负载特性一个都不能少。输出串Riso并确保反馈从电阻末端取回是我建议在几乎所有带负载缓冲场景里默认采用的结构。给正在调试这类电路的同行几个实际建议。第一拿到电路图先看反馈线从哪拉的如果运放输出脚串了电阻但反馈接在电阻前面大概率有隐患。第二Riso阻值尽量取值使短路电流在芯片额定值的1/3以内既保护芯片又不影响正常驱动。第三仿真不能替代实测但Multisim的DC工作点分析和参数扫描非常适合验证“反馈取点”这类原理性问题上手成本极低。还有一个小技巧在Multisim里搭一个“错误接法”和“正确接法”对照电路把两张图并排画在一起做电阻参数扫描波形差异非常直观。新同事培训的时候我直接把这套仿真文件丢给他们十分钟就能建立起正确的电路直觉。这套方法不只是适用于LM358换成OP07、TL072、OPA2277等任何运放都适用核心道理是一模一样的。
返回列表