学过电气工程及其自动化,十几年没有接触电路,现在想重新看懂板子的图纸,最有效的恢复方式是:拿一个小电路,先判断连接与功能,算出测量预期,再仿真,最后对照板子检查。 欧姆定律、基尔霍夫定律和一阶电路不用从头背一遍,把它们重新用起来就好。
这篇围绕 5 V 小信号电子板,补齐从“电气原理”到“元件封装、焊盘、测试点”的对应关系。配套三个可运行的 ngspice 实验:带载分压、LED 限流、RC 充电,输出实际求解结果、曲线和自动核对报告。练习不涉及市电板或高能量动力回路。
先读第 1、2 节,再做第 5 节的带载分压实验;对极性或符号有疑问时回查第 3 节。配套文件:实验说明、测量记录模板、验证记录。
1. 先把三种图和实物对上
焊板子时通常要同时看原理图、物料表和装配资料。
| 资料 | 回答的问题 | 实际怎么用 |
|---|---|---|
| 原理图 / Schematic | 各引脚属于什么网络,电路起什么作用? | 找电源、回路、信号流和测量点 |
| BOM / 物料表 | R1 要拿哪一种元件? | 核对数值、完整型号、封装、精度、额定值与装配选项 |
| 装配图 / Assembly drawing | 元件在哪一面、哪个位置、朝哪边? | 找 R1、D1、U1 和方向标记 |
| PCB 布局图 | 焊盘和铜线怎么实现连接? | 核对焊盘编号、板层、过孔、铺铜和测试点 |
| Datasheet / 数据手册 | 实物哪一脚是什么,允许怎样使用? | 查引脚图、封装尺寸、极性、额定范围、推荐应用 |
位号是这几份资料之间的索引。 例如:原理图上的 R17 = 10k → BOM 的 R17 → PCB 丝印 R17 → 装在该位置的 10 kΩ 电阻。R17 不是“17 Ω”;0805 是封装规格的一种写法,也不是阻值。
原理图可以把两个相邻实物画得很远;板上的铜线又可能藏在背面或内层。不要用图上“离得近”判断谁相连。先确认板号和版本一致,再追位号和脚号;同一产品不同修订版也可能改过引脚定义。
1.1 从电气图转到电子板图,特别注意这些差异
- GND 不自动等于保护地 PE。 在本文小电路中,它是指定为 0 V 的参考节点和回流网络。机壳地、保护地、模拟地、数字地是否连接,要看实际设计。
- 同一个 IC 可能分成多个符号单元。 U1A、U1B 与 U1 的电源单元可能是同一颗芯片,不能按画了几个框就领几个元件。
- NC 有语境差异。 继电器触点的 NC 常指 normally closed;芯片引脚表的 NC 常指 no connect。芯片是否必须悬空,应看该器件说明,不能套用触点含义。
- DNP / DNI / Not fitted 通常表示该装配版本不焊。 PCB 上有空焊盘,不代表漏装。
- 丝印、阻焊开窗和铜层各有用途。白色元件框不导电;飞线/鼠线是尚待布线的连接提示,也不是已存在的铜线。
2. 读一张陌生板子的图,按这个顺序
2.1 从供电入口建立参考
先找连接器、电池或稳压器:输入从哪一脚来?额定电压是多少?GND 回到哪里?输入和输出电源网名分别是什么?再找保险、反接保护、稳压、滤波和去耦元件。
把 VIN → 保护 → 稳压器 → +3V3 → 用电单元 → GND 这样的供电关系写成一行,比逐个元件从左往右读有效。VCC 只是网名,不能仅凭名字认定是 5 V;上拉电阻接到 5 V 还是 3.3 V,对接口兼容性也有影响。
2.2 识别连接点、网络标签和跨页连接
交叉处的实心点通常表示连接;明确画出的跨线桥表示不连。现代图纸也常用“交叉无点”表示不连,但低清截图、旧制图习惯或刚好抵到导线的线端会造成歧义。能打开工程文件时,使用网络高亮确认。
网名相同的线是否相连,还要看标签的作用域。在 KiCad 中,本地标签在同一图纸实例内起作用;跨图纸连接需理解全局标签或层次接口。不能把任意两页上的同名普通文字都当成已连通。KiCad 电气连接说明
2.3 沿信号方向分块,再写测量预期
按“输入连接器 → 保护/滤波 → 放大或处理 → 输出驱动 → 负载”分块。对每一块写三件事:
- 电源是否正确,参考地是哪一处。
- 静态时关键节点应是多少伏、逻辑高还是低。
- 输入变化时,输出应如何变化,时间尺度大约多长。
例如 RC 充电电路,输出不会立刻跳到 5 V;例如 LED 串联支路,供电为 5 V,不代表 LED 两端也应测到 5 V。有预期以后,万用表读数才有解释。
3. 常用元件与标注速查
这里用来恢复记忆;实际焊接始终落到“完整料号+封装图+焊盘编号”。
| 位号常见前缀 | 元件 | 焊接前要核对 |
|---|---|---|
| R | 电阻 | 阻值、精度、功率、封装;普通电阻通常无极性 |
| C | 电容 | 容量、耐压、介质、封装及是否有极性 |
| L / FB | 电感 / 磁珠 | 电感值或指定频率阻抗、额定电流、DCR;用途不同 |
| D / LED | 二极管 / 发光二极管 | A 阳极、K 阴极,器件种类及封装方向 |
| Q | 三极管 / MOSFET | B/C/E 或 G/D/S,型号和具体脚序;相同外形不保证兼容 |
| U / IC | 集成电路 | 完整料号、1 脚、顶视/底视、裸露焊盘是否接地或散热 |
| J / P / CN | 连接器 | 脚号、间距、板端/线端、插合面/焊接面视图 |
| SW / S、F、TP | 开关、保险、测试点 | 触点定义、规格、对应网络 |
美式电阻常画折线,IEC 风格常画矩形;普通电容常画两块平行极板。LED 在二极管符号旁有向外的光箭头;二极管符号的横杠对应 K 阴极。符号外形的入门对照可查 SparkFun 原理图阅读教程。
3.1 数值、封装和额定值别混在一起
| 标注 | 常见解释 | 易混处 |
|---|---|---|
4K7、2R2 |
4.7 kΩ、2.2 Ω | 字母同时代替小数点 |
电阻三位码 103 |
10 × 10³ Ω = 10 kΩ | 第三位是十的幂,不是直接读成 103 Ω |
电阻四位码 1002 |
100 × 10² Ω = 10 kΩ | 不是按三位码读 |
电容常见码 104 |
10 × 10⁴ pF = 100 nF = 0.1 μF | 该规则不能套到所有封装和型号标记上 |
100n / 16V |
100 nF,额定耐压 16 V | 耐压不是此处一定要施加的电压 |
0R / 000 |
常见零欧电阻标注 | 是实际器件,有电流、封装等限制 |
英制 0805 |
约 2.0 × 1.25 mm,对应公制 2012 | 明确英制/公制;相同数字并非总是同样大小 |
部分精密电阻使用 EIA-96 码,小尺寸贴片电阻/MLCC 可能没有可读标记。优先看料袋、BOM 和完整型号,不靠外观颜色猜容量。Vishay 电阻标记说明
3.2 极性和 1 脚:辨认线索,不当成万能口诀
| 器件 | 常见线索 | 最后怎样确认 |
|---|---|---|
| 轴向二极管 | 本体色环常标 K | 数据手册标记图与 PCB 的 K 端对应 |
| 直插 LED | 未剪脚时长脚常为 A,平边/短脚常为 K | 不同封装有例外;剪脚后不能再靠长度判断 |
| 铝电解电容 | 条纹通常标负极 | 与原理图正负及实物型号说明交叉核对 |
| 钽电容 | 常见条纹标正极 | 不能照搬铝电解的“条纹负极”经验 |
| IC | 圆点、凹槽、倒角可能用于定位 | 找封装图的 Pin 1 和视图方向 |
| PCB 方形焊盘 | 经常用于标识 1 脚 | 1 脚不等于正极;必须查该元件脚定义 |
常见 DIP 封装按顶视图、缺口朝上时,1 脚在左上,编号沿逆时针增加;这只用于帮助理解该类封装,不能推广到所有连接器、晶体管和贴片封装。封装图标注 TOP VIEW、BOTTOM VIEW 或 MATING FACE 时,先把观察面弄对再数脚。
4. 一个电路,贯通原理图、焊盘和测量
本文定义:J1.1 是 +5 V,J1.2 是 GND;D1.2 是 A,D1.1 是 K。这是本例的脚号约定,不是所有 LED 的通用编号。 C1 为无极性陶瓷电容。
4.1 把图抄成网络表
| 网络 | 应相连的引脚 |
|---|---|
| +5V | J1.1、R1.1、C1.1 |
| LED_A | R1.2、D1.2(A) |
| GND | J1.2、D1.1(K)、C1.2 |
电流主回路是 J1.1 → R1 → D1(A→K) → J1.2。R1 和 LED 串联,电阻放在这一串联支路的另一端也能限流;C1 则并联在电源与地之间,不能把它理解成 LED 的串联供电通道。
如果先用红 LED 正向压降约 2 V 作估算:
I ≈ (5 V − 2 V) / 1 kΩ = 3 mA |
2 V 是估算条件,LED 压降随型号、电流和温度变化;仿真练习采用明确给出的教学模型,不能据此给未知 LED 定规格。实际选料还应核对器件最大额定值和工作范围。
4.2 从图纸走到焊盘
上图仅演示位置、网络与翻面关系,不是可直接投板的 PCB 文件。R1/C1 用简化焊盘示意,实物封装尺寸、LED 孔距和布线需重新按器件核对。
对照图可以直接看到:J1 的方形焊盘 1 是 +5 V,而 D1 的方形焊盘 1 是 K,接 GND。翻面后位置左右交换,电气脚号不变。实际软件的底层显示是否已经镜像,也要先确认;不要再凭感觉二次镜像。
在 KiCad 这类 EDA 工具中,原理图的符号与 PCB 封装分别定义。普通映射通过符号引脚号与封装焊盘号对应;应同时检查具体库元件和封装,不能只看外形“放得进去”。KiCad 符号与封装文档
4.3 焊好以后测哪里
| 状态 | 测量位置 | 本例的预期 |
|---|---|---|
| 断电 | J1.1 ↔ R1.1 | 同一网络,应接近表笔短接时的电阻 |
| 断电 | D1.K ↔ J1.2 | 同一 GND 网络,应导通 |
| 断电 | +5V ↔ GND | 不应出现无法解释的持续近零电阻;电容/器件会影响读数 |
| 正确供电后,直流电压档 | 黑表笔接 J1.2,红表笔测 J1.1 | 约 5 V |
| 同上 | 红表笔测 LED_A | 约为 LED 正向压降,示例估算约 2 V |
| 同上 | R1 两端电压 | 约 3 V,可由此算 I = U_R / R |
先通过电阻压降算支路电流,能避免初学恢复阶段频繁改接电流档。测电压时,红表笔插 V/Ω 孔、黑表笔插 COM;电流档必须串入被测支路,不能把 A/mA 档直接跨在电源两端。
5. 开源软件路线:先获得反馈,再增加工程细节
| 软件 | 适合当前哪一步 | 它能给什么反馈 |
|---|---|---|
| CircuitJS1 / Falstad | 恢复直觉、快速改元件与接线 | 浏览器里显示电压/电流变化与波形,适合先做小电路 |
| KiCad+内置 ngspice | 从原理图走到实际板子 | 原理图、SPICE 仿真、封装关联、PCB、ERC/DRC |
| ngspice | 重复计算、扫参数、保留可复核结果 | DC 工作点、扫描、瞬态分析;本篇配套实验直接使用它 |
CircuitJS1 是开源浏览器电路仿真项目;KiCad 集成开源 ngspice 提供图形化仿真。这三者不要求一起安装:先用网页找回手感,再用 KiCad 做图与板;本篇的命令行实验适合用来重复验证数值。CircuitJS1 项目、KiCad 仿真介绍、ngspice 官方教程
5.1 今天就能做:CircuitJS 带载分压
打开 Falstad CircuitJS 网页,先画最简单的分压器。界面语言/菜单位置可能随站点变化;以下按元件与连接操作,不依赖固定快捷键。
- 新建空白电路,添加直流电压源,设为 5 V;负端接地。
- 添加 R1、R2,各为 10 kΩ,串联接在电源正负端之间。
- 把两电阻中点命名为 OUT(若不命名,直接观察该节点电压也可以)。此时先算,再看 OUT:应为 2.5 V。
- 增加一个 10 kΩ 负载 RL,从 OUT 接地。先不要盯读数,算 R2 与 RL 并联后的结果。
- 运行,观察 OUT 降到约 1.667 V;移除负载后回到 2.5 V。
- 把 RL 改为 1 kΩ,预测 OUT 约 0.417 V,再检查仿真。
空载:VOUT = 5 × 10k / (10k + 10k) = 2.5 V |
这会马上唤回一个重要直觉:分压器不是理想稳压电源。 电压表的输入阻抗也相当于负载;对高阻节点,测量仪器本身会改变结果。动画中的点用于显示仿真电流,不是现实中电子漂移速度的写实动画。
5.2 已配好的 ngspice 实验
下载网表:01-divider.cir、02-led.cir、03-rc.cir。它们是 SPICE 网表,不是 KiCad 原理图工程;不用找“把 .cir 当成 .kicad_sch 打开”的操作。
现有笔记仓库中已配 Docker 环境,宿主不用安装 ngspice/Python 包。在仓库根目录运行:
# 首次构建需要联网获取 Ubuntu 软件包 |
结果位于 build/electronics-lab/run-<时间>/results/,其中 report.json 列出理论值、仿真值、容差和通过状态;各实验目录保留 .cir、.dat 与 ngspice.log。已有本地 ngspice 时,也可单独执行 ngspice -b 01-divider.cir,输出落在当前目录。
网表中的 0 是 SPICE 参考地;R1 vin out 10k 表示 R1 接在 vin 与 out 两节点之间。D1 led_a 0 LED_TEACH 中节点顺序为阳极、阴极,这是 SPICE 元件语法,不等于 PCB 的焊盘编号。电压源 i(V1) 的正方向按流入其正端定义,所以供电时显示负值可以是正常结果。ngspice 网表与分析教程
还有一个容易久未接触后忘掉的约定:SPICE 数值后缀 m/M 通常都表示 milli;兆要写 meg。例如 1 MΩ 在网表中写 1meg,不要写成会被解析为 1 mΩ 的 1M。u 表示微,n 表示纳。ngspice 文档入口
5.3 实验反馈应该怎么读
| 实验 | 先做预测 | 修改一个条件 | 应看到的变化 |
|---|---|---|---|
| 分压 | 空载 2.5 V,10k 负载下约 1.667 V | 移除 RL 或改成 1k | 输出分别回升或进一步下降 |
| LED | 5 V、1k,电流大约几 mA | R1 改 2k;另做反接对照 | 电流减小;反接模型电流很小。不要通过实际反接未知 LED 验证耐压 |
| RC | R=10k、C=1μF,τ=10 ms | C 改 2μF | 达到同一充电比例所需时间约加倍 |
RC 练习的输入在绝对时间 1 ms 开始上升,故充电 1τ 对应横轴约 11 ms,不是 10 ms;5τ 对应约 51 ms。
τ = R × C = 10 kΩ × 1 μF = 10 ms |
配套波形来自 ngspice 求解结果;输入设置了 1 μs 有限上升时间,因此数值核对保留小容差。
LED_TEACH 是给定参数的教学模型,不是某个真实型号的厂家模型。曲线用于理解工作点和限流关系;真实器件差异、热效应、接触不良、焊锡桥、布局寄生等,不能由这几个理想化仿真直接验证。改参数后,如果仍运行“原始参数的自动核对”,出现失败是正常反馈:先改自己的理论预期,再核对新结果,不能只把容差放宽到通过。
5.4 转入 KiCad:同一个小电路完成闭环
从 KiCad 官方 macOS 下载页选择与系统、处理器匹配的发行包。本轮提供了安装入口和练习路径,没有自动安装桌面应用。以下对象与流程参照 KiCad 文档,具体按钮文字按安装版本确认。
- 新建工程,先画分压器:直流电压源、两只 10k 电阻和参考地,标记 VIN / OUT。
- 打开仿真模型设置,确认电压源是可仿真的 DC 源,而非只有名称的
+5V电源符号。电阻有阻值,所有仿真引脚映射正确。 - 在仿真器中做工作点分析,查看 OUT;并联 RL 后再计算。这一步用 KiCad 内置 ngspice,不必依赖 Docker 容器与 GUI 互相连接。
- 再画 LED 练习。要仿真 LED,需分配相应 SPICE 模型并检查 A/K 映射;仅从符号库放一个 LED 图形不保证已有正确模型。
- 工程转为实际板子时,用输入连接器表达供电入口,处理好仅供仿真的电压源是否排除出 PCB/BOM;不要把仿真激励当成待焊器件。
- 为实际元件分配封装,逐个核对符号脚号、封装焊盘和数据手册;更新到 PCB,通过交叉定位找到 R1、C1、D1。
- 看顶/底层、丝印和 3D 视图,导出 BOM 与装配资料。运行 ERC/DRC,逐条解释问题;它们检查的是设计规则,不保证元件选对、实物焊好或功能正确。
三种分析先分清:OP 求静态工作点;DC sweep 看输入或参数变化后的静态特性;TRAN 看充放电、脉冲等随时间的过程。做 RC 恢复练习用 TRAN;做 LED 供电扫描用 DC sweep。AC 小信号分析可留到下一次复习频率响应时再练。
6. 焊板与排查:每一步都对应图上的位置
6.1 焊前
确认板号/版本、装配面和 BOM 版本。分好元件,先找所有有方向的 D、极性 C、Q、U 和连接器;把 1 脚、A/K、正负写在纸上。普通手工板可先装低矮元件再装高件,具体仍按结构和工艺安排。带底部散热焊盘、QFN/BGA 等器件,不应仅因“脚能对上”就按普通两脚元件方式处理。
6.2 焊后先断电检查
在放大观察下检查桥连、漏焊、焊盘翘起与极性;焊点应体现焊料对焊盘和引脚的润湿。不能用“越亮越好”作为唯一标准,无铅焊点外观可能偏哑。常见不良可对照 Adafruit 焊点问题图解。
断电并释放电容残余电荷后,再测电阻、通断或二极管。先短接两表笔,了解自身表笔/导线读数。蜂鸣档有型号相关的阻值阈值;电容充电可能导致短暂鸣叫,低阻绕组/负载也可能鸣叫。因此 “响了”只是线索,需结合稳定阻值、原理图和支路判断。Fluke 通断测量说明
6.3 首次通电按“供电—节点—功能”检查
对本文简单 LED 小板,可使用确认极性的 5 V 限流台式电源,按预计几 mA 的负载设置合理限流(例如 10 mA 起步);该数值不适用于 MCU、电机或其他板卡。先看是否进入限流、供电轨是否正常,再测 LED_A 和电阻压降。
| 现象 | 接下来测什么 | 可能原因,不能仅凭现象定案 |
|---|---|---|
| 上电进入限流,板端电压拉低 | 断电检查电源—地阻值与装配方向 | 桥连、装反、错件,或限流设得低于正常启动需求 |
| LED 不亮,LED_A 约 5 V,R1 压降近 0 | 断电核对 LED、焊点及其回地路径 | LED 反接、开路、GND 未接通等 |
| LED_A 约 0 V,R1 承受接近全电源电压 | 断电检查 LED 两端与对地连接 | LED 支路短接或装错等 |
| 空载正常,接负载电压下降 | 核对源阻抗、限流、接插件与供电能力 | 把分压当供电、负载过重、连接电阻大等 |
| 电压正常但功能不对 | 看使能、复位、时序和接口电平 | 静态电压正确不代表动态信号正确 |
怀疑单个阻容数值时,板内并联支路会影响测量,必要时断开一端再测。发现异常发热或电流明显超出预期,先断电定位,不靠提高限流继续尝试。
7. 三次练习,把“生疏”变成可验证的进步
第一次,约 30 分钟:恢复电路直觉。 做 CircuitJS 分压器,写出空载、10k 负载、1k 负载三个预测值。用 测量记录模板记录“预测—仿真—原因”。
第二次,约 45 分钟:回到动态与非线性。 跑 ngspice LED/RC,找到 LED 电流、1τ 和 5τ 的电压;每次只改 R 或 C 一个参数。解释 SPICE 电源电流为何可以为负。
第三次,约 60 分钟:恢复工程对应能力。 在 KiCad 画 LED 图,写网络表、分配封装,再从 PCB 中定位每个网络。没有实板也能完成这一步;有具体板子后再做断电检查和测量。
完成后应能回答:D1 的 A/K 对应哪个焊盘?为何方焊盘可能接 GND?翻面后为什么位置反了而编号不变?2.5 V 的分压为什么带载变成 1.667 V?RC 图上为什么看 11 ms 而不是 10 ms?这些问题能说清,已经比单纯记一遍符号更接近实际焊板。
8. 验证范围与后续练习
本文附有教学图和实际 ngspice 仿真文件,数值验收与工具版本记录在 VALIDATION.md。没有把教学图当成可制造的 PCB,也没有把仿真结果当成实物焊接验收。
后续适合接着练:上拉/下拉与开漏输出、三极管/MOSFET 低边驱动及续流二极管、运放闭环与电源范围、稳压器输入输出电容、UART/I²C 接口。届时用具体器件数据手册和厂家模型,逐步把“理想电路成立”推进到“选定器件和板子上也成立”。