☰
运放当比较器用:原理、滞回计算与LM358调试实战
2026/10/8 2:58:00 网站建设 项目流程

运放当比较器用,是电子入门者绕不开的“第一次亲密接触”。我大二那年第一次去实验室接线,就是用一块LM358、两个电阻、一个电位器,搭出了一个会随着手摸温度来回翻转的LED灯。可后来真正做产品,小到电池欠压保护、大到工业传感器阈值报警,拿运放当比较器用的时候,翻车概率一点都不低。这篇是这个系列的第一篇,专门把“运放用作比较器”这件事从头到尾整理一遍:为什么能这么用、和专用比较器到底差在哪、几种最常用的电路怎么算,以及实际焊接调试怎么做。看完你会发现,判断一个运放电路是否在工作在“比较器模式”,核心就一条——看它有没有负反馈。

比较器本质上是把模拟信号转化成二值逻辑的判决电路。它不关心输入信号的大小细节,只关心谁高谁低。而运算放大器天生就有“高增益”这个特性,只要接成开环,它就会自动把自己的输出推到正饱和或负饱和。这也就是运放当比较器用的理论根基。文章后面会从原理、电路结构、计算方法和调试经验四个层面展开,我尽量少绕术语,多用能直接抄作业的数值例子。你只要能看懂欧姆定律,就能把这个电路消化掉。

1. 运放当比较器用,背后的原理并不玄乎

1.1 开环状态下的运放,本质上就是个“判决器”

先回到最基础的模型。运放的开环增益通常在100dB左右,也就是10万倍。对LM358来说,典型开环增益也在100dB量级。这意味着输入端只要有几十微伏的差模电压,输出就已经被推到饱和边沿了。5V供电下,假设输出饱和电压是4.5V,那么4.5V除以10万倍,只有45微伏。也就是说,输入端比基准高半个头发丝,输出就已经“哐当”一下打到底。

所以当运放工作在开环状态,也就是没有从输出引任何电阻电容回到反相输入端时,它的行为完全是非线性的。它只干一件事:比较同相端和反相端谁高谁低。同相端高,输出接近正电源;反相端高,输出接近负电源(单电源下就是地)。

很多人刚学运放时被“虚短虚断”洗脑了,以为输入端电压始终相等。但虚短的前提是负反馈环路成立。当运放开环使用时,这个前提根本不存在,输入端两个引脚的电压可以相差很大,虚短自然失效。反而虚断还成立,因为运放输入阻抗很高,无论是开环还是闭环,流入引脚的电流都可以忽略。这两个概念的边界,恰恰是比较器电路理解的关键。

实际应用中,比较器电路通常会在阈值附近遇到一个“中间地带”。因为增益不是无穷大,所以输入差模电压非常靠近0V时,输出可能停在中间电压。但这种情况是极短暂的,只要输入信号有一点变化,输出就会迅速冲向饱和。对大多数低速传感器信号来说,这个过程就像拨开关一样干脆。

1.2 比较器工作的边界条件:什么时候能用在什么时候不能用

运放当比较器用,适合的信号特征,按我自己的经验来总结,就是“变化慢、噪声小、精度要求不苛刻”。比如热敏电阻温度报警、光敏电阻环境光检测、电池电压低于某个值报警、液位开关检测,这些都是常见的低速场景,运放的响应速度完全够用。

反过来,如果输入信号是几百kHz的PWM方波,或者是电机电流里的高频纹波,需要快速翻转、快速恢复,那普通运放就吃力了。问题不是原理上不能比,而是输出翻转速率跟不上。LM358这种通用运放,压摆率只有0.3V/us到0.5V/us,从低电平摆到高电平需要几十微秒,在高速场合根本没法看。

另外还有一个限制条件,就是在判断阈值时,输入端电压必须落在运放的共模输入范围内。LM358的共模范围是0到VCC减1.5V左右。如果阈值设在4.2V而供电只有5V,同相端和反相端都已经超出了允许范围,比较结果就会不可靠。更糟糕的是某些运放超过共模范围后会发生输出相位反转,本来应该输出高电平的,结果反而翻到了低电平。这一点在选型时必须查手册确认。

