入门级:单片机最小系统硬件详解 —— 从LED blinking看电路原理(1)
问题回答为什么是两个?因为振荡电路需要对称的负载,形成完整的谐振回路和相位网络。一个电容无法构成完整的振荡条件。为什么接地?地为信号提供参考点和回流路径,形成闭环。如果去掉会怎样?单片机大概率无法启动,或者运行极其不稳定(时而死机)。如果电容值不对?晶振可能输出频率不准(导致串口乱码),或者根本不起振。
前言
你是否曾经无数次翻开书本,看过电路图,当时觉得“懂了”,但过几天再看又一脸茫然?是否总是不明白“这里为什么要放个电阻”,“那里为什么要加两个电容”?
你不是一个人。
硬件设计最难的不是记住结论,而是理解每个元器件为什么出现在那个位置。今天,我们就从一个最简单的LED闪烁电路入手,把单片机最小系统的每个元件都拆开揉碎,让你真正明白——原来如此。
1,电磁干扰
1,静电放电(ESD)干扰
冬天,脱毛衣那种劈里啪啦的响声,这是静电,还有各种电器、铁柜的放电。
2,快速瞬间脉冲群(EFT)干扰
使用电钻过程中,听收音机有杂音、电视图像有波纹。
3,浪涌(Surge)干扰
浪涌电流:超出正常工作电流的瞬间过电流,电涌指的是常规电压的增加,通常由剧烈变动或电力需求的增加而引起,打开大功率电器,吹风机,空调都会引发电涌和峰值电压。
2,去耦电容

100μF 和 0.1μF,这两个电容 被用来静电放电的。
人能感觉的静电是2~3kV,如果可以看得见的静电是4~5kV。电压非常高,由于电量小,电人只有感觉。但是对于电子设备,扛高压的能力非常弱,容易损坏电子元器件,这两个电容主要用来抵抗电磁干扰。
分类:
1)钽电容,深色条那侧是正极,另一侧是负极。特性较好,是贴片的,占用面积较少,价格昂贵。
2)电解电容,直插式的,没有钽电容特性好,它的个头很大,容值也大,价格便宜。
3)贴片陶瓷电容,特性非常好,容值小。

钽电容 电解电容 贴片陶瓷电容
作用:
1)去除电源低频纹波。
电流和水流类似,电流供电过程中,一起一伏咕噜咕噜的,并不均匀。因此电容就像个水缸,水流经过水缸后,水流会变得平稳。
2)储能稳压
电子设备后级用电是变化的,时高时低,如果没有电容的储能,电压的上升下降会直接影响后端的电子设备使用。因此作用是稳定电源,稳定电压。
用法:
电源输入端的电容是必要的,进来先做一个“储水池”,稳定电源,后面所有的电路都通过蓄水池 稳定电源。
电容指标:
1)耐压值,它可以抵抗多大的电压,5V系统就需要二倍耐压,电容本身需要耐压10V,有的电路1.5倍耐压也可以
2)电容值,它的大小完全由电路的设置决定,电路设置的耗电量越大,电容也需要越大,因为耗电量特别大的时候,要给后级提供足够的电流,前级应该提供足够的电流给后级。开发一款产品,确定不了电容的容值,就可以先把别人的原理图拿来,学习一下,先搞明白这个电路什么意思,然后就可以直接用,别人是经过实践验证的。
0.1μF的用途是,过滤一些小的干扰,比如静电、快速瞬间脉冲等高频信号,电容对高频的信号相当于短路,因此消除了高频干扰,0.1μF就是我们平时用的104,104就是10^4方皮法。

为啥小电容处理高频,大电容处理低频
根据之前的公式 I=C⋅dv / dt:
假设电压在同样的时间内(比如 1 微秒)变化了同样的幅度(0.1V),那么:
-
0.1μF 能提供的瞬间电流:约 10 mA
-
100μF 能提供的瞬间电流:约 10 A(是 0.1μF 的 1000 倍!)
核心原因一:板级卷绕结构(物理)
如果你拆开一个 100μF 的电解电容,会发现它内部其实是长长的两条铝箔(极板),中间夹着电解纸,像卷饼或瑞士卷一样紧紧地卷起来。

