☰
LM393电压比较器实战:开漏输出、上拉电阻与迟滞设计
2026/10/7 9:03:09 网站建设 项目流程

1. 电压比较器到底在比什么——先搞懂它的底层逻辑

刚入行那会儿,我总觉得电压比较器是个特别简单的器件——不就是比较两个电压大小嘛,输出个高或者低。后来在实际项目里被它坑过几次之后,才真正理解这个“简单”器件背后的门道。电压比较器本质上是一个模拟信号到数字信号的判决器,它把连续变化的模拟电压转换成只有两种状态的数字电平,相当于在模拟世界和数字世界之间架了一座桥。你手里的单片机、PLC、各种控制板,它们能“看懂”的都是0和1,而现实世界里的温度、光照、电池电量,全是连续变化的模拟量,比较器就是干这个转换活的。

我打个比方你可能马上就明白了。比较器就像小区门口的保安,他手里有一份标准——比如“身高超过1米2的儿童需要买票”。每个进来的人,保安都拿眼睛扫一下,超过标准的拦下来,没超过的放行。这里“1米2”就是参考电压(Vref),进来的人就是输入电压(Vin),拦不拦就是输出高低电平。保安不会关心你是1米21还是1米85,他只管你过没过线,输出永远是“拦”或者“不拦”两种结果。这就是比较器和运算放大器最本质的区别——运放追求的是线性放大,输入输出是连续对应的;比较器追求的是快速判决,输出只有高和低两种状态,中间过程越快越好。

那为什么不用运放直接当比较器用呢?早期确实有人这么干,包括我自己在学校的实验课上就拿LM358搭过比较电路。能用,但有几个要命的问题。第一是响应速度,通用运放的压摆率通常只有0.5V/μs左右,而专用比较器像LM393虽然也不算快,但它的内部电路是针对开关状态优化的,从输入过阈值到输出翻转的延迟要短得多。第二是输出电平兼容性,运放的输出摆幅往往到不了电源轨,你用5V供电,它最高可能只输出3.5V,后级数字电路可能识别不了。第三是没有内部迟滞,这个后面会详细讲,是很多人栽跟头的地方。

比较器的核心指标就那么几个,你把它们吃透了,选型和调试基本就不会出大问题:

  • 输入失调电压(Vos):这个参数决定你的判决精度。理想情况下Vin和Vref相等时输出翻转,但实际上由于制造偏差,总要差个几毫伏。LM393的典型失调是2mV,最大9mV。如果你要检测的电压差只有几毫伏,这个误差就会导致判决点偏移。
  • 输入偏置电流(Ib):比较器输入端不是完全不吃电流的,LM393的输入偏置电流典型值25nA。如果你在输入端用了很大的分压电阻,比如1MΩ级别,那这个偏置电流流过电阻产生的压降就会影响精度。
  • 响应时间:从输入超过阈值到输出完成翻转的时间。LM393的响应时间大约是1.3μs,对于大多数电池检测、光控开关这种应用完全够用,但你要拿它做高速信号整形就不行了。
  • 输出类型:这是选型时最容易忽略的。比较器输出分推挽和开漏两种,LM393是开漏输出,这意味着它只能主动拉低,不能主动拉高,必须外接上拉电阻才能输出高电平。很多新手第一次用LM393,发现输出一直是低电平,查了半天电路没问题,最后发现是忘了接上拉电阻。

搞清楚这些基础概念之后,你再看LM393这颗芯片,就会发现它之所以成为入门首选和业界常青树,不是没有道理的。它便宜、好买、资料多,而且双路比较器集成在一个封装里,用起来灵活。下面我就拿它当主角,把电压比较器从原理到实战完整过一遍。

2. LM393深度拆解——这颗白菜价芯片凭什么经久不衰

2.1 引脚功能与内部结构,别再对着电路图发懵

LM393通常以DIP-8或者SOP-8封装出现,8个引脚各司其职。我刚开始看数据手册的时候,对着一堆参数发晕,后来自己画了几遍内部框图才理清楚。你先记住这个对应关系:

引脚编号名称功能说明
1OUT1比较器1的输出端,开漏结构
2IN1-比较器1的反相输入端
3IN1+比较器1的同相输入端
4GND接地端,接电源负极
5IN2+比较器2的同相输入端
6IN2-比较器2的反相输入端
7OUT2比较器2的输出端,开漏结构
8VCC电源正极,3V到36V宽范围

