滞回比较器原理与LM393电路设计:彻底解决电压比较器输出抖动
发布时间:2026/9/29 2:42:10 锦皓数字建站

1. 从一个让人抓狂的抖动现象说起如果你搭过哪怕一次电压比较电路大概率遇到过这种场景输入信号明明已经越过阈值了输出却在高低电平之间疯狂跳动示波器上那根线像得了帕金森一样抖个不停。我第一次碰到这个问题是在做一个简单的电池低压指示电路用LM393搭了个最基础的比较器结果LED在临界电压附近闪得跟警灯似的完全没法用。这个现象的本质原因其实不复杂任何真实世界的输入信号上都叠加着噪声当信号缓慢经过比较阈值时噪声会让信号在阈值上下反复穿越比较器就忠实地把每一次穿越都翻译成一次输出翻转。普通电压比较器没有记忆它只看当下这一刻谁大谁小所以它必然会抖。滞回比较器也就是施密特触发器就是专门治这个病的。它的核心思路是给比较器装上两个不同的阈值——上限阈值VTH和下限阈值VTH-信号必须涨过上限才能让输出翻高必须跌过下限才能让输出翻低。中间那段死区里输出保持不动。这样一来噪声只要幅度小于死区宽度就完全被无视了。这篇内容我会从最基础的比较器原理讲起然后一步步推导滞回比较器的阈值公式给出LM393的完整电路图和电阻取值方法最后分享几个我在实际调试中踩过的坑。不管你是刚学模电的学生还是需要快速搭一个可靠检测电路的工程师应该都能直接拿去用。2. 普通电压比较器到底差在哪2.1 比较器的本质就是一个模拟量转数字量的判决器电压比较器的功能用一句话概括比较两个输入电压的大小输出一个二值结果。同相输入端电压高于反相输入端时输出高电平反之输出低电平。它本质上是一个开环工作的运算放大器或者说是一个1位ADC。以LM393为例它内部是两个独立的电压比较器输出级是集电极开路OC结构。这意味着输出端必须外接上拉电阻才能输出高电平否则高电平时输出处于高阻态。这个特性很多人第一次用会懵——不给上拉电阻输出永远是低的还以为芯片坏了。LM393的常见参数如下参数典型值说明工作电压2V ~ 36V单电源或双电源均可输入失调电压±2mV决定比较精度输入偏置电流25nA影响高阻抗源精度响应时间1.3μs翻转速度输出灌电流16mA可直接驱动LED输出结构集电极开路必须外接上拉2.2 单阈值比较器的致命缺陷最基本的比较器电路是这样的参考电压Vref接到一端输入信号Vin接到另一端。当Vin Vref时输出翻转当Vin Vref时输出翻回。整个电路只有一个阈值点。问题就出在这个只有一个阈值点上。假设Vref 2.5VVin是一个从0V缓慢上升到5V的直流信号上面叠加了20mV的噪声。当Vin接近2.5V时噪声会让Vin在2.48V到2.52V之间波动每一次波动都跨越了2.5V这个阈值输出就会跟着噪声频率疯狂翻转。我在实验室用信号发生器做过测试输入是一个1Hz、幅度3V、偏置2.5V的三角波叠加50mVpp的白噪声普通比较器的输出在阈值附近产生了上百次翻转。而同样的输入加到滞回比较器上输出干干净净只有一次翻转。注意有人会想我在输入端加个RC低通滤波不就行了。滤波确实能减小噪声但它同时会延迟信号而且如果噪声频率很低比如工频干扰滤波器的截止频率要设得很低响应速度就完全牺牲了。滞回比较器不依赖滤波它是从判决逻辑上解决问题。2.3 什么时候必须用滞回比较器不是所有场合都需要滞回。如果你的输入信号是干净的数字信号边沿很陡那普通比较器完全够用。但以下场景我强烈建议直接上滞回输入信号缓慢变化温度传感器输出、电池电压监测、光敏电阻分压输入信号源阻抗较高容易拾取噪声输出需要驱动继电器或电机不允许抖动信号经过长线传输必然引入干扰判断标准很简单如果输入信号在阈值附近的停留时间远大于噪声的周期就必须用滞回。3. 滞回比较器的正反馈原理拆解3.1 正反馈是滞回的灵魂滞回比较器和普通比较器在电路上唯一的区别就是引入了正反馈。普通比较器是开环的或者只有负反馈用于稳定而滞回比较器把输出的一部分通过电阻反馈到同相输入端形成正反馈回路。正反馈的作用机制是这样的假设输出当前是高电平这个高电平通过反馈电阻抬高同相输入端的电压使得同相端电压比没有反馈时更高。这时候输入信号要想让输出翻低就必须跌到一个更低的电压才行。反过来当输出是低电平时反馈会拉低同相端电压输入必须涨到更高才能翻转。这就自然形成了两个不同的阈值。输出状态自己记住了上一次的结果所以滞回比较器具有记忆功能这也是它被称为施密特触发器的原因。3.2 反相滞回比较器的阈值推导我们以最常用的反相滞回比较器为例把公式从头推一遍。电路结构是输入信号Vin通过电阻R1接到反相输入端同相输入端通过R2接参考电压Vref同时通过Rf接输出端。设输出高电平为VOH低电平为VOL。由于正反馈同相端电压V取决于输出状态。当输出为高电平VOH时同相端电压为V_high (Vref × Rf VOH × R2) / (R2 Rf)此时输入信号上升当Vin超过V_high时输出翻转为低电平。所以上限阈值VTH V_high。当输出翻转为低电平VOL后同相端电压变为V_low (Vref × Rf VOL × R2) / (R2 Rf)此时输入信号下降当Vin低于V_low时输出翻回高电平。所以下限阈值VTH- V_low。滞回宽度死区宽度为ΔV VTH - VTH- (VOH - VOL) × R2 / (R2 Rf)这个公式非常关键。它告诉我们滞回宽度只取决于输出摆幅和R2、Rf的比值与参考电压Vref无关。这意味着你可以独立调节阈值中心点和滞回宽度——调Vref移动中心调R2/Rf比值改变宽度。3.3 同相滞回比较器的区别同相滞回比较器把输入信号接到同相端反馈网络也接在同相端参考电压接反相端。它的阈值公式略有不同但核心逻辑一样。同相结构的优点是输入阻抗高缺点是反馈网络会分压输入信号计算稍复杂。实际项目中我用反相结构更多因为它的阈值公式更直观而且LM393的反相输入端输入阻抗高对信号源更友好。同相结构一般用在需要高输入阻抗的场合比如直接接传感器输出的情况。4. 用LM393搭一个能直接用的滞回比较器4.1 完整电路参数设计我以一个实际需求为例监测12V电池电压低于10.5V时点亮低压告警LED高于11.5V时熄灭。这就是一个典型的滞回需求死区宽度1V。设计步骤确定输出电平LM393是OC输出上拉电阻接5V所以VOH 5V实际约4.8VVOL 0V实际约0.1V。确定阈值VTH 11.5VVTH- 10.5V中心点11V。选择参考电压用5V基准分压得到Vref。为了计算方便先设Vref 5V。计算反馈电阻比ΔV (VOH - VOL) × R2 / (R2 Rf) 1V。代入VOH-VOL ≈ 4.7V得R2/(R2Rf) ≈ 0.213即Rf/R2 ≈ 3.7。选取实际电阻值取R2 10kΩ则Rf ≈ 37kΩ选标准值36kΩ或39kΩ。验证阈值用公式反算VTH和VTH-确认在10.5V和11.5V附近。但这里有个问题输入信号是12V而LM393的输入共模范围是0到Vcc-1.5V。如果Vcc是5V输入不能超过3.5V。所以必须先用电阻分压把12V信号衰减到5V以内。我通常用100kΩ和47kΩ分压12V输入时分压比为47/(10047) 0.32得到约3.84V。然后阈值也要相应缩放11.5V对应3.68V10.5V对应3.36V。重新计算反馈电阻死区宽度变为0.32V。4.2 关键元件的选型考量上拉电阻的选择很讲究。阻值太小功耗大且灌电流可能超限阻值太大上升沿变慢因为输出端有寄生电容。LM393的OC输出灌电流最大16mA但一般取1mA到5mA就够了。5V上拉时4.7kΩ到10kΩ是常用值。我一般用10kΩ兼顾速度和功耗。反馈电阻的精度直接影响阈值精度。普通5%精度的碳膜电阻会导致阈值偏差可能达到几百毫伏。如果阈值要求严格建议用1%精度的金属膜电阻。另外Rf和R2的比值决定了滞回宽度这两个电阻的温度漂移会同步影响宽度所以最好选同一批次的电阻。参考电压源的稳定性同样重要。如果用电阻分压从Vcc取参考Vcc的波动会直接反映到阈值上。对精度要求高的场合建议用TL431或专用基准芯片。我做过对比测试用Vcc分压时电源波动5%会导致阈值漂移约200mV换成TL431后漂移小于20mV。4.3 输出端的处理细节LM393的输出是集电极开路这意味着必须接上拉电阻否则无法输出高电平上拉电压可以与Vcc不同这提供了电平转换的便利。比如Vcc用12V供电上拉接3.3V输出就是3.3V逻辑电平可以直接接单片机输出端可以并联多个OC输出实现线与逻辑如果要驱动继电器不能直接用LM393的输出因为灌电流能力有限且没有续流保护。正确做法是加一级三极管或MOSFET驱动继电器线圈两端反并联续流二极管。提示LM393的输出在翻转瞬间会有振铃如果后级是敏感的数字电路建议在输出端串联一个100Ω电阻并并联一个小电容如100pF做缓冲。5. 实测中那些教科书不会告诉你的坑5.1 输入共模范围被忽略导致比较器失灵这是我踩过最惨的一个坑。当时用LM393做24V系统的电压监测Vcc给5V输入信号直接经过分压后接到输入端。分压后电压约4.5V看起来没超过Vcc。但LM393的输入共模范围是0到Vcc-1.5V也就是最高3.5V。结果输入超过3.5V后比较器输出完全错误该翻转的时候不翻转。解决办法有两个一是降低分压后的电压确保在共模范围内二是提高Vcc让共模范围覆盖信号。我后来把Vcc提到12V问题解决。但要注意提高Vcc后输出上拉也要相应调整如果后级是3.3V逻辑上拉仍然接3.3V即可。5.2 正反馈电阻取值不当导致不滞回有一次我为了省事反馈电阻直接用了1MΩ结果发现电路完全没有滞回效果输出还是抖。原因很简单反馈电阻太大正反馈电流被输入端的源阻抗和噪声淹没了。正反馈要起作用反馈到同相端的电流必须足够显著地改变同相端电压。经验法则是Rf不应大于R2的100倍且R2不宜大于100kΩ。如果信号源阻抗很高还需要考虑源阻抗对反馈的分流效应。我一般把R2控制在10kΩ到47kΩ之间Rf在100kΩ到470kΩ之间。5.3 电源退耦没做好滞回也救不了滞回比较器能抑制输入端的噪声但对电源噪声无能为力。如果Vcc上有纹波参考电压和输出高电平都会波动阈值跟着漂。我在一个电机控制板上就遇到过这个问题电机启动时电流冲击导致Vcc跌落比较器误翻转。解决方案是在LM393的Vcc引脚就近加一个0.1μF陶瓷电容和一个10μF电解电容。陶瓷电容负责高频退耦电解电容负责低频储能。如果电源纹波特别大还可以在参考电压分压点再加一个0.1μF电容。5.4 阈值计算值和实测值对不上理论上算出来的阈值和实测往往有偏差原因通常有三个输出电平不是理想的VOH和VOL。OC输出加上拉电阻后高电平实际是Vpull - Ioh×Rpull低电平是VOL_sat约0.1V到0.2V。计算时要用实测值。输入失调电压。LM393的失调电压±2mV经过分压网络后可能放大。如果分压比是0.32输入端的2mV失调等效到信号端是6.25mV一般可以忽略但高精度场合要注意。电阻容差。5%的电阻组合起来阈值偏差可能达到5%以上。要求高时用1%电阻并实测筛选。我的做法是先按理论值选电阻焊好后用可调电源慢慢扫输入电压记录实际翻转点然后微调电阻值。一般迭代一两次就能达到满意的精度。6. 从滞回比较器延伸出去的几个实用变体6.1 窗口比较器监测电压是否在合理区间窗口比较器本质上是两个滞回比较器的组合一个监测上限一个监测下限。当电压在窗口内时输出一种状态超出窗口时输出另一种状态。常用于电池过压欠压保护、电源监控等。用LM393实现窗口比较器很直接第一个比较器检测是否超过上限第二个检测是否低于下限两个OC输出并联线与只要有一个输出低总输出就是低。加上正反馈后上下限各自都有滞回避免在边界抖动。6.2 方波振荡器滞回比较器加RC把滞回比较器的输出通过RC积分后反馈到输入端就构成了一个弛张振荡器。输出是方波频率由RC时间常数和滞回宽度决定f ≈ 1/(2RC×ln(12R2/Rf))。这个电路我用过很多次作为简单的时钟源或者LED闪烁电路成本极低。关键点是RC时间常数要远大于比较器的响应时间否则振荡频率会受比较器速度限制。LM393的响应时间1.3μsRC时间常数建议在100μs以上对应频率几kHz以下。6.3 光耦隔离的滞回比较器在工业现场输入信号往往需要隔离。我在光耦后面接滞回比较器光耦的输出端接一个上拉电阻然后直接进比较器输入端。这时候要注意光耦的传输延迟和上升沿变缓的问题滞回宽度要适当加大否则光耦输出的缓慢边沿会导致多次翻转。光耦输出端的负载电阻不能太大否则上升沿太慢。PC817在5mA驱动下负载电阻1kΩ时上升沿约10μs这个速度对大多数应用足够了。如果信号频率高建议用6N137这类高速光耦。7. 我个人的调试习惯和几条硬经验调试滞回比较器我现在的固定流程是这样的先用仿真软件LTspice或Multisim把电路跑一遍确认阈值和波形符合预期再动手焊板子。仿真时把电阻容差和电源波动都加进去看看最坏情况下阈值偏多少。这一步能省掉很多来回换电阻的时间。焊好板子后第一件事不是接信号而是用万用表量各点直流电压Vcc、Vref、输出高电平、输出低电平。确认这些静态工作点正常后再用可调电源慢慢扫输入用示波器同时看输入和输出记录翻转点。如果翻转点和计算值差太多先查电阻值再查电源最后查芯片是否损坏。几条硬经验反馈电阻不要省精度。1%金属膜电阻和5%碳膜电阻的价格差不了几毛钱但阈值精度差好几倍。上拉电阻不要小于1kΩ。虽然LM393能灌16mA但长期大电流工作会发热影响失调电压。输入信号一定要在共模范围内。这是最容易忽略也最容易出问题的点设计时第一件事就是确认共模范围。电源退耦电容必须加。0.1μF陶瓷电容紧贴芯片引脚这不是可选项是必选项。滞回宽度要大于噪声幅度的2倍以上。留足余量否则温度变化或电源波动时还是会抖。滞回比较器这个电路看起来简单但真正做好做稳细节都在这些地方。我见过太多人电路图抄对了但参数没算对或者参数算对了但布局没做好最后效果大打折扣。希望这些从实际项目里摸出来的经验能帮你少走点弯路。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。