-
100μF(大水桶)的微观结构:
-
路径长: 电流要从卷在最外面的引脚,穿过长长的、卷起来的箔片,才能到达卷在最里面的部分。这就像让一个人在拥挤的操场上跑 1000 米。
-
产生电感: 这种卷绕结构天生就带有一个副产品——等效串联电感(ESL,Equivalent Series Inductance)。
-
电感的作用: 电感有一个特性叫 “电流不能突变”。它就像电路中的飞轮,有巨大的惯性——你推它(改变电流方向),它要延迟一下才动;你想让它停下(高频振荡),它因为惯性还在转。
-
结论: 当高频信号(每秒变化几百万次)试图让电流一会儿正、一会儿负时,这个“卷饼”内部的巨大惯性会阻止电流快速变化。所以高频信号在这里“跑不动”,这个大电容在高频下就表现为高阻抗,相当于断路了。
-
-
0.1μF(小酒杯)的微观结构:
-
它通常是瓷片电容。结构简单得多,通常是多层陶瓷薄片堆叠,引脚很短,几乎没有卷绕。
-
路径短: 电流直来直去,几乎没有惯性。
-
结论: 高频信号在这里可以畅行无阻,轻松地给电容充放电。
-
核心原因二:极化反应(化学惯性)
这是电解电容(100μF 通常都是电解电容)特有的。
-
工作原理: 电解电容内部不是简单的金属对金属,而是通过化学反应形成的一层极薄的氧化膜作为绝缘介质。
-
反应速度: 当电压方向变化时(虽然我们用在直流电上,但纹波就是微小的来回变化),这层氧化膜需要做出化学调整。
-
类比: 这就像捏橡皮泥。你慢慢捏(低频),它可以跟着变形。但如果你以极高的频率(每秒几万次)疯狂揉捏,橡皮泥就跟不上了,会变得僵硬甚至断裂。
-
结果: 在高频下,化学反应来不及完成,电解电容失去了电容特性,变成了一个普通的电阻甚至断路。
用实验现象来理解(等效电路)
在电子工程师眼中,一个真实的电容并不是一个理想的电容,而是由以下几个元件组成的:
-
理想电容 (C) + 电阻 (ESR) + 电感 (ESL)
-
低频时(比如 100Hz 的电源波纹):
-
电感(ESL)的阻抗极低(XL=2πfLX**L=2πfL,频率低,阻抗低),电感相当于一根导线。
-
主要是理想电容(C)在起作用。
-
100μF 表现完美: 大水桶慢慢充放电,把低频波纹滤除得干干净净。
-
-
高频时(比如 100MHz 的芯片噪声):
-
电感(ESL)的阻抗变得极高(XL=2πfLX**L=2πfL,频率高,阻抗高),像一堵墙堵住了电流。
-
电流无法通过这个“大电感”进入电容内部。
-
结果: 100μF 电容在高频下“消失”了(实际表现为阻抗很高,滤不掉噪声)。
-
而 0.1μF 的小电容,因为 ESL 极小,在高频下依然表现为一个纯粹的电容,可以让高频噪声通过它流回地线(被滤除),而不是跑到电源线上干扰其他芯片。
3,三极管
最常用的三个功能
1,开关控制
2,信号放大
3,电平转换
三极管有PNP型,NPN型。
b:基极,c集电极,e:发射极。

PNP三极管:e比b高0.7v,三极管就导通,这个导通靠电压。
NPN三极管:b比e高0.7v,三极管就导通,这个导通靠电压。
电流控制指的是三极管起了一个放大的作用,它有一个倍数关系
开关作用,三极管的饱和状态和截至状态。

