很多嵌入式软件工程师觉得"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 画原理图的操作

  1. 放置元件:从元件库搜索 “STM32F103C8T6”、“AMS1117-3.3”、“晶振8MHz” 等
  2. 连线:用导线把引脚连起来,或用网络标号(Net Label)远程连接
  3. 加网络标号:比如 VCC3V3GNDSWDIO,让同名网络自动连通

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 上电调试步骤

第一次上电——测电源

  1. 万用表打到蜂鸣档,测3.3V和GND是否短路 → 必须不通
  2. USB上电,万用表测3.3V引脚 → 应为3.3V±5%
  3. 摸AMS1117和主控 → 不应该烫手(烫=短路,立即断电)

第二步——SWD下载

  1. 连接ST-Link:SWDIO→SWDIO, SWCLK→SWCLK, GND→GND, 3V3→3V3
  2. Keil/CubeIDE下载一个LED闪烁程序
  3. 能下载 = 主控供电+晶振+SWD都OK

第三步——功能测试

  • LED闪烁了吗?
  • 串口能输出吗?
  • 外设逐个验证

9.3 常见调试坑

现象 可能原因 排查方法
上电就烫 电源短路 万用表测各电源对地电阻
3.3V偏低 AMS1117焊反/输入5V不对 测AMS1117输入输出电压
SWD连不上 SWDIO/SWCLK接错或虚焊 万用表通断档测连通
下载成功但不运行 BOOT0没下拉/晶振没起振 测BOOT0=0, 示波器看晶振波形
串口乱码 波特率不对/晶振频率不对 检查晶振8MHz是否正确

十、新手避坑总结

10.1 原理图阶段

  1. STM32的VDDA(模拟电源)别忘了接3.3V,VSSA接GND,否则ADC不能用
  2. VBAT接3V3(不用RTC电池也接,否则RTC不工作)
  3. BOOT0下拉10kΩ到GND,否则上电进ISP模式不运行用户程序
  4. USB的D+上拉1.5kΩ到3V3,否则电脑识别不了设备(原因同上:USB协议要求全速设备D+上拉1.5kΩ,电脑靠这个识别设备类型)

10.2 PCB阶段

  1. 去耦电容必须紧贴VDD引脚——这是最重要的规则
  2. 电源线要粗,别用6mil走电源
  3. 不要大面积走线穿过芯片底部
  4. 晶振远离USB和开关电源
  5. 覆铜后检查有没有孤岛

10.3 生产阶段

  1. DRC必须0错误
  2. 丝印不要压焊盘(影响焊接)
  3. 板框必须是闭合的(不闭合工厂无法识别外形)
  4. 下单前预览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亮起来的时候,那种"我自己设计硬件跑起来了"的激动,至今记得。
软硬结合,才是嵌入式工程师的完整形态。


相关文章推荐


作者:嵌入式阿蔡 | 一枚准大四的嵌入式菜鸟,正在打牢基础,记录成长

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