LM311比较器应用分析:开集输出、上拉电阻与迟滞设计

发布时间:2026/10/29 22:31:59
LM311比较器应用分析:开集输出、上拉电阻与迟滞设计

LM311 这颗比较器在今天的选型表里算不上新面孔,但只要涉及“把模拟量干净利落地变成一个开关量”,我还是会先想到它。它的脾气很有意思:单电源 5V 能活,±15V 双电源也能活,输出是开集电极结构,既能拉动一只小继电器,也能直接对接单片机的输入脚,甚至能把 5V 的逻辑电平翻译成 24V 的工业电平。这篇文章把 LM311 比较器应用分析这件事拆开讲:它到底适合干什么、哪些参数会卡住你、上拉电阻和迟滞网络怎么算、过零检测和窗口比较器怎么落地、调试时常见的坑长什么样。不管你是刚拿起烙铁的学生,还是天天改板的老手,下面这些内容都能直接抄走用。

1. 先把 LM311 这颗比较器的脾气摸清楚

我见过太多人把比较器当运放用,接成闭环负反馈,然后困惑于输出为什么抖成一团。LM311 不是运放,它内部没有为线性放大做频率补偿,它的使命就是“比较”和“翻转”。你要让它干活干得舒服,先得知道它内部是什么骨架、哪些参数是硬约束。

1.1 引脚排布与内部骨架

常见的 8 脚封装里,1 脚是地,2 脚是同相输入,3 脚是反相输入,4 脚是负电源,5 脚和 6 脚是失调平衡脚,7 脚是输出,8 脚是正电源。单电源供电时,1 脚接地,4 脚也接地,8 脚接正电压;双电源时,4 脚接负电压,1 脚仍接地。

真正决定它用法的是第 7 脚。这个脚内部是一只 NPN 管的集电极,发射极接地,所以它只能“灌电流”,不能“吐电流”。输出为低时,三极管导通,把输出脚拉到地附近;输出为高时,三极管截止,输出脚处于高阻悬空状态。悬空是没法驱动任何东西的,你必须外接一只上拉电阻,把它拉到某个电源上。这个结构叫开集电极输出,它是 LM311 一切优点和一切麻烦的源头。

还有两个容易被忽略的脚:5 脚和 6 脚。这两个脚可以外接一只电位器做输入失调调零,也可以把 6 脚用作输出选通。多数场景里把它们悬空就行,但如果你的检测阈值要求到毫伏级,调零这一步省不掉。

注意:开集输出在未接上拉时会呈现高阻,用万用表量到的是“浮”的电压,不要据此判断芯片坏了。

1.2 关键电气参数逐条拆解

参数表不是拿来背的,是拿来做边界判断的。我把 LM311 用下来最需要盯住的几项列在下面,并说明它们在实际电路里意味着什么。

参数典型值实际含义
供电范围单电源 5~30V,双电源最大 ±18V宽压是它的强项,工业 24V 场合不用额外降压
输入失调电压约 2mV,最大 7.5mV阈值精度要求优于 10mV 就得调零或换型号
输入偏置电流几十到两百多纳安分压网络阻抗控制在几十千欧以内影响可忽略
共模输入范围单电源约 0 到 V+ 减 1.5V输入不能贴着正电源用,这是最常见的翻车点
响应时间约 200ns(小信号阶跃)应付几十千赫兹的脉冲整形绰绰有余
输出灌电流最大 50mA能直接带光耦、小蜂鸣器,带继电器要算余量
输出饱和压降小电流时零点几伏,接近满载接近 1V驱动逻辑门时要确认低电平被识别为 0

关于共模范围这一条,我要多说两句。单电源 5V 供电时,输入端的安全区间大约是 0 到 3.5V。如果你把待测信号直接顶到 4.8V,芯片不会立刻烧,但输出行为会变得不可预测,可能一直保持某个状态,也可能随温度乱跳。我第一次踩这个坑时,把一只 5V 供电的分压采样直接接到输入端,结果电路在实验室好好的,装到现场就时好时坏,查了两天才发现是输入越界。

还有一条隐藏参数:输出管的集电极是独立的,所以上拉电压不受正电源限制,可以拉到比 8 脚更高的电位。这正是 LM311 在电平转换场合吃香的原因——3.3V 甚至 5V 供电的板子上,输出可以上拉到 24V,直接给外部的工业输入回路用。但上拉电压的上限必须查手册的集电极耐压,别凭经验拍脑袋,烧了不值得。