如果这个I/O口,B_IN是单片机的5V,系统(b基极)且是高电平,三极管就导通,输出一个高电平(c发射极)
如果I/O口输出一个低电平,三极管不导通,被截至,输出一个低电平(c发射极)。即通过I/O口的B_IN输出信号可以控制一个其它电压(5v/12v/other v)的系统,用其他的电压直接驱动蜂鸣器响,而不需要i/o引脚驱动,节省了功耗。
4,晶振电路
cpu的心脏,晶振的接法是直接接到单片机晶振的两个引脚上,对地要接两个电容,这两个电容也叫负载电容,10~30pF都可以这是晶振厂家要求的,后面有解释为啥这样。

晶体:中间那片深色的、很薄的材料,就是石英晶体。它是整个器件的核心,具有压电效应。
电极:晶体上下两层金色的物质,就是金属电极(通常是银或金)。它们负责把电压加到晶体上,也负责把晶体产生的电压引出来。
引脚:两个电极分别连接到晶振的两个金属引脚(就是你焊在电路板上的那两个脚)。
所以,晶振本质上就是一个被封装起来的、会振动的高精度石英片。
核心原理(压电效应)
这张图完美地解释了什么是压电效应。我们可以把它拆解成两个过程:
过程一:施加电压 -> 产生形变(电生力)
-
动作:当你把晶振的两个引脚(也就是上下两个电极)接通电源,给晶体施加一个电压。
-
结果:晶体内部会产生应力,导致它发生机械形变(比如变厚、变薄或者弯曲)。
-
图中对应:就是电流通过上下电极,穿过中间的晶体。
过程二:施加压力 -> 产生电压(力生电)
-
动作:如果你反过来,用手挤压或掰弯这个石英片。
-
结果:在两个电极上会产生一个微小的电压。
-
图中对应:晶体受力变形,电极上就会出现电信号。
这就是晶振工作的物理基础:电能和机械能在这里可以互相转换。
但问题在于:如果只给它加一个固定的直流电压(比如 5V),它会弯一下然后就停在那里,不会持续振动。它需要交流信号来推它。
过程三:如何让它持续振动(电路工作过程)

