一块掌上检测仪的模拟板把我这个常年写固件的嵌入式工程师逼回了模电书前。板子上有两路传感器信号要合成一路差分电流要提取一路波形要积分平滑另一路突变要微分捕捉——运算放大器的加法、减法、积分、微分四种电路全用上了。课本上的公式一眼能看懂可真正把电路焊到板子上波形和理论却总是差着一点加法器输出有毛刺积分器几分钟飘到电源轨微分器一上电就振荡。这篇文章复盘的就是这次从公式到实物的完整过程把四种电路的设计要点、参数计算和调试坑位一条条讲清楚适合正在搭模拟信号链的嵌入式工程师、做传感器调理的硬件开发者还有那些读了不少运放资料却迟迟不敢下手的同学。1. 一块信号调理板逼我重新认识这四个电路1.1 这次要解决的四个信号问题这块板子的需求并不复杂却把四种基础运放电路全占齐了。传感器A输出0~1V代表温度传感器B输出0~2V代表压力我需要把两个信号按比例合成一路0~3V送给3.3V ADC这是加法电路电流检测用0.01Ω采样电阻负载电流0~5A时压降只有0~50mV且这个低电压叠在电源轨上要把它干净地提出来放大这是减法电路合成后的信号毛刺多想做一个积分平均让波形平滑这是积分电路还想捕捉传感器突变瞬间的边沿用来触发报警这是微分电路。如果你也做过类似项目应该能感受到这些信号之间其实是互相关联的没有哪一级是孤立存在的前级输出直接决定后级的工作点牵一发而动全身。这也是我把四个电路放在一篇里讲的原因——它们是同一套模拟信号链上的四个环节单看任何一个都觉得简单放到一起才见真功夫。1.2 用现成芯片还是自己搭可能有人会问合成为什么不用专用芯片差分提取为什么不用仪表放大器答案有三个成本、交期和控制力。专用功能芯片本身没错像INA128这样的仪表放大器性能出色但在一个只需要0~50mV差分提取的应用里三颗运放加四颗精密电阻的方案不到专用芯片价格的零头。而且当时项目处于打样阶段手边正好有LMV358和OPA2188的现货完全不必为了几个功能块单独等料。更关键的是自己搭电路意味着可以对每一级的增益、带宽、失调单独调整调试时看波形更方便改参数而用专用芯片时往往只能通过那少数几个引脚去操作灵活性差不少。当然这不代表提倡什么都自己搭。如果你要的是极高共模抑制比、严格匹配的增益误差、以及量产稳定的性能集成方案依然是首选。我的判断标准很简单信号频率不高、精度要求明确、数量不大自搭电路加精密无源件完全够用一旦涉及批量一致性或者需要极高指标直接上集成方案更稳妥。1.3 三个理想运放假设在真实世界各自会出什么幺蛾子动手设计之前我把教材里理想运放的三条假设重新捋了一遍因为后面所有“奇怪现象”基本都是这三条假设和现实打架造成的。第一条是虚短两个输入端电压相等。实际情况里输入失调电压Vos总在那里OPA2188可以把Vos压到25μV以内普通LM358却可能到2mV对增益大的电路来说这直接变成输出端的固定误差。第二条是虚断输入端不吸电流。实际上每个运放都有输入偏置电流Ib双极型运放动辄几十纳安到几百纳安这个电流流进积分电容会让输出慢慢漂到天上去流进反馈电阻网络产生额外的失调电压。JFET输入或CMOS输入运放能把Ib做到皮安级这也是积分电路必须优先考虑低Ib运放的原因。第三条是增益无穷大、带宽无穷大。现实中增益带宽积GBW是有限的比如LM358只有1MHz电路增益做20倍时可用带宽就只剩50kHz压摆率SR也限制了大信号下的响应速度给微分电路输入一个陡峭阶跃输出根本来不及冲到理论峰值看到的只会是一个圆角的、幅度被压扁的尖峰。记住这三条后面所有调试中的怪现象你都不会觉得慌。设计前先问自己三个问题信号源内阻有多大信号最高频率是多少允许的直流误差有多少毫伏这三个答案直接决定你选什么运放、什么电阻、要不要加缓冲。2. 加法电路虚地、增益独立与平衡电阻的账2.1 为什么首选反相加法器加法器的实现方式有好几种但实际工程里我几乎只用反相加法器。原因在于反相输入端的“虚地”特性反相端被运放强制拉到和同相端相同的电位在同相端接地时就是0V这个点是“虚拟地”。正因为反相端电位恒定各路输入信号互不牵连。U1之路的电流只由U1和R1决定U2之路的电流只由U2和R2决定这些电流在反馈电阻Rf上叠加互不干扰。调整其中一路的电阻不会影响其他路的增益这在调试时是巨大的便利。同相加法器就不一样了。同相端没有虚地输入信号经过R1、R2后先形成分压网络再进运放调整一路电阻其他路的等效增益也跟着变设计公式还复杂源头阻抗稍有不匹配就会产生额外误差。所以我的结论很直接多路信号线性叠加一律优先反相加法器。2.2 两路信号合成参数计算全过程理想反相加法器输出满足$$V_{out} -R_f\left(\frac{V_1}{R_1} \frac{V_2}{R_2}\right)$$回到我的需求V1范围0~1V需要放大3倍V2范围0~2V需要放大1.5倍。我取R110kΩR220kΩRf30kΩ得到$$V_{out} -30k\left(\frac{V_1}{10k} \frac{V_2}{20k}\right) -(3V_1 1.5V_2)$$这样输出范围就是0~-3V是反向的所以后面还得跟一级反相器转成正压再送ADC。反相器很简单两个等值电阻30kΩ增益-1。接着要算平衡电阻。运放的两个输入端都有偏置电流流过如果同相端到地的直流阻抗和反相端到地的直流阻抗差异很大偏置电流就会变成输入失调电压。反相端看到的是R1、R2、Rf的并联Rp应该取$$R_p R_1 \parallel R_2 \parallel R_f 10k \parallel 20k \parallel 30k \approx 5.45kΩ$$实际取5.6kΩ就行。很多初学者会漏掉这一步结果输出端莫名其妙多出几十毫伏固定偏置其实就是差了这个电阻。2.3 单电源下如何偏置嵌入式系统里普遍用单电源运放没有负压可用这种情况下不能让输出波形跌到0V以下。最简单的做法是在同相端加一个1.65V的参考电压等于把整个电路的工作点抬高。此时反相加法器输出变成$$V_{out} V_{ref} - R_f\left(\frac{V_1}{R_1} \frac{V_2}{R_2}\right)$$输入为0时输出1.65V输入到满量程时输出降到0.15V左右波形以1.65V为中心上下摆动正好落在ADC的输入范围内。Vref必须加一个0.1μF到1μF的退耦电容到地不然参考电压上的噪声会被直接混进信号里。这里我踩过坑只用了一个普通的电阻分压产生1.65V没加电容结果输出带上明显的电源纹波后来换成基准芯片加电容才干净。2.4 加法器调试中最常见的三个坑第一个坑是输出反相。反相加法器天然输出负电压单电源系统里如果忘了加偏置或者后级不认负压整个信号链就废了。检查办法很简单先确认每一级用的是反相结构还是同相结构数清楚一共反了几次。第二个坑是反馈电阻选得太大。有人觉得Rf取1MΩ可以减小功耗但电阻的热噪声和阻值成正比1MΩ级别的电阻会产生明显的宽带噪声积分到后级就是一层“毛玻璃”。低噪声信号链里反馈电阻尽量控制在100kΩ以内实在需要高增益就把增益分摊到多级而不是一级吃到底。第三个坑是信号源内阻不可忽略。反相端虽然是虚地但如果信号源本身有比较大的内阻比如一个几千欧的传感器直接接进来这个内阻会串联在信号通路里改变实际增益而且会影响各路之间的匹配。解决方式很直接在高内阻信号源后面先加一级电压跟随器做缓冲再接加法器。3. 减法电路四颗电阻的匹配度就是共模抑制的命门3.1 四电阻差分放大器减法电路最经典的骨架是四电阻差分放大器V1经R1进反相端反馈电阻R2从输出回到反相端V2经R3进同相端R4在同相端到地。输出公式是$$V_{out} \frac{R_3}{R_1R_3}\cdot\frac{R_1R_2}{R_2}\cdot V_2 - \frac{R_2}{R_1}V_1$$当你取R1R2R3R4时式子立刻化简成$$V_{out} V_2 - V_1$$看起来简单到不能再简单但实际设计时最坑的恰恰就是“四个电阻相等”这几个字。因为真实电阻不可能完全相等它们之间的微小偏差会直接转化为共模误差这个问题很多资料喜欢用公式一笔带过但工程里它足以毁掉你的信号质量。3.2 电阻误差如何吃掉共模抑制比共模抑制比CMRR描述的是电路对“两个输入同时变化”的抑制能力。对四电阻差分放大器来说CMRR不仅取决于运放本身还严重取决于四个电阻的匹配度。我算一笔账给你看如果四个电阻用的是普通1%精度电阻最坏情况下由电阻失配导致的CMRR只有30~40dB左右。这意味着什么假设共模电压是3V1%失配在最坏情况下能把约30~100mV的共模成分转成差模误差而我后面要提取的差分信号本身只有50mV量级这误差直接把信号淹没了。所以做减法电路时四颗电阻我直接用0.1%精度甚至更严格的匹配电阻网络常见的做法是买集成排阻比如四颗电阻封装在一起的电阻网络匹配度能做到0.05%甚至更好。匹配度越好CMRR越高用0.1%匹配电阻再叠加运放自身的高CMRR整体做到80dB以上不是问题。3.3 输入阻抗不对称源内阻会来找茬四电阻差分放大器还有一个所有教材都会提、但很多人不放在心上的毛病两个输入端的输入阻抗不一样。以四个相等电阻为例反相输入端看到的是R1到虚地等效阻抗约R1同相输入端看到的是R3串联R4到地等效阻抗约2R1。如果两个信号源的内阻都很小这个不对称没什么影响但真实传感器往往有不可忽略的内阻一旦两个源内阻有差异这个差值会和共模电压一起作用产生额外的差分误差。换句话说电阻匹配解决了源阻抗不匹配照样给你制造麻烦。解决思路有两个。第一在差分放大器前面加两个电压跟随器把高内阻信号源隔离掉这是最直接的办法。第二干脆改用三运放仪表放大器结构第一级用两个运放做缓冲并提供增益第二级再做减法输入阻抗天然对称CMRR高得多。很多集成仪表放大器内部就是这种结构指标已经做到位了性能和便利性都高。3.4 电流检测里的减法实践和选型我的电流检测场景是0.01Ω采样电阻两端产生0~50mV差分电压但两端对地的共模电压可能达到几伏我需要把这个差分电压提取出来再放大。第一级用四电阻差分放大器做减法R1R2R3R410kΩ输出就是V2-V1即0~50mV。第二级用同相放大器放大20倍Rg1kΩ、Rf19kΩ最终输出0~1V进ADC。这里我选择了OPA2188关键看它的失调电压只有25μV左右否则差分电压才50mV运放自身2mV的失调就能吃掉4%动态范围。补充一个容易忽视的点要留意运放的输入共模电压范围。差分信号叠在电源轨上时两个输入端的绝对电压很可能接近电源或者地超出运放允许的共模输入范围后输出会直接错误甚至闩锁。解决方式是在输入端串联保护电阻并在运放输入端对电源和对地各加一个箝位二极管把输入共模电压限制在安全范围内。4. 积分电路漂移是头号敌人泄放电阻是救兵4.1 偏置电流给电容充电输出一路飘到轨理想积分器的核心就是一个电容挂在反馈回路上$$V_{out}(t) -\frac{1}{RC}\int_0^t V_{in}(\tau)d\tau V_{out}(0)$$但只要你真的搭出来就会发现即使输入短路输出也不是稳定不动的它会慢慢往电源轨方向漂最后饱和。原因是运放的反相输入端有输入偏置电流这个微小电流找不到直流通路只能持续给反馈电容充电等效于对“零输入”做积分。算笔账如果输入偏置电流是50nA反馈电容是1μF那么漂移速度dV/dt Ib/C 50nA/1μF 50mV/s。看起来不快但如果你用100nF电容漂移速度直接变成500mV/s两三秒就飘到轨上去了。这就是为什么积分电路对运放输入偏置电流极其敏感必须优先选JFET或CMOS输入类型的运放比如TL072输入偏置电流只有几十皮安漂移就压下来了。4.2 泄放电阻把积分器拉回现实要根治漂移不能光靠换运放还得在反馈电容两端并联一个大电阻Rf。这个电阻给直流偏置电流提供了一条泄放通路输出不再无休止漂移电路从“理想积分”退化成“带直流抑制的近似积分”。加了这个电阻后直流增益不再是无穷大而是-Rf/R同时电路出现一个转折频率$$f_c \frac{1}{2\pi R_f C}$$当信号频率远高于fc时电容阻抗远小于Rf电流主要走电容电路表现为积分器当信号频率低于fc时Rf的阻抗占主导电路退化成普通反相放大器几乎不再积分。所以fc要选得比信号的最低频率低5到10倍才能保证在工作频段内积分特性不被破坏。我的实际参数是R10kΩC1μFRf100kΩ得到的fc约为1.6Hz而我要处理的信号最低在100Hz左右信号频率比转折频率高两个数量级积分行为不受影响同时输出直流漂移被限制在一个可接受的范围。设计顺序建议先根据信号频段确定时间常数RC再选Rf把转折频率压到信号最低频率的十分之一以下。Rf太小会让低频增益变大、积分特性变差Rf太大会让偏置电流补偿效果变弱需要平衡。4.3 复位开关、电容选型和饱和恢复积分器除了漂移还有“记忆”问题。积分电容上的电压代表历史积分结果很多应用需要在某个时刻把输出清零比如ADC采样前把积分器复位。做法是在反馈电容两端并联一个CMOS模拟开关或JFET开关控制端给高电平让开关导通电容放电输出回到零。电容选型是积分电路里最容易被忽略的一环。陶瓷电容中的X7R、Y5R介质有很强的介电吸收效应电容会“记住”之前充的电压你把它短路放完电后松开的一瞬间电压又会往回跳一点这个回跳对积分精度是致命的。我试过用X7R做积分电容复位后输出能回跳几十毫伏换成C0G/NP0介质的电容后回跳降到毫伏级别以下。C0G容量做不大但1μF以下完全有现货积分精度要求高的场合不要心疼成本。还要考虑饱和恢复。运放输出一旦顶到电源轨运放进入非线性区输入看起来“失去了虚短”电容上的电荷不会自己释放必须等输入极性反转并持续足够长时间电容电荷才慢慢泄掉。这个特性在做定时器或斜坡发生器时很重要输出到轨后你得清楚“它需要多久走回来”必要时主动加复位措施。5. 微分电路高频增益不压住自激振铃马上来5.1 理想微分器为什么是振荡器理想微分电路的形式非常少输入电容C串到反相端反馈电阻R从输出跨接到反相端输出满足$$V_{out} -RC\frac{dV_{in}}{dt}$$从频域看这个电路的增益是-jωRC频率越高增益越大高频噪声会被无限放大。实际运放高频增益不可能无限大但电容带来的相位滞后和运放内部极点叠加极容易让环路相位裕度变差结果就是一上电输出就开始振荡或者输入端稍微有点噪声就输出巨大的毛刺。我最早搭这个电路时示波器探头一靠近输入端屏幕上就是一大团噪声波浪。所以理想微分器在实际工程里几乎不能直接使用所有实用微分电路都必须做带限处理限制高频增益关闭噪声放大通道同时用反馈电容补偿相位。5.2 带限微分器三个元件把噪声关进笼子实际用的微分器拓扑改成这样输入信号先经过一个电容C再串一个电阻R1接到反相端反馈电阻Rf从输出跨接回反相端并在Rf上并联一个小电容Cf。比起理想版多了R1和Cf两个元件但整个电路从“不可用”变成“可控”。这个电路有三个关键参数Rf和C决定微分时间常数也就是微分作用的强弱R1限制高频增益最大值被压到Rf/R1倍附近不再无限增加Cf与Rf形成高频极点把更高频段进一步滚降掉这是消除振铃的关键。设计步骤我给一个可直接套用的顺序。先根据被检测信号的特征时间选定Rf*C比如要检测100mV的快速边沿脉冲希望输出大约1V尖峰取C1nF、Rf100kΩ微分时间常数100μs。然后选R110kΩ把高频增益限制在10倍这样尖峰峰值就不会大到顶轨。最后Cf先取22pF看波形再调振铃明显就加大到47pF或100pF尖峰变圆就适当减小。5.3 实测方波边沿从振铃到干净尖峰用1kHz方波做输入测试方波边沿应该输出正负尖峰。第一次搭好时没加CfR1也只有100Ω示波器看到的尖峰后面拖着一长串衰减振荡频率远高于信号本身这就是电路在自激边缘。我按顺序处理先把R1从100Ω加到10kΩ高频增益被压住振荡幅度明显减小但尖峰后面还有一点振铃然后给Rf并上22pF的Cf振铃基本消失再加到47pF波形只剩一个干净的尖峰边沿触发稳定可靠。整个过程就是对着示波器反复调R1和Cf调完再看几次就收敛了。需要提醒的是微分电路对PCB布局更敏感。输入端电容的另外一端尽量靠近运放反相引脚反馈元件也要紧凑走线过长形成寄生电感就会重新引入振荡。我用的是通用玻纤板只要布局紧凑、地平面完整实际效果已经足够好。5.4 微分电路的几个正经用处虽然微分电路名声不好但它在工程里有几个不可替代的用途。一是边沿检测和脉冲整形把缓慢变化的信号变成触发脉冲二是PID控制里的D项近似实际实现时就是带限微分三是锁相环环路滤波器里的相位补偿四是检测电流的突变比如电机堵转瞬间的di/dt尖峰。我这次把微分器输出的尖峰送给比较器只要突变幅度超过阈值就触发报警效果非常直接。6. 四级电路联调一条真实信号链的逐级验证6.1 完整链路和各级参数表这一节把这四种电路放回同一块板子上看它们如何协同工作。整块信号板的模拟链路如下传感器A和B先经过U1A反相加法器合成R110kΩR220kΩRf30kΩRp5.6kΩU1B做反相器把负压转正两个电阻各30kΩ电流采样电压经过U2A四电阻差分放大器做减法四颗0.1%匹配电阻各10kΩU2B同相放大器放大20倍Rg1kΩRf19kΩU3A做有源积分平滑R10kΩC1μFRf100kΩ同相端加1.65V偏置U3B做带限微分检测突变C1nFR110kΩRf100kΩCf47pF。各功能块的选型和参数汇总如下功能块运放关键参数选择理由加法器/反相器LMV358轨到轨、3.3V供电廉价通用单电源下输出摆幅大差分放大器OPA2188Vos≤25μV零漂移共模误差敏感低失调是关键同相放大器OPA2188增益20倍带宽充足与减法器同片减小误差源积分器LMV358偏置电流60pACMOS输入偏置电流小漂移可控微分器LMV358带限结构稳定高频噪声不敏感靠R1/Cf压振铃6.2 增益与带宽分配每级留多少余量多级级联时最容易犯的错是把增益全放在某一级导致后级看到的是被放大过的噪声和失调。我的原则是前级用低增益能少放大的就不要提前放大。加法器只做3倍和1.5倍反相器1倍差分放大器1倍第二级同相放大20倍。这样每级带宽都有余量LMV358增益带宽积约1MHz加法的3倍增益带宽约330kHz同相20倍后带宽约50kHz对这个项目几十k的信号完全够用。带宽分配要会估算。增益带宽积是一个恒定值增益越大可用带宽越小。如果你的信号本身是100k就别在一级里放20倍否则带宽只剩50k信号高频成分直接被削掉。遇到这种情况要么分成两级每级4~5倍要么换更高GBW的运放。这个“分配”意识在联调时特别重要波形变圆不一定是电路错了可能只是带宽不够了。6.3 电源与PCB布局四个容易忽略的细节理论上再正确的电路布局不合理照样出怪问题。这次板子我踩了四个细节第一运放电源去耦电容要靠近电源引脚。每个运放的V和V-引脚附近各放一个0.1μF陶瓷电容容值不用大关键是就近。我最早图省事把电容放得比较远结果微小的高频振荡就是消不掉挪近后立刻好了。第二模拟地和数字地单点连接。板上有MCU和ADC等数字器件数字开关噪声会通过地平面窜进模拟信号链。我把模拟地单独划一块在电源入口处和数字地单点相连相当于给模拟信号一个干净的地参考。这个处理对积分器和微分器效果尤其明显毛刺大幅度下降。第三反馈电阻尽量靠近反相输入端。反相端对噪声极其敏感它是一个高阻节点走线越长越容易接收干扰。把反馈电阻焊得离运放引脚越近环路面积越小感应噪声越低。第四输入端加串联电阻保护。运放的输入容易被静电或者过压打坏小信号路径上串100Ω到1kΩ的电阻不改变电路本质但能有效限制异常电流。前提是确认这个电阻不会和输入电容形成不可接受的低通滤波。6.4 联调中我遇到的四个真实问题及排查顺序联调不是一次成功的我陆续遇到四个典型问题按排查顺序列出来你以后很可能也会遇到。第一个问题是加法器输出带100mV左右毛刺。我先怀疑运放本身后来发现是数字地干扰把模拟地和数字地分开后毛刺消失。排查顺序是先看电源、再看地、最后才怀疑运放和阻容元件因为电源和地的问题最常见也最好排除。第二个问题是积分器输出没有输入时也缓慢上升。最初选用了LM358偏置电流偏大积分电容1μF时漂移速度大概每秒几十毫伏虽然不大但在高增益场景里很扎眼。我把积分运放换成CMOS输入的LMV358再并联100kΩ泄放电阻漂移就从“肉眼可见”变成“基本不可见”。第三个问题是微分器输出振荡。这是意料之中的按5.2的顺序调R1和Cf从100Ω、无Cf调到10kΩ、47pF振荡消失方波边沿变成干净的尖峰。第四个问题是差分电路共模抑制不足。最初用的四颗普通1%电阻输入共模3V时输出端有近几十毫伏的波动把输入短路看输出还是不稳。换成0.1%匹配排阻后共模波动降到几毫伏以内OPA2188的低失调又把直流误差压到更小50mV信号可以被可靠地放大出来。整套排查下来我最深的一个体会是模拟电路的问题基本都是“直流偏置、电源地、频率补偿”这三件事的排列组合。先查直流工作点再查电源和地的干净程度最后用带宽和补偿角度去想那些“奇怪”的波形大多数问题都能定位。四个电路里加法器最温和减法器最依赖电阻精度积分器最怕偏置电流微分器最需要耐心调补偿。只要你愿意拿着示波器一级一级往下看它们并没有想象中那么难驯服。
阅读完成 · 觉得有帮助?