1.3 和常见替代方案的横向对照

选型的时候,我一般会在这几个器件之间权衡,判断依据不是“谁参数好”,而是“谁在这个场景下最省事”。

器件输出结构速度单颗路数典型适用场景
LM311开集电极,可灌 50mA约 200ns1需要宽压、大灌电流、电平转换
通用双路比较器开集电极约 1.3us2板子上要多路检测、成本敏感
通用运放当比较器推挽慢,且易饱和恢复慢2 或 4精度要求低、成本极低的教学板
带迟滞的专用比较器推挽快1高速数字接口、时钟整形

一句话总结我的取舍逻辑:要宽压、要大电流灌负载、要抬高输出电平,选 LM311;只是板内做两路电压监测,双路开集比较器更划算;信号频率上了兆赫兹,别在这颗上纠结,直接换高速器件。

2. 设计前的几个关键取舍

动手画原理图之前,有三件事必须先定下来:输出怎么接、上拉取多大、要不要加迟滞。这三件事定错了,后面调板子会非常痛苦,因为你面对的是一个“看起来接对了但就是不稳”的电路。

2.1 开集输出决定了你的整个输出级

开集输出最大的好处是灵活,最大的坏处也是灵活——它什么都不给你,全靠外接。我用下来常见的几种接法,逻辑完全不同。

第一种,纯上拉到逻辑电源。输出直接接单片机输入脚,上拉电阻取 4.7k 到 10k,单片机内部如果有上拉,外部这只电阻也可以省,但我建议留着,因为内部上拉通常偏弱,边沿会拖得很长。

第二种,上拉到高于供电的电压。比如芯片用 5V 供电,输出上拉到 12V 或 24V,用于驱动外部继电器模块或者工业输入板。这种用法要注意,输出为低时三极管要承受外部负载倒灌回来的电流,负载不能是强上拉源。

第三种,直接驱动光耦或小电流负载。这时上拉电阻就变成了限流电阻的一部分,必须按负载的额定电流反算,不能再随手取 10k。

第四种,输出并联合拉。这个接法在驱动 MOS 管栅极时不推荐,因为开集输出拉高靠电阻、拉低靠三极管,上升和下降沿不对称,占空比会跑偏。非要这么用,后面加一级推挽缓冲。

不管哪种接法,我都建议在输出脚串一只 100Ω 左右的小电阻再往外走,尤其是输出要经过排线到面板或者另一个板子的时候。这只电阻不影响直流电平,但能压住长线上的振铃和过冲。

2.2 上拉电阻的取值不是拍脑袋

上拉电阻的取值是三个约束条件打架的结果:上升沿速度、灌电流上限、静态功耗。我一般按下面这个顺序算。

先算最小阻值。输出为低时,负载电流全部灌进第 7 脚,手册给的极限是 50mA,实际设计留一半余量,按 20~25mA 算。假设上拉 5V,输出饱和压降按 0.4V 估,则最小阻值约为 (5 - 0.4) / 25mA ≈ 184Ω,取标称值 200Ω 以上。

再算最大阻值。如果后端是 CMOS 输入,静态电流几乎为零,那只考虑边沿。上升时间大致由 R 乘上总电容决定,总电容包括输出管结电容、后级输入电容和走线电容,小板上估 15pF,长排线估 50pF 甚至更多。想让上升沿控制在 1us 以内,50pF 的情况下 R 不能超过 20k。我个人的经验取值是:板内短距离 10k,跨板走线 4.7k,需要快边沿 1k。

最后算功耗。上拉 24V、电阻 1k,输出为低时这只电阻上就白烧 0.55W,用 0603 封装会直接烤糊。工业场合上拉到 24V 时,我一般把阻值放到 4.7k 以上,同时确认后端电路的输入阻抗足够高、漏电流足够小。

提示:上拉电阻的功率余量至少留一倍。一只 0.25W 的电阻长期工作在 0.2W,阻值会缓慢漂移。

2.3 迟滞:给比较器装一只刹车

只要输入信号不是理想方波,比较器就会在阈值附近来回翻转。信号的噪声、工频干扰、甚至电源纹波,都会让输出产生一串毛刺。解决办法是加正反馈,制造一个“回差”,让它翻过去之后要退回来更多才肯复位。