内部结构上,每一路比较器其实就是一个高增益的差分放大级加上一个输出级。差分对管负责感知两个输入端的电压差,当同相输入端电压高于反相输入端时,输出级导通内部的下拉管,把输出拉到地;反过来则输出管截止,输出呈高阻态。注意这里说的“输出高”只是高阻态,不是真的输出高电平,真正的电平由外部上拉电阻和上拉电源决定。

提示:LM393的电源电压范围很宽,3V到36V都能工作,但要注意你的输入信号电压不能超过电源电压范围,也不能低于地电位。输入共模范围是0V到VCC-1.5V,也就是说如果你用5V供电,输入信号最高只能到3.5V左右,超了就会工作不正常。

2.2 关键参数解读——数据手册上哪些数字真正重要

数据手册上密密麻麻的参数表,真正常用的就那几个。我按重要性排个序,供你选型和调试时参考。

输入失调电压典型值2mV,最大值9mV。这个参数决定了你的比较精度。举个例子,你要做一个电池低压告警,设定阈值是3.3V,如果失调电压是9mV,那实际翻转点可能在3.291V到3.309V之间波动。对于电池告警这种应用,几十毫伏的误差无所谓,但如果你要做精密窗口比较,就得考虑用失调更小的比较器,比如LM311或者带修调的方案。

输入偏置电流典型值25nA。这个参数的影响取决于你输入端的分压电阻。假设你用两个100kΩ电阻分压产生参考电压,等效源阻抗是50kΩ,25nA乘以50kΩ等于1.25mV的误差,还能接受。但如果你用1MΩ级别的电阻,误差就变成25mV了,这时候要么换小电阻,要么加一个运放做缓冲。我自己一般在分压电路里用10kΩ到100kΩ之间的电阻,兼顾功耗和精度。

响应时间约1.3μs,这个速度对应大约300kHz的信号。对于50Hz工频信号、光控开关、电池检测这些应用,绰绰有余。但你要是做红外遥控接收头的信号整形,或者超声波测距的回波处理,1.3μs就有点慢了,得选TLV3501这类高速比较器。

输出灌电流能力典型值16mA,这个决定了你上拉电阻能取多小。上拉电阻越小,输出上升沿越快,但功耗越大。后面讲上拉电阻选型时会详细算。

工作温度范围0°C到70°C(商业级),LM293是-25°C到85°C,LM2903是-40°C到125°C。如果你做车载或者工业设备,记得选后两个型号,别拿LM393硬扛。

2.3 开漏输出这个特性,新手最容易翻车的地方

开漏输出是LM393最显著的特征,也是新手最容易踩坑的地方。我见过不下十个人问我“为什么我的LM393输出一直是低电平”,十有八九是忘了接上拉电阻。

开漏输出的内部结构是这样的:输出引脚内部只接了一个N沟道MOS管的漏极,源极接地。当同相输入端电压高于反相输入端时,内部MOS管导通,输出被拉到地;当同相输入端电压低于反相输入端时,内部MOS管截止,输出引脚处于高阻态,相当于悬空。这时候如果你不接上拉电阻,用万用表量输出引脚,电压是不确定的,后级电路也识别不了。

正确做法是在输出引脚和正电源之间接一个上拉电阻,阻值通常在1kΩ到10kΩ之间。这个电阻的作用是在内部MOS管截止时,把输出引脚拉到高电平。上拉电源可以和LM393的供电电源相同,也可以不同——这就是开漏输出的好处之一,可以做电平转换。比如LM393用12V供电做比较,上拉电阻接到3.3V,输出就是3.3V的逻辑电平,可以直接接单片机引脚,不需要额外的电平转换电路。

注意:上拉电阻不能省,也不能随便取。阻值太大,输出上升沿会变缓,因为输出引脚有寄生电容(大约10pF到20pF),加上后级电路的输入电容,上升时间常数等于上拉电阻乘以总电容。10kΩ上拉配20pF电容,上升时间是200ns,还能接受;100kΩ上拉就是2μs,比比较器本身的响应时间还慢,输出波形会变得很难看。阻值太小则功耗大,16mA灌电流能力对应最小上拉电阻,如果上拉到5V,5V除以16mA约312Ω,这是理论最小值,实际用1kΩ以上比较稳妥。

