很多嵌入式软件工程师觉得"PCB是硬件的事,跟我没关系"——错。
至少你得能看懂原理图、能画一块简单的转接板、知道走线为什么会干扰信号。
这篇从零讲PCB设计全流程,用嘉立创EDA(立创EDA)实操,小白也能跟着画出一块能用的板子。
一、嵌入式工程师为什么要学PCB?
1.1 真实场景
- 需要一个 STM32 最小系统板,买现成的太贵 → 自己画
- 传感器引脚不匹配,需要转接 → 画转接板
- 调试时信号莫名其妙受干扰 → 要懂走线和地平面
- 面试被问"你懂硬件吗" → 能说出"我画过XX板子,了解走线规则"
1.2 软硬件结合的优势
只会写代码的嵌入式工程师很多,既会写驱动又能画板的少。软硬结合是核心竞争力,尤其在小公司/创业团队,一个人就能把整个产品做出来。
1.3 工具选择
| 工具 | 特点 | 适合人群 |
|---|---|---|
| 嘉立创EDA(立创EDA) | 国产免费,内置元件库直接下单,上手快 | 新手首选 |
| Altium Designer | 行业标杆,功能强大,收费昂贵 | 专业硬件工程师 |
| KiCad | 开源免费,跨平台,社区活跃 | 开源爱好者 |
| Cadence Allegro | 高端多层板/高速信号,大厂用 | 高速PCB工程师 |
本文以嘉立创EDA标准版为例,因为对新手最友好:在线版直接打开浏览器就能用,元件库跟嘉立创商城联动,画完直接下单打样,一条龙。
二、PCB设计完整流程
需求分析 → 原理图设计 → 原理图检查 → PCB布局 → PCB布线 → 规则检查 → 输出Gerber → 打样焊接
下面逐步拆解。
三、第一步:原理图设计
3.1 原理图是什么?
原理图(Schematic)描述的是逻辑连接关系——哪个引脚连哪个引脚,不关心物理位置。
3.2 以STM32F103C8T6最小系统为例
最小系统板需要这几个部分:
1. STM32F103C8T6 主控
2. 供电电路(USB输入5V → AMS1117-3.3 → 3.3V)(AMS1117-3.3是一款LDO线性稳压器,把USB的5V降压到STM32需要的3.3V,最大输出800mA,是最常用的3.3V电源方案)
3. 时钟电路(8MHz主晶振 + 32.768kHz RTC晶振)
4. 复位电路(NRST按键 + RC复位)
5. BOOT0/BOOT1启动配置(BOOT引脚决定芯片上电后从哪里启动:BOOT0=0从Flash启动正常运行你的程序,BOOT0=1进入ISP模式可通过串口烧录。所以正常运行时BOOT0必须通过下拉电阻接地)
6. SWD下载接口(SWDIO, SWCLK, GND, 3V3)
7. LED指示灯 x 1
8. 排针引出所有IO
3.3 画原理图的操作
- 放置元件:从元件库搜索 “STM32F103C8T6”、“AMS1117-3.3”、“晶振8MHz” 等
- 连线:用导线把引脚连起来,或用网络标号(Net Label)远程连接
- 加网络标号:比如
VCC3V3、GND、SWDIO,让同名网络自动连通
3.4 原理图关键规范
电源标识要统一:
VCC3V3 → 3.3V主电源
VIN → USB输入的5V
GND → 地(统一用这个名,别一会GND一会DGND)
去耦电容必须加:
每个VDD引脚旁边放一个 100nF(0.1μF)陶瓷电容
芯片附近放一个 10μF 钽电容/电解电容(储能)
去耦电容的作用:芯片电流突变时,附近电容就近供电,避免电源轨电压跌落。不加去耦电容,芯片会莫名其妙复位或跑飞。
晶振电路:
8MHz晶振
┌─────────────┐
PD0/OSC_IN │ │ OSC_OUT/PD1
──────────┤ ├──────────
│ │
22pF └─────────────┘ 22pF
│ │ │
│ │ │
└──────────┴────────────┘
│
GND
两个22pF是晶振的负载电容,具体值看晶振Datasheet的 CL(负载电容)参数,公式:
CL = (C1 × C2) / (C1 + C2) + Cs
其中 Cs 是杂散电容(约3-5pF),一般取22pF。
四、第二步:原理图检查
4.1 ERC(电气规则检查)
画完原理图点 ERC检查,软件会报错:
- 引脚没连接(Floating)
- 电源没驱动源(Power没有Source)
- 冲突的网络
常见ERC错误及修复:
| 错误 | 原因 | 修复 |
|---|---|---|
| Net has no driving source | VCC3V3没有电源输入 | AMS1117输出端加VCC3V3标号 |
| Unconnected pin | 引脚悬空 | 加No Connect标志(×)或接GND |
| Net name conflict | 同一网络多个名字 | 统一网络标号 |
4.2 人工检查清单
- 所有VDD都接了3.3V?(STM32不能5V供电!)
- 所有VSS都接了GND?
- 每个VDD旁有去耦电容?
- BOOT0/BOOT1有下拉电阻?(BOOT0=0正常启动,=1进ISP模式)
- 复位电路有上拉电阻?
- SWD接口4根线(SWDIO/SWCLK/GND/3V3)都引出了?
- USB的D+上拉1.5kΩ?(STM32F103全速USB需要。USB协议规定全速设备要在D+上拉1.5kΩ到3.3V,电脑检测到D+为高电平就知道接了全速设备,不上拉电脑不识别)
五、第三步:PCB布局
5.1 导入PCB
原理图检查无误后,点"更新到PCB",所有元件的封装会出现在PCB编辑器里,元件之间有飞线(Rat’s Nest)表示连接关系。
5.2 布局原则
原则1:按功能模块分区
┌──────────────────────────────────┐
│ USB AMS1117 滤波电容 │ ← 电源区(左上)
│ 接口 │
├──────────────────────────────────┤
│ STM32F103C8T6 │ ← 主控区(中心)
│ ┌──────────┐ │
│ │ 晶振 去耦 │ │
│ │ 电容 │ │
│ └──────────┘ │
├──────────────────────────────────┤
│ SWD接口 BOOT跳线 LED │ ← 调试区(下方)
├──────────────────────────────────┤
│ 排针引出IO │ ← 接口区(边缘)
└──────────────────────────────────┘
原则2:先大后小
先放主控、接插件等大件定位,再放小元件(电阻电容)
原则3:去耦电容靠近引脚
100nF去耦电容尽可能靠近芯片VDD引脚,走线越短越好。这是新手最常犯的错误——电容放得离芯片八丈远,等于没加。
正确:
VDD ──┬── 芯片VDD
│
100nF ← 紧贴引脚
│
GND
错误:
VDD ──────────────── 芯片VDD
│
100nF ← 太远了,没用!
│
GND
原则4:晶振靠近主控
晶振走线要短,远离大电流/高频干扰源。晶振下方地平面不要走信号线。
原则5:接口放边缘
USB、SWD、排针等接插件放在板子边缘,方便插拔。
5.3 布局检查
- 元件不要重叠
- 飞线不要乱成一团(飞线乱说明布局不合理,调整元件位置让飞线短而顺)
- 焊盘间距足够(手工焊接至少留0.5mm间距)
六、第四步:PCB布线
6.1 基本规则
线宽规则:
| 用途 | 线宽 | 原因 |
|---|---|---|
| 信号线 | 6-10mil(0.15-0.25mm) | 够用就行 |
| 电源线(小电流) | 15-20mil | 减小压降 |
| 电源线(大电流>500mA) | 30-40mil或更粗 | 避免发热 |
| 电源主干/USB 5V | 20-30mil | — |
1mil = 0.0254mm。嘉立创EDA默认单位是mil,新手可以改成mm。
过孔规则:
内径:0.3mm(12mil)
外径:0.6mm(24mil)
过孔不要随便打,每个过孔都有寄生电感和电阻。
6.2 布线优先级
1. 电源线(先走,要求粗线)
2. 关键信号(晶振、USB D+/D-、高速SPI)
3. 普通信号线
4. 地线(最后用覆铜处理)
6.3 布线要点
电源走主干:
USB 5V ──粗线── AMS1117输入
│
AMS1117输出 ──粗线── 3V3主干 ── 各处用电
晶振走线:
- 晶振两根线(OSC_IN/OSC_OUT)尽量短、直、等长
- 晶振周围不要走其他信号线
- 晶振下方覆GND,不要走线
USB D+/D-差分线:
- D+ 和 D- 要平行走线,尽量等长
- 阻抗90Ω(差分阻抗)
- 新手板子速度不高,大致平行就行
避免直角走线:
正确: 错误:
──┐ ──┐
│ │ ← 直角
│ │
└── └──
(45度或圆角) (直角,信号反射/EMI问题)
嘉立创EDA默认就是45度,不用手动改。
6.4 覆铜(铺地)
布线完成后,顶层和底层都覆GND铜。大面积覆地的好处:
- 降低地线阻抗
- 屏蔽干扰(EMC)
- 散热
覆铜后记得:
- 设置覆铜间距(推荐0.5mm / 20mil)
- 检查孤岛铜(孤立的铜皮要删掉或加GND过孔连接)
- 执行"覆铜重建"
七、第五步:DRC检查与输出
7.1 DRC(设计规则检查)
DRC检查物理制造可行性:
- 线宽是否太细(最小6mil)
- 间距是否太小(最小6mil)
- 过孔是否太小(最小内径0.3mm)
- 焊盘是否重叠
嘉立创打样要求:最小线宽6mil、最小间距6mil、最小孔径0.3mm。新手按这个标准来,肯定能生产。
DRC必须0错误才能下单! 有错误就逐个修复。
7.2 输出Gerber
Gerber文件是PCB工厂识别的标准格式。嘉立创EDA点"导出 → Gerber",会生成一组文件:
board.GTL ← 顶层铜
board.GBL ← 底层铜
board.GTS ← 顶层阻焊
board.GBS ← 底层阻焊
board.GTO ← 顶层丝印
board.GBO ← 底层丝印
board.GKO ← 板框
board.TXT ← 钻孔
嘉立创EDA可以直接"一键下单",自动上传到嘉立创工厂,不用手动导Gerber。
八、打样参数选择
嘉立创下单页面参数说明:
| 参数 | 推荐选择 | 说明 |
|---|---|---|
| 板材 | FR-4 | 标准玻纤板,够用 |
| 层数 | 2层 | 新手用双层板足够 |
| 板厚 | 1.6mm | 标准厚度 |
| 数量 | 5片 | 首次打样5片够测了 |
| 铜厚 | 1oz | 标准铜厚 |
| 表面处理 | HASL(喷锡) | 便宜,手工焊接友好 |
| 颜色 | 绿色 | 标准色,免费 |
| 阻焊覆盖过孔 | 是(过孔盖油) | 防止焊接短路 |
嘉立创5片双层板打样只要5元(首单免费),新手多打几板练手不心疼。
九、焊接与调试
9.1 焊接顺序
1. 先焊低矮元件(电阻、电容、二极管)
2. 焊IC(STM32注意方向!引脚1对准PCB丝印1脚)
3. 焊接电源部分(AMS1117、USB座)
4. 通电测电源(3.3V对不对?短路没?)
5. 焊接主控(确认电源OK再焊主控)
6. 焊接接口(SWD、排针)
先焊电源,测好3.3V再焊主控! 不然电源有问题会烧主控。
9.2 上电调试步骤
第一次上电——测电源:
- 万用表打到蜂鸣档,测3.3V和GND是否短路 → 必须不通
- USB上电,万用表测3.3V引脚 → 应为3.3V±5%
- 摸AMS1117和主控 → 不应该烫手(烫=短路,立即断电)
第二步——SWD下载:
- 连接ST-Link:SWDIO→SWDIO, SWCLK→SWCLK, GND→GND, 3V3→3V3
- Keil/CubeIDE下载一个LED闪烁程序
- 能下载 = 主控供电+晶振+SWD都OK
第三步——功能测试:
- LED闪烁了吗?
- 串口能输出吗?
- 外设逐个验证
9.3 常见调试坑
| 现象 | 可能原因 | 排查方法 |
|---|---|---|
| 上电就烫 | 电源短路 | 万用表测各电源对地电阻 |
| 3.3V偏低 | AMS1117焊反/输入5V不对 | 测AMS1117输入输出电压 |
| SWD连不上 | SWDIO/SWCLK接错或虚焊 | 万用表通断档测连通 |
| 下载成功但不运行 | BOOT0没下拉/晶振没起振 | 测BOOT0=0, 示波器看晶振波形 |
| 串口乱码 | 波特率不对/晶振频率不对 | 检查晶振8MHz是否正确 |
十、新手避坑总结
10.1 原理图阶段
- STM32的VDDA(模拟电源)别忘了接3.3V,VSSA接GND,否则ADC不能用
- VBAT接3V3(不用RTC电池也接,否则RTC不工作)
- BOOT0下拉10kΩ到GND,否则上电进ISP模式不运行用户程序
- USB的D+上拉1.5kΩ到3V3,否则电脑识别不了设备(原因同上:USB协议要求全速设备D+上拉1.5kΩ,电脑靠这个识别设备类型)
10.2 PCB阶段
- 去耦电容必须紧贴VDD引脚——这是最重要的规则
- 电源线要粗,别用6mil走电源
- 不要大面积走线穿过芯片底部
- 晶振远离USB和开关电源
- 覆铜后检查有没有孤岛
10.3 生产阶段
- DRC必须0错误
- 丝印不要压焊盘(影响焊接)
- 板框必须是闭合的(不闭合工厂无法识别外形)
- 下单前预览3D图,检查元件方向、丝印位置
十一、进阶:什么时候需要4层板?
2层板能满足大多数新手需求。以下情况建议4层板:
| 场景 | 原因 |
|---|---|
| 主控BGA封装 | 引脚太密,2层走不出来(BGA=Ball Grid Array球栅阵列封装,引脚是芯片底部的锡球,排列密集,焊接和走线都极难,新手遇不到) |
| 高速信号(USB 2.0 480Mbps、以太网) | 需要完整地平面做阻抗控制 |
| 大量模拟信号 | 需要独立模拟地平面 |
| EMC认证产品 | 地平面屏蔽效果好 |
4层板典型叠层:
Top(信号层)
GND(完整地平面) ← 关键!
VCC(电源平面)
Bottom(信号层)
4层板成本约50元/5片(嘉立创),比2层贵10倍,新手别用4层练手,先把2层玩明白。
十二、嘉立创EDA实操速查
| 操作 | 快捷键/方法 |
|---|---|
| 放置元件 | 元件库搜索 → 拖到原理图 |
| 连线 | W键 |
| 网络标号 | N键 |
| 更新到PCB | 设计 → 更新到PCB |
| 布线 | 布线工具 → 点焊盘开始 |
| 覆铜 | 覆铜工具 → 框选区域 → 选GND网络 |
| DRC检查 | 设计 → 规则检查 |
| 一键下单 | 制造 → PCB一键下单 |
十三、写在最后
作为嵌入式软件工程师,PCB设计不需要你画多层高速板,但至少要会:
- 看懂原理图,知道信号怎么走
- 画一块最小系统板/转接板
- 理解去耦电容、地平面、走线粗细的意义
- 独立完成打样、焊接、调试全流程
建议新手的第一块板子:STM32F103C8T6最小系统板。嘉立创EDA有现成模板,跟着画一遍,5块钱打样,2天到货,焊好能下载程序——这个成就感是看100篇教程都替代不了的。
我的第一块板子就是STM32最小系统板,第一次上电LED亮起来的时候,那种"我自己设计硬件跑起来了"的激动,至今记得。
软硬结合,才是嵌入式工程师的完整形态。
相关文章推荐:
作者:嵌入式阿蔡 | 一枚准大四的嵌入式菜鸟,正在打牢基础,记录成长

8万+

被折叠的 条评论
为什么被折叠?



