ARTICLE DETAIL

资讯详情

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

运放做比较器:从基础电路到迟滞、阈值与实战排查

运放做比较器:从基础电路到迟滞、阈值与实战排查 “运放搭个比较器线路简单效果立竿见影。”这是很多电子工程师刚接触电路设计时最先尝到的甜头。但这块甜头背后藏着不少坑输出抖动、响应迟钝、阈值不准……标题里这个“基础1”其实大有文章。这篇文章我就从“运放当作比较器”这个最熟悉的陌生人讲起带你把开环比较、滞回窗口、输出接口这几个核心环节一次捋清楚既有原理拆解也有可以直接抄的参考电路和参数计算过程。不管是刚入门的学生、转行做硬件的朋友还是日常调试中偶尔需要快速搭一个电压门限检测的嵌入式工程师这篇文章都适合你。1. 整体设计思路为什么非要用运放去做比较器1.1 比较器的本质以及运放和它的“血缘关系”比较器的功能说白了就是一句话判断两个输入电压谁大谁小然后给一个明确的高电平或低电平输出。理想情况下正输入端电压高于负输入端输出就翻到正电源轨反了输出就翻到负电源轨。这个描述听着是不是特别像运放没错运放开环工作时的行为就是这样的。运放内部就是一个高增益差分放大器开环增益动辄100dB以上输入端只要存在毫伏甚至微伏级的电压差输出就会立刻被推到电源轨附近。所以从原理上看运放天生具备“比较”的能力。但我要提醒一句专用比较器和运放虽然血缘相近设计目标却有本质区别。专用比较器比如常见的LM393、LM311在设计和制造时把“传输延迟时间”和“电平翻转速度”放在了首位内部可能还有专门的输出级设计甚至自带锁存功能。而运放追求的是线性放大精度开环使用时它的响应速度、恢复时间未必能满足高速比较场合。这也是为什么很多老工程师一看到你用运放做高频比较器就会皱眉头的原因——不是不能用而是你得知道代价是什么。1.2 运放做比较器的优势和必须接受的代价先说优势这个很现实项目里可能正好多出来一个空闲的运放通道比如四运放LM324用了一个通道剩下三个不用白不用又或者手里没有专用比较器但运放是板上标配现成拿来就能搭。运放搭比较器几乎不增加额外物料成本而且很多运放的输入阻抗非常高对信号源的影响极小。对于简单的电压门限检测、电池低压报警、按键消抖逻辑这类低速应用运放做比较器完全胜任。再说代价。第一个代价是响应速度。普通运放比如LM358的压摆率只有0.5V/us左右从低电平翻转到高电平可能要好几微秒甚至十几微秒。如果输入信号变化很慢或者叠加了高频噪声翻转点附近输出可能反复跳变。第二个代价是输入级耐压范围。有些运放的差模输入电压范围很窄弄得不好输入级会损坏而专用比较器往往允许很大的输入压差。第三个代价是输出结构不同很多运放的输出级是推挽结构翻转后能直接输出电源轨电平看起来方便但如果你想接一个上拉电阻来做电平转换推挽输出反而会跟外部上拉“打架”这一点后面第2章会详细说。1.3 什么场景下建议老老实实换专用比较器做个简单的筛选建议如果你的信号频率在几十kHz以下精度要求不高负载也比较简单用运放做比较器问题不大但如果你的信号是高频PWM反馈、高速过零检测、振荡器电路或者输出需要直接驱动继电器、LED大电流负载那还是建议直接用专用比较器。专用比较器通常采用集电极开路输出方便做线与逻辑和电平移位这一点在工业接口里非常实用。另外还要考虑一个容易被忽略的问题运放作为比较器时的输入失调电压和输入偏置电流可能比你想象中大。普通运放的失调电压有毫伏级如果参考电压和被测信号本来就差不了几毫伏那比较结果根本不可靠。后面第3章我会给出一个具体的计算例子看看失调电压到底能造成多大影响。2. 基础比较器电路的搭法与每个元件的真实作用2.1 最简单的开环比较电路从LM358搭起我直接给你一个最常用的电路拓扑单个运放同相输入端接参考电压反相输入端接被测信号。以LM358为例电源用单电源5V供电参考电压由两个电阻分压得到2.5V被测信号V_in接到反相输入端。当V_in大于2.5V时输出端翻转为低电平接近0V当V_in小于2.5V时输出端为高电平接近5V。这里面有几个细节要说明白。同相和反相的选择不要记反了否则整个逻辑正好颠倒。如果被测信号接到同相端参考电压接到反相端那么V_in大于参考电压时输出为高。实际项目里我更习惯把参考电压放在同相输入端被测信号放反相输入端因为这样当信号电压升高超过阈值时输出立刻变低用来做“过压报警”非常直观逻辑上不容易搞混。还有个容易踩的坑是电源退耦。我在好几块板上看到有人搭了比较器电路却不加退耦电容结果输出在翻转瞬间产生很大的电流尖峰电源电压跟着抖动比较器反复误翻转。我自己的标准做法是运放电源引脚旁边放一个0.1uF陶瓷电容离引脚尽量近如果电源走线比较长再并一个10uF的钽电容或者电解电容。这套做法成本极低却能省掉很多莫名其妙的调试时间。2.2 参考电压的生成分压电阻、稳压管与基准源怎么选参考电压是整个比较器最核心的“标尺”。如果参考电压本身不稳定比较结果就别提什么精度了。最简单的做法是用两个电阻分压从电源取电得到一个固定电压。例如5V电源下要得到2.5V参考电压用两个10k电阻串联即可输出阻抗大约是5k。注意这个输出阻抗是分压源的内阻它和运放输入阻抗共同作用会给参考电压带来微小偏差。好在运放输入阻抗极高通常这个偏差可以忽略但如果分压电阻取值过大比如1M再加上外部噪声耦合反而容易出问题。电阻分压最大的问题是精度受电源波动影响。电源从5.0V漂到4.8V参考电压也跟着漂比较阈值自然就不准了。对精度要求高的场景我会直接用TL431这类精密可调基准源或者一个3.3V稳压管加限流电阻。TL431在2.5V到36V范围内可调误差能做到1%以内价格也很便宜性价比很高。如果你只是做实验验证手头没有TL431那用精密电阻分压配合电源端的低纹波设计也能凑合但要做到心里有数知道阈值会随电源变化。还有一个更巧妙的方法是“不等分电阻电位器”。把其中一个分压电阻换成电位器比如10k电位器与4.7k电阻串联通过旋电位器微调参考电压。这在小批量调试阶段非常实用可以先把电路跑起来再根据实际现象精确调整阈值。量产阶段再把电位器换成固定电阻或者用一颗0.1%精度电阻搞定。但注意电位器本身温度系数比较大运行环境温度变化大的场合要谨慎使用。2.3 输出端处理推挽输出、上拉电阻和电平转换的讲究运放的输出级结构决定了它能不能直接挂负载、能不能接上拉电阻。以LM358为例它的输出级是准推挽结构输出高电平能力有限灌电流能力稍好一些。如果你把它当作比较器用输出直接接到单片机GPIO这是完全可以的如果想驱动LED串一个1k限流电阻问题也不大。但如果你想用上拉电阻把它拉到12V去控制一个继电器那就出问题了——LM358的高电平输出会被上拉电阻强行抬升而运放内部的推挽上管还在努力维持自己的电位两个“力的来源”对着干输出电平就变得说不清楚了。所以这里有个非常实用的经验如果你的输出需要电平移位比如运放用5V供电但后级逻辑需要12V的开关信号你一定要去查运放数据手册确认它的输出级到底是什么结构。如果是推挽输出干脆放弃上拉方案用一个三极管或者MOS管做电平转换如果是集电极开路输出比如LM393那就直接接上拉电阻到目标电平干净又利索。同理输出接容性负载时也要留个心眼较大的电容可能导致运放输出级不稳定甚至振荡。3. 核心环节把阈值、迟滞和失调电压一次算明白3.1 迟滞比较器为什么你需要“两套阈值”如果你直接把一个慢变信号接进基础比较器比如热敏电阻分压得到的温度电压信号当信号在阈值附近缓慢爬升时只要有几毫伏的噪声叠加输出就会在高低电平之间反复乱跳。解决方法就是加正反馈让比较器在上升和下降时分别使用两个不同的阈值这就是迟滞比较器也叫施密特触发器结构。加正反馈的做法很简单在输出端与同相输入端之间接一个电阻R_f同相输入端不再直接接固定的参考电压而是通过分压网络接到一个阈值基准上。这时候比较器的翻转阈值就会和输出状态有关。说通俗点输出为高电平时反馈电阻会把同相端的参考电压往上拉一点所以输入信号必须升高到更高的门槛才能触发翻转输出变低后参考电压又被往下拉一点输入信号要回落到更低的门槛才会触发反向翻转。这两个门槛之间的差值就叫迟滞宽度。我常用一个双电阻反馈电路参考电压V_ref通过R1接到同相输入端反馈电阻R2从输出端接到同相输入端输入信号还是接反相输入端。假设输出高电平是V_OH低电平是V_OL那么同相端的电压会在这两个值之间摆动。具体高阈值V_H和低阈值V_L的计算公式为V_H V_ref * R2/(R1R2) V_OH * R1/(R1R2)V_L V_ref * R2/(R1R2) V_OL * R1/(R1R2)迟滞宽度为 V_H - V_L (V_OH - V_OL) * R1/(R1R2)。举个例子5V供电V_ref为2.5VR110kR2100k输出高电平V_OH约4.8V低电平V_OL约0.2V。代入计算后高阈值约2.89V低阈值约2.29V迟滞窗口约0.6V。如果觉得0.6V太大把R2增大到200k窗口就缩小到约0.32V。这个公式建议你动手算一遍实际电路里的参数调整全靠它。3.2 输入失调电压V_OS的影响到底有多大输入失调电压是个很“阴”的参数它不像电阻精度那样写在封装上让你一眼看见但在精密比较场景里能坑你没商量。简单理解V_OS就是运放两个输入端之间“偷偷存在”的微小电压差它导致你以为自己在比较两个电压实际上运放内部比较的是“这两个电压加上失调之后的差值”。看一眼典型值普通运放如LM358的输入失调电压大约在2mV到7mV之间一些精密运放能做到0.05mV以内。如果你的比较阈值精度要求是10mV级LM358的7mV失调就直接吃掉了你大半预算再加上电阻精度、参考源误差实际阈值可能偏离设计值20mV以上。这时候有两个出路一是换精密运放二是加一个调零电路。调零电路说复杂也复杂说简单也简单。在不需要全温区精密工作的条件下我常用一个多圈电位器配合运放的调零引脚来做。以LM358为例它没有专门的调零引脚那就换一款带调零端的运放比如OP07。把电位器两端接正负电源中间抽头接调零引脚通过旋钮就能将输出失调电压归零。这个方法虽然每次换环境、换温度都要重新调但在实验室场景下完全够用而且能让你非常直观地感受“失调电压”到底是个什么东西。3.3 响应速度、压摆率和传输延迟不信你看一眼数据手册运放做比较器时最大的痛点是速度。数据手册里两个参数你要重点看压摆率SR和单位增益带宽GBW。压摆率决定输出从低到高、从高到低翻转的极限速度单位是V/us。比如LM358的压摆率只有0.5V/us在5V供电下输出从0.5V翻到4.5V需要大约8微秒。如果你买的控制回路一个PWM周期才20kHz周期50us这8微秒的翻转时间已经占了整个周期快两成很多控制策略会被它拖垮。单位增益带宽则决定运放对小信号的放大能力但在比较器场景里它更像一个参考值——你可以粗略把“GBW乘以0.1”理解为运放能够处理的最高频率信号。比如GBW为1MHz的运放别指望它能干净利落地比较100kHz以上的信号。需要高速比较时直接看专用比较器的传输延迟参数比如TLV3501能做到4.5ns级别LM393则大概在300ns到1us之间。所以我的建议是低速门限检测用运放高速边沿检测用专用比较器别硬扛。4. 实操过程与典型问题排查实录4.1 从面包板到PCB搭一个电池低压报警电路的完整过程我拿一个实际做过的例子来讲这样更有参考意义。需求很简单一个两节AA电池供电的设备电池电压低于2.2V时要亮LED报警。电池电压范围大约在1.8V到3.0V之间单片机用3.3V供电运放用3.3V单电源。第一步确定参考电压。因为每次开启设备时电池电压都可能不同直接用电阻分压从电池取参考不划算我改用TL431把参考电压稳定在2.0V。然后通过10k和100k电阻分压把电池电压按比例缩小。这里注意电池电压最高3.0V直接接到LM358输入没问题但如果电池电压可能冲到5V以上一定要先用电阻分压把输入拉到运放允许的共模输入范围内。第二步搭比较器。LM358的一个通道用作比较器同相输入端接参考电压2.0V反相输入端接电池分压电压。电池电压低于2.2V时分压电压低于2.0V输出翻转为高电平LED亮。这里我特别加了一个100k正反馈电阻让比较器带约0.1V迟滞防止电池电压在阈值附近波动时LED闪烁。第三步调参数。实测发现LED点亮阈值有点偏高用万用表一量TL431输出端被负载拉低了一点。原因是我把TL431的偏置电阻选得太大阴极电流不足。换成1k限流电阻后TL431输出稳在了2.0V。这个细节不实测根本发现不了数据手册上写的“最小阴极电流1mA”不是闹着玩的。最终电路实测电池电压从2.5V缓慢下降到2.18V时LED点亮从2.2V左右回升到2.30V时LED熄灭迟滞窗口约0.12V完全满足需求。整个搭建过程从面包板验证到PCB打样大约花了一个下午。PCB上需要注意的一点是正反馈电阻R_f和同相输入端的走线要尽量短避免寄生电容过大引起高频振铃。4.2 常见问题速查表输出乱跳、翻转不彻底、高电平太低根据我多年调试经验整理了一个高频问题速查表碰到类似现象可以直接对号入座| 现象 | 可能原因 | 排查方法 | 解决方案 | |------|---------|----------| | | 输出在阈值附近来回抖动 | 缺少迟滞噪声耦合 | 用示波器看输出波形是否为连续翻转 | 加正反馈电阻搭建迟滞窗口 | | 输入信号缓慢变化时输出不翻转 | 失调电压过大参考源不稳定 | 测参考电压实测值对比计算值 | 更换精密运放改用TL431基准源 | | 输出高电平明显偏低 | 负载过重推挽输出被外部上拉干扰 | 断开负载测空载输出电压 | 减小负载电流改集电极开路比较器 | | 输出翻转后回不到电源轨 | 运放输出级压降造成 | 查看数据手册Output Swing参数 | 更换轨到轨运放或接受压降 | | 高频信号下波形严重变形 | 压摆率不足 | 查SR参数计算最大输出频率 | 换高速比较器或高速运放 | | 正相输入端电压被异常拉低 | 分压电阻阻值过大受输入偏置电流影响 | 计算输入偏置电流与分压电阻乘积 | 降低分压电阻阻值保持输出阻抗匹配 |这个表我建议你存在手机里现场调试时拿出来对照比重新翻手册快得多。4.3 几个容易被忽略的实操细节第一点是关于电源供电顺序。有些运放存在“闩锁效应”当输入信号先于电源加到输入端时输入端内部的寄生结构可能被触发把电源和地短路轻则运放发烫重则直接烧毁。实际操作中尽量让电源先稳定再加输入信号如果无法控制上电顺序就在输入端串联一个几千欧的限流电阻把进入输入端的电流限制在毫安级以下。第二点是关于闲置运放通道的处理。如果你用的双运放、四运放只用了其中一部分闲置通道看似风平浪静其实容易被静电或者耦合噪声搞到振荡甚至通过内部电路干扰正在用的通道。我见过最典型的情况是一个LM324四运放只用了两个通道做比较剩下两个通道悬空结果整板工作一段时间后偶发误动作。把闲置通道的输入端接到地或者电源输出悬空或接一个高阻负载问题立刻消失。这是一个成本为零但极其有效的习惯。第三点是关于示波器的使用。比较器输出翻转沿非常陡峭尤其是高速比较器示波器探头如果没有做好接地弹跳处理探头上会感应出一圈寄生电感波形看起来就像在振荡。我在调一个100kHz比较器时一度以为电路不稳定最后换了短接地弹簧针波形立刻干净了。这个经验说明有时候问题不在电路而在测量方式本身。5. 进一步的扩展思考从“能用”到“好用”之间还有几步讲到这里基础比较器的电路原理、参数计算和排查方法基本上覆盖了。但作为系列第一篇我还想说说那些“再往前走一步”的思路这对你理解后续内容会有帮助。运放做比较器这件事很多人一开始觉得是“降维打击”用一个高精度放大器去干一个开关活。但真正深入之后你会发现它更像是一道“适配题”你要理解运放的静态参数失调、偏置电流和动态参数压摆率、建立时间理解输出级的结构差异再针对具体信号特征去选择迟滞宽度、参考源方案和输出接口方式。这些能力不是背公式能得来的而是靠一块面包板、一台示波器、几次被噪声折磨到深夜的经历换来的。后续的文章里我打算接着写运放做比较器时如何配合开关电源的反馈环路、如何设计窗口比较器来同时监测上下限、以及怎样用两三个运放组合出一个完整的保护逻辑电路。如果你在实操中遇到了本文没有覆盖的问题建议回头先看两个东西一是你手里那颗运放的完整数据手册尤其是Absolute Maximum Ratings和Electrical Characteristics表二是用示波器把输入、参考、输出三个点同时抓下来看波形关系。大多数怪问题都能在这两步里找到答案。最后再分享一个小技巧搭完电路后别急着接真实信号先用手头一个可调电源和一块万用表慢慢把输入电压从阈值下方调到上方观察翻转点。这个过程虽然“原始”但能让你对迟滞宽度、翻转速度、输出电平有最直观的体感。我到现在调试新电路时仍会先做一遍这种“慢扫描”测试再上真实信号。基础的东西打扎实了后面再复杂的电路心里都有底。
返回列表