开漏输出还有一个隐藏福利——线与逻辑。你可以把多个LM393的输出引脚接到同一个上拉电阻上,只要任何一个输出拉低,整条线就是低电平。这个特性在做多路告警汇总的时候特别好用,不需要额外的逻辑门电路。

3. 手把手搭一个LM393比较器电路——从计算到接线全记录

3.1 元器件清单与选型思路

我带新人做实验的时候,会让他们先照着这个清单把东西备齐。东西不多,但每一个都有选型理由,不是随便抓的。

元器件规格数量选型说明
LM393DIP-81双路比较器,入门首选
电阻10kΩ 1/4W4分压和上拉用,金属膜精度更好
电阻100kΩ 1/4W2分压用,根据阈值需求选
电位器10kΩ 多圈1调阈值用,多圈比单圈好调
电容100nF 瓷片2电源去耦,每路电源脚就近放一个
电容10μF 电解1电源滤波,低频去耦
LED3mm 红色1输出指示,串联限流电阻
电阻1kΩ1LED限流,5V供电时电流约3mA
电源5V 直流1可以用USB供电,方便

选10kΩ和100kΩ电阻是因为这两个值容易买、精度好、功耗适中。电位器用多圈的,单圈电位器转一点点电压就跳很多,调阈值的时候能把你急死。去耦电容用瓷片加电解的组合,瓷片负责高频,电解负责低频,这是我从老工程师那里学来的习惯,虽然LM393本身速度不快,但电源干净一点总没坏处。

3.2 阈值电压怎么算——分压电阻不是随便选的

假设我要做一个电池低压检测电路,电池是单节锂电池,满电4.2V,我要在电压低于3.3V时输出告警信号。LM393的参考电压需要设定在3.3V。

如果用固定电阻分压,从5V电源分压得到3.3V,计算分压比:3.3V除以5V等于0.66。选下分压电阻R2为10kΩ,上分压电阻R1由公式R1等于R2乘以(VCC除以Vref减1)计算,代入数值:10kΩ乘以(5除以3.3减1)等于10kΩ乘以0.515,约5.15kΩ。这个值不是标准电阻值,可以用5.1kΩ和10kΩ组合,实际输出3.3V左右,误差在可接受范围。

但更推荐的做法是用电位器。把10kΩ多圈电位器的两端分别接5V和GND,中间抽头接比较器的反相输入端,这样你可以连续调节参考电压。调的时候用万用表量抽头对地电压,慢慢旋到3.30V。电位器的好处是灵活,坏处是长期使用后触点可能氧化导致阻值漂移,所以最终产品里一般用固定电阻,电位器只在调试阶段用。

分压电阻的取值还有一个考量——功耗。R1和R2串联在5V和GND之间,总阻值15kΩ,电流是5V除以15kΩ约0.33mA,功耗1.65mW,完全没问题。如果你用1kΩ级别的电阻,电流变成几毫安,对于电池供电的设备就有点浪费了。但电阻也不能太大,前面说过,源阻抗太高会受输入偏置电流影响。10kΩ到100kΩ是比较舒服的区间。

3.3 上拉电阻选型——一个被严重低估的关键参数

上拉电阻的选型很多人随便抓一个10kΩ就用了,其实这里面有讲究。我从三个维度来分析。

速度维度。输出引脚的寄生电容加上后级输入电容,总计大约20pF。上升时间等于2.2乘以R上拉乘以C总。如果R上拉取10kΩ,上升时间约440ns;取4.7kΩ,约207ns;取1kΩ,约44ns。LM393本身的响应时间是1.3μs,所以只要上拉电阻不超过10kΩ,上升时间就不会成为瓶颈。如果你做的是高速信号,就要把上拉电阻往小了取。

功耗维度。当输出为低电平时,上拉电阻上的电流从电源经电阻灌入比较器输出管。5V除以10kΩ等于0.5mA。对于电池设备,这个电流是持续消耗的(只要输出为低),所以要权衡。如果你做的是电池供电的告警器,告警时输出低电平点亮LED,上拉电阻用100kΩ能让电流降到50μA,但波形会变缓,需要看后级电路能不能接受。

驱动能力维度。LM393输出管的灌电流能力是16mA,所以上拉电阻的最小值受限于这个参数。5V除以16mA等于312Ω,实际取值要留余量,我一般不低于1kΩ。如果你上拉到3.3V,最小电阻就是206Ω。