1.3 关键参数速览:增益、失调电压、压摆率、传播延迟

既然要用运放当比较器,就要把影响判决质量的几个参数摸透。开环增益决定判决的“锐度”,增益越高,输出在阈值附近的过渡区越窄。LM358有100dB开环增益,其实已经足够了。失调电压决定阈值偏差,普通运放2mV到7mV的失调,对于3.3V系统来说误差不到0.2%,大多数场景可接受;但如果你在检测一个10mV的检流电阻压降,那就不能忽视。

压摆率限制的是输出端的电压变化速度。LM358的压摆率只有0.3V/us,遇到噪声尖峰时,输出还没翻过去,噪声就消失了,表现为输出抖动或半翻转状态。传播延迟这个概念在比较器IC手册里写得很清楚,但在运放手册里一般不直接给。运放作为比较器使用时,内部多级放大电路都会进入深度饱和或截止,退出饱和的时间会比正常闭环工作慢很多。这也是我不建议在高速场合拿运放硬当比较器的原因。

这里的结论可以做成一张表方便以后选型时对照。

参数LM358LM393专用比较器说明
开环增益100dB100dB两者都能可靠判决
失调电压典型2mV典型2mV低速阈值检测均可接受
压摆率0.3V/us不直接给,看传播延迟运放动态响应明显偏慢
传播延迟通常数十us量级典型1.3us高速场合必须选比较器
输出结构推挽开集逻辑电平匹配方式完全不同

2. 运放和专用比较器到底差在哪,选型心里要有数

2.1 补偿电容决定命运:为什么运放天生慢半拍

运放设计时为了在负反馈下稳定工作,内部会加一个主极点补偿电容,把单位增益带宽压下来。经典运放比如LM358,增益带宽积只有1MHz。功率带宽、全功率响应都受这个电容限制。而比较器内部不需要负反馈稳定,所以不会刻意加这种大电容,各级放大电路可以做得带宽更大、摆率更快。

可以这样理解:运放像一个做精细活的老会计,每一笔账都要认真核对,所以速度慢但线性度好;比较器像一个只看“多与少”的安检门,只关心你有没有超标,所以反应快但没法做线性运算。你把老会计拉去当安检员,他也能喊“你超了”,但喊得慢,而且喊之前还要犹豫一下。这正是运放当比较器用时传播延迟大的本质原因。

2.2 输出结构差异:推挽输出和开集输出怎么选

LM358这一类运放的输出级是推挽结构,输出高电平可以达到接近电源轨,输出低电平可以接近地,不需要任何外部电阻就能直接驱动后级。但推挽输出也有局限性,最典型的就是两个输出级不能并联。也就是说,如果你想把两个比较结果“与”在一起,用运放做需要额外加二极管或逻辑门,比较麻烦。

LM393、LM339这类专用比较器则采用开集输出。管子导通时,输出拉低到地;管子截止时,输出悬空,必须外接上拉电阻才能得到高电平。这个特性看着啰嗦,实际上非常灵活。上拉电阻可以接到不同的电压域,比如比较器用5V供电,但上拉到3.3V,输出就能直接喂给MCU。另外开集输出天然支持“线与”,多个比较器输出直接并在一起共用一个上拉电阻,只要有一个输出为低,整个输出就是低。窗口比较器特别喜欢这种结构。

上拉电阻阻值选择也有讲究。阻值太小,比如100欧,低电平输出电流太大,比较器可能扛不住;阻值太大,比如100k,配合后级输入电容或走线寄生电容会形成低通滤波,拖慢上升沿。我的习惯是1k到4.7k之间,走线长了取小一点,追求低功耗可以取10k。

2.3 输入共模范围和相位反转:最容易踩的隐藏坑

运放和比较器对输入端的容忍能力差别很大。运放通常会明确给出共模输入范围,超出这个范围,输入级可能截止,甚至出现逻辑错误。有一些双极型运放,比如LM358,输入端不能比VCC高太多,否则会有很大的基极电流灌入,轻则阈值偏移,重则损伤器件。比较器IC则往往允许输入电压独立于供电轨之外,甚至允许大于正电源。

