
电压比较器这个电路我在带新人和做项目评审时发现一个很普遍的现象很多人能背出虚短虚断能推导运放放大倍数但一让他设计一个输入超过某个阈值就输出翻转的电路就开始犯迷糊。要么直接拿运放开环当比较器用要么搭出来的电路在阈值附近疯狂抖动要么波形和理论对不上。问题出在哪就出在把比较器当运放来理解忽略了它本质上是一个模拟输入、数字输出的判决器件。这篇内容我打算把单限比较器、滞回比较器、窗口比较器这三类最常用的电路从头到尾捋一遍。不只是给电路图而是把每个电阻怎么算、为什么这么选、实测波形长什么样、哪里容易翻车都讲清楚。适合正在学模电的学生、刚入行的硬件工程师以及需要做阈值检测、波形整形、电平判决这类电路设计的人。看完你应该能独立完成从需求到原理图到波形验证的完整流程。1. 先搞清楚比较器到底在做什么判决1.1 比较器和运放的本质区别很多人第一次接触比较器脑子里第一反应是运放开环就是比较器。这话对了一半。运放确实可以开环当比较器用但专门设计的比较器芯片比如LM393、LM339、LM311和通用运放有几个关键差异不理解这些差异设计出来的电路就会出问题。第一个差异是输出级结构。通用运放输出是推挽结构能拉也能灌电流输出摆幅接近电源轨。而LM393这类比较器是集电极开路输出OC输出它只能灌电流拉高需要外部上拉电阻。这个差异直接决定了你画原理图时必须加上拉电阻否则输出永远是低电平很多人第一次用LM393就栽在这里。第二个差异是响应速度。比较器追求的是快速翻转内部没有补偿电容传播延迟通常在几百纳秒级别。运放为了稳定内部有补偿电容压摆率有限大信号翻转时慢得多。你用运放做比较器在低频场合可能看不出问题一旦输入信号频率上去输出波形就会严重失真。第三个差异是输入失调和迟滞。比较器芯片的输入失调电压通常比精密运放大但它对振荡不敏感因为它本来就是做判决的。运放做比较器时在阈值附近会因为噪声和失调来回翻转产生所谓的抖动问题。提示如果你只是做低频、对成本敏感的阈值检测运放开环确实能用。但只要涉及波形整形、高频判决、或者输入信号有噪声老老实实用专用比较器芯片。1.2 比较器的三种基本拓扑从功能上分比较器电路就三大类这也是本篇要展开的核心内容。单限比较器是最基础的形态只有一个阈值电压。输入高于阈值输出一种状态低于阈值输出另一种状态。它的问题是在阈值附近如果输入信号有噪声输出会反复翻转产生毛刺。滞回比较器也叫施密特触发器引入了正反馈有两个阈值上门限和下门限。输入上升时用上门限判决输入下降时用下门限判决。两个阈值之间的差值叫回差电压。这个回差就是为了对抗噪声让输出在阈值附近不会反复跳变。窗口比较器用来判断输入是否落在某个区间内。它需要两个阈值输出表示输入在窗口内或输入在窗口外。典型应用是电池过压欠压检测、信号幅度范围判断。这三种拓扑不是孤立的滞回比较器可以看成单限比较器加了正反馈窗口比较器可以看成两个单限比较器的组合。理解了单限后面两个就是自然延伸。1.3 选型时先问自己三个问题在动手画电路之前我习惯先问三个问题这三个问题基本决定了你选什么芯片、用什么拓扑。第一个问题输入信号是什么形态是缓慢变化的直流电平还是有一定频率的交流信号如果是缓慢变化的直流单限比较器加一点滤波可能就够了。如果是有噪声的交流信号滞回比较器几乎是必须的。第二个问题输出要驱动什么是直接驱动LED还是要接入单片机IO口还是要驱动后级逻辑电路驱动LED需要几个毫安的灌电流LM393可以。接单片机IO口要注意电平匹配3.3V系统用5V上拉会烧IO口。驱动后级逻辑要考虑扇出能力。第三个问题精度要求多高阈值精度要求高的话要考虑比较器的输入失调电压、电阻的精度和温漂。要求不高的话普通1%电阻就够了。这个问题决定了你选LM393还是LM311还是更精密的比较器。把这三个问题想清楚后面的设计就是按图索骥。2. 单限比较器最基础也最容易翻车的电路2.1 反相单限比较器的阈值计算单限比较器分反相和同相两种。反相单限比较器是输入接反相端参考电压接同相端。当输入电压高于参考电压时输出为低低于参考电压时输出为高。电路结构很简单一个比较器同相端接参考电压Vref反相端接输入Vin输出加上拉电阻。阈值就是Vref。Vref怎么来最简单的办法是用电阻分压。比如电源5V想要2.5V阈值就用两个10k电阻分压。但这里有个坑分压电阻的取值会影响阈值精度。如果电阻太大比较器输入偏置电流会在电阻上产生压降导致实际阈值偏离计算值。LM393的输入偏置电流典型值是25nA如果分压电阻是100k压降就是2.5mV影响不大。但如果用1M电阻压降就是25mV对于精密应用就不能忽略了。我的经验是分压电阻总阻值控制在10k到100k之间比较稳妥。太小了功耗大太大了偏置电流影响明显。如果对阈值精度要求高可以在分压点加一个电容滤波同时用精密电阻。2.2 同相单限比较器的差异同相单限比较器是输入接同相端参考电压接反相端。逻辑正好反过来输入高于参考时输出为高低于参考时输出为低。这两种拓扑在功能上是对偶的选哪个取决于你的逻辑需求。比如你要做一个过压报警正常时输出低过压时输出高那就用同相比较器。如果你要做一个欠压报警正常时输出高欠压时输出低那就用反相比较器。实际项目中我更多用反相拓扑因为反相端的输入阻抗高对前级电路影响小。同相拓扑的输入阻抗虽然也高但输入端的共模电压范围要注意不能超过比较器的共模输入范围。2.3 上拉电阻的取值逻辑LM393是OC输出必须加上拉电阻。这个电阻取多大很多人是随便填个10k了事。其实这里面有讲究。上拉电阻的取值要考虑三个因素输出上升时间、功耗、灌电流能力。上升时间和上拉电阻、负载电容的乘积成正比。如果负载电容是10pF上拉电阻10k时间常数就是100ns上升时间大约220ns。如果上拉电阻100k时间常数1us上升时间2.2us。对于低速应用10k到100k都行。对于高速应用上拉电阻要小比如1k到4.7k。功耗方面输出为低时灌电流等于电源电压除以上拉电阻。5V除以10k等于0.5mA这个电流会流过比较器内部的输出管。LM393的灌电流能力是16mA所以10k完全没问题。但如果用1k上拉灌电流就是5mA虽然还在能力范围内但功耗就上去了。我的习惯是低速场合用10k高速场合用4.7k或2.2k需要驱动LED时用1k左右。如果后级是CMOS输入负载电容很小上拉电阻可以适当大一些。2.4 单限比较器的抖动问题实测单限比较器最大的问题就是阈值附近的抖动。我做过一个实验输入是一个叠加了50mV峰峰值噪声的直流信号缓慢上升穿过2.5V阈值。用单限比较器输出在阈值附近翻转了七八次波形上全是毛刺。这个现象的原因很简单输入信号在阈值附近时噪声让输入电压在阈值上下反复穿越比较器就跟着反复翻转。如果后级是计数器或者中断输入这些毛刺会被当成多个事件系统就乱了。解决办法有两个一是加输入滤波用RC低通把噪声滤掉二是改用滞回比较器。输入滤波会引入延迟而且如果噪声频率和信号频率接近滤波效果有限。滞回比较器是从根本上解决这个问题因为它有两个阈值噪声幅度小于回差电压时输出就不会翻转。注意单限比较器不是不能用而是要用在输入信号干净、或者对抖动不敏感的场合。一旦输入有噪声或者后级对毛刺敏感就必须考虑滞回。3. 滞回比较器用正反馈换稳定3.1 正反馈如何产生两个阈值滞回比较器的核心是正反馈。输出通过一个电阻反馈到同相端和参考电压一起决定同相端的电位。因为输出有两种状态高和低所以同相端的电位也有两个值对应上门限和下门限。以反相滞回比较器为例输入接反相端同相端接参考电压Vref和反馈电阻Rf。输出高时同相端电位是Vref和输出高电平的加权平均输出低时同相端电位是Vref和输出低电平的加权平均。这两个电位就是两个阈值。具体计算假设同相端有两个电阻R1接VrefR2接输出。同相端电位V (Vref×R2 Vout×R1) / (R1R2)。当输出高时VoutVOH得到上门限VTH当输出低时VoutVOL得到下门限VTL。回差电压就是VTH减VTL。这个公式看起来简单但实际计算时要注意VOH和VOL的值。对于OC输出的比较器VOH就是上拉电阻接的电源电压VOL是输出管的饱和压降通常0.1V到0.3V。如果上拉电阻接5VVOH就是5V。如果上拉电阻接3.3VVOH就是3.3V。这个细节会影响阈值计算很多人算的时候用5V实际电路上拉到3.3V阈值就对不上了。3.2 回差电压的设计取舍回差电压取多大是一个需要权衡的问题。回差太小抗噪声能力不够回差太大判决精度下降而且可能把有用的信号变化也滤掉了。我的经验法则是回差电压取噪声峰峰值的2到3倍。比如输入噪声是50mV峰峰值回差取100mV到150mV。这样噪声幅度不足以让输入穿越两个阈值输出就不会抖动。但回差也不能无限大。如果输入信号本身的变化幅度就很小回差太大会导致信号变化被淹没。比如你要检测一个缓慢上升的信号是否超过阈值信号从2V升到3V如果你把回差设成1V那信号在2V到3V之间变化时输出可能一直不翻转因为输入没有穿越完整的回差带。还有一个实际考虑回差电压会影响阈值精度。因为上门限和下门限不对称如果你需要精确的阈值滞回比较器就不合适了。这时候要么用精密比较器加滤波要么用窗口比较器。3.3 用LM393搭滞回比较器的完整过程我拿一个实际案例来走一遍。需求输入信号在0到5V之间缓慢变化噪声大约30mV峰峰值需要在2.5V附近判决输出接单片机IO口单片机是3.3V系统。第一步选芯片。LM393是双比较器OC输出便宜好买灌电流16mA够用。供电用5V因为输入信号范围到5VLM393的共模输入范围是0到Vcc-1.5V5V供电时共模范围是0到3.5V。等等这里有问题输入信号到5V超过了共模范围。所以要么提高供电电压要么用输入范围包含Vcc的比较器比如LM311或者轨到轨比较器。这个细节很多人会忽略。LM393在5V供电时同相端和反相端的输入电压不能超过3.5V否则比较器工作不正常。如果你的输入信号会到5V就必须用更高供电电压或者换芯片。我后来选了LM311它的共模输入范围可以到Vcc而且输出是OC灵活度高。第二步确定阈值和回差。阈值2.5V回差取100mV所以上门限2.55V下门限2.45V。第三步计算电阻。用反相滞回拓扑同相端接参考电压和反馈。设R1是参考电压到同相端的电阻R2是输出到同相端的反馈电阻。根据公式VTH (Vref×R2 VOH×R1) / (R1R2) VTL (Vref×R2 VOL×R1) / (R1R2)VOH是上拉电压接3.3V因为单片机是3.3V系统VOL约0.2V。Vref用5V分压得到2.5V。代入VTH2.55VVTL2.45VVOH3.3VVOL0.2VVref2.5V。两式相减VTH - VTL (VOH - VOL)×R1 / (R1R2) 0.1V 所以 (3.3-0.2)×R1/(R1R2) 0.1即 3.1×R1/(R1R2) 0.1得到 R1/(R1R2) 0.0323也就是 R2/R1 30。取R11kR230k。再代入VTH公式验证VTH (2.5×30 3.3×1)/(31) (753.3)/31 2.526V。和2.55V有偏差因为Vref实际不是精确的2.5V。调整Vref或者微调电阻让中心阈值对准2.5V。实际调试时我会用一个精密可调电源做输入用示波器看输出翻转点然后微调电阻。计算是给一个起点实际值要靠调试确定。3.4 滞回比较器的波形实测分析搭好电路后我用信号发生器输入一个1kHz三角波幅度0到5V叠加30mV噪声。示波器双通道看输入和输出。输入上升时输出在2.55V附近从高翻转到低输入下降时输出在2.45V附近从低翻转到高。输出波形干净没有毛刺。把噪声幅度加到80mV输出依然稳定因为80mV小于100mV的回差。把噪声加到150mV输出开始出现偶尔的误翻转因为噪声峰值超过了回差。这个实验说明回差电压的设计是有效的但也验证了回差必须大于噪声峰值。如果你不知道噪声有多大可以用示波器测一下输入信号的噪声峰峰值然后按2到3倍设计回差。还有一个现象值得注意输出翻转时有一个短暂的振铃这是由正反馈和寄生电容引起的。振铃频率很高通常几十MHz幅度不大。如果后级对振铃敏感可以在输出加一个小RC滤波或者选择内部有迟滞的比较器芯片。4. 窗口比较器判断信号是否在区间内4.1 窗口比较器的两种实现方式窗口比较器要判断输入是否在两个阈值之间。实现方式有两种用两个比较器加逻辑门或者用一个比较器加外围电路。双比较器方案是最直观的。一个比较器检测上限一个检测下限两个输出通过逻辑组合得到最终结果。比如要判断输入是否在2V到3V之间比较器A检测输入是否高于2V比较器B检测输入是否低于3V。两个输出都是高时表示输入在窗口内。这个方案的优点是阈值独立可调上下限互不影响。缺点是用了两个比较器成本高一点而且两个比较器的输出需要逻辑组合如果是OC输出上拉电阻和逻辑门要配合好。单比较器加二极管方案更省器件但阈值精度和灵活性差一些。它利用二极管的导通和截止来改变参考电压实现窗口判断。这个方案在实际项目中用得少因为二极管的正向压降有温漂阈值不稳定。我一般推荐双比较器方案除非成本压力特别大。LM393是双比较器一个芯片就能搞定成本并不高。4.2 上下限阈值的独立设定双比较器窗口比较器的设计关键是上下限阈值要独立可调。具体做法是比较器A的同相端接上限参考电压VH反相端接输入比较器B的反相端接下限参考电压VL同相端接输入。这样比较器A的输出表示输入是否低于VH比较器B的输出表示输入是否高于VL。两个输出通过与逻辑组合得到输入在VL和VH之间的结果。参考电压VH和VL可以用两个独立的分压网络产生也可以用同一个分压网络的不同抽头。用独立分压网络的好处是调节方便缺点是电阻多。用同一分压网络的好处是省电阻缺点是上下限会相互影响调节一个会影响另一个。我的做法是如果上下限固定不变用同一分压网络计算好电阻值。如果需要经常调节用两个独立的分压网络每个用一个小电位器。4.3 输出逻辑组合的注意事项两个比较器的输出怎么组合取决于你的逻辑需求。如果要窗口内输出高那就是两个输出相与。如果要窗口外输出高那就是两个输出相或再取反。用OC输出的比较器时逻辑组合可以直接用线与。两个OC输出接在一起加上拉电阻就实现了与逻辑。因为任何一个输出为低公共点就是低只有两个输出都为高公共点才是高。这个特性很方便省了逻辑门。但要注意线与的上拉电阻要重新计算。两个OC输出接在一起任何一个输出为低时灌电流都流过同一个上拉电阻。如果上拉电阻是10k电源5V灌电流是0.5mA单个比较器完全能承受。但如果上拉电阻是1k灌电流就是5mA两个比较器轮流灌每个都要能承受5mALM393的16mA能力没问题。还有一个坑如果两个比较器的输出翻转时间有差异线与输出会出现短暂的毛刺。比如一个先翻转另一个后翻转中间会有一个短暂的状态。这个毛刺宽度通常在纳秒到微秒级如果后级是单片机中断可能会误触发。解决办法是在输出加RC滤波或者用带使能的逻辑门。4.4 窗口比较器在电池检测中的实战我拿一个电池过压欠压检测的案例来收尾。需求监测12V电池正常范围是10.5V到13.5V低于10.5V欠压报警高于13.5V过压报警正常时输出高电平。第一步分压。12V电池电压通过电阻分压到比较器能接受的范围。用两个电阻分压比如100k和20k分压比是1/612V变成2V。这样10.5V对应1.75V13.5V对应2.25V。第二步设定阈值。上限阈值2.25V下限阈值1.75V。用两个分压网络产生这两个参考电压。电源用5V分压电阻选10k级别。第三步选拓扑。用两个比较器一个检测上限一个检测下限。上限比较器输入接反相端参考接同相端输出低表示过压。下限比较器输入接同相端参考接反相端输出低表示欠压。两个输出线与正常时两个都是高线与输出高过压或欠压时对应比较器输出低线与输出低。第四步加上拉电阻。线与输出接单片机IO口单片机3.3V系统所以上拉电阻接3.3V。上拉电阻取10k灌电流0.33mA没问题。第五步调试。用可调电源模拟电池电压从10V慢慢升到14V观察输出。在10.5V附近输出从低变高在13.5V附近输出从高变低。实际调试时阈值可能有几十毫伏的偏差这是电阻精度和比较器失调造成的。如果要求高用精密电阻或者加微调电位器。这个电路我做过好几个版本最稳定的是加了输入RC滤波和输出RC滤波的版本。输入滤波截止频率设在大约100Hz滤掉电池线上的高频噪声。输出滤波截止频率设在大约10kHz滤掉翻转毛刺。这两个滤波对响应速度有影响但对于电池监测这种慢速应用完全没问题。提示窗口比较器的上下限阈值不要设得太接近。如果上下限只差几十毫伏比较器的失调电压和电阻误差可能让窗口消失输出永远不翻转。一般建议窗口宽度至少是失调电压的10倍以上。5. 从原理图到实测几个容易忽略的细节5.1 电源去耦和参考电压的稳定性比较器电路对电源噪声很敏感因为参考电压通常是从电源分压来的。如果电源有噪声参考电压就有噪声阈值就跟着抖。所以每个比较器的电源引脚旁边必须加去耦电容通常用0.1uF陶瓷电容位置尽量靠近芯片引脚。如果对阈值精度要求高参考电压不要直接从电源分压而是用基准电压源比如TL431或者REF3025。TL431便宜好用输出2.5V或可调温漂小。用TL431做参考比较器的阈值稳定性会好很多。我吃过一次亏一个批量生产的板子阈值一致性很差有的板子阈值偏高有的偏低。查了半天发现是分压电阻的精度问题。用的是5%的碳膜电阻分压比误差就有5%阈值误差就大了。后来换成1%的金属膜电阻一致性问题就解决了。这个教训是阈值精度取决于电阻精度不要在这上面省钱。5.2 输入保护与共模范围比较器的输入电压不能超过共模范围也不能超过电源电压。如果输入信号可能超过电源电压或者可能为负必须加保护电路。最简单的保护是在输入端串联一个电阻然后加两个二极管分别到电源和地。电阻限流二极管钳位。电阻取1k到10k二极管用1N4148或者肖特基。这个电路能把输入电压钳位在-0.3V到Vcc0.3V之间保护比较器。但要注意串联电阻会和比较器的输入偏置电流产生压降影响阈值。如果电阻是10k偏置电流是25nA压降是0.25mV可以忽略。如果电阻是100k压降是2.5mV对于精密应用就有影响了。共模范围的问题前面提过LM393在5V供电时共模范围是0到3.5V。如果你的输入信号会到5V要么提高供电电压到9V以上要么换芯片。LM311的共模范围可以到Vcc但它的输入偏置电流大一些有100nA左右。选芯片时要看数据手册的共模范围这一项不要想当然。5.3 波形分析时示波器的正确接法测比较器波形时示波器的接法很关键。我见过有人用普通探头测结果波形全是振铃和毛刺以为是电路问题其实是探头接地线太长引入的。测比较器波形建议用短地线探头或者用弹簧地针。普通探头的鳄鱼夹地线有几厘米长电感效应明显高频振铃会被放大。短地线探头能把接地回路缩短到几毫米波形干净很多。触发方式也有讲究。测滞回比较器时要用输入信号做触发同时看输入和输出。触发模式用正常触发不要用自动触发否则波形会飘。触发边沿选输入信号的上升沿这样能看到完整的翻转过程。如果要测阈值可以用示波器的光标功能手动测量输出翻转时对应的输入电压。更精确的办法是用可调电源做输入慢慢调节电压用万用表测输入电压同时看输出状态。这个方法慢但精度高。5.4 常见故障的排查顺序比较器电路不工作时按什么顺序排查我的习惯是从电源开始然后参考电压然后输入最后输出。第一步查电源用万用表测比较器的电源引脚确认电压正常去耦电容在位。如果电源不对后面都不用查了。第二步查参考电压测同相端或反相端的参考电压确认和设计值一致。如果不一致查分压电阻是否焊错或者比较器输入引脚是否虚焊。第三步查输入测输入端的电压确认信号到达了比较器引脚。如果输入是悬空的比较器输出会不确定可能高可能低。第四步查输出如果输出一直是低查上拉电阻是否焊了阻值对不对。如果输出一直是高查比较器是否损坏或者输入是否一直在阈值的一侧。这个排查顺序能覆盖90%的问题。剩下的10%通常是芯片损坏、PCB走线错误、或者元件参数选错。我遇到过最离谱的一次是上拉电阻焊成了下拉输出永远是低查了半天才发现。6. 三类比较器的选型对照与组合思路6.1 一张表看清三种拓扑的适用边界拓扑类型阈值数量抗噪声能力阈值精度典型应用器件成本单限比较器1个弱高干净信号的阈值检测低滞回比较器2个上门限/下门限强中噪声信号的波形整形低窗口比较器2个上限/下限中中区间判断、过压欠压检测中这张表是我在选型时快速判断的依据。如果输入信号干净、只需要一个阈值单限比较器最简单。如果输入有噪声、需要稳定判决滞回比较器是首选。如果需要判断信号是否在某个范围内窗口比较器是唯一选择。实际项目中这三种拓扑经常组合使用。比如一个电源监测电路用窗口比较器判断电压是否在正常范围同时用滞回比较器做快速过压保护。两个电路独立工作互不干扰。6.2 滞回比较器和窗口比较器的组合使用有时候一个电路需要同时具备滞回和窗口功能。比如电池检测既要判断电压是否在正常范围又要在边界附近有回差防止抖动。实现方法是窗口比较器的两个比较器都加上正反馈各自变成滞回比较器。这样上限比较器有回差下限比较器也有回差。窗口的边界就变成了滞回边界抗噪声能力更强。具体做法上限比较器的输出通过反馈电阻接到同相端下限比较器的输出也通过反馈电阻接到自己的同相端。反馈电阻的计算方法和单限滞回比较器一样只是参考电压变成了窗口的上下限。这个组合电路的调试稍微复杂一点因为两个回差会相互影响。我的经验是先单独调上限比较器确定回差和阈值再调下限比较器最后联调。联调时用三角波输入看输出在上下限附近的翻转是否干净。6.3 从比较器到后级电路的接口设计比较器的输出通常要接后级电路接口设计有几个要点。电平匹配比较器的输出电平要和后级匹配。OC输出加上拉电阻上拉电压决定了高电平。如果后级是3.3V系统上拉就接3.3V。如果后级是5V系统上拉接5V。不要用5V上拉去驱动3.3V的IO口会损坏后级。驱动能力比较器的灌电流能力有限LM393是16mA。如果后级需要更大电流比如驱动继电器就要加三极管或者MOS管扩流。扩流电路的基极电阻要计算好确保比较器输出低时三极管饱和导通。隔离如果后级是高压电路或者需要电气隔离就要用光耦或者隔离器。比较器输出驱动光耦的发光二极管光耦输出接后级。光耦的限流电阻要计算好确保发光二极管电流在合适范围。滤波如果后级对毛刺敏感比如单片机中断输入可以在比较器输出加RC滤波。滤波截止频率要高于信号频率低于毛刺频率。比如信号是100Hz毛刺是1MHz滤波截止频率可以设10kHz。这些接口细节看起来琐碎但实际项目中出问题往往就出在这些地方。比较器本身工作正常但后级不响应或者响应错误查半天发现是接口没设计好。7. 调试过程中积累的几个实战心得7.1 用可调电源和示波器配合调阈值调阈值最有效的方法是用可调电源做输入示波器看输出。具体步骤先把可调电源设到阈值附近然后慢慢调节观察输出翻转。翻转时的输入电压就是实际阈值。这个方法比用信号发生器更精确因为可调电源的电压可以精确读到毫伏级。信号发生器的幅度精度通常只有1%而且有偏移。用可调电源你可以精确知道翻转点在哪里。如果要调回差先测上门限再测下门限两个的差值就是回差。如果回差不对调整反馈电阻。反馈电阻增大回差增大反馈电阻减小回差减小。我习惯在调试时用一张纸记录设计值、实测值、偏差。偏差大的地方重点查通常是电阻精度或者比较器失调造成的。记录几次之后你对电路的脾气就摸清了。7.2 电阻选值的经验法则比较器电路里的电阻选值有几个经验法则。分压电阻总阻值10k到100k优先用10k级别。太小功耗大太大偏置电流影响明显。反馈电阻根据回差要求计算通常在10k到1M之间。如果计算出来超过1M说明回差要求很小这时候要考虑比较器的失调电压是否会影响阈值。上拉电阻低速10k高速4.7k驱动LED用1k。如果后级是CMOS输入可以用100k因为CMOS输入阻抗极高不需要大电流。限流电阻输入保护用1k到10k光耦驱动用几百欧到1k具体看光耦的电流要求。这些数值不是绝对的但在这个范围内选一般不会出大问题。超出范围时要仔细分析原因。7.3 什么时候该换专用比较器芯片LM393和LM339是最常用的比较器便宜好买。但有些场合它们不够用需要换专用芯片。高速场合LM393的响应时间是1.3us对于几十kHz以上的信号就吃力了。这时候要用LM311响应时间200ns或者更快的比较器比如TLV3501响应时间4.5ns。精密场合LM393的输入失调电压是2mV到5mV对于精密阈值检测不够。这时候要用精密比较器比如MAX921失调电压1mV或者斩波稳零比较器。低功耗场合LM393的静态电流是0.8mA对于电池供电的设备偏大。这时候要用低功耗比较器比如TLV3011静态电流5uA。轨到轨输入输出LM393的共模范围不到电源轨输出也不是轨到轨。如果需要轨到轨要用轨到轨比较器比如LMV7219。选芯片时先看数据手册的关键参数响应时间、失调电压、静态电流、共模范围、输出类型。这几个参数决定了芯片是否适合你的应用。7.4 PCB布局对比较器性能的影响比较器电路的PCB布局对性能有影响尤其是高速场合。去耦电容靠近引脚0.1uF电容要尽量靠近比较器的电源引脚引线越短越好。引线长了电感效应会让去耦效果大打折扣。输入走线远离输出走线输入是高阻抗节点容易受干扰。输出是快速翻转的信号容易干扰别人。两者要分开走不要平行走长距离。反馈走线尽量短滞回比较器的反馈走线如果太长会引入寄生电容影响回差和响应速度。反馈电阻尽量靠近比较器放置。地平面完整比较器电路下面最好有完整的地平面提供低阻抗的回流路径。如果没有地平面至少要用粗地线减少地弹。这些布局要点在低频场合可能看不出差别但在高速或者高精度场合布局好坏直接决定电路能不能正常工作。我做过一个高速比较器电路原理图没问题但PCB布局时反馈走线绕了一圈结果输出振铃严重后来重新布局才解决。7.5 从实验箱到实际产品的差距学校里做模电实验比较器电路搭在实验箱上导线长、寄生参数大但信号频率低看不出问题。到了实际产品PCB紧凑、信号频率高、环境噪声大问题就出来了。我总结的差距主要在三个方面电源质量、信号完整性、环境干扰。实验箱的电源是稳压电源很干净。实际产品的电源可能有开关噪声、负载波动。所以实际产品要加更多去耦必要时用LDO或者基准源。实验箱的信号是信号发生器给的很干净。实际产品的信号可能有噪声、振铃、过冲。所以实际产品要加输入滤波、保护电路。实验箱的环境是实验室干扰少。实际产品可能工作在电机旁边、继电器旁边、无线发射器旁边。所以实际产品要加屏蔽、隔离、滤波。从实验到产品不是简单地照搬电路而是要考虑实际工作环境的各种非理想因素。这个转变需要经验积累多做一些实际项目多踩一些坑慢慢就有感觉了。电压比较器这个电路看起来简单但真正做好需要理解器件特性、掌握计算方法、积累调试经验。单限、滞回、窗口这三种拓扑是基础掌握了它们大部分阈值检测和波形整形需求都能应对。实际项目中根据信号特性和环境条件选择合适的拓扑加上必要的保护和滤波再通过调试优化参数就能做出稳定可靠的电路。