综合下来,5V系统里上拉电阻取4.7kΩ到10kΩ是最平衡的选择。我自己的习惯是默认用10kΩ,如果发现波形上升沿太缓再往下调。

3.4 完整电路接线与调试步骤

电路其实不复杂,我按信号流向说一遍。

比较器1的同相输入端接被检测电压,也就是锂电池分压后的信号。锂电池最高4.2V,超过LM393在5V供电下的输入共模范围上限3.5V,所以必须先分压。用两个10kΩ电阻分压,得到电池电压的一半,4.2V对应2.1V,3.3V对应1.65V。参考电压也要相应调整,用另一个10kΩ电位器从5V分压,调到1.65V。

反相输入端接参考电压。输出端接10kΩ上拉电阻到5V,同时接LED限流电阻到LED再到地。当电池电压高于3.3V时,同相输入端电压高于反相输入端,输出管截止,输出被上拉电阻拉到5V,LED不亮。当电池电压低于3.3V时,同相输入端低于反相输入端,输出管导通,输出拉到地,LED点亮告警。

电源脚VCC接5V,GND接地。在VCC和GND之间靠近芯片引脚的地方放一个100nF瓷片电容,再并联一个10μF电解电容。

调试步骤:

  1. 先不接电池信号,把同相输入端接地,反相输入端接1.65V参考。此时同相低于反相,输出应为低电平,LED亮。如果不亮,先查上拉电阻和LED极性。
  2. 把同相输入端接5V,此时同相高于反相,输出应为高电平,LED灭。如果不灭,查比较器输入是否接反。
  3. 用可调电源模拟电池电压,从4.2V慢慢往下调,观察LED在什么电压点翻转。用万用表量同相输入端电压,应该在1.65V附近翻转,对应电池电压3.3V。
  4. 如果翻转点偏离预期,微调电位器校准。

这个电路我搭过不下五次,每次都是一次成功,但前提是接线没错、上拉电阻没忘。新手最常犯的错误就是把同相和反相接反了,导致逻辑相反,这个用万用表一量就能发现。

4. 迟滞比较器——解决输出抖动绕不开的一课

4.1 为什么普通比较器在临界点会“发疯”

这是我踩过的最大的坑,也是我觉得最值得拿出来讲的部分。

你搭好上面那个电池告警电路,用可调电源慢慢调电压,会发现一个现象:当电压正好在3.3V附近时,LED会疯狂闪烁,输出波形在示波器上看是一团密集的方波。这不是电路坏了,而是比较器在临界点附近的固有行为。

原因在于现实世界没有绝对干净的信号。电池电压上叠加着负载波动、电源纹波、空间干扰,这些噪声让输入电压在阈值附近来回穿越。比较器增益极高,输入差几微伏输出就翻转,于是噪声每穿越一次阈值,输出就翻转一次,表现出来就是抖动。

我当初遇到这个问题,以为是电源没滤波干净,加了各种电容,换了线性电源,都没用。后来查资料才知道,这是比较器的经典问题,解决办法是引入正反馈,也就是迟滞。

迟滞的原理是让比较器的翻转阈值不是一个点,而是两个点:一个上升阈值和一个下降阈值。当输出从低变高之后,阈值自动降低一点;当输出从高变低之后,阈值自动升高一点。这样即使输入在阈值附近有噪声,只要噪声幅度不超过两个阈值的差值,输出就不会来回翻转。

4.2 正反馈迟滞电路的设计与参数计算

迟滞的实现方法是在输出和同相输入端之间接一个正反馈电阻。注意是接在同相输入端,不是反相输入端。接反相那是负反馈,会变成放大器。

以一个反相迟滞比较器为例,参考电压接在反相输入端,输入信号接在同相输入端,输出通过电阻Rf反馈到同相输入端。假设参考电压Vref等于2.5V,输出高电平Voh等于5V,输出低电平Vol等于0V,正反馈电阻Rf等于100kΩ,输入分压电阻R1等于10kΩ。

当输出为高电平5V时,同相输入端的电压由Vref和输出共同决定。根据叠加原理,同相输入端电压等于Vref乘以Rf除以(R1加Rf)加上Voh乘以R1除以(R1加Rf)。代入数值:2.5乘以100除以110加上5乘以10除以110,等于2.27V加上0.45V,等于2.72V。这是下降阈值,也就是说当输入电压从低往上升,超过2.72V时输出才翻转。