工作过程:
第1步:启动扰动
电路通电瞬间,会产生微小的电噪声(电压波动)。假设这个波动让 XTAL1 (下边) 的电压微微升高,表现为 XTAL1 电压升高(电场能量增加)。同时,这股能量通过晶振传递给 XTAL2,试图把 XTAL2 也推高。。
第2步:能量传递
由于晶振的压电效应,当能量试图把 XTAL2 推高时,遇到了 C1 的强烈抵抗(因为电容两端电压不能突变,C1 需要吸收电流才能让 XTAL2 电压升高)。结果,能量无法全部变成 XTAL2 的电压,有一部分能量被迫储存进了晶振的内部,变成了石英晶片的机械形变能(你可以想象成晶片被弯曲了)。
关键点: 当能量从 XTAL1 端“流走”并储存为机械能时,XTAL1 端原有的电场能量就减少了。能量减少了,电压自然就撑不住了,所以开始回落。
类比: 这就像一个弹簧两端各有一个重物。
-
你推左边的重物(相当于给 XTAL1 加压),弹簧被压缩(相当于能量储存)。
-
然后你松手,左边的重物往回走(XTAL1 回落),同时弹簧把储存的能量释放,把右边的重物推出去(XTAL2 被推高)。
所以,XTAL1 回落,是因为它把自己的能量“借”给了晶振(变成机械能)和另一端的电容 C1(准备给 XTAL2 充电)。
第3步:第二次“拉住” (能量再次储存)
XTAL1 (下边)** 连接着 C2,C2 同样另一端接地。
当 XTAL2 被推高、能量试图传回 XTAL1 时,C2 开始发挥作用,它拉住 XTAL1,不让它跟着升高。
能量再次被储存为晶振的机械形变,XTAL2 的电压开始回落。
第4步:循环往复,形成振荡
XTAL2 回落 → 能量释放 → XTAL1 被推高 → C2 拉住 XTAL1 → 能量储存 → XTAL1 回落 → 能量释放 → XTAL2 被推高 → C1 拉住 XTAL2 → ……
如此循环,能量在 C2 ↔ 晶振 ↔ C1 之间来回转移,形成稳定的正弦波振荡。
结论: 两个电容就像两个锚点,交替地拉住两端,让能量不能在瞬间释放完,必须来回振荡。这就是“谐振”的物理意义。
假如单片机不工作,先用万用表测量电压,测试单片机的工作电压是不是在3.8~5.5v之间,然后测量晶振,晶振通常是用示波器来测量的,但也可以利用万用表简易测试一下,江红表笔接晶振的引脚,黑表笔接GND,测量它的电压,电压一般在1~4v之间,如果是0V或者5V,那么说明这个晶振没有正常工作。
稳频和滤波
-
决定频率准确度(负载电容):
-
每个晶振都有一个参数叫 “负载电容”,通常标注为 12pF、20pF 或 30pF。
-
这意味着:为了让晶振实际输出频率刚好是 12.000MHz,它需要看到外部电路的总电容(主要是这两个电容串联后的值,加上电路板上的杂散电容)恰好等于这个值。
-
计算公式: C总=C1×C2 / (C1+C2) + 杂散电容
-
如果电容值不对,你的单片机串口通信可能会因为频率偏差点乱码。
-
-
滤除谐波(让波形更漂亮):
-
晶振产生的波形并不是完美的正弦波,里面含有高频噪声(谐波)。
-
这两个电容对地相当于低通滤波器,把这些高频噪声滤掉,送到单片机引脚的波形就干净了,单片机内部电路也能更稳定地识别。
-
问题总结
| 问题 | 回答 |
|---|---|
| 为什么是两个? | 因为振荡电路需要对称的负载,形成完整的谐振回路和相位网络。一个电容无法构成完整的振荡条件。 |
| 为什么接地? | 地为信号提供参考点和回流路径,形成闭环。 |
| 如果去掉会怎样? | 单片机大概率无法启动,或者运行极其不稳定(时而死机)。 |
| 如果电容值不对? | 晶振可能输出频率不准(导致串口乱码),或者根本不起振。 |
补充一点: 在一些对成本极度敏感或频率要求不高的芯片(比如某些低端玩具芯片)内部,可能会集成振荡电路,直接接一个陶瓷谐振器(通常需要两个电容,有时集成在元件内部)甚至用 RC 振荡器,但单片机为了保证精准的时钟(尤其是用于通信时),通常必须用外部晶振加这两个电容。
公式的含义