相位反转是另一个在比较器应用中要特别留意的问题。JFET输入的TL072、部分CMOS运放,在输入电压超过共模范围时,输出状态会突然反转:你明明输入很高,它却输出低电平。这在开环比较器应用中极具迷惑性。解决思路就是避免输入电压超出共模范围,或者在输入到地之间接保护二极管,把电压钳在安全范围。通用做法是串联一个10k到100k的限流电阻,同时在输入端对地和电源各反接一个二极管。

3. 几种最常用的比较器电路,公式直接给你

3.1 反相比较器:一个基准一个输入就能工作

反相比较器是最简单的结构。输入信号接到反相端,基准电压接到同相端。当输入低于基准时,反相端电位低,输出拉高;当输入高于基准时,输出拉低。基准电压可以用电阻分压,也可以用稳压管、基准芯片等提供。

这个电路的缺点是完全没有滞回能力。信号在阈值附近哪怕只是抖动几十毫伏,输出就会跟着反复翻转。用在按键检测这种人手操作的地方问题不大,但用在传感器信号上基本不可用。很多新手搭完发现LED闪烁不停,其实就是这个原因。

为了解决抖动,可以在同相端和输出端之间加一个正反馈电阻,形成滞回。但正反馈电阻会影响同相端基准电压,因为基准源阻抗一般不是零,正反馈电流会在这上面产生压降。基准源阻抗越高,实际滞回效果越不稳定。所以我更推荐用同相滞回比较器结构,把基准放在反相端,正反馈加在同相端,两者互不干扰。

3.2 同相比较器与滞回计算:手把手演算一遍

同相滞回比较器的经典接法是:输入信号通过电阻R1接运放同相端,反相端接基准V_REF,输出端和同相端之间接反馈电阻R2。这样输出状态会影响同相端的电压,从而改变翻转阈值。

先用叠加定理写出同相端电压公式:

V+ = V_IN × R2/(R1+R2) + V_OUT × R1/(R1+R2)

翻转条件是V+等于V_REF。把输出高电平VoH和低电平VoL分别代入,就能求出两个翻转阈值。设R1=10k,R2=100k,V_REF=2.5V,VoH=5V,VoL=0V,则:

高阈值V_TH_HIGH = 2.5 × 110/100 - 0 × 10/100 = 2.75V
低阈值V_TH_LOW = 2.5 × 110/100 - 5 × 10/100 = 2.25V

输入从低到高变化时,输出处于高电平,要等输入超过2.75V才会翻低;输入从高到低变化时,输出处于低电平,要等输入低于2.25V才会翻高。滞回宽度0.5V。

如果输出摆幅不是理想轨到轨,比如实测VoH只有3.5V,VoL=0.2V,那计算值会明显变化。高阈值会变成2.75 - 0.2×0.1等于2.73V,低阈值变成2.75 - 3.5×0.1等于2.40V,滞回收窄到0.33V。所以计算时一定要用实际万用表测到的输出饱和电压,而不是直接拿电源电压套公式。

3.3 窗口比较器:判断信号是否越界

有些场景不只要检测高阈值,还要检测低阈值。比如3.3V系统判断供电是否跌出3.0V到3.6V的范围,或者电池电压是否既没欠压也没过压。这时候要用窗口比较器,也就是把两个比较器组合起来。

窗口比较器的基本结构是:上限比较器检测信号是否高于VH,下限比较器检测信号是否低于VL。两个比较器的输出用逻辑方式组合。如果用LM393这种开集输出,直接把两个输出并联到一起,再通过一个上拉电阻接电源。信号在窗口内时两个比较器输出都是高,并联点被上拉到高;信号越界时至少有一个输出拉低,并联点变成低。这就是“线与”逻辑,硬件上只需要两根线并一下,比运放推挽输出省事得多。

窗口比较器的阈值电阻分压需要计算好。比如窗口是3.0V到3.6V,用10k和1k的电阻链串联,从3.3V基准分压出两个阈值。注意电阻的精度和温漂直接影响窗口宽度,我一般会用1%精度金属膜电阻,要求高的场景用0.1%精密电阻或集成基准。

4. 实操:用LM358搭一个NTC温度报警电路