当输出为低电平0V时,同相输入端电压等于2.5乘以100除以110加上0乘以10除以110,等于2.27V。这是上升阈值,输入从高往下降,低于2.27V时输出才翻转。

两个阈值的差值是2.72V减2.27V等于0.45V,这个就是迟滞窗口。噪声幅度只要小于0.45V,输出就不会抖动。0.45V对于大多数应用来说足够了。

Rf和R1的比值决定了迟滞窗口的大小。Rf越大、R1越小,迟滞窗口越大。但迟滞窗口太大会降低检测精度,所以要在抗噪和精度之间找平衡。我一般从Rf等于10倍R1开始试,根据实际噪声情况调整。

4.3 实测波形与阈值校准

我实际搭了这个迟滞电路,用示波器双通道同时看输入和输出。输入是一个叠加了约100mV峰峰值噪声的三角波,频率1kHz,幅度从2V到3V缓慢变化。

没有迟滞的时候,输出在输入穿越2.5V附近时出现密集翻转,示波器上是一团亮斑。加上迟滞之后,输出在输入上升到2.72V时干净利落地翻转为低,在输入下降到2.27V时翻转为高。中间区域无论输入怎么抖,输出稳如泰山。

校准迟滞窗口的方法很简单:用可调电源慢慢加电压,用万用表记录输出翻转时的输入电压,得到一个值;再慢慢减电压,记录另一个翻转值。两个值之差就是实际迟滞窗口。如果和设计值偏差大,检查Rf和R1的实际阻值,因为普通电阻5%的误差会导致迟滞窗口偏差10%左右。对精度要求高的场合,用1%精度的金属膜电阻。

提示:迟滞电路的正反馈电阻不能接错位置。接同相输入端是正反馈,产生迟滞;接反相输入端是负反馈,电路会变成放大器,输出不再是开关状态。这个错误我见过不止一次,接反之后输出会稳定在某个中间电压,而不是高或者低。

5. 常见问题排查——那些数据手册上不会写的坑

5.1 输出状态死活不翻转,问题出在哪

这是新手最常遇到的问题,我按排查顺序列出来,你对着查就行。

第一,上拉电阻有没有接。开漏输出不接上拉就是高阻态,万用表量出来电压漂忽不定,后级电路识别不了。这是最高频的原因。

第二,输入极性有没有接反。同相输入端接信号、反相输入端接参考,输出逻辑才是“信号高于参考输出高”。接反了逻辑相反,你以为它不翻转,其实它翻转了只是和预期相反。

第三,输入电压有没有超出共模范围。LM393在5V供电下,输入电压必须在0V到3.5V之间。如果你直接把4.2V锂电池接进去,输入级工作不正常,输出状态随机。这个用万用表量一下同相和反相引脚对地电压就知道了。

第四,电源有没有接对。LM393的VCC是8脚,GND是4脚。我见过有人把电源接反了,芯片发烫,输出当然不对。接反虽然不一定烧芯片,但工作肯定不正常。

第五,参考电压有没有实际建立。如果你用分压电阻产生参考电压,量一下分压点的实际电压。有时候电阻焊错值,或者虚焊,参考电压根本不对。

5.2 输出抖动——迟滞没加或者加得不够

前面讲过迟滞原理,这里补充几个实操细节。迟滞电阻的取值不是越大越好。Rf太大,迟滞窗口就大,检测精度下降;Rf太小,迟滞窗口不够,噪声照样让输出抖。我一般先按Rf等于10倍R1设计,然后用示波器看输出波形,如果还有抖动,逐步减小R1或者增大Rf,直到输出干净为止。

还有一个容易忽略的点:输入信号本身的噪声。如果输入信号上叠加的噪声超过迟滞窗口,再怎么加迟滞也没用,因为噪声本身就跨过了两个阈值。这时候要从源头解决——在输入信号上并一个电容到地,做低通滤波。电容取值根据信号频率来定,截止频率要低于噪声频率但高于你关心的信号频率。

5.3 电源噪声导致的误翻转

LM393虽然速度不快,但对电源噪声还是敏感的。我遇到过用开关电源供电时输出随机翻转的情况,换了线性电源就好了。后来在电源脚加了100nF加10μF的组合去耦,开关电源下也能稳定工作。