最基本的接法:反相输入端接参考电压,同相输入端接两只电阻,一只 R1 接输入信号,一只 Rf 从输出接回来。这样输出状态会通过 Rf 影响同相端的电位,形成正反馈。

设参考电压为 Vref,输出高电平为 VOH,低电平为 VOL,那么两个翻转阈值和回差分别是:

VTH_上升 ≈ Vref × (1 + R1/Rf) - VOL × (R1/Rf) VTH_下降 ≈ Vref × (1 + R1/Rf) - VOH × (R1/Rf) 回差 ΔV = (VOH - VOL) × R1/Rf

这个公式最有用的地方在于,它告诉你回差只跟 R1 和 Rf 的比值有关,跟参考电压无关。所以你可以先定参考电压,再单独调回差,两者互不干扰。

那回差取多大合适?我的经验是:回差至少要覆盖噪声峰峰值的两到三倍。一个带工频干扰的传感器信号,噪声可能有几十毫伏,那就把回差做到 100~200mV。但回差也不能太大,太大会让真实的缓慢变化被吞掉,比如一个温度缓变信号,回差做到 1V 就失去意义了。

还有一个细节:加了正反馈之后,输入端的源阻抗会参与分压。如果你的信号源内阻很高(比如几百千欧的光敏电阻分压),R1 和信号源内阻串联,实际回差会比计算值小。这时候要么把 R1 取值放大,要么在比较器前面加一级跟随缓冲。

2.4 供电与地线,别在小地方翻车

比较器是模数交界的器件,它的地线既要承受数字侧的开关电流,又要保持模拟侧的干净参考,处理不好就会出怪事。

我的习惯是:电源脚旁边 2mm 以内放一只 0.1uF 陶瓷电容,这是必须的,不是可选项。如果供电走线超过几厘米,再并一只 10uF 的钽电容或者电解。这两只电容的作用不一样,小电容管高频瞬态,大电容管低频波动,缺一个都可能出问题。

地线方面,如果板子上有大电流负载(继电器、电机、蜂鸣器),它们的回流路径绝对不能从比较器的地线上过。我一般把比较器的地和分压网络的地单独走一条细线,单点接到主地。这个做法听起来麻烦,但能省下后面几天的排查时间。

还有一个容易被忽略的点:分压电阻网络本身的内阻。如果你用两只 100k 电阻分压产生参考电压,等效源阻抗就是 50k,配上几十纳安的偏置电流,误差可能有几毫伏;更麻烦的是,这个高阻节点非常容易拾取干扰。我的做法是把分压电阻控制在 10k 以内,总电流 0.5mA 左右,用精度 1% 的金属膜电阻。多花几毛钱,换来的是稳定性。

3. 几类典型场景的落地实现

参数看懂了,接下来是把它接到具体电路里。下面这几类场景我都在实际项目里用过,每个都有各自的坑。

3.1 过零检测与慢变信号整形

过零检测是最经典的用法:把交流信号或者带正负摆幅的波形,变成干净的方波,送给单片机做频率测量或者相位判断。

接法很简单,同相端接输入信号,反相端接参考地(双电源时)或者接一个偏置中点(单电源时)。单电源场景里,信号往往叠加在 V+/2 的直流上,所以参考端也要抬到 V+/2,用两只等值电阻分压后再并一只 0.1uF 电容滤波。

真正要小心的是过零点附近的抖动。市电频率的信号过零时斜率有限,叠加一点噪声就会在零点附近产生多次翻转,单片机的中断会被打成一片。所以这里的迟滞必须加,回差做到 50~100mV 就足够干净。

另外一个做法是让输入信号先经过一级 RC 低通,把高频噪声滤掉再进比较器。这个 RC 的时间常数不能太大,否则会带来相位延迟,影响过零点的准确性。我在做频率测量时,一般把截止频率设在信号基频的 10 倍左右,兼顾滤波和延迟。

单电源做交流过零还有一个坑:输入信号是正负对称的,负半周会被输入端的保护二极管钳位。所以必须在输入端串一只隔直电容,再用电阻分压把信号抬到中点电位。这个分压网络的阻抗要低一些,否则负半周会被拉偏。

3.2 窗口比较器做上下限监测

