做嵌入式开发做到后面,很多人会发现最难啃的不是代码,而是模数电基础。二极管又是模数电里最不起眼、却最容易导致硬件故障的器件。继电器关断时把单片机打复位、电源反接烧板子、RS485 通信偶发异常、IO 口输入过压损坏,这些问题排查到最后,经常都落在二极管的选型和接法上。这篇内容就把二极管从 PN 结原理、常见类型、工程选型,到嵌入式里的保护电路、续流电路、钳位电路和排查链路拆开讲一遍,适合正在学单片机、准备嵌入式面试,或者工作中经常要跟硬件打交道的软件工程师。
这里我先给一个判断:嵌入式工程师学二极管,重点不是背公式,而是要知道每个二极管在电路里到底承担哪个角色。同一个器件,放在电源入口是防反接,放在继电器旁边是续流,放在信号线上可能是钳位或者瞬态抑制。角色判断错了,后面全部跑偏。
1. 嵌入式模数电里,二极管到底扮演什么角色
1.1 整流、保护、钳位:三个最核心的角色
二极管在嵌入式电路里最常见的用途可以分成三类:整流、保护、钳位。
整流是把交流电变成脉动直流电。常见的桥式整流电路、半波整流电路、电源适配器里的整流部分,都用二极管。嵌入式设备如果直接用交流电源供电,整流是我第一个要确认的环节。
保护是二极管最贴近工程实践的场景。电源接反保护、电感负载断开时的续流保护、ESD 静电保护、雷击浪涌保护,都靠二极管或者二极管类器件实现。这类场景下,二极管不是用来“传输能量”的,而是用来在异常状态下把危险的电压或电流引到安全路径上。
钳位是把某个节点的电压限制在一个安全的范围里。比如单片机 IO 口外部输入电压瞬间超过 VCC,内部钳位二极管会把电压拉到 VCC 附近,避免内部电路损坏。再比如 RS485 的 A、B 线上,常用 TVS 二极管把差模和共模过压钳位到安全电平。
很多软件背景的工程师看电路图,习惯把二极管理解成“单向开关”,但这个简化模型只适合做原理分析。实际选型的时候,正向压降、反向漏电流、反向恢复时间、寄生电容、耐压和功耗都会影响系统是否稳定。第一次做硬件测试的人,经常遇到“方向没接错,但电路就是不对”的情况,问题往往就出在这些参数上。
1.2 嵌入式工程师和纯模电工程师看二极管的差异
纯模电方向会花大量时间分析二极管的伏安特性曲线、小信号模型、检波和混频电路。这些理论基础重要,但嵌入式工程师日常接触更多的是单片机 IO、电源、RS485、电机驱动、继电器控制这类数字和功率混合电路。
所以我认为嵌入式工程师看二极管,应该抓住三个更实际的角度:
- 第一,这个二极管在这个电路里导通时电流是多少。
- 第二,这个二极管关断时承受的反向电压是多少。
- 第三,这个二极管导通和关断的速度够不够快。
比如在 IO 口做保护,一般用开关二极管,反向恢复时间短,信号不会被拖慢。在工频整流电路里,用普通的整流二极管就够,不需要追求开关速度。在 DC-DC 输出整流里,经常用肖特基二极管,因为压降低、损耗小。在 RS485 的 AB 线上,要防瞬态过压,普通整流二极管反应速度不够,要用 TVS。
先把角色分清楚,再谈选型和参数,这才是嵌入式模数电里学二极管的正确顺序。
2. 看懂 PN 结和二极管参数,才能从手册里挑对器件
2.1 从 PN 结看单向导电:正偏和反偏的区别
二极管的核心是 PN 结。P 型半导体里空穴多,N 型半导体里电子多,两者结合后会形成一个耗尽层,也叫内建电场区。
当 P 端接正、N 端接负,也就是正向偏置时,外电场方向跟内建电场相反,耗尽层变窄,多数载流子能越过结区,形成正向电流。当 P 端接负、N 端接正,也就是反向偏置时,外电场跟内建电场方向一致,耗尽层变宽,电流几乎为零。
这就是“单向导电性”。理解这个概念,后面看稳压管、TVS、续流管才不会乱。
需要注意的是,反向偏置不等于绝对不导通。实际上还是有很小的反向漏电流,只是数值很小,通常从纳安到微安不等。温度升高后,漏电流会明显变大。电池供电的设备,如果并联在电源上的二极管选得不好,待机电流就可能被拖高。
2.2 正向压降 VF 是最大的工程变量
很多嵌入式新手第一次画电源防反接电路,直接在电源正极串一个 1N4007,结果发现系统工作电压被拉低了 0.7V。5V 供电变成 4.3V,稳压器输出可能就不正常了。
普通硅二极管的正向压降大约 0.7V,肖特基二极管大约 0.3V 到 0.5V,LED 不同颜色压降也不一样,红色 LED 大约 1.8V 到 2.0V,蓝色和白色 LED 可能到 3.0V 以上。这个参数不是固定的,它跟正向电流、结温和器件工艺都有关系。
所以看数据手册里的 VF,不能只看一个数字,要看测试条件。手册通常会写“IF=1A 时 VF 典型值 0.55V,最大值 0.7V”,意思是通 1A 电流时压降在这个范围里。如果你的电路工作电流只有 100mA,实际压降会比这个低一些。
做 3.3V 或 3.7V 低压系统时,串联普通二极管防反接很容易压降超限。这时候可以选肖特基,或者改用 PMOS 防反接电路。判断标准很简单:系统允许的最低工作电压减去二极管压降,如果低于后端芯片的最低工作电压,就不能用这个方案。
2.3 反向漏电流和反向恢复时间
反向漏电流是二极管反向偏置时流过的微小电流。普通硅二极管在室温下漏电流很小,但温度升高后漏电流成倍增长。电源入口的防反接二极管如果长期工作在高温环境,漏电流会拖累系统功耗。
反向恢复时间是二极管从正向导通切换到反向截止所需要的时间。普通整流二极管的正向导通时积累了大量电荷,突然加反向电压时不能立刻关断,会有一个短暂的反向电流,这就是反向恢复时间长的表现。
高速开关电路里不能用普通整流管当开关管。比如信号线上的钳位二极管、通信接口上的 ESD 保护,要选开关二极管或者专用保护器件。低频电源电路里反向恢复时间影响不大,主要看耐压和电流。
2.4 理想二极管模型的注意点
学习电路原理时,可以把二极管看成理想元件:正向导通压降为零,反向完全不导通,开关瞬间完成。这个模型方便理解电路方向,但不能直接用于工程计算。
真实二极管有几个不能忽略的点:
- 有正向压降,低压系统里可能影响供电。
- 有反向漏电流,高温和低功耗场景要核对。
- 有结电容,高频信号会受影响。
- 有最大反向耐压,超过可能击穿。
还有一个热词叫“理想二极管”,现在很多电源方案里说理想二极管是指用 MOS 管加控制电路,模拟二极管单向导通特性,但正向压降只有几十毫伏甚至更低。这种方案适合大电流低功耗场景,但要注意控制电路的上电时序、浪涌电流和反向瞬态。不要只看宣传说压降低,就忽略它比普通二极管复杂得多。
3. 嵌入式常用的七大二极管类型:用途、选择和边界
3.1 整流二极管和开关二极管
整流二极管一般用于工频整流和电源电路,特点是耐压高、电流大,但开关速度慢。比如 1N4007 系列,最大反向耐压 1000V,正向电流 1A,适合 50Hz 到 60Hz 的交流整流。如果把它用在高速开关电路里,反向恢复时间太长,会产生额外损耗。
开关二极管用于高频信号开关、逻辑电平转换和保护电路。特点就是反向恢复快,但额定电流通常不大。1N4148 是常用的小信号开关二极管,压降约 0.7V,适合 300mA 以内的信号电路。
选型时不要只看能不能导通,还要看开关速度。信号线上用了慢速整流管,波形会被拉坏。
3.2 肖特基二极管
肖特基二极管是金属和半导体接触形成的势垒结构,特点是正向压降低、开关速度快。它在低压大电流场景里优势明显,常用于电源防反接、DC-DC 输出整流、电机续流。
但它也有边界。肖特基二极管反向漏电流比普通硅二极管大,耐压通常不高,很多型号在 40V 到 100V 左右,超过这个范围可选型号就少了。高温下漏电流会进一步增大,所以设计时要看工作温度和散热条件。
低压系统里,我一般优先考虑肖特基。但如果反向耐压要求超过 100V,或者环境温度很高,就要重新评估。
3.3 稳压二极管
稳压二极管利用反向击穿区工作。给它加一个反向电压,当电压超过击穿电压时,两端电压基本保持不变,这就是稳压效果。
但稳压管必须配合限流电阻使用。电阻太小,电流过大,稳压管会烧;电阻太大,电流不够,稳压效果变差。
比如输入电压 12V,稳压管用 5.1V,工作电流按 10mA 设计,限流电阻大概是:
R = (Vin - Vz) / Iz R = (12 - 5.1) / 0.01 = 690 欧实际可以取 680 欧或 750 欧,同时根据负载电流重新核算。稳压管承担的是“多余电压×电流”这部分功耗,如果输入电压和电流太大,稳压管会很烫。
嵌入式里稳压管常见的用法是给 ADC 做简易参考电压、给 IO 口做输入过压保护、给电源做简易钳位。要求精度高的场合,还是用专用基准源更稳。
3.4 TVS 二极管
TVS 二极管的完整名称是瞬态电压抑制二极管,专门用来吸收瞬态过压,比如静电放电、雷击浪涌、感性负载关断产生的尖峰。
它和普通稳压管的区别在于响应速度和功率吸收能力。TVS 能在皮秒或纳秒级别把过压钳位到安全范围,适合放在电源入口、RS485 的 AB 线、USB 数据线、继电器驱动端。
选 TVS 时要看几个关键参数:
- Vrwm,工作反向电压,要大于电路正常工作电压。
- Vc,最大钳位电压,要小于后端器件的最大耐压。
- Ppp,峰值脉冲功率,决定抗浪涌能力。
RS485 的 AB 线上一般用双向 TVS,因为信号线可能对地出现正负方向的过压。直流电源入口如果使用单向 TVS,要注意方向不能接反,接反了 TVS 会变成普通二极管,稳态时就导通,电源就短路了。
3.5 续流二极管
继电器、电机、电磁阀这类电感负载,断开瞬间会产生反向电动势。反向电动势如果没有释放路径,会在开关器件两端产生很高的尖峰电压,轻则打坏 MOS 管,重则把 MCU 复位。
续流二极管就是反向并联在电感负载两端,给电感电流提供一条续流回路。正常工作时二极管反向截止,不影响负载;断开瞬间,电感电流通过二极管继续流,直到能量消耗完。
方向不能接反。续流二极管的阴极接电源正极,阳极接负载的低端。接反了等于短路,开机就会烧。
继电器这类慢速负载,可以用普通整流管或开关管。电机如果工作在 PWM 高频状态,要选肖特基或快恢复二极管,否则普通二极管响应不过来。
3.6 发光二极管和光敏二极管
LED 在嵌入式里主要做状态指示和光耦发射端。LED 需要限流电阻,不能直接接电源。不同颜色压降不同,限流电阻计算方式是:
R = (VCC - VF) / I_LED比如 VCC 是 3.3V,红色 LED VF 约 1.8V,目标电流 5mA,电阻就是 300 欧,实际取 330 欧。
光敏二极管用于光检测,常见于光电开关、环境光传感器、红外感应电路。它工作在反向偏置状态,光照越强,反向电流越大。这个方向不要弄反,否则输出特征完全不同。
3.7 钳位二极管和 ESD 保护二极管
钳位二极管的作用是把电压限制在某个范围。比如有些单片机的 IO 口内部有到 VCC 和 GND 的钳位二极管,当外部输入电压高于 VCC 一个二极管压降时,内部二极管正向导通,把电压拉回到 VCC+0.7V 以内。
但内部钳位二极管电流能力很弱,不能长时间承受大电流。外部输入过压时必须配合串联限流电阻,把电流限制在毫安级别。如果外部输入直接接到 12V,没有限流电阻,内部二极管大概率会烧穿。
ESD 保护二极管是专门做静电保护的器件,特点是结电容低,对高速信号影响小。USB、HDMI、RS485 这类接口都可以加外部 ESD 保护器件。
4. 电源入口和驱动电路里的二极管实战:反接、续流、稳压
4.1 电源反接保护:串联二极管、并联二极管和理想二极管方案
电源反接保护是嵌入式硬件里最常见的需求。不同方案差异很大。
最简单的方案是在电源正极串联一个二极管。优点是电路简单、成本低,缺点是有一个压降。低压系统里压降可能成为问题,所以优先选肖特基。
第二种方案是并联二极管加保险丝。电源接反时,二极管正向导通,产生大电流把保险丝烧断,保护后级电路。这个方案适合不允许有明显压降的场合,但有代价:接反一次就要换保险丝,而且烧保险丝的过程可能损坏电源适配器。
第三种方案是用 MOS 管做防反接,也叫理想二极管方案。常见做法是用 PMOS 或者 PNP 加控制电路。正常供电时 MOS 管导通,导通压降只有 RDS(on) 乘以电流,比二极管小很多。但要注意 MOS 管存在寄生体二极管,方向接错,体二极管直接导通,防反接就失效了。
我一般建议小电流设备先用肖特基串联,简单稳定。大电流或电池类低功耗设备再考虑 PMOS 方案。做设计时还要考虑输入电压的浪涌,如果前端有大电容,上电瞬间充电电流会很大,二极管的浪涌能力要核对。
4.2 继电器、电机和电感负载的续流二极管
继电器线圈是典型的电感负载。用三极管或 MOS 管驱动继电器时,线圈两端必须加续流二极管。不加的话,三极管关断瞬间会产生高压尖峰。
续流二极管的位置要尽量靠近继电器线圈,连接线要粗短。因为续流回路路径越长,寄生电感越大,尖峰抑制效果越差。在 PCB 布局里,续流二极管和继电器线圈应该放在同一层,距离越近越好。
如果继电器线圈由 5V 驱动,二极管选 1N4148 或者 1N4007 都可以。负载电流较大的直流电机,可以选肖特基或快恢复二极管。电机电刷会产生火花,还会伴随高频噪声,仅仅一个续流二极管可能不够,有时要加 RC 吸收电路。
续流二极管还有一个容易被忽略的副作用:它会延长继电器释放时间。因为线圈电流有续流回路,电流衰减变慢,继电器触点断开变慢。对于要求快速断开的场景,可以增加串联电阻或使用更快的二极管,但也不能加太大,否则尖峰会重新出现。
4.3 稳压二极管做简易基准和过压保护
稳压二极管可以用于生成简易参考电压。比如给运放提供一个 2.5V 基准,或者给比较器提供一个阈值电压。电路就是稳压管串联一个限流电阻。
计算限流电阻时,要考虑输入电压波动和负载电流变化。如果负载电流从 0 变到 5mA,而稳压管工作电流是 5mA,那么稳压管电流会从 10mA 降到 5mA,输出仍然接近 Vz。但如果负载电流超过限流电阻能提供的最大电流,输出电压就会跌落。
稳压管也可以做输入过压保护。比如单片机 ADC 输入脚接一个 3.3V 稳压管到地,输入电压超过 3.3V 时,稳压管反向击穿,把电压钳住。但缺点是稳压管击穿后电流会比较大,必须串联限流电阻限制电流,否则稳压管会过热。
稳压管精度不高,温度特性一般,要求较高的基准还是用专用基准芯片更可靠。它更适合做“防止电压过高烧芯片”的保护,而不是做高精度参考源。
5. IO 口、RS485 和 IC 周边:保护二极管与寄生二极管问题
5.1 单片机 IO 口保护二极管和钳位电路
很多单片机数据手册会注明 IO 口内部有钳位二极管。正常工作时,输入电压保持在 GND 到 VCC 之间,钳位二极管不导通。如果外部输入电压低于 GND,内部到 GND 的二极管会正向导通,把电压钳到 -0.7V 左右。如果输入电压高于 VCC,内部到 VCC 的二极管会导通,把电压钳到 VCC+0.7V。
听起来很安全,但内部钳位二极管的电流能力有限,一般在几毫安到几十毫安之间。外部输入过压时,如果不串联限流电阻,电流可能达到几百毫安甚至更大,内部二极管很快烧毁,IO 口就废了。
因此外部电路设计时应加入必要的电阻和外部保护。常见做法是:
- 在输入信号和 IO 口之间串联一个 1k 到 10k 欧的电阻。
- 在 IO 口到地并联一个肖特基或稳压管做外部钳位。
- 对高速信号,外部保护器件要选低结电容的,不然信号眼图会恶化。
实测时,如果正在运行的单片机因为外部电压波动频繁复位,先用手摸一下芯片温度,再用示波器看 IO 口波形,看有没有超过 VCC 的尖峰。
5.2 RS485 的 AB 线加二极管:什么情况该加,什么情况不该加
RS485 是差分通信,A、B 两线之间的电压差决定逻辑电平。很多人会在 AB 线上加二极管做保护,但加的种类和位置非常重要。
如果需要在 AB 线上抑制瞬态过压,正确做法是加 TVS 二极管,通常是双向 TVS,一端接 A 线,一端接 B 线,或者分别对地接。TVS 并联在信号线上,正常工作时不导通,遇到高压尖峰时把电压钳位到安全范围。
如果有人在 AB 信号通路上串联普通二极管,要非常小心。普通二极管有压降,串联后会导致 AB 两端的差分电压偏移,可能破坏逻辑电平。而且普通二极管响应速度慢,对高速通信有影响。RS485 总线的共模范围有严格要求,串联二极管可能直接超出接收器输入范围。
我见过一个现场问题:RS485 通信距离稍长就乱码,查了很久发现是有人为了“防反接”,在 A、B 线上各串了一个二极管。去掉之后,通信恢复正常。所以 RS485 的 AB 线上,保护二极管应该并联,不能串联。
如果确实需要防止接错线导致内部器件损坏,合理的方案是给收发器电源加 TVS,并在 AB 线上并联双向 TVS,而不是在信号通路里串二极管。
5.3 PMOS 寄生二极管方向:体二极管不能忽略
MOS 管内部天然存在一个寄生体二极管,方向跟 MOS 管正常工作方向相反。对 PMOS 来说,源极和漏极之间的体二极管通常是从漏极指向源极,也就是说,当漏极电压比源极高一个二极管压降时,体二极管会导通。
这个寄生二极管在很多 MOS 管应用里会影响电路功能。比如用 PMOS 做电源开关或防反接时,要特别注意体二极管方向。如果电路设计依赖体二极管在异常状态下导通,那就要确认它能承受的电流;如果希望它平时不导通,那就不能让这个二极管处于正向偏置。
很多新手用 PMOS 做防反接,画电路时只看 G 和 S 的控制关系,忽略了 D 和 S 之间的体二极管,结果接反后电流绕过 MOS 管直接导通,保护失效。
处理办法是查数据手册里的“Body Diode”或者“Internal Diode”部分,确认体二极管的耐压、正向电流和方向,再进行电路设计。不要只看封装和型号。
5.4 峰值检波和信号解调里的二极管应用
峰值检波电路由二极管、电容和负载电阻组成。输入信号经过二极管给电容充电,电容电压会保持在信号的峰值附近,相当于把交流信号变成直流电平。
嵌入式里这个电路常用于测量交流信号的幅值,或者在无线接收电路中做包络检波。需要注意二极管压降会影响检波精度,小信号检波时压降占比太大,输出误差明显,所以要用低压降的肖特基二极管。
电容和负载电阻的选择也有判断标准。电容太小,输出纹波大;电容太大,响应慢,信号峰值变化时电容电压跟不上。负载电阻太小,电容放电快,也会影响检波输出。设计时要根据信号频率和期望的响应速度来折中。
这个电路看起来简单,实测时最容易踩的坑是输出波形被叠加大量纹波,或者检波输出比实际峰值低很多。排查顺序是先看输入信号幅值,再看二极管类型,最后检查 RC 时间常数是不是跟信号周期匹配。
6. 从数据手册到实测:二极管选型、测试和排查链路
6.1 读数据手册先看哪几个参数
不同应用关注不同参数。我整理了一个嵌入式选型时经常对照的参数表:
| 参数 | 含义 | 为什么嵌入式要看 |
|---|---|---|
| VRRM / VRWM | 最大反向工作电压 | 反向电压超过会击穿,干扰或浪涌场景要看 |
| IF / IFSM | 正向电流 / 浪涌电流 | 稳态电流和上电浪涌电流不能超规格 |
| VF | 正向压降 | 低压系统里影响供电余量和功耗 |
| IR | 反向漏电流 | 电池供电和高温场景要重点核对 |
| trr | 反向恢复时间 | 高速开关、信号保护场景必须看 |
| Cj | 结电容 | 高速信号线和通信接口要考虑 |
| Ppp / Vc | 峰值脉冲功率 / 钳位电压 | TVS 选型时决定抗浪涌能力和钳位效果 |
| 封装功耗 | 允许的最大功耗 | 过热降额判断依据 |
拿肖特基和普通整流管对比,肖特基 VF 低、速度快,但 IR 大、耐压通常不高。普通整流管耐压高、漏电小,但速度慢。没有哪个方向绝对好,只有适不适合当前电路。
6.2 常见故障现象和排查顺序
二极管相关故障,表面看起来五花八门,但排查链路可以固定下来。
先看现象。如果系统上电就短路,优先怀疑电源入口的二极管是否接反,或者 TVS 选型错误导致稳态导通。用万用表二极管档测,两端应该有 0.3V 到 0.7V 左右的压降,反向应显示不导通。
如果电源电压被拉低,先量二极管两端压降,看 VF 是不是太大。电流越大,压降越大。低压大电流场景换成肖特基,压降会明显下降。
如果继电器关断时单片机复位,大概率是续流二极管没加,或者加得太远。加在负载两端,而且要靠近负载。如果已经加了还是复位,用示波器抓负载两端尖峰,看峰值是否超过后端器件耐压。
如果待机电流异常偏大,检查所有并联在电源上的二极管漏电流,尤其是肖特基和 TVS。拔掉板子上的 TVS,再测待机电流,对比就能发现问题。
如果通信接口出错,比如 RS485,要先用示波器看 A、B 线对地波形和差分波形,再检查 AB 线上是否误串了二极管,确认保护器件是并联而不是串联。
最后看数据手册,核对每个二极管在工作点的实际参数,不能只看型号前缀就往上用。
6.3 焊接、布局和测试中的坑
直插二极管和贴片二极管都有极性标记,实心横线或者丝印线表示阴极。焊接前先用万用表二极管档确认一下方向,能省去后续很多麻烦。
续流二极管的位置要尽量靠近继电器线圈或电机驱动管。有些人把它放在板子边缘,走线很长,续流效果差,尖峰照样打坏电路。这种问题不是换型号能解决的,必须改布局。
TVS 或者 ESD 保护器件要放在接口连接器旁边,越靠近外部入口越好。这样才能在静电或浪涌进入内部电路之前被吸收。如果保护器件在远离接口的地方,入口到保护器件之间的走线依然是薄弱点。
用示波器测试感性负载关断波形时,要用差分探头或者注意避免地环路。普通探头的地线夹如果夹在感性负载的负端,测量时可能把尖峰引入测量系统,得到错误结论。
还有一个经验:不要一上来就开最大负载做测试。先空载启动,再逐步加大电流,看二极管温度、压降和系统稳定性。二极管发热严重时,用热成像或者手背靠近摸一下,但不要直接接触高压或正在工作的功率部分,先断电再操作。
个人建议,嵌入式项目里碰到二极管相关的问题,不要急着换更贵的器件。先用万用表和示波器确认方向、压降、位置和信号时序,再回到数据手册核对参数。很多问题看起来是器件坏了,实际是选型时没看 VF 和恢复时间,或者保护二极管放错了位置。把二极管这个领域吃透,嵌入式模数电的很多坑就能提前避开。