去耦电容的放置位置很关键,一定要紧贴芯片的VCC和GND引脚,引线越短越好。我见过有人把电容放在板子另一头,通过长长的走线连过来,这样电容基本不起作用,因为走线电感已经让电容在高频段失效了。

5.4 常见问题速查表

现象可能原因排查方法解决措施
输出始终低电平未接上拉电阻量输出对地电压加1kΩ到10kΩ上拉
输出始终高电平输入极性接反交换两输入引脚测试调换接线
输出在阈值附近抖动未加迟滞示波器看输入输出波形加正反馈电阻
输出翻转点偏移大输入失调电压或分压电阻误差量实际翻转电压换1%电阻或加修调
输出波形上升沿缓上拉电阻太大量上升时间减小上拉电阻
芯片发烫电源接反或过压量VCC对地电压检查电源极性
输入超范围时输出异常共模范围超标量输入对地电压加分压或换轨到轨比较器

5.5 我踩过的三个典型坑

第一个坑是把LM393当运放用。早期做实验,需要放大一个微弱信号,手边只有LM393,就试着搭了个放大电路。结果输出要么高要么低,根本不线性。后来才明白比较器内部没有频率补偿,不能做线性放大,强行用会振荡。

第二个坑是上拉电阻接到错误电源。有一次做电平转换,LM393用12V供电,输出上拉到5V,结果发现输出高电平只有3V左右。查了半天,发现是上拉电阻焊到了12V电源上,比较器输出高电平时被内部某个路径拉低了。后来把上拉电阻改接到5V,输出就正常了。这个教训是:上拉电源和比较器供电可以不同,但要确保上拉电源不会通过内部路径倒灌。

第三个坑是忽略输入偏置电流。用1MΩ电阻分压产生参考电压,理论计算没问题,实际翻转点偏了几十毫伏。后来用10kΩ电阻重新分压,问题消失。这个坑让我记住了:高阻分压电路必须考虑输入偏置电流的影响。

6. 电压比较器的典型应用场景拆解

6.1 电池低压告警与充电控制

这是我做的最多的应用。单节锂电池低压告警用一路比较器就够了,但如果要做充电控制,两路比较器就派上用场了。LM393是双路比较器,一路做低压告警,一路做充满断电,正好。

充电控制逻辑是这样的:电池电压低于3.3V时,第一路比较器输出告警,同时启动充电;电池电压高于4.2V时,第二路比较器输出信号,停止充电。两路比较器的参考电压分别设定为3.3V和4.2V对应的分压值。输出信号可以驱动MOS管控制充电回路,也可以通过光耦隔离后接单片机。

注意:锂电池的充放电控制涉及安全,比较器只做电压判决,真正的保护还需要专用的充电管理芯片。比较器输出可以作为辅助告警或状态指示,不建议单独用比较器做锂电池保护。

6.2 光控开关与传感器信号整形

光敏电阻加比较器是最经典的光控开关电路。光敏电阻和固定电阻分压,分压点接比较器输入,参考电压用另一个分压电路设定。天黑时光敏电阻阻值升高,分压点电压变化,比较器输出翻转,驱动继电器或LED。

这个应用的关键是迟滞。黄昏时光线强度变化缓慢,如果没有迟滞,比较器输出会在阈值附近反复翻转,继电器会哒哒哒响个不停。加上迟滞之后,天暗到一定程度才开灯,天亮到一定程度才关灯,中间有一段死区,继电器就稳定了。迟滞窗口一般设得比较大,因为光线变化慢,精度要求不高。

传感器信号整形是另一个常见应用。很多传感器输出的是缓慢变化的模拟信号,后级数字电路需要干净的方波。比较器把模拟信号转换成方波,同时通过迟滞消除噪声导致的边沿抖动。红外对管、霍尔传感器、光电编码器,这些信号都可以用比较器整形。

6.3 窗口比较器与过压欠压保护

窗口比较器用两路比较器实现,一个检测上限,一个检测下限。电压在窗口内时输出一种状态,超出窗口时输出另一种状态。这个在电源监控里特别有用。

LM393双路比较器做窗口比较器,一路同相输入接参考上限,反相输入接被检测电压;另一路反相输入接参考下限,同相输入接被检测电压。两路输出通过线与逻辑接到同一个上拉电阻。电压正常时,两路输出都是一高阻一低,线与后为低;电压超限时,其中一路翻转,线与后为高。这样用一个上拉电阻就能得到窗口比较结果。