电池电压监测、电源欠压过压保护,这类需求本质上是判断一个量是否落在区间内。单颗 LM311 只有一个比较器,做窗口需要两路,但如果是“超上限就报警”这种单向需求,一颗就够。

单向检测的接法:把参考电压设成门限,输入信号接另一端,输出上拉到单片机。就这么简单。要加迟滞,就按前面的正反馈接法。要做双向窗口,用两片 LM311:一片检测上限,一片检测下限,两个开集输出可以线与在一起,共用一只上拉电阻。线与的好处是省元件,坏处是你分不清到底是哪一路触发的,需要单独引一根线出来做诊断。

这里面我最想强调的是门限的精度预算。假设你要监测一组 12V 电池,欠压门限设在 10.5V,用两只电阻分压到 2.5V 再比较。分压电阻的精度是 1%,两只电阻最坏情况引入约 2% 的误差,折算到 10.5V 就是 0.2V。再加上比较器本身的 7.5mV 失调,折算回输入端要乘以分压比。所以整个系统的门限精度其实主要由分压电阻决定,比较器的贡献反而不大。想提高精度,先换 0.1% 的电阻,别急着换芯片。

分压电阻上还要并一只小电容,一来滤掉干扰,二来提供一点电荷缓冲,让比较器翻转瞬间的输入电流不会把分压点拉塌。容值取 0.01~0.1uF,太大响应会变慢。

3.3 电平转换与隔离接口

这是我个人最偏爱 LM311 的一点。它的开集输出可以上拉到比自身供电更高的电压,所以天生就是一个电平翻译器。

举个实际例子。板子内部是 5V 逻辑,需要给外部设备提供一个 24V 的干接点信号。做法是:LM311 用 5V 供电,输出上拉一只 4.7k 到 24V,再串进外部回路的限流路径。输出为低时,外部回路被拉低导通;输出为高时,三极管截止,外部回路由对方设备的上拉决定。这样一颗几毛钱的器件就完成了隔离前后的电平匹配。

但这里有个必须确认的参数:输出三极管截止时的漏电流。手册上这个值很小,通常是纳安级,但如果你的外部回路阻抗特别高(比如几百千欧),这点漏电流也会造成误判。工程上的做法是在输出端并一只几 k 到几十 k 的下拉电阻,把悬空状态钉死。

如果要做真正的电气隔离,输出后面接光耦。这时候上拉电阻就变成了光耦的限流电阻,算法完全不同:先查光耦的额定正向电流,比如 5mA,再查正向压降,比如 1.2V,然后 R = (Vpullup - Vf - Vsat) / If。用 5V 上拉就是 (5 - 1.2 - 0.4) / 5mA = 680Ω。注意这个电流是持续流的,光耦在导通期间一直消耗,功耗要算进去。

还有一种用法是驱动 MOS 管栅极。这种接法我不推荐直接连,因为开集输出的上升沿靠电阻,下降沿靠三极管,速度不对称,开关损耗会偏大。稳妥做法是中间加一级推挽缓冲,或者用专用驱动。

3.4 弛张振荡器与脉冲发生

LM311 加几个电阻电容就能自激成一个方波源,用来做蜂鸣器驱动、LED 闪烁、或者给某个电路提供时钟。原理是利用正反馈形成两个阈值,再用 RC 充放电在两个阈值之间来回跑。

典型接法:输出经 Rf 反馈到同相端,同相端再用两只电阻分压设定阈值;反相端接一只电容到地,同时经一只电阻 R 接到输出。电容电压在阈值之间充放电,输出就周期翻转。

频率的估算可以用这个经验公式:

f ≈ 1 / (2.2 × R × C)

这个式子忽略了输出饱和压降和输入偏置的影响,只能用来粗定参数,实际值一定要实测校准。我最近一次用 R = 10k、C = 1nF 搭的电路,按公式算出来约 45kHz,实测在 52kHz 左右,偏差 15%,属于正常范围。要精确频率,还是得用晶振或者单片机定时器。

搭这个电路有两个细节值得注意。第一,电容的充放电路径不同,充电路径经过上拉电阻,放电路径经过输出三极管,两条路的阻抗不一样,所以输出的占空比不是 50%,会偏。要对称,可以在输出端加一级反相缓冲,或者用双电源供电让两个方向的驱动能力接近。第二,这个电路对电源噪声很敏感,因为阈值是由电源分压得来的,电源一抖频率就跟着抖,所以供电一定要干净。