这个公式计算的是从晶振的两个引脚看进去,整个电路对晶振呈现的总有效电容。晶振需要看到特定的电容值(即负载电容,CL)才能工作在标称频率上。
第一步:为什么是 C1 和 C2 串联?( (C1×C2) / ( C1+C2) )
你可能会想:C1 和 C2 不是都有一端接地吗?这不应该是并联吗?
关键点:在交流信号眼中,电源和地是“短路”的。
在分析小信号交流等效电路时,我们通常把稳定的电源(VCC)和地(GND)都视为交流地电位(即电压不变动的参考点)。
看电流的路径:
-
信号从 XTAL2 出来。
-
流过 C1 到达 地(GND)。但 GND 不是终点,而是中转站。
-
在 GND 这个公共节点上,电流并没有消失。它只是汇集到了这片“大海”里
-
从 地(GND) 流过 C2。为了让 XTAL1 的电压发生变化(被推高或拉低),必须有电流流入或流出 XTAL1
-
回到 XTAL1。
为什么 GND 能“通过”电流?
因为在交流通路中,我们假设 GND 和 VCC 这些电源的阻抗为0。
-
阻抗为 0 意味着: 对于交流信号来说,GND 和 VCC 就是一根理想的导线,可以毫无阻碍地传输信号。
-
所以,GND 在这个环路里,相当于一根很粗的、连接 C1 和 C2 的导线。
那么,XTAL1和XTAL2引脚上的交流信号是从哪里来的?答案就在单片机内部
单片机内部集成了一个关键的电路模块:反相放大器(Inverting Amplifier)。
单片机XTAL1和XTAL2引脚之间,内部连接着一个高增益的反相放大器。
-
输入端:XTAL1
-
输出端:XTAL2
-
特性:放大器的输出电压与输入电压相反(反相),并且会把微小的输入信号放大很多倍。
这个放大器的能量来源就是VCC(直流电源)。它像一个“能量泵”,把直流能量转换成交流能量。
启动过程:从噪声到振荡
第1步:热噪声
-
电路通电瞬间,放大器的输入端(XTAL1)存在微小的、随机的电噪声(所有电子元件都有)。
-
这个噪声包含了各种频率的成分。
第2步:第一次放大
-
放大器把XTAL1上的微小噪声放大,并从XTAL2输出一个反相的信号。
-
这个输出信号通过外部晶振和电容,又送回到输入端XTAL1。
第3步:频率选择(晶振的作用)
-
外部晶振+电容构成一个选频网络。
-
对于绝大多数频率的噪声,这个网络会让信号衰减,无法形成正反馈。
-
只有在一个特定的频率上(晶振的谐振频率),信号通过晶振和电容网络后,不仅不会衰减,而且相位正好旋转了180度(加上放大器自身的180度反相,总共360度,形成正反馈)。
第4步:振荡建立
-
特定频率的信号被放大器一次又一次地放大。
-
振幅越来越大,直到受到放大器电源电压的限制,最终稳定在一个固定的幅度。
-
一个稳定的正弦波振荡就在XTAL1和XTAL2上形成了。
问:这个电路不是直接连到单片机上的 XTAL1、XTAL2 引脚吗?哪来的交流电?
-
交流电不是外部送来的,而是单片机内部用直流电(VCC)自己产生的。
-
单片机内部的放大器把直流能量转换成交流振荡。
-
外部晶振+电容不产生能量,它们只决定振荡的频率,并维持振荡的稳定。
-
XTAL1和XTAL2引脚上的交流信号,是放大器+晶振+电容这个闭环系统共同工作的结果。

发现了吗?在交流通路里,C1 和 C2 是首尾相连,电流依次流过它们。这正是串联的特征。
所以:
-
直流/静态看:C1 接在 XTAL2 和 GND 之间,C2 接在 XTAL1 和 GND 之间,像是并联。
-
交流/动态看:对于在晶振两端来回流动的信号电流,它必须先经过 C1 到地,再从地经过 C2 回来,因此 C1 和 C2 是串联的。
串联电容的总容量计算公式就是:
C串联=(C1×C2) / ( C1+C2)
第二步:为什么要加 C杂散*?
电路板上并不是只有这两个电容。晶振的引脚、芯片的引脚、以及电路板上的铜箔走线之间,都存在着微小的、不可避免的寄生电容(通常几 pF 到十几 pF)。
这些看不见的电容,实际上也连接在晶振引脚和地之间,和 C1、C2 并联在一起,共同影响着晶振的振荡频率。
因此,晶振实际看到的负载电容是:
CL=(C1和C2串联的结果)+(电路板上所有乱七八糟的杂散电容)
第三步:这个公式用在哪儿?(设计目标)
晶振的数据手册会指定一个参数:负载电容 CL(Load Capacitance),比如 12pF、20pF。
你的设计目标就是:让公式计算出来的 C总 等于晶振要求的 CL。
举例:
-
晶振要求 CL=12pF
-
估计电路板杂散电容 C杂散≈3pF
-
那么需要 (C1×C2) / ( C1+C2) =12pF−3pF=9pF
-
通常取 C1=C2,则每个电容应为 2×9pF=18pF(取标称值 18pF 或 20pF)。
-
两个相同电容串联后的总容量,等于单个电容的一半
总结
| 公式部分 | 物理意义 | 比喻 |
|---|---|---|
| (C1×C2) / ( C1+C2) | C1 和 C2 在交流通路中是串联的 | 两个人(电容)手拉手站在地上 |
| C杂散 | 电路板本身隐藏的微小电容 | 地上还有看不见的小水坑 |
| C总 | 晶振实际感受到的总负载 | 两个人加上小水坑,总共存的水 |
一句话: 这个公式让你计算出从晶振两个脚看出去,整个电路(包括显式电容和隐藏杂散电容)总共呈现出的电容值,并确保这个值等于晶振数据手册要求的负载电容,这样才能得到精确的时钟频率。
5,复位电路
复位的功能说的更具体一点就是单片机内部所有的寄存器初始化,如果程序是100行,当运行到第50行的时候,突然掉电了,这时候很多内容都不确定,那么程序上带你的时候,我们都会给让它复位一下,进行初始化,51的复位大概是2个机器周期,具体的要看数据手册,除了复位的时间外,还需要让芯片稳定工作,所以需要的时间长一点,这个时间超过2个机器周期就可以,但小于这个世界就不可以,否则复位时间不充分,为导致单片机复位异常。