过压欠压保护用这个电路,可以在电压异常时切断负载或者触发告警。我做过一个12V电源监控板,窗口设定在10.5V到13.5V之间,超出范围就点亮红色LED并触发蜂鸣器,用了好几年一直很稳定。

6.4 方波发生器与PWM信号生成

比较器加RC充放电电路可以构成方波发生器。输出通过电阻给电容充电,电容电压上升到阈值时比较器翻转,输出变低,电容通过另一个电阻放电,电压下降到另一个阈值时再次翻转。如此循环,输出方波。

这个电路的频率由RC时间常数和迟滞窗口共同决定。我实际搭过一个1kHz的方波发生器,用LM393、100kΩ电阻、10nF电容,配合正反馈迟滞。实测频率在980Hz到1020Hz之间,受电阻电容精度影响。对于不需要精确频率的场合,这个电路简单便宜。

PWM生成稍微复杂一点,需要比较器和三角波发生器配合。三角波接比较器一端,控制电压接另一端,比较器输出就是PWM波。改变控制电压就改变了占空比。这个在电机调速、LED调光里很常见,不过现在大多数场合都用单片机直接生成了,比较器方案适合对成本极度敏感或者不想用单片机的场景。

7. 选型与替代方案——LM393之外还有什么选择

7.1 LM393的替代型号对比

LM393虽然经典,但有些场合确实不够用。我整理了一个对比表,方便你根据需求选型。

型号类型供电范围响应时间输出类型特点
LM393双路3-36V1.3μs开漏便宜通用,入门首选
LM339四路3-36V1.3μs开漏四路集成,省空间
LM311单路5-36V200ns集电极开路速度快,可调失调
TLV3501单路2.7-5.5V4.5ns推挽高速,轨到轨
MCP6541单路1.6-5.5V4μs推挽低功耗,轨到轨
LM2903双路2-36V1.3μs开漏车规级,宽温

如果要做高速信号处理,TLV3501的4.5ns响应时间比LM393快近300倍,但价格也贵不少。低功耗场合选MCP6541,静态电流只有0.6μA,LM393是0.4mA,差了几百倍。车规或者工业场合选LM2903,温度范围宽。四路比较需求选LM339,一颗顶四颗。

7.2 什么时候该用比较器,什么时候该用运放

这个问题我被问过很多次。简单说:做判决用比较器,做放大用运放。

比较器针对开关状态优化,输出只有高低两种,响应快,有些还带内部迟滞。运放针对线性放大优化,输出连续变化,增益带宽积和压摆率是核心指标。但有些场合运放也能当比较器用,比如低速、精度要求不高的判决。反过来比较器绝对不能当运放用,因为它没有频率补偿,做线性放大必然会振荡。

如果你的信号需要先放大再判决,标准做法是运放放大加比较器判决,两级串联。不要试图用一颗比较器同时完成放大和判决,它做不到。

7.3 比较器选型的三条经验法则

第一条,先看输出类型。需要电平转换或者线与逻辑就选开漏,需要直接驱动数字电路就选推挽,需要驱动继电器或LED就选集电极开路。输出类型选错了,后面电路怎么调都不对。

第二条,再看响应速度。你的信号变化最快有多快?比较器响应时间至少要比信号边沿快5倍以上,否则输出跟不上。50Hz工频信号用1.3μs的LM393绰绰有余,1MHz的信号就必须选纳秒级比较器。

第三条,最后看精度需求。失调电压、输入偏置电流、温漂,这些参数决定了你的判决精度。电池告警这种粗活,LM393的2mV失调完全够用;精密窗口比较,可能就需要失调更小或者带修调的型号。

8. 从原理图到PCB——布局布线里的门道

8.1 去耦电容怎么放才有效

去耦电容的放置我单独拿出来讲,因为太多人栽在这上面。100nF瓷片电容必须紧贴芯片的VCC和GND引脚,引线长度控制在5mm以内。超过这个长度,引线电感会让电容在高频段失效,相当于没接。

我的做法是在PCB上把100nF电容放在芯片背面,直接跨接在VCC和GND引脚之间,引线最短。10μF电解电容可以放在稍远的地方,负责低频去耦,但也不要超过1cm。如果板子上有多颗芯片,每颗芯片的VCC脚都要单独放一个100nF,不能共用。

