二极管与门/或门与三极管非门设计:0.7V、上拉电阻与Proteus仿真

发布时间:2026/10/7 8:50:02
二极管与门/或门与三极管非门设计:0.7V、上拉电阻与Proteus仿真 前阵子有个做嵌入式软件的朋友拿着块面包板来找我说他按教程搭了个二极管与门、二极管或门又用三极管搭了个非门接上单片机死活不对带一个门还行串两级电平就飘了接个负载直接失灵。我去看了一眼问题其实全在几个很基础但特别容易被糊弄过去的点上——那0.7V到底该怎么算、二极管门的上拉下拉电阻该取多大、三极管到底是放大还是饱和。这篇就把二极管与门、或门以及三极管非门这三件事从PN结的物理图像一路讲到能用万用表量、能在Proteus里跑通的完整程度。不管你是刚开始学模电的学生还是做硬件时想临时补个逻辑的工程师看完至少能自己把这三个门算明白、搭出来、调对。1. 二极管敢做门靠的是PN结单向导电1.1 PN结的正向和反向到底差在哪二极管能当逻辑器件用本质就是它只让电流朝一个方向走。P型半导体里空穴多N型里自由电子多两边一接触交界处的载流子会互相扩散并复合形成一个几乎没有可动载流子的区域也就是耗尽层。这个耗尽层里留下了不能移动的离子形成一个内建电场方向恰好阻止载流子继续扩散。当两边扩散和漂移达到动态平衡时这个内建电位差对硅管来说大约在0.7V上下。外加正向电压时外部电场削弱内建电场耗尽层变窄载流子可以持续越过结电流迅速增大表现为很小的电压变化对应很大的电流变化——这就是为什么我们常说的导通压降0.7V它其实不是一个固定值而是一个对数关系的产物电流增加十倍Vf大概只多60mV。外加反向电压时耗尽层变宽只有极少的少子漂移形成漏电流常温下通常只有纳安到微安级几乎可以当成断路。这个正向通、反向断的强非线性正是所有二极管逻辑门的物理基础。但也正因为它是非线性的模拟器件而不是理想开关它做逻辑门时会有一堆欠账后面几节会把这些账一笔笔算清楚。至于反向电压加到一定程度发生的击穿那已经不属于逻辑门的讨论范围但它在保护电路里有用第5节会专门说。1.2 开关二极管、整流二极管、肖特基选错就拖慢波形很多人第一次搭这个电路随手从抽屉里摸出1N4007就用结果输出波形边沿又圆又慢还以为是电路设计错了。这里必须把常见几类二极管讲清楚因为选型直接决定逻辑门能不能用。型号类别典型型号正向压降反向恢复时间结电容适合做信号门吗小信号开关管1N4148、BAV990.6~0.7V约4ns约4pF非常适合肖特基管1N5819、BAT540.25~0.4V极快较小适合但漏电大通用整流管1N4001~1N40070.8~1.0V约2us十几到几十pF不适合快恢复管FR107、UF40070.9V约几百ns中等勉强差别有多大1N4007的反向恢复时间大约2微秒而逻辑信号本身的脉宽可能才1微秒管子还没恢复完下一个边沿又来了输出波形自然一团糟。而1N4148的恢复时间只有4纳秒结电容4pF配1kΩ上拉电阻算出来的时间常数也就4ns量级完全跟得上。肖特基管还有个额外好处压降只有0.3V左右。这对逻辑门是实打实的收益。前面说过二极管门的低电平等于输入低电平Vf用1N4148时是0.6~0.7V用BAT54能压到0.3V噪声容限直接翻倍。代价是肖特基的反向漏电流比普通硅管大两三个数量级而且随温度上升很快高温环境下反而可能把低电平抬起来。我自己的习惯是常温、短距离、单板内使用肖特基温度范围宽、或者信号源阻抗高还是老老实实用1N4148。1.3 那个0.7V在数字逻辑里不是小数目数字电路判断高低电平是有门限的。以常见的5V系统为例输入端电压低于0.8V算低高于2.0V算高中间1.2V是禁止区。每经过一个二极管输出电平就朝一个方向偏移大约0.7V。假设你拿二极管门做级联第一级输出高电平4.3V第二级再减0.7V变成3.6V第三级2.9V第四级2.2V——刚好贴着2.0V的门限。也就是说分立二极管门最多串三级到四级的量再多就不保证能被识别为高电平了。这是很多人做教学演示时容易翻车的地方单个门看着挺好一串联逻辑就开始随机抖动。还有一个容易被忽略的量Vf有负温度系数大概每升高1℃下降2mV。从25℃到85℃Vf会从0.7V掉到0.58V左右。对与门来说输出高电平等于Vcc减去Vf温度升高反而让高电平更高输出低电平等于Vf温度升高让低电平更低。看起来都是好事但别高兴太早——半导体器件的反向漏电流随温度大致每升高10℃翻一倍长时间高温工作时本该截止的那条支路的漏电流会越来越大最终把本该干净的低电平一点点抬上去。我见过一块板子在机房跑了一年多冬天没事夏天偶发误动作最后查出来就是二极管漏电把低电平抬到1.1V越过了门限。所以设计时电平余量至少留0.3V别贴着门限走。2. 二极管与门、或门的具体画法与定量核算2.1 与门阴极并输入阳极抬输出上拉电阻定高先说与门的标准接法这个拓扑很多人第一次会画反。取两个二极管D1、D2。把它们的阴极分别接到输入A和输入B两个阳极并在一起接到输出Y再从Y到电源Vcc接一个上拉电阻R。就这么简单三个元件。分析它的四种输入组合AB高比如都是5V两个二极管的阳极电压都不到阴极电压Y点比5V低两管都截止Y点被上拉电阻R拉到Vcc输出高电平。空载时就是5V。A低0V、B高D1的阳极是Y点阴极是0V只要Y点电压超过0.7VD1就正偏导通。电流从Vcc经R流到Y再经D1流进A的驱动源。Y点被钳在0.7V左右是低电平。此时D2的阳极0.7V、阴极5V反偏截止。A高、B低对称同样输出0.7V。AB低两管都导通Y点被钳在0.7V。只有两路都高输出才高任一路低输出就低。逻辑上就是与。有个细节值得说这个电路要求输入端在低电平时能吸收电流sink。上拉电阻越小需要吸收的电流越大。如果你用单片机引脚做输入务必确认它的灌电流能力足够——很多老式51单片机灌电流能到10mA以上拉电流却只有几百微安这个方向上反而是优势。2.2 或门阳极接输入阴极接输出下拉电阻定低或门的接法恰好镜像过来两个二极管的阳极分别接输入A、B两个阴极并在一起接输出Y再从Y到地接一个下拉电阻R。同样过一遍四种组合AB低0V两管的阳极都是0V阴极Y点也被下拉电阻拉到0V附近两管截止输出低电平0V。A高5V、B低D_A阳极5V、阴极Y点正偏导通电流从A经D_A流到Y再经R流入地。Y点被抬到5-0.74.3V输出高电平。D_B阳极0V、阴极4.3V反偏截止。A低、B高对称输出4.3V。AB高两管都导通都往Y点灌电流Y点仍被钳在4.3V。任意一路高输出就高逻辑上就是或。注意这里的电流方向和与门相反或门要求输入高电平时能输出电流source。所以如果你手上是那种灌电流强、拉电流弱的老单片机用二极管搭或门会比搭与门吃力一些。2.3 把四种状态的电平实际算出来假设Vcc5V用1N4148正向压降按0.7V算负载开路把两种门的真值表列出来AB与门输出Y或门输出Y低(0V)低(0V)0.7V0V低(0V)高(5V)0.7V4.3V高(5V)低(0V)0.7V4.3V高(5V)高(5V)5.0V空载4.3V几个关键结论直接写在表外与门的低电平不是0V是0.7V。TTL输入的低电平上限是0.8V0.7V只剩下0.1V的余量稍微有点噪声就误判。用肖特基管把这个值压到0.3V余量立刻变成0.5V这是实际设计中最有价值的一招。与门的高电平空载是5V带载就不是了。后级只要吸取哪怕很小的电流输出就会掉Vout Vcc - I_load × R。R取4.7kΩ、后级吸0.3mA输出就掉1.4V只剩3.6V。所以上拉电阻不能随便取大。或门的高电平始终是4.3V低电平是0V。或门的低电平比与门干净得多这是它相对更好伺候的原因。但它的高电平损失了0.7V串两级就只剩3.6V了。2.4 上拉/下拉电阻取值扇出能力差的根子在这里上拉电阻R的取值是个必须算的账不能凭感觉。先看与门在上拉这条路上的问题。R越小高电平带载能力越强但输入低电平时需要被吸收的电流越大输入低时灌入输入端的电流 I_sink (Vcc - Vf) / R 取 R 1kΩI_sink (5 - 0.7) / 1000 4.3mA 取 R 4.7kΩI_sink 4.3 / 4700 ≈ 0.91mA 取 R 10kΩI_sink 0.43mA再看高电平带载能力。假设后级是另一个二极管门的输入需要0.5mA的输入电流Vout Vcc - I_load × R R 1kΩ 时Vout 5 - 0.5m × 1k 4.5V还能保住高电平 R 4.7kΩ 时Vout 5 - 0.5m × 4.7k 2.65V勉强 R 10kΩ 时Vout 5 - 0.5m × 10k 0V彻底垮掉连高电平都算不上所以实际工程里R通常落在1kΩ到4.7kΩ这个区间而且更偏向1kΩ。代价就是输入低电平的驱动源要能吸收4.3mA。这个数字看着不大但如果你要接五个门扇出5就是五路同时吸收加起来就是21.5mA很多信号源已经扛不住了。这就是分立二极管门扇出能力差的根本原因不是扇入的问题是输出端那条电阻在持续放血。顺便说二极管门之间互相连接时后级的输入电阻很低低电平时表现为一个正向导通的二极管它会直接把前级的输出拉偏。所以实践中千万不要在没有缓冲的情况下把二极管门串成多级——真要串中间必须加一级三极管或者集成门做隔离。3. 三极管非门让管子老老实实在饱和和截止之间跳3.1 截止、放大、饱和三种状态怎么判定三极管能当反相器靠的是它只在两个极端工作要么完全截止输出高要么深饱和输出低。中间那个放大区是模拟电路的地盘做逻辑的时候要尽量躲开。判断这三种状态最实用的办法是看两个电压Vbe和Vce。工作状态VbeVce集电极电流 Ic判据口诀截止 0.5V低于死区约等于Vcc几乎为0基极没电流管子当断开放大0.6~0.7V大于Vce(sat)Ic β × Ib电流受基极控制饱和0.7~0.8V0.1~0.3VIc β × Ib受外电路限制加再多基极电流也上不去实测操作非常简单万用表量C-E之间的电压。如果Vce只有0.1~0.2V说明管子深度饱和可以放心当开关用如果Vce接近电源电压说明截止如果Vce卡在中间比如1.5V那它正在放大区这个反相器的输出既不是合格的低电平也不是合格的高电平必须回去改电阻。我见过太多能工作但偶尔出错的电路本质就是这个管子半死不活地卡在放大区温度一变Vce跟着漂输出就过门限了。还有一个细节Vce(sat)不是常数它随集电极电流增大而增大。小电流下可能只有0.05V几毫安时0.2V几百毫安时能到0.5V甚至更高。设计时应查手册里对应Ic的Vce(sat)曲线别一律按0.2V算。3.2 共射极反相器的完整设计流程下面按一个实际例子走完整个设计过程Vcc5V需要把输出拉低到0.4V以下灌电流能力按4mA设计输入高电平来自3.3V的单片机引脚。第一步定集电极电阻Rc。这个电阻决定了饱和时流过管子的电流也决定了截止时输出能被上拉到多高。Rc (Vcc - Vce(sat)) / Ic (5 - 0.2) / 4mA 1.2kΩ 取标称值 1kΩ 实际 Ic (5 - 0.2) / 1000 4.8mARc也不能太小否则饱和时电流过大既浪费功耗又可能超出管子的连续电流能力。9013这类小功率管集电极电流长期控制在50mA以内比较稳。第二步定基极电阻Rb。关键的一步。先确定需要的基极电流Ib。这里要引入一个概念叫强制β也叫过驱动倍数。取强制 β_forced 10 Ib Ic / β_forced 4.8mA / 10 0.48mA然后根据输入高电平反推RbRb (Vin(高) - Vbe) / Ib (3.3 - 0.7) / 0.48mA 5.4kΩ 取标称值 4.7kΩ 实际 Ib (3.3 - 0.7) / 4700 0.55mA 实际 β_forced 4.8 / 0.55 ≈ 8.7如果输入高电平是5V而不是3.3VRb就要大一些(5-0.7)/0.48mA 9kΩ取8.2kΩ。同一个电路把3.3V的信号直接接到按5V设计的基极电阻上很可能就驱动不足了这是3.3V和5V系统混用时最常见的坑。第三步加基极下拉电阻。在基极和发射极之间并一个10kΩ电阻。它的作用有两个一是当输入悬空时把基极拉到0V防止漏电流和环境干扰让管子误导通二是当输入从高变低时给基区存储的电荷提供一条快速泄放通道缩短关断时间。这个小电阻是很多人画板子时会漏掉的加不加波形边沿差很多。3.3 为什么要过驱动β分散和温度漂移逼出来的刚才取强制β10而不是按手册上的hFE100或者200去算这背后有明确的理由。第一个理由hFE的分散度惊人。以9013为例厂商按放大倍数把它分成好几个档位比如O档60~110、Y档100~200、GR档150~300。你从一包里随便抓一个可能是80也可能是250。如果按hFE150算出来Ib结果装上了一个hFE80的管子Ic上不去输出就达不到饱和。第二个理由hFE随温度和电流变化。低温下hFE会下降大电流下hFE也会下降。手册里给的hFE(min)通常是在特定测试条件下的最低保证值实际使用工况下可能更差。第三个理由β是电流放大系数不是可以依赖的设计参数。在模拟电路里可以精调工作点但在数字电路里我们希望管子只做两件事通和断。强制它进入深度饱和就不需要去关心它到底是80还是250了——只要基极电流给够Ic就被Rc限制死了与β无关。工程上的经验公式很简单Ib ≥ Ic / (hFE(min) / 5) 也就是说设计时假设实际能用的放大倍数只有手册最小值的五分之一。以上面的例子验证假设9013的hFE(min)60那Ic/Ib不能超过60/512。我们算出来的β_forced是8.7小于12合格。如果换成hFE(min)只有30的管子那么上限是68.7就超标了得把Rb再减小一点或者把Rc加大一点减小Ic。3.4 开关速度存储电荷、加速电容、肖特基钳位很多人第一次搭三极管非门用示波器一看下降沿挺干脆上升沿却拖出一大截或者关断的时候有个明显的尾巴。这跟三极管饱和的机理有关。三极管进入深饱和后基区里面堆积了大量多余的少数载流子这些电荷没地方去只能慢慢复合掉。在它们被清空之前管子没办法立刻关断这段时间叫存储时间ts是限制三极管开关速度的主要因素。基极电流给得越大饱和越深存储电荷越多关断就越慢——这就是深度饱和和高开关速度之间的矛盾。工程上有几种常规解法加速电容在基极电阻Rb上并联一个小电容一般几十到几百皮法。输入跳变瞬间电容相当于短路提供一个很大的瞬时电流脉冲加速管子进入饱和输入撤回时电容又提供一个反向抽取电流快速把存储电荷抽走。这个小电容对稳态功耗没有任何影响是老工程师很喜欢用的一招。基极泄放电阻前面说的10kΩ下拉在管子关断时给基区电荷提供通路效果比开路好得多。限制饱和深度不要让管子进入太深的饱和。用一个肖特基二极管跨接在基极和集电极之间阴极接基极、阳极接集电极当集电极电压下降到比基极还低的时候肖特基提前导通把多余的基极电流从集电极旁路掉使管子停在浅饱和状态。这就是历史上74LS系列能比74系列快的原因用的正是这个技巧。提高驱动电平如果上升沿慢其实是Rc和负载电容在作怪。上升时间常数约等于 Rc × Cload。Rc1kΩ、负载电容20pF时间常数就是20ns一般够用但如果Rc取到10kΩ就变成200ns了明显拖后腿。顺带提一句非门反相两次就得到同相缓冲器。如果你需要的不是反相而是驱动能力更强的同相输出串两级反相是最简单的做法用射极跟随器也可以但它不反相的同时会损失一个Vbe的压降输出高电平只有4.3V而且关断没有下管拉低退出饱和较慢做逻辑输出不如两级共射干净。4. 在Proteus里把三个门搭出来并跑通4.1 元件库选择与连线规范仿真之前先把元件选对这是省时间的做法。下面这张表是我常用的清单用途Proteus里的关键字建议型号说明小信号二极管1N41481N4148恢复快做信号门整流二极管1N40071N4007只建议做电源相关肖特基BAT54 / 1N5819BAT54压降低可对比观察NPN三极管2N2222 / BC5472N2222A模型齐全β可调电阻RES任意阻值直接在属性里改直流电源VSOURCE 或 DC—属性里设成5V脉冲源PULSE—后面说明参数时钟源DCLOCK—方波频率可设地GROUND—必须有否则仿真不收敛这里有个很多人第一次会踩的坑Proteus里的POWER符号它的默认网表名是POWER而不是VCC电压值取自设计属性里的电源轨设置。如果你直接用POWER符号搭电路又在别的地方单独放了5V电源两个网可能被当成不同的节点或者干脆报no power rail错误。我的做法是干脆不用POWER符号一律用VSOURCE或DC电池元件属性里写5V接地用GROUND符号这样每个节点电压都明明白白不会出意外。连线方面尽量用WIRE工具连实线交叉处要出现实心接点才算连通。给关键节点加LABEL右键Place → Wire Label命名成A、B、Y这样在波形窗口里能直接看到Y的曲线不用去数第几根线。这个小习惯在做多路对比的时候能省掉大量时间。4.2 激励、探针与波形观察的设置Proteus里验证这三种门我推荐三个层次递进的做法第一层交互式手动验证最适合第一次搭。直接点左下角的运行按钮用DC VOLTMETER直流电压表挂在输出Y上然后手动改输入端电源的电压值5V或0V逐个把四种组合跑一遍记录输出电压。这一步能让你直观看到那个0.7V的偏移到底长什么样。缺点是慢而且只能看到静态值。第二层用两个脉冲源一次覆盖全部组合。给输入A和输入B各接一个PULSE源设成不同频率比如A是1kHz、B是400Hz这样两者的高低组合会自动遍历低低、低高、高低、高高四种状态。PULSE的关键参数是初始电平Initial Voltage0V 脉冲电平Pulsed Voltage5V 上升时间Rise Time1ns 下降时间Fall Time1ns 脉冲宽度Pulse Width按频率的一半设置 周期Period对应频率然后用模拟图表Analogue Analysis把A、B、Y三条曲线的波形画出来。注意这里必须选ANALOGUE模式不能选DIGITAL模式。第三层用直流扫描看翻转阈值。如果想知道输入电压扫过多少伏时输出翻转用DC Sweep或直流传输特性分析让A从0V扫到5V画出Y随A变化的曲线就能看到那个陡峭的翻转点以及翻转前后中间那段斜着的区域。这段区域就是电路最脆弱的地方也是判断噪声容限的直接依据。提示二极管门是模拟电路一定要用模拟图表看波形。用数字图表虽然也能显示高低但仿真器内部会按内置门限先做一次判决把中间的模拟过渡过程全抹掉了你看到的是理想方波电路里真实存在的电平偏移和边沿延迟反而看不见。4.3 仿真跑不通的几类常见原因按经验新手在Proteus里搭这类电路翻车通常集中在下面几个点仿真按钮点了没反应或者报收敛失败。九成是没接地。所有仿真电路都必须有一个GROUND符号作为参考点。如果加了地还是报错尝试在仿真设置里把最大步长Maximum Step Size改小比如从默认改成1us或者在关键电容上设初始条件。波形是一条直线。要么是选错了图表模式数字/模拟要么是激励源参数设错了周期设成0或者脉冲电平没改还是默认值。检查一遍脉冲源的属性特别是Pulsed Voltage是不是还停留在1V之类的小值上。压降和实际对不上。通用二极管Generic Diode模型在Proteus里默认的导通压降大约0.6V和1N4148实测的0.7V有差距。如果要做精确对比用带完整模型的具体型号或者在器件属性里手动改正向压降参数。三极管反相器输出低电平下不去。大概率是基极电流不够管子卡在放大区。把Rb调小一半试试如果Vce明显下降就说明原来确实驱动不足。这个实验在仿真里做一遍比看书上十遍公式都有用。输出波形毛刺很多。加基极下拉电阻基极和集电极之间加个小加速电容波形会干净不少。我个人的习惯是先搭二极管门把静态电平用电压表一个个量出来跟第2.3节那张表对一遍确认无误之后再搭三极管非门量Vce确认饱和最后把三个门串起来或门 → 非门就得到或非门观察级联之后的电平还剩多少余量。这一套走下来对电平偏移这件事的理解会比看任何教材都深。5. 从分立门走到真实电路接口、保护与取舍5.1 前后级电平不匹配该怎么接分立门电路真正放到板子上最常遇到的问题就是电平不匹配。3.3V的单片机驱动5V的输入或者5V的输出接到3.3V的输入都得处理。3.3V驱动5V输入。如果后级是5V的CMOS输入高电平门限大概是0.7×Vcc3.5V3.3V已经不够了。简单办法是用两级NPN反相器级联第一级把3.3V信号反相成输出高由Rc上拉到5V第二级再反相回来。每级都按前面3.2节的流程算电阻注意基极电阻要按3.3V那级重新算别直接套用5V的参数。5V输出接3.3V输入。这个相对好办用一个NPN反相器集电极电阻上拉到3.3V而不是5V输出就是标准的0/3.3V摆动。代价是逻辑反相了软件里取反一下或者后面再串一级反相器。还有一种更省事的做法是用一个N沟道MOS管配上拉电阻做双向电平转换源极接低压侧、栅极接低压侧电源、漏极接高压侧并上拉到高压电源。低压侧拉低时MOS管的体二极管先导通把高压侧拉下来然后沟道完全导通高压侧拉低时体二极管反偏靠栅极电压决定是否导通。这个电路只需要一个MOS管和两个电阻速度快、双向、不反相在I2C这类总线上用得非常多。但它有个前提两侧的电源必须同时上电否则会出现倒灌。跨电源域使用时要格外小心。5.2 钳位二极管和TVS该放在哪一级前面的二极管门讨论的是信号而现实中信号线上总会窜进来一些超出电源范围的东西这时候就要靠钳位和保护器件。这两者经常被混为一谈其实职责完全不同。钳位二极管的作用是限制信号线电压不超过Vcc0.7V、不低于-0.7V。典型接法是取一个双串联的二极管阵列比如BAV99内部就是两个方向一致的二极管一端接Vcc、一端接地、中间那根公共线接信号。信号电压正常时两个管都不导通一旦信号超过Vcc0.7V上面那个管导通多余电荷泄放到电源轨信号低于-0.7V时下面那个管导通。BAV99的结电容只有1.5pF左右对高速信号几乎没有影响所以在USB、HDMI这类接口的输入端非常常见。它的能力边界必须说清楚钳位二极管只能对付瞬态不能承受持续过压。一旦信号持续高过Vcc加上钳位二极管的耐流能力它会直接烧掉或者把多余的电流灌进电源网络把整个供电系统顶起来。所以钳位二极管前面通常要串一个小阻值的限流电阻或者配合保险器件使用。TVS管承担的是另一个量级的任务吸收瞬时大能量比如静电放电、感性负载断开时产生的尖峰。选型看三个参数参数含义选型原则VRWM反向工作电压正常工作时能长期承受的最高电压必须大于信号的最大正常工作电压通常留10%~20%余量VBR击穿电压开始显著导通的电压略高于VRWM不能低于信号的最大摆幅VC钳位电压通过规定峰值电流时的两端电压必须小于被保护器件的绝对最大耐压举个具体例子保护一条5V信号线VRWM可以选5V或6VVBR大概6.7V要保护的芯片耐压是12V那么VC只要低于12V就合格。TVS的结电容通常比钳位二极管大得多从几百pF到几nF都有用在高速总线上会造成明显的信号衰减这时候必须选低容值型号。在电路板上的顺序一般是连接器 → 限流电阻或保险 → TVS → 钳位二极管 → 芯片引脚。TVS在前吸大头钳位二极管在后把残余的过冲削平限流电阻夹在中间保证前两者承受的电流不超过它们的耐量。5.3 三极管、MOS管、集成逻辑门到底该选谁最后说说选型。这三个门放电平、搭逻辑能用的器件有好几类各有各的适用面。分立三极管的优势是便宜、耐压宽、驱动电流大、库存到处都是。缺点是它需要电流驱动β分散温度特性不理想级联时还要考虑饱和深度。适合的场景是单级反相、需要同时驱动负载比如继电器、LED、小电机的场合。顺带说一句用三极管驱动感性负载时一定要在负载两端反并一个续流二极管方向和电源相反给负载断电瞬间的反向电动势一条泄放通路。不加这个二极管那个尖峰会直接击穿三极管这个坑几乎所有做过电机驱动的人都踩过。MOS管是电压驱动开关速度快导通电阻可以做得很低很适合大电流场合。但它的栅极是个电容驱动时要有足够大的瞬时电流去充放电直接用弱信号源推会拖慢开关速度。低压应用里还要注意导通电阻和栅源电压强相关3.3V驱动一个标称4.5V才完全导通的管子实际导通电阻会高好几倍发热和压降都上去了。这一点和前面三极管驱动不足就不饱和是同一类问题的不同表现。集成逻辑门比如74HC04非门、74HC08与门、74HC32或门的价值在于它的输入输出特性、扇出能力、噪声容限、传输延迟都是被明确规定和保证的。你不需要去算基极电阻不需要担心压降偏移只要电源接对、去耦电容加上就能稳定工作。什么时候必须用它级数超过两级、速度要求在几十纳秒以内、电源噪声比较大、需要保证扇出和抗干扰能力。什么时候可以用分立教学演示、只需要一级反相、需要把逻辑和功率驱动合并在一级里、或者手头确实没有集成门。我的判断标准很朴素只要是要出货的板子逻辑功能一律用集成门分立器件只用来做驱动和接口。分立逻辑门留给实验台和教学板就够了。说到这里回到开头那位朋友的问题。他后来把与门的上拉电阻从10kΩ换成1kΩ把肖特基换成了1N4148因为他的环境里信号源阻抗不低三极管那级的基极电阻按3.3V重算了又补了一个10kΩ的基极下拉整块板子就稳了。有意思的是他还顺手把三极管非门后面接的继电器加了续流二极管——那是另一个他在调试中烧掉两个管子之后才想起来的教训。分立逻辑门这个东西原理图看着简单真正动手时那些欠账都藏在电平、电流和温度里只有拿表量过、在仿真里看过波形才算真的懂了。