从这个原理图,该单片机是高电平复位,低电平是正常工作的,这个电容是起充放电作用的,下边是一个电阻下拉电阻,当按键没有按下的时候,电容对直流来说是隔离的,GND和复位的这个接触点电压只要不是0v就有电流通过。实际上有个电容给隔开了,因此上面的电压和下面的电压是一模一样的,是GND电压,只要有电压差,只要这条路是通的,那么它就有电流,因此在没有按下按键的时候,它实际上是0v.
按键按下的时候,5v到RST引脚就是一个高电平,按下按键就是高电平,松开按键就是低电平,按下的一瞬间就是一个复位的状态,同样的道理,在上电的一瞬间,实际上是要给这个电容充电,这里是5v,电路在上电的时候,RST引脚为低电平,连接到电容上,当电容充满电时,实际上电容的电压等于Vcc的电压,让单片机进行复位。
-
电容C10:在上电瞬间提供短暂的短路,产生复位脉冲。充满电后,它就“退出”了,不再影响RST点。
-
电阻R1:始终作为下拉电阻,在正常工作时把RST点稳定在0V(低电平),防止误触发复位。
一句话概括:
-
刚通电时,电容让RST瞬间变高(自动复位)。
-
正常工作时,电阻把RST拉低(保持工作)。
-
按下按键时,强行把RST拉高(手动复位)。
第一步:看懂这张图
先确认图中几个关键部分:
-
RST:这是复位引脚,连接到单片机的复位端。高电平(比如接近5V)时复位,低电平(0V)时正常工作。
-
SW5:这是一个按键(复位键)。按下时,它会接通电路。
-
C3 (10μF):这是一个电解电容,正极接VCC(5V),负极接RST点。
-
R6 (10kΩ):这是一个电阻,连接在RST点和GND之间。
-
GND:地(0V)。
第二步:理解核心概念——电容的“充电”和“隔离”
教材里说“电容在这里是起充放电作用的”,这是关键。电容有一个重要特性:两端电压不能突变。
-
刚通电瞬间:电容两端电压为0,它相当于一根导线(短路),把VCC的5V直接引到RST点。
-
充电过程:随着时间推移,电流通过电容,电容慢慢充电,它两端的电压逐渐上升。当电容充满电后,它相当于断开(开路),不再让直流电流通过。
-
充满电后:电容对直流电来说是“隔开”的,也就是教材里说的“电容对直流来说是隔离的”。
第三步:分析两种情况
情况一:刚上电时(自动复位)
-
初始状态:你给开发板通电的一瞬间,电容C10两端电压为0(因为它之前没电)。
-
相当于短路:由于电容两端电压不能突变,它一开始就像一根导线,把VCC(5V)直接连到了RST点。
-
RST点电压:此时RST点被拉到接近5V(高电平)。根据教材说的“高电平复位”,单片机开始复位。
-
电容开始充电:同时,电流通过R1(10kΩ电阻)流向GND,电容C10开始充电。随着充电进行,电容正极(接VCC)电压固定为5V,负极(接RST点)电压逐渐下降。
-
RST点电压下降:经过一小段时间(由C10和R1的值决定),RST点的电压降到足够低(低于复位阈值,比如0.8V)。
-
复位结束:此时RST点变为低电平,单片机复位结束,开始正常工作。
-
稳定状态:电容充满电后,相当于开路(隔离直流),RST点通过R1被牢牢地拉到GND(0V),保持低电平。
这个过程实现了“上电自动复位”。
情况二:按下按键时(手动复位)
-
初始状态:单片机正在正常工作,RST点为0V(低电平)。
-
按下B3:按键B3接通,它把RST点直接接到了VCC(5V)。
-
强制拉高:无论电容是什么状态,按键直接把5V加到RST点。
-
RST点电压:瞬间变为5V(高电平),单片机开始复位。
-
松开按键:按键断开,RST点又恢复通过R1接地,变为0V。
-
复位结束:单片机继续工作。
单片机I/O口的状态