3.5 光敏与红外检测的前置整形

光电对管、红外接收头这类传感器的输出通常是缓慢变化的模拟量,幅度可能只有几十毫伏,直接送单片机 ADC 采样率不够或者资源紧张,用比较器整形是最经济的方案。

接法是:光敏分压后的信号进比较器一端,另一端接可调阈值。阈值用电位器分压,方便现场调整。输出上拉到单片机,配上迟滞。

这里的坑主要在信号幅度和源阻抗上。光敏电阻在弱光下阻值可能到几百千欧,分压后的源阻抗很高,直接接比较器输入端,一方面偏置电流会造成误差,另一方面高阻节点容易拾取干扰。我的处理是加一级射极跟随器或者运放缓冲,把源阻抗降下来再进比较器。虽然多了一颗器件,但稳定性提升非常明显。

红外对射做计数的时候,还有一个问题是遮挡物的速度。如果物体通过的速度很快,信号脉冲很窄,比较器的响应时间必须够快。200ns 的响应时间对应的是几兆赫兹的带宽,一般计数场景绰绰有余,反而是前端的光敏器件响应速度成了瓶颈。

4. 一次完整的参数计算与调试记录

光讲原理容易飘,我拿一个实际改过的板子把整个流程走一遍。这是一块用于设备状态监测的小板,功能是检测外部 12V 供电是否在 10.5V 到 13.5V 之间,超范围就拉低报警信号给主控,同时输出一个 5V 逻辑电平和一个 24V 干接点。

4.1 需求拆解与方案定型

需求拆开是三条:检测 12V 电压、判断上下限、输出两种电平。用两片 LM311 做窗口,一片管欠压,一片管过压,两路开集输出线与后共用一只上拉到 24V 的电阻,再从这个节点分出一路经分压送到主控。

选 LM311 而不是双路比较器的理由很直接:24V 上拉这个需求,双路通用比较器的集电极耐压虽然也够,但灌电流能力和供电范围都不如它宽裕,而且我需要它在 12V 输入被拉偏到 30V 时不炸,宽压供电在这里是实打实的安全余量。

检测电压用 1:10 分压,12V 变成 1.2V,门限分别对应 1.05V 和 1.35V。分压电阻取 100k 和 11.1k,实际用 100k 配 11k,得到的分压比约 1:10.09,误差 1% 以内。等效源阻抗约 10k,配几十纳安的偏置电流,误差不到 1mV,可以接受。

4.2 门限与迟滞的电阻计算

先做欠压那一路。参考电压由一只 10k 电位器分压产生,调到 1.05V。同相端接检测信号,反相端接参考。为了加迟滞,从输出到同相端接一只 Rf,同相端到信号源之间是 R1。

按公式,回差 ΔV = (VOH - VOL) × R1/Rf。我希望输入端回差约 0.3V,折算到检测点就是 3V 的回差,对电池监测来说偏大,改成 0.1V 输入回差,折算 1V 左右,比较合理。

设 R1 = 10k,需要 Rf = (VOH - VOL) × R1 / ΔV = (24 - 0.4) × 10k / 0.1 = 2.36M。这个阻值太大了,和输入端的杂散电容配合会引入延迟,而且高阻节点容易拾取干扰。

换个思路,把 R1 降到 1k,Rf = 236k,取 240k。这样 R1 和分压网络的 10k 源阻抗并联,等效约 0.9k,对分压比影响很小。实际焊上去之后实测回差 0.11V,和计算吻合。

这里有个经验:Rf 尽量不要超过 1M,超过之后板子上的漏电流、助焊剂残留、甚至空气湿度都会影响阈值。宁可把 R1 取小一点。

4.3 上拉与输出级计算

输出要同时满足两个负载:主控的 5V 输入脚,和外部 24V 干接点回路。做法是分两路,逻辑输出单独上拉到 5V,干接点单独上拉到 24V,两路都从第 7 脚取信号。

逻辑那一路,上拉 10k 到 5V,电流 0.5mA,边沿时间由 10k 和十几皮法决定,约 150ns,够用。