4.1 电路设计思路与参数计算

这里给一个可以直接抄作业的实例:用LM358作为比较器,检测NTC热敏电阻的温度,超过设定温度时点亮LED报警。

NTC选择10k@25℃、B值3950的常用型号。把NTC放在电源和采样点之间,采样点下面接一个10k固定电阻到地。温度升高时NTC阻值下降,采样点电压升高。25℃时NTC阻值10k,采样点电压2.5V。50℃时NTC阻值按B值公式计算约为3.6k,采样点电压实测是5V × 10k/(10k+3.6k),大约3.68V。75℃时采样点电压能到4.35V左右。

报警阈值就设在50℃对应的3.68V附近。使用20k电位器从5V分压得到这个电压,接到反相端。采样点信号通过10k电阻接到同相端,输出到同相端接一个470k反馈电阻做滞回。LED从输出经过1k限流电阻接到地。

滞回计算:R1=10k,R2=470k,V_REF=3.68V,实际VoH按4.5V、VoL按0.2V估算。高阈值V_TH_HIGH = 3.68 × 480/470 - 0.2 × 10/470,约等于3.75V。低阈值V_TH_LOW = 3.68 × 480/470 - 4.5 × 10/470,约等于3.66V。滞回宽度约0.09V。换算成温度,50℃附近NTC电压变化率大约0.037V/℃,所以回差大约2.4℃,足够消除继电器或蜂鸣器在阈值附近反复动作的问题。

4.2 焊接与调试过程实录

面包板上搭这个电路时,我的接线顺序是先接供电和电位器分压,再接NTC分压网络,最后再接运放和反馈。通电后第一步是用万用表测量反相端电压,把电位器调到3.68V。注意不要在没接好NTC时就调基准,否则NTC还没供电,采样点悬空,比较结果没有意义。

第二步用镊子短接NTC两端,相当于模拟温度急剧升高。这时采样点电压会接近5V,输出应该翻转为高电平,LED点亮。把NTC断开,采样点被固定电阻拉到0V,输出翻回低电平,LED熄灭。这一步能快速验证电路基本逻辑是否正确。

第三步接入真实NTC,用热风枪或直接用手指捏住NTC缓慢升温,观察LED是否在目标温度附近翻转。如果没有热风枪,可以用可调电源代替NTC分压网络,直接把电压从3.5V缓慢调到3.8V,观察翻转是否干净。我个人更喜欢用电源模拟,因为便于精确控制电压,能直接测出翻转阈值。

4.3 实测波形与数据记录

实际调试中,用示波器探头夹在LM358输出脚,观察到的翻转过程非常干脆。在阈值附近输入电压以0.01V的步进缓慢变化时,输出依然能从接近0V直接跳到接近4.5V,不存在明显的线性放大区。但要注意,LED作为负载会拉走约2.8mA电流,LM358的高电平输出被拉低到4.3V左右。这会让滞回宽度比理论值稍微小一点,计算时用实际测的VoH更精确。

实测翻转点与理论值偏差主要来自电位器的分压漂移和NTC本身误差。普通碳膜电位器温度系数大,如果电路在户外工作,我建议换成多圈精密电位器,或者干脆用固定电阻分压加一个微调位置。另外NTC的B值误差在1%到5%之间,折算到温度大概有1到2℃的偏差,追求高精度的话需要校准。

焊接调试过程中最容易犯的错误是NTC位置上下颠倒。如果把NTC放在采样点下面、固定电阻接电源,温度升高时采样点电压会下降,电路行为完全相反。动手前先在纸上画出分压关系,确认采样点电压随温度升高是升还是降,再决定比较器同相端和反相端的接法。

5. 常见问题速查表与我的调试习惯

5.1 输出抖动、振荡:先加滞回,再查基准

输出抖动是比较器电路最常见的问题。原因通常是信号在阈值附近反复穿越,或者电源本身带有纹波。解决思路分两步走。第一步加正反馈滞回,把阈值变成两个点,只要回差大于噪声峰峰值,输出就不会抖动。第二步检查基准是否稳定,电位器滑臂接触不良、分压电阻虚焊都会让基准电压晃动。