这是单片机的一个I/O口,方框里面是单片机的内部,方框外是单片机引脚的外部,内部和三极管的原理是一样的。
当单片机输出一个高电平时,三极管不会导通,外部也数次高电平;
当单片机输出一个低电平时,三极管导通,外部I/O口就输出一个低电平,在输出高电平时,这里有一个电阻。

整体电流推进不要超过55mA,否则可能影响到单片机的寿命,
对于强推挽输出内部原理图:
一旦内部输出高电平,三极管就导通,导通后,电流就流向下面,经过反相器,到达下面的三极管的基极是低电平,此时下面三极管是截止的,电流从上面的三极管输出了,若没有限流电阻,这个电流很大,因此外部需要添加限流电阻。要注意如不接上拉电阻,有可能烧坏单片机的引脚。当内部总线输出一个低电平,上面三极管截至状态,一旦产生低电平,经过反相器,下面三极管的基极为高电平,三极管导通,这个三极管输出的电流也非常大,因此外部需要加限流电阻,这是一个强推挽输出。
对于开漏输出:
内部总线经过一个反相器。
假如一个高电平经过反相器变成低电平,电路内部没有上拉电阻, 即使基极是高电平,三极管导通,也不会输出高电平,仍然还是输出低电平。
因此,开漏外部一定要添加上拉电阻,才有可能输出高电平,不加上拉电阻,就不会输出高电平。