干接点那一路,外部回路的输入阻抗是 10k,需要至少 2mA 的驱动能力才能可靠识别。上拉电阻取 4.7k 到 24V,输出为低时电流约 (24 - 0.8)/4.7k ≈ 4.9mA,在 50mA 的灌电流能力之内,功率是 24 × 24 / 4.7k ≈ 0.12W,用 0805 封装足够,但我还是用了 1206,留余量。

这里有个被忽略的问题:输出为高时,这只 4.7k 电阻和外部回路的 10k 形成分压,输出节点电压是 24 × 10/(10+4.7) ≈ 16.3V,而不是 24V。如果外部设备要求高电平接近 24V,这个分压就不能接受,得把上拉电阻降到 1k 以内,或者要求外部回路阻抗更高。设计时一定要把对方的输入阻抗问清楚,别自己想当然。

4.4 上电调试与波形记录

板子回来第一次上电,我先不接信号,用可调电源模拟 12V 输入,慢慢往上调,同时用万用表量输出。

第一步测静态工作点。量参考电压,欠压那一路调到 1.05V,过压那一路调到 1.35V,都在预期内。量输入端分压,输入 12V 时是 1.19V,落在窗口中间,两路输出都是高电平,正确。

第二步测翻转点。缓慢上调输入电压,过压那一路在输入 13.4V 时翻转,考虑电阻精度,这个值和设计的 13.5V 差 0.1V,可以接受。下调输入,在 12.4V 时恢复,回差约 1V,和设计一致。

第三步看波形。给输入端叠加一个 100Hz、200mV 的干扰,观察输出。没加迟滞之前,输出在阈值附近有明显的多次翻转,加上之后干净了。这一步用示波器看最直观,万用表是看不出来的。

第四步做电源拉偏测试。把供电从 4.5V 拉到 5.5V,观察门限漂移。实测门限变化不到 5mV,说明参考电压的分压比稳定,没有被电源波动带跑。这一项很多人不做,但工业现场电源波动是常态,做完心里才有底。

整个调试下来花了不到两小时,其中一半时间在改上拉电阻的阻值——第一版用了 10k 上拉到 24V,边沿太慢,外部设备识别不到,换成 4.7k 才正常。

5. 常见故障与排查速查

LM311 的电路结构简单,出问题的地方其实很集中。我把这些年遇到的、以及帮别人看板子时反复见到的故障归了归类。

5.1 输出死活不翻转

这是最高频的问题,八成出在三个地方。

第一,忘了接上拉电阻。开集输出没有上拉就是悬空,用示波器看到的是一条漂移的线,不是稳定的高电平。有些人看到单片机内部有上拉就省了外部电阻,结果内部上拉只有几十微安,配上线电容,边沿慢到几百微秒,逻辑根本识别不了。

第二,输入共模越界。单电源 5V 供电,输入信号顶到 4.5V 以上,芯片内部的工作点就乱了。用万用表量输入端电压,如果接近或超过正电源,立刻改分压比。

第三,正负输入端接反。这个错误听起来低级,但实际发生率极高,尤其是改板的时候改了原理图忘了改丝印。判断方法很简单:把两脚对调试一下,如果行为反了,那就是接反了。与其纠结,不如在原理图上把两个脚的功能标注写清楚。

还有一种情况是输出接了容性负载。比如输出端并了一只 0.1uF 电容做滤波,结果比较器翻转时充放电电流超过了灌电流能力,输出被拖住。这种要把电容去掉或者串电阻。

5.2 输出抖动与自激

输入信号干净但输出有毛刺,先怀疑迟滞不够。把 Rf 减小一档试试,回差增大,毛刺一般会消失。

如果加了迟滞还在抖,问题可能在电源或者地线。检查电源脚的去耦电容是不是真的焊上了、离得够不够近。我见过一只 0.1uF 电容放在离芯片 2cm 远的地方,等于没放。也见过地线走成一条细长的回路,数字电流从中间穿过,比较器输出跟着数字信号跳舞。

还有一种自激是布局引起的。比较器是高速器件,输入走线和输出走线平行且靠得很近时,输出会耦合回输入形成正反馈。这种情况下,把输入走线改短、拉开距离、或者在两者之间加一条地线屏蔽,都能改善。

如果输入信号本身变化极慢,比如温度传感器经过 RC 滤波后斜率只有几毫伏每秒,那么即使有迟滞,也可能因为噪声在阈值附近停留时间过长而出现多次翻转。这种要么加大迟滞,要么在前级提高信号斜率。

5.3 故障速查表

