迟滞比较器原理与设计:正反馈接法、阈值计算及LM393实操 1. 从一个翻车案例说起比较器为什么需要正反馈几年前带一个刚入行的兄弟调一块过流保护板他用LM393搭了个最基础的电压比较器——反相端接基准同相端接采样电压输出直接上拉电阻到VCC。逻辑上没毛病采样电压超过基准输出翻转触发保护。结果板子一上电继电器就开始哒哒哒地疯狂抖动示波器一抓输出波形好家伙在阈值附近来回跳了几十次才稳定下来。他以为是LM393坏了换了三片还是一样。我让他把输入信号调慢一点再看波形更明显——只要输入电压在基准电压附近磨蹭输出就跟着抖。这不是芯片的问题是比较器在阈值附近对噪声毫无免疫力。输入信号上叠加的任何微小纹波、工频干扰、甚至PCB走线耦合进来的几十毫伏噪声都会被比较器当成有效信号放大成满幅翻转。解决办法就一个引入正反馈制造迟滞。加两个电阻把输出的一部分喂回同相端让比较器的翻转阈值变成一个窗口——上升时要超过上限才翻下降时要低于下限才翻中间这段死区里输出稳如泰山。这就是迟滞比较器也叫滞回比较器、施密特触发器。这篇内容就把比较器正反馈接法的迟滞效应从头到尾拆一遍为什么正反馈能产生迟滞、两个阈值电压怎么算、电阻怎么选、LM393这类开漏输出比较器接正反馈有什么坑、实测波形长什么样。适合正在学模电、做课程设计、或者工作中要用比较器做信号整形的朋友。看完你至少能做到拿到一个比较器电路知道它有没有迟滞、迟滞窗口多大、怎么改。2. 迟滞效应到底解决了什么问题2.1 单限比较器的致命弱点阈值附近没有记忆先把这个问题的本质说透。理想的电压比较器传输特性是一条垂直的线——输入刚好等于基准的那一刻输出瞬间翻转。但现实里输入信号永远带着噪声哪怕你用电池供电、屏蔽线输入热噪声也在毫伏级别比较器本身有输入失调电压LM393典型值±2mV最大±9mV电源纹波、地弹、空间耦合随便一个都能在阈值附近叠加几毫伏到几十毫伏的扰动。当输入信号缓慢经过阈值时比如一个50Hz正弦波过零点或者一个RC充电曲线爬到基准附近信号在阈值附近停留的时间相对较长噪声就会让输出反复翻转。这就是抖动chattering。注意抖动不只是看起来难看。如果比较器后面接的是计数器、中断引脚、或者驱动MOS管抖动会直接导致误计数、中断风暴、开关管反复开通关断发热烧毁。这是实打实的可靠性问题不是波形美观问题。2.2 正反馈如何制造记忆把阈值变成两个迟滞的核心思想是让比较器的翻转阈值依赖于它当前的输出状态。输出是高电平时阈值抬高一点输出是低电平时阈值压低一点。这样输入信号要翻上去和翻下来需要越过不同的门槛中间形成一个窗口噪声在这个窗口里翻不动输出。实现这个阈值随输出状态变化的手段就是把输出信号通过一个电阻正反馈到同相输入端。注意是正反馈——反馈回来的信号方向和输入信号变化方向一致起增强作用而不是负反馈那种拉平的作用。用生活化的类比负反馈像空调温控温度到了就停、低了就开但如果你把温度传感器放在出风口就会频繁启停正反馈迟滞像老式电熨斗的温控双金属片它有两个动作温度——凉到某个温度才通电加热热到另一个更高温度才断电中间这段它记着自己刚才的状态不会来回跳。2.3 迟滞带来的三个直接收益第一抗噪声能力。只要噪声幅度小于迟滞窗口宽度输出就不会误翻转。窗口越宽抗噪越强。第二消除过零抖动。正弦波、三角波整形时过零点附近的噪声被窗口吃掉输出边沿干净。第三边沿变陡。正反馈会加速翻转过程因为输出一旦开始变化反馈回来的信号会推一把让翻转更快完成。这一点在慢速比较器上尤其明显。代价也有迟滞窗口会带来阈值误差。如果你的应用需要精确检测某个电压点迟滞窗口就意味着上升触发点和下降触发点不是同一个值精度会下降。所以迟滞宽度要按需设计不是越宽越好。3. 同相与反相两种迟滞接法拆解3.1 反相迟滞比较器基准在反相端反馈到同相端这是最常见的一种。电路结构输入信号经电阻R1接到反相输入端同相输入端接基准电压Vref或经电阻分压输出通过反馈电阻Rf接回同相输入端。分析翻转阈值时抓住一个关键点比较器翻转的瞬间两个输入端电压相等。所以我们要找的是同相端电压等于反相端电压这个临界条件。设输出高电平为VOH低电平为VOL。当输出为高时同相端电压由Vref和VOH经Rf、R2分压决定假设同相端还接了电阻R2到VrefV_th Vref (VOH - Vref) × R2/(R2Rf)当输出为低时V_th- Vref (VOL - Vref) × R2/(R2Rf)输入信号从低往高走越过V_th时输出翻低从高往低走低于V_th-时输出翻高。迟滞宽度ΔV V_th - V_th- (VOH - VOL) × R2/(R2Rf)这个公式很关键。它告诉你迟滞宽度只取决于输出摆幅和两个反馈电阻的比值和基准电压无关。这是设计时最好用的一个结论。3.2 同相迟滞比较器输入在同相端反馈也在同相端另一种接法输入信号经R1接同相端同时输出经Rf也接同相端反相端接基准。这种接法的阈值计算稍微绕一点因为同相端同时受输入和输出影响。翻转条件同样是两输入端相等。设反相端基准为Vref输入为Vin输出为Vout。同相端电压V Vin × Rf/(R1Rf) Vout × R1/(R1Rf)令V Vref解出VinVin Vref × (R1Rf)/Rf - Vout × R1/Rf输出高时VoutVOH对应的输入阈值V_th- Vref × (R1Rf)/Rf - VOH × R1/Rf输出低时VoutVOL对应的输入阈值V_th Vref × (R1Rf)/Rf - VOL × R1/Rf注意这里下标有点反直觉输出高时对应的是输入下降沿的阈值。迟滞宽度ΔV (VOH - VOL) × R1/Rf同样只和输出摆幅、电阻比有关。3.3 两种接法怎么选对比项反相迟滞同相迟滞输入阻抗由R1决定可做高受反馈网络影响输出逻辑输入高→输出低反相输入高→输出高同相阈值公式简单直观稍复杂适用场景过压检测、窗口比较信号整形、同相缓冲选哪个主要看你的逻辑需求。如果后面接的是低电平有效的复位、或者需要输入超限时输出拉低用反相如果需要同相跟随、或者多级级联保持相位用同相。实操心得新手最容易搞混的是反馈电阻接错端。正反馈必须接到同相端如果接到反相端就变成负反馈比较器会工作在线性区输出既不是高也不是低而是跟着输入爬完全失去比较功能。我见过不止一个人把Rf焊到反相端然后纳闷为什么输出一直是1.6V左右。4. 关键参数计算与电阻选型实操4.1 先确定输出摆幅开漏输出的坑算迟滞宽度之前必须先搞清楚你的比较器输出高电平和低电平到底是多少。这里LM393是个典型——它是开漏输出输出高电平不是芯片自己产生的而是靠外部上拉电阻拉到某个电源。所以VOL输出低时内部NPN管饱和导通典型0.1~0.4V取决于灌电流VOH输出高时内部管子截止由外部上拉电阻和负载决定理想情况等于上拉电源电压实际会因负载电流有压降。如果你用LM393上拉到5V那么VOH≈5V轻载VOL≈0.2V输出摆幅约4.8V。如果你上拉到3.3V摆幅就只有约3.1V。摆幅直接决定迟滞宽度所以上拉电源要选好。对比一下LM339四比较器同样开漏和LM311可选集电极开路或发射极输出逻辑类似。而像LM358这种运放当比较器用不推荐但有人这么干输出是推挽的VOH接近VCC-1.5VVOL接近0V摆幅又不一样。4.2 迟滞宽度计算实例假设用LM393上拉到5VVOL0.2VVOH4.9V考虑上拉电阻和负载摆幅ΔVout4.7V。要求迟滞宽度100mV。反相接法用公式 ΔV ΔVout × R2/(R2Rf)0.1 4.7 × R2/(R2Rf)R2/(R2Rf) 0.0213如果取R210kΩ则Rf R2 × (1/0.0213 - 1) 10k × 45.9 ≈ 459kΩ。取标准值470kΩ反算迟滞宽度ΔV 4.7 × 10/(10470) 4.7 × 0.0208 98mV接近100mV可以接受。如果要求迟滞宽度500mV呢R2/(R2Rf) 0.5/4.7 0.106取R210kΩRf 10k × (1/0.106 - 1) 10k × 8.4 84kΩ取82kΩ。反算ΔV 4.7 × 10/(1082) 4.7 × 0.1087 511mV。4.3 电阻取值范围的讲究R2和Rf不是随便取的有几个约束阻值不能太小。如果R2只有100Ω反馈网络会从输出端抽取较大电流对开漏输出的比较器来说这个电流会叠加在上拉电阻的电流上可能导致VOL升高、VOH降低摆幅缩水迟滞宽度跟着变。一般R2不低于1kΩ常用10kΩ量级。阻值不能太大。如果R2和Rf都到兆欧级比较器输入偏置电流LM393典型25nA最大250nA在电阻上产生的压降就不可忽略了。250nA × 1MΩ 0.25V这个误差直接叠加到阈值上可能比迟滞窗口还大。所以Rf一般不超过1MΩR2不超过100kΩ。和输入电阻R1的配合。反相接法里R1决定输入阻抗也影响输入电流。如果R1太小输入信号源可能带不动如果R1太大和输入偏置电流作用又会产生误差。一般R1取10k~100kΩ。提示算完电阻后一定要用实际电源电压和实测的VOH、VOL重新验算一遍迟滞宽度。 datasheet上的VOL是在特定灌电流下测的你的电路灌电流不一样VOL就不一样。我习惯在板子上先焊好用示波器测实际翻转点再微调电阻。4.4 基准电压怎么给基准电压的稳定性直接决定阈值精度。几种常见做法电阻分压最简单成本最低但受电源波动影响大。如果电源本身不稳基准就跟着飘。适合对精度要求不高的场合。稳压二极管比电阻分压稳但噪声较大需要并联电容滤波。专用基准芯片如TL431精度高、温漂小适合精密检测。TL431本身就是一个可调基准用法成熟。基准电压芯片如REF3025等精度最高成本也最高。对于一般的过压/欠压检测电阻分压加个滤波电容就够了。对于精密测量老老实实上基准芯片。5. 完整实操从搭电路到抓波形5.1 元件清单与电路搭建以反相迟滞比较器为例检测一个缓慢上升下降的输入信号要求电源5V基准电压2.5V迟滞宽度约200mV输出接LED指示低电平点亮元件LM393 一片R1 10kΩ输入电阻R2 10kΩ基准分压上臂 反馈下臂实际用两个10kR3 10kΩ基准分压下臂Rf 220kΩ反馈电阻Rp 4.7kΩ上拉电阻LED 1kΩ限流电阻0.1μF去耦电容基准分压5V经两个10kΩ分压得到2.5V并联0.1μF滤波。这个2.5V接同相端同时同相端还通过Rf接输出。迟滞宽度验算假设VOH4.8VVOL0.2V摆幅4.6V。ΔV 4.6 × 10/(10220) 4.6 × 0.0435 200mV。正好。5.2 实测波形与翻转点测量搭好电路后输入接一个1Hz的三角波或者用手动调节的电位器模拟缓慢变化幅度0~5V。示波器双通道CH1看输入CH2看输出。你会看到输入从0V慢慢上升到约2.6V时输出从高翻低然后输入继续升到5V再慢慢下降到约2.4V时输出从低翻高。两个翻转点相差约200mV和计算吻合。这里有个测量技巧用示波器的余晖模式或者XY模式可以直接看到传输特性曲线——一个带迟滞的回环。XY模式下X轴接输入Y轴接输出你会看到一个矩形回环回环的宽度就是迟滞宽度高度就是输出摆幅。这是最直观的验证方式。实操心得手动调电位器测翻转点时动作要慢而且要在翻转点附近来回微调几次确认输出确实锁在某个状态不会因为手抖就翻。如果发现翻转点不稳定、每次测的都不一样八成是基准电压不稳或者输入信号源内阻太大。5.3 用仿真软件预验证搭实物之前用LTspice或者Multisim跑一遍仿真能省不少事。LTspice里LM393有官方模型直接调用。设置DC扫描输入电压看输出翻转点或者设置瞬态仿真输入三角波看输出波形。仿真时注意LM393模型的开漏输出需要外部上拉别忘了。另外仿真里的VOL可能比实际小因为模型不一定精确模拟饱和压降。所以仿真结果只能参考趋势最终以实测为准。仿真还有一个好处可以快速试不同电阻值看迟滞宽度怎么变。比如把Rf从220k改成100k迟滞宽度立刻变大波形上回环变宽。这种参数扫描在实物上做很费时间仿真里几秒钟就出来了。5.4 输出端接负载的注意事项LM393是开漏输出输出低时能灌电流sink输出高时靠上拉电阻提供电流source能力很弱。所以接LED指示LED要接在VCC和输出之间输出低时点亮不能接在输出和GND之间那样输出高时点不亮因为开漏输出高时是高阻态没有source能力。接后级逻辑后级输入如果是高阻没问题如果后级需要较大驱动电流要加上拉电阻或者缓冲。上拉电阻取值太小则功耗大、VOL升高太大则上升沿变慢。一般4.7k~10kΩ比较合适。如果速度要求高可以减小到1k~2kΩ但要检查VOL是否还在可接受范围。6. 常见问题与排查技巧实录6.1 输出不翻转或一直翻转现象输入怎么变输出都不动或者一直处于某个状态。排查顺序先量两个输入端的静态电压。如果同相端和反相端电压差很大说明输入信号根本没到阈值范围。检查输入信号幅度、基准电压是否正确。量输出端电压。如果输出一直是低接近0V可能是上拉电阻没接、虚焊或者输出被后级拉死。检查反馈电阻是否接错端。如果Rf接到了反相端就变成负反馈输出会停在一个中间电压。检查电源和地。LM393的供电引脚有没有接对去耦电容有没有装。6.2 迟滞宽度和计算值对不上现象实测迟滞宽度比算的大很多或小很多。原因分析VOH和VOL的实际值和假设不符。特别是开漏输出VOH取决于上拉电源和负载VOL取决于灌电流。用万用表实测输出高电平和低电平代入公式重算。电阻精度。5%精度的电阻两个电阻的比值误差可能到10%迟滞宽度跟着差10%。输入偏置电流影响。如果电阻取值很大偏置电流在电阻上的压降会改变实际阈值。基准电压源内阻。如果基准分压电阻较大反馈电流会改变基准点电压导致阈值偏移。解决用实测的VOH、VOL重新算电阻或者直接用电位器代替Rf边调边看波形调到满意为止再量出电位器阻值换固定电阻。6.3 输出边沿有振荡或过冲现象翻转瞬间输出波形上有振铃或毛刺。原因正反馈太强、PCB布局寄生参数、或者比较器本身速度不够。解决在输出和地之间加一个小电容几十pF到几百pF吸收高频振铃。缩短反馈电阻的走线减少寄生电感。如果振荡严重适当减小正反馈强度增大Rf但迟滞宽度会变小需要权衡。电源去耦要做好0.1μF陶瓷电容紧贴芯片电源引脚。6.4 常见问题速查表问题现象可能原因排查方法解决措施输出不翻转输入未达阈值量两端电压调整输入幅度或基准输出一直低上拉缺失/虚焊量输出对地电阻补焊上拉电阻输出中间电平反馈接错端检查Rf连接改接到同相端迟滞宽度偏大VOH/VOL实测偏差万用表实测重算电阻迟滞宽度偏小电阻精度差量电阻值换精密电阻翻转点漂移基准不稳量基准电压加滤波或换基准边沿振铃寄生参数看波形频率加小电容输出抖动迟滞不足看回环宽度增大迟滞6.5 几个容易忽略的细节输入共模范围。LM393的输入共模范围是0到VCC-1.5V。如果你的输入信号接近VCC比较器可能工作不正常。要么降低输入信号范围要么换轨到轨输入的比较器。输入电压不能超过电源。LM393输入端如果超过VCC0.3V内部可能导通导致误动作甚至损坏。输入信号如果可能超过电源要加限幅保护。多路比较器的相互影响。LM339是四比较器共用电源和地。如果一路输出大电流可能通过地线耦合影响其他路。布局时每路的地线要分开走最后单点接地。温度漂移。电阻分压基准的温漂、比较器失调电压的温漂都会让阈值随温度变化。如果应用环境温度变化大要用低温漂基准和电阻。7. 迟滞比较器的扩展玩法7.1 窗口比较器检测电压是否在某个范围内用两个比较器可以搭一个窗口比较器检测输入是否在[Vlow, Vhigh]之间。每个比较器都可以加迟滞防止边界抖动。这种电路在电池过充过放保护、电源监控里很常见。具体做法一个比较器检测上限输入超过Vhigh时输出翻转另一个检测下限输入低于Vlow时翻转两个输出用二极管或者逻辑门组合得到窗口内和窗口外两个状态。7.2 方波整形把正弦波变成干净方波迟滞比较器最经典的用途之一。输入一个带噪声的正弦波输出干净的方波。迟滞窗口要大于噪声幅度但小于信号幅度这样噪声被吃掉信号正常翻转。如果输入信号幅度变化很大固定迟滞可能不够用。这时候可以用自动增益控制AGC先稳定幅度或者用可变迟滞电路。7.3 与单片机配合中断去抖比较器输出接单片机中断引脚时迟滞可以硬件去抖减少软件负担。但要注意迟滞窗口内的缓慢变化仍然可能产生一次翻转如果要求绝对干净还需要软件确认。另一种做法是用比较器触发单稳态电路输出固定宽度的脉冲彻底消除抖动。7.4 振荡器利用迟滞产生方波迟滞比较器加上RC充放电网络就构成一个弛张振荡器。输出通过R给C充电C上电压升到上限阈值时输出翻低C通过R放电降到下限阈值时输出翻高循环往复。振荡频率由RC和迟滞宽度决定。这个电路在函数发生器、PWM产生、LED闪烁等场合都有用。频率计算公式f ≈ 1/(2RC × ln((VOH-Vth-)/(VOH-Vth)))具体推导这里不展开但思路是充放电时间由RC和阈值差决定。8. 我踩过的几个坑和实测体会第一个坑是上拉电阻取值太随意。早期做板子上拉随手用了10kΩ结果输出上升沿很慢因为开漏输出靠上拉电阻给寄生电容充电10kΩ × 100pF 1μs的时间常数边沿爬升明显。后来改成2.2kΩ边沿快了但功耗上去了。最后折中4.7kΩ配合减小走线电容效果可以接受。所以上拉电阻不是随便选的要结合速度和功耗权衡。第二个坑是基准电压没滤波。有一次用电阻分压做基准没加电容结果输出抖动得厉害。后来在基准点并联了一个0.1μF加一个10μF抖动立刻消失。原因是分压电阻热噪声和电源纹波直接调制了基准比较器把这个调制放大成了输出抖动。基准滤波是必须的不是可选项。第三个坑是反馈电阻走线太长。有一版PCB为了布局方便Rf绕了很远结果翻转时输出有振铃。缩短走线后振铃消失。正反馈路径对寄生参数敏感走线要尽量短最好紧贴比较器引脚。第四个体会是实测永远比计算重要。公式给的是理想情况实际电路里VOH、VOL、失调电压、偏置电流都在变。我的习惯是先用公式算个大概焊好电路后用示波器XY模式看回环根据实测微调电阻。一般调一两次就能到位。最后一个体会是迟滞宽度不是越大越好。有一次为了抗噪把迟滞做到1V结果检测精度惨不忍睹该报的警不报不该报的乱报。后来降到200mV配合软件滤波效果最好。硬件迟滞和软件滤波要配合使用硬件负责吃掉高频噪声软件负责确认逻辑各司其职。LM393这类比较器便宜、好用、皮实但它的开漏输出和有限的共模范围需要你在设计时多留个心眼。正反馈迟滞接法本身不复杂两个电阻的事但要把参数算准、把坑避开还是得动手实测几遍。我建议你找块面包板搭一个反相迟滞比较器输入接电位器输出接LED亲手调一调翻转点用示波器看看回环。调过一遍之后这个知识点就真正长在你身上了。