在开漏输出电路中:
-
当三极管导通时:引脚被强制拉到 GND(低电平)。此时无论有没有上拉电阻,引脚都是低电平。
-
当三极管截止时:引脚悬空。如果没有上拉电阻,引脚电压不确定;只有加上上拉电阻,引脚才会被拉到 VCC(高电平)。
“悬空” 是指:引脚和芯片内部没有任何电气连接,也没有被外部电路强制拉到某个电压,处于“飘着”的状态。
开漏输出 = 一个只能拉低(到GND)、不能拉高(需要外部电阻帮忙)的开关。
高阻态:描述的是一种状态(既不输出高,也不输出低,对外呈现高阻抗)。
作用:
在实际运用系统中,要避免直接接高电平,在做电平转换时,使用这个电路,一个5V的系统要控制一个12V的系统时,用5V的电平控制三极管的导通,一旦导通,外部就是12V,则进行一次电平的转换。
在电平不匹配的场合,如需要输出5伏的高电平,就可以在外部接一个上拉电阻,上拉电源为5伏并且把 GPIO 设置为开漏模式,当输出高阻态时,由上拉电阻和电源向外输出5伏的电平,
高电平 ≈ VDD 是因为: 截止时几乎没有电流流过电阻 → 电阻上没有压降 → 输出电压 = 电源电压。
6 上下拉电阻
上拉就是将不确定的信号,通过一个电阻钳位(保持的意思)在高电平,电阻同时起限流作用,下拉同理,将不确定的信号通过一个电阻钳位在低电平。
上拉对于器件输入电流,下拉是输出电流,强弱只是上拉电阻的阻值不同,没有严格区分。对于非集电极(或漏极)开漏输出的电路提升电流和电压是有限的,上拉电阻的功能主要是未来集电极开路输出型电路输出电流。
不确定的信号就是我们不知道它是高电平还是低电平,加上一个电阻就是保持着高电平,另外电阻还起到了一个限流的作用,
比如说三极管导通后,输出的是一个什么样的电平信号,这个电平信号与外部关系很大,但是我们一旦加上这个上拉电阻之后,默认这个三极管低电平不导通。。这个三极管低电平不导通,外部就会长时间保持在高电平,这个电阻就起到了保持高电平的作用,但是一旦这个三极管导通了,就会有电流通过三极管流下了,这个时候电阻又起到了一个限流的作用,所以上拉电阻有两个作用:一个作用是钳位高电平,另一个是限流,实际上三极管不导通时,直接接12v是可以的,但是三极管一导通,没有电阻就不行了,下拉同理哈。
上下拉电阻的四项功能:
1,电平转换,他可以输出电平的数值,用5V接三极管达到12v的作用时,加了一个上拉电阻。
2,OC门,P0口是开漏的,三极管不管是否导通,都不能输出一个高电平,因此开漏输出必须要加上拉电阻。 若想输出一个高电平,必须加上一个上拉电阻才能正常使用。
3,加大普通I/O口的驱动能力,普通I/O的输出能力也就200uA,如果电流比较大, 加上一个上拉电阻,那么I/O的输出能力就是两个上拉电阻的和,加上拉电阻起到了一个增大驱动能力的作用。
4,悬空引脚加上下拉电阻可以扛干扰,应该避免单片机引脚的悬空。悬空在一定程度上有非常细微的功耗,而容易受干扰,比如空间放电、静电等。
如果有上下拉电阻钳位,即可长期保持着高电平或者低电平状态,因此悬空的引脚在设置的时候,尽可能让它接上下拉电阻。最小系统无关紧要。
选取上下拉电阻的经验:
①从节约功耗及芯片灌电流能力考虑,阻值应当足够大,因为电阻大,电流小,可以节约功耗。还有灌电流,单片机输入电流要尽可能小,这样可以延长单片机的使用寿命。 ②从确保足够的驱动电流考虑,电阻应当足够小,电阻小,则电流大。比如说驱动发光二极管,如果电阻大了,这个发光二极管就不亮了,所以从确保电路正常工作的角度,这个电阻应该小一点。这和①似乎是矛盾的。实际取多大的电阻,需根据你的应用来设计。 ③对于高速电路,过大的上拉电阻可能会导致波形边沿变平缓。这个是什么概念呢?数字电路中,从0变成1实际上是一个缓慢的上升过程,并不是说从0直接上去,会经过一个斜坡。如果说上拉电阻过大,会使得这个斜坡变得平缓。所以综合考虑:上拉电阻常用值在1~10kΩ之间选取,下拉电阻同理。当然,在一些场合,上百kΩ也是有可能的,大多数情况下都是1~10kΩ。
电压不是瞬间跳上去的,而是像上坡一样,慢慢地、斜着爬上去的。
7、写在最后
看到这里,你可能已经发现:硬件设计中,每个元件都有它存在的道理。
-
电源旁边的两个电容,一个管低频,一个管高频
-
晶振旁边的两个电容,像两个弹簧让能量来回震荡
-
复位电路的一个电容一个电阻,决定单片机“醒过来”的时间
-
LED前面的一个电阻,决定了它亮不亮、会不会烧(下一届)
这些都是工程权衡的结果——没有绝对正确的值,只有适合你应用的值。
如果你之前总是“看完就忘”,不妨试着用这些比喻和画面去理解,而不是死记硬背。当你脑子里有了“水缸”、“跷跷板”、“弹簧”这些形象,电路就不再是一堆枯燥的符号,而是一个会动的系统。
二极管下一节进行从化学角度进行讲解。
参考:51菜鸟到ARM高手进阶之旅
更多推荐



所有评论(0)