如果你用的运放是LM358这种老款,还要注意正反馈电阻不能太小。正反馈太强会导致阈值偏移过大,比如本应50℃报警,结果等到60℃才动作。判断正反馈是否过强的方法很简单:把滞回宽度换算成输入电压,再和信号本身的噪声量级做对比。回差稍微大于噪声即可,不要贪大。

5.2 翻转点不准:测量实际VoH和VoL再反推

翻转点不准的根源大多数出在基准精度或输出饱和电压偏离预期。很多人在算滞回时默认高电平等于电源电压,低电平等于0V,这在理想电路里没问题,但实际运放总会有饱和压降。我用LM358实测,空载时高电平能到4.8V左右,带上2.8mA负载就掉到4.3V。代入公式后,滞回宽度直接缩水。

排查方法是把整个电路断电,用万用表二极管挡测输出管压降,或者直接用可调电源单独给运放输入一个明确的差分电压,强制输出饱和,然后测量输出管脚电压。把这组实测值代入阈值公式,计算值和实际翻转点就能对上。

5.3 输出电平不匹配:推挽和开集的电平转换选择

运放推挽输出直接接到TTL或CMOS逻辑门通常没问题,但有一个坑:如果运放用12V供电,输出高电平是12V,直接进5V的MCU引脚就可能烧毁。这时候必须用分压电阻或者加电平转换电路。

专用比较器开集输出解决这个问题很方便。输出端接一个上拉电阻到MCU的3.3V电源,即使比较器本身用12V供电,输出高电平也始终是3.3V。这也是工业产品里比较器比运放更常见的逻辑接口原因。用运放做比较器时,如果电平不匹配,我一般会在输出端串一个1k电阻,再接一个钳位二极管到MCU电源,用钳位方式硬性限制高电平。

5.4 上电瞬间误动作和输入电压超限的应对思路

上电时电源是缓慢上升的,运放输入端两个电压变化速率不同,可能在阈值附近停留一段时间。如果这个电路驱动继电器或者蜂鸣器,上电瞬间可能会误响一声。解决思路有几种:在上拉或者驱动端加一个RC延迟,让输出信号延迟几百毫秒;或者用MCU在上电后延时读状态,忽略前几百毫秒的干扰。

输入超限是另一个容易忽略的问题。如果检测的信号来自外部设备,比如电机电压或电池电压,可能远大于运放供电电压。这时必须在输入端串联电阻限流,并在运放输入端对电源和地各加一个二极管钳位。否则一次浪涌就可能击穿输入级。我调试过一个电池欠压报警电路,电池最高电压42V,运放用5V供电,就是靠0.1uF电容和二极管钳位保证输入引脚安全的。

5.5 根据使用场景选择合适的器件:低速用运放,高速用比较器

到目前为止说了很多运放当比较器的坑,但并不是要否定这种做法。低速传感器信号、手头只有运放、想快速验证一个阈值报警逻辑,直接拿运放开环用完全合理,成本低、又不需要额外器件。LM358到如今还在大量出货,很多产品里照样拿它做电量比较,因为它便宜、皮实、单电源供电范围宽。

但是一旦涉及到高频PWM检测、高速过零检测、通信波形整形,或者需要快速传播延迟和干净的数字边沿,就该换用专用比较器。LM393和LM339是入门首选,上拉电阻接上就能工作;TLV3501这类高速比较器能做到纳秒级延迟,但功耗和价格会高不少。选型时先看传播延迟、再看输出结构、最后看输入共模范围,比单纯看“能不能比较”要靠谱得多。

从我个人的经验来说,运放当比较器用,最大的风险在于只看到翻转结果就去复制电路。很多网上流传的图纸没有标注输入信号范围、供电电压、负载阻抗,直接照抄很容易在边界条件下失效。建议拿到一块运放,先翻一下数据手册,看一眼VoH、VoL、失调电压和压摆率四个参数,再决定要不要直接拿它当比较器用。低速传感器场景,手头只有运放,放心用;高速场合,老老实实上专用比较器。想清楚了这一点,后面再做窗口比较器、迟滞比较器、PWM占空比检测电路,都会顺手很多。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询