现象可能原因快速验证方法处理
输出恒定高电平未接上拉、输入越界、芯片损坏量输出脚对地电压、量输入电压补上拉、改分压、换片
输出恒定低电平输入端短路、负载过重断开负载再量查短路、减负载
阈值偏离设计值分压电阻精度、偏置电流量参考电压和输入电压换 1% 电阻、降源阻抗
输出有毛刺迟滞不足、电源噪声示波器看输入和输出加迟滞、加去耦
高低温下行为异常失调温漂、电阻温漂高低温箱里测阈值换低温漂电阻、调零
带载后电平不够低灌电流超限、饱和压降大量输出低电平减小负载电流、加上拉调整
上电瞬间误动作上电时序、参考建立慢示波器看上电波形加延时或使能控制

6. 这些年踩过的坑和几条经验

写到这里,技术点基本说完了,剩下的是那些手册上不会写、但实际会绊住你的东西。

第一条,关于“能不能用运放代替比较器”这个问题。能,但要看场景。运放的开环增益很高,理论上可以当比较器用,但它的输出级是推挽结构,饱和之后恢复很慢,速度上不去;而且运放大多没有做输入过压保护,输入端被拉到电源轨之外容易闩锁。我早年在教学板上用运放搭过过零检测,2kHz 以下能用,再往上波形就开始畸变。所以我的态度是:临时验证可以凑合,正式设计别省这颗料。

第二条,关于平衡脚的用法。很多人看到 5、6 脚就随手悬空,这没错。但如果你的应用对阈值精度有要求,比如要检测几十毫伏的差值,那失调电压就是主要误差源。调零的方法很简单:把输入端短接在同一个电位上,用一只 100k 电位器接在 5、6 脚之间,滑动端接负电源,调电位器让输出刚好翻转,此时失调被补偿掉。这个过程需要一点耐心,因为 LM311 的失调温漂还在,调零只在特定温度下有效,所以工业产品里我不建议靠调零来保证精度,还是从分压比和迟滞设计上做文章更实在。

第三条,关于探头的使用。调试比较器的时候,示波器探头本身有十几皮法的电容,接在输入节点上可能改变电路的时序甚至让原本不振荡的电路振起来。测高频节点时要用 10:1 探头,测缓慢变化的阈值时无所谓。另外,同时测输入和输出要用双通道,单通道来回切换很容易错过翻转瞬间。

第四条,关于批次差异。不同厂家的 LM311 在失调电压、响应时间、输出饱和压降上都有差别,有些批次的输入偏置电流能差好几倍。量产的时候一定要拿实际批次的样品做验证,别用实验室那几颗老片子的结果去定工艺。我遇到过一次,样机工作完美,小批量试产时有一半板子的门限偏了 30mV,查下来是换了供应商,失调电压的分布整体偏大。从那以后,关键位置的比较器我都会在规格书里写明参数分档要求。

第五条,关于成本。LM311 不算贵,但也不是最便宜的。如果板子上只需要一路简单的电压检测,双路通用比较器的一半成本就能做到,甚至用一颗带比较功能的单片机内置模块也行。选它的理由应该是“宽压、大电流、可抬高输出电平”这三条里的某一条,而不是“习惯用它”。我见过不少设计,明明只需要 3.3V 板内的欠压检测,硬上了一颗 LM311 加一堆外围,功耗和面积都浪费。

最后分享一个小技巧。如果你手上的板子空间紧张,又需要做迟滞,可以把分压网络和反馈网络合并计算,用一只电阻同时承担分压和反馈的功能。比如参考端用一只电阻接到输出,另一只接到参考电压,这样输出状态改变时参考点跟着动,同样能形成回差,省一只电阻和一个焊点。这个做法在批量产品里很常见,缺点是阈值计算稍复杂,得联立方程解,但对熟悉了的人来说,比多两颗料划算。

一颗几十年前的比较器能活到今天,靠的不是参数多漂亮,而是它的接口足够开放——输出接什么、拉到多高、要不要迟滞,全由你决定。这种开放性是双刃剑,它把所有设计自由和所有设计责任一并交给了你。上面这些计算、参数边界、故障模式,本质上都是把这份责任接稳的办法。下次你再拿起这颗器件,先想清楚输出接哪儿、阈值要多少、噪声有多大,剩下的就是照方抓药了。