8.2 输入走线的抗干扰处理

比较器输入是高阻抗节点,容易拾取噪声。走线要尽量短,远离电源线和开关信号线。如果输入信号来自板外,最好用屏蔽线,屏蔽层单端接地。输入分压电阻靠近比较器引脚放置,不要拉长线。

如果输入信号上有高频噪声,在输入引脚附近并一个小电容到地,容值根据信号频率选。10nF到100nF是常用值,太大影响信号响应速度,太小起不到滤波作用。

8.3 输出走线的注意事项

开漏输出接了上拉电阻之后,输出高电平由外部电源决定。输出走线如果比较长,驱动容性负载,上升沿会变缓。这时候要么减小上拉电阻,要么在输出加缓冲器。如果输出要驱动继电器或LED,注意灌电流不要超过16mA,超了要加三极管或者MOS管扩流。

线与逻辑的输出走线,多个比较器输出接到一起时,走线要短而粗,避免相互干扰。上拉电阻放在走线的一端即可,不需要每个输出都接一个。

9. 我的实操心得与踩坑记录

9.1 调试时必备的三个工具

第一个是可调直流电源。调阈值的时候,你需要一个能连续调节的电压源来模拟输入信号变化。用电池或者固定电源没法精确控制,可调电源是必须的。我用的是一台0到30V可调、带电流显示的电源,调阈值的时候看电流变化也能判断电路状态。

第二个是万用表。量电压、量通断、量电阻,万用表是最基本的工具。调参考电压的时候,万用表比示波器还方便,因为示波器有噪声,万用表读数更稳定。我习惯用带模拟条图的万用表,既能看数值又能看趋势。

第三个是示波器。看抖动、看响应时间、看波形质量,没有示波器等于闭着眼睛调电路。入门级的双通道示波器就够用了,带宽50MHz以上,采样率1GSa/s以上。我调迟滞电路的时候,双通道同时看输入和输出,输入接通道1,输出接通道2,触发设在输出上,一眼就能看出翻转点和迟滞窗口。

9.2 三个让我印象深刻的翻车经历

第一个翻车经历是用LM393做红外接收头的信号整形。红外接收头输出的是38kHz调制信号解调后的脉冲,频率大概几百赫兹到几千赫兹。我想当然地用了LM393,结果输出波形边沿不干净,后级单片机识别出错。后来换了一颗专用的红外接收芯片,问题消失。这个教训是:比较器不是万能的,专用芯片在特定场合更靠谱。

第二个翻车经历是迟滞电阻接错位置。我把正反馈电阻接到了反相输入端,电路变成了负反馈放大器,输出稳定在2.5V左右,既不翻转也不振荡。查了两天才发现接错了,改接到同相输入端后正常工作。这个坑让我记住了:正反馈接同相,负反馈接反相,接错方向整个电路行为完全变了。

第三个翻车经历是忽略了输入共模范围。我用LM393做12V电源监控,直接把12V分压到3V接输入,理论上在5V供电的共模范围内。但实际电路里分压电阻的地和比较器的地之间有压差,导致输入电压实际超出了范围。后来把比较器和分压电路共地,并且用更小的分压比,问题解决。这个教训是:输入共模范围是相对于比较器自己的GND而言的,不是相对于板子的GND。

9.3 给新人的三条实用建议

第一条,先搭电路再画板。我见过太多人直接画PCB然后打样,结果发现电路有问题,板子废了。比较器电路用面包板搭一遍,调通了再画板,能省很多时间和钱。

第二条,养成记录数据的习惯。每次调试,把实际翻转电压、迟滞窗口、输出波形都记下来。下次做类似电路,直接翻记录就行,不用重新试。我有个笔记本专门记这些,几年下来积累了几百条数据,现在做新电路基本一次成功。

第三条,手边常备LM393和LM339。这两种芯片便宜、好买、通用,大部分判决电路都能搞定。我元件盒里永远有十几颗,用完了立刻补。LM393双路适合简单电路,LM339四路适合多路监控,两者配合能覆盖八成以上的比较器需求。

最后再分享一个小技巧。如果你手边没有可调电源,可以用一个10kΩ电位器接在5V和GND之间,中间抽头当可调电压源用,配合万用表监测输出。虽然精度不如专业电源,但调个比较器阈值绰绰有余。这个土办法我用了很多年,应急的时候特别好使。

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

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

立即咨询