自己画一块 PCB 板,听起来很专业?其实 KiCad 这个免费开源工具让这件事变得相当亲民。从原理图到 Gerber 文件,全程零成本。今天我们就用一块 ESP32 扩展板做实战案例,带你走完 PCB 设计的完整流程。
为什么选 KiCad?
做硬件的应该都听过 Altium Designer 和 Eagle,但它们要么贵得离谱,要么功能受限。KiCad 的优势很直接:
- 完全免费开源,没有功能阉割
- 跨平台,Windows / macOS / Linux 通吃
- 社区活跃,插件和元件库越来越丰富
- 专业级能力,多层板、差分对、阻抗控制都支持
很多创业团队和产品就是从 KiCad 起步的,你不需要等到"有预算了"才学 PCB 设计。
硬件清单
| 物料 | 型号/规格 | 参考价格 | 用途 |
|---|---|---|---|
| KiCad 软件 | v8.x(免费) | ¥0 | PCB 设计工具 |
| ESP32-WROOM-32 模块 | 38 引脚 | ¥12~18 | 主控模块 |
| 0805 电阻电容 | 10kΩ / 100nF / 10μF | ¥2/包 | 去耦和上拉 |
| USB Type-C 接口 | 16 引脚 SMD | ¥1.5 | 电源和编程 |
| AMS1117-3.3 | SOT-223 封装 | ¥0.5 | 3.3V 稳压 |
| LED 0805 | 红色/绿色 | ¥0.1/个 | 状态指示 |
| 排针 | 2.54mm 单排 2×20 | ¥1 | 扩展接口 |
总计:约 ¥20~30(不含 PCB 打样费用)
第一步:安装 KiCad 和元件库
# Ubuntu / Debian
sudo apt update && sudo apt install kicad
# macOS (Homebrew)
brew install --cask kicad
# Windows
# 从 https://www.kicad.org/download/ 下载安装包
安装完成后,打开 KiCad,第一件事是确认元件库已加载:
Preferences → Manage Symbol Libraries → 确认 "kicad:symbols" 已连接
Preferences → Manage Footprint Libraries → 确认 "kicad:footprints" 已连接
KiCad 8 自带了非常完整的官方库,大部分常用元件都能直接找到,不需要额外下载。
第二步:绘制原理图
新建项目,进入 Eeschema(原理图编辑器)。先设置页面大小和标题块:File → Page Settings,选择 A4 或 A3,然后在 File → Set Page Settings 中填写项目名称、作者等信息,这样导出的 PDF 原理图看起来更专业。
放置核心元件
-
按
A打开元件选择器,搜索并放置:ESP32_WROOM_32(在module库中)AMS1117-3.3(在regul_linear库中)C_Small、R_Small、LED(通用库)USB_C_Receptacle_USB2.0(在connector库中)CH340C(USB 转串口芯片,可选,用于调试)
-
按
W连线,连接关键网络:- USB 5V → AMS1117 输入
- AMS1117 输出 3.3V → ESP32 VIN 和 3V3 引脚
- ESP32 的 EN 引脚通过 10kΩ 上拉到 3.3V
- GPIO0 通过 10kΩ 上拉 + 按键接地(用于进入烧录模式)
- CH340C 的 TXD → ESP32 RXD,RXD → ESP32 TXD(串口通信)
原理图绘制技巧
- 快捷键优先:
A添加元件、W连线、M移动、R旋转、L放置标签、P放置电源标志。用快捷键比鼠标快三倍 - 标签代替连线:对于跨区域的同名信号(如 GND、3V3),用网络标签(
L键)代替实际连线,原理图更清爽 - 层次化设计:如果电路复杂,用
Add Hierarchical Sheet把电源部分、主控部分、接口部分拆成子图,方便管理 - ERC 检查:画完原理图后运行
Tools → Electrical Rules Checker,检查电气规则错误,比如悬空的电源引脚
电源树设计
一个清晰的电源树能让你的原理图易读很多:
USB 5V ──→ AMS1117-3.3 ──→ 3.3V 网络
├── ESP32 3V3
├── 去耦电容 100nF × 3
└── LED 指示电路
在 KiCad 中用 电源标志(P 键) 标注 +5V、+3.3V 和 GND,这比画一堆连线更清晰。电源标志是全局的,放在任何位置的 +3.3V 标志都会自动连接在一起。
注意:ESP32 的功耗在 Wi-Fi 发射时可达 500mA,所以 AMS1117-3.3 的散热要重视。可以在 PCB 上给 AMS1117 的散热焊盘多铺铜,或者在原理图中加一个 10μF 的输入滤波电容,防止电压跌落导致重启。
第三步:分配封装(Footprint)
原理图画完,按 Ctrl+F8 打开 Footprint 分配器。这一步决定了元件在 PCB 上的物理尺寸。
| 元件 | 推荐封装 | 说明 |
|---|---|---|
| ESP32-WROOM-32 | Module:ESP32-WROOM-32 |
官方模块封装 |
| AMS1117-3.3 | Package_TO_SOT_SMD:SOT-223 |
标准 SOT-223 |
| 电阻 0805 | Resistor_SMD:R_0805_2012Metric |
常用贴片尺寸 |
| 电容 0805 | Capacitor_SMD:C_0805_2012Metric |
与电阻同尺寸 |
| USB Type-C | Connector_USB:USB_C_Receptacle_USB2.0_Type-C-Plugin_16pin |
注意确认引脚间距 |
| LED | LED_SMD:LED_0805_2012Metric |
贴片 LED |
经验之谈:0805 封装对新手最友好,手焊也能搞定。别一上来就挑战 0402,除非你打算用回流焊。
第四步:PCB 布局和布线
按 F8 从原理图跳转到 Pcbnew(PCB 编辑器),先执行 Tools → Update Footprints from Schematic 同步所有更改。
布局原则
- 先放接口,再放核心芯片:USB 接口和排针先定位,它们的位置决定了板子外形。接口位置不对,后面整个板子都要重新排
- 电源部分靠近输入:AMS1117 和滤波电容放在 USB 接口旁边,缩短大电流路径,减少电压降
- 去耦电容紧贴芯片电源引脚:100nF 电容尽量靠近 ESP32 的 3V3 引脚,走线越短越好。去耦电容离芯片远了就失去去耦效果,这是新手最常犯的错误
- 信号线走向清晰:从芯片出发,按功能分区排列。模拟信号和数字信号分开区域,避免互相干扰
- 天线区域留空:ESP32 的板载天线周围 5mm 范围内不要放元件和铜皮,否则信号会衰减 10dB 以上
板子外形设置
在 Edge.Cuts 层绘制板子轮廓。可以用 KiCad 的绘图工具画矩形,或者导入 DXF 文件。对于 ESP32 扩展板,推荐尺寸 50×30mm,四个角各放一个 3mm 的安装孔。
安装孔的放置技巧:在 Edge.Cuts 层画圆,然后在 F.SilkS 层画十字丝印标注孔位。别忘了在钻孔文件中包含这些孔。
布线规则设置
在 Design Rules → Classes 中设置:
| 网络类 | 走线宽度 | 过孔尺寸 | 用途 |
|---|---|---|---|
| Power | 0.5mm (20mil) | 0.8/1.6mm | 电源线和地线 |
| Signal | 0.25mm (10mil) | 0.4/0.8mm | 普通信号线 |
| Diff Pair | 0.2mm (8mil) | 0.3/0.8mm | 差分信号(如有) |
布线技巧
- 地线优先:先铺一条粗的地线网络,再走信号线。地线是所有信号的参考,地线设计不好,整个板子的信号质量都会受影响
- 避免 90° 拐角:KiCad 默认用 45° 拐角,保持默认就好。90° 拐角在高频时会产生阻抗突变,虽然对低速电路影响不大,但养成好习惯很重要
- 电源线加粗:至少 0.5mm,大电流用 1mm 以上。ESP32 的电源线建议 0.6mm 以上,Wi-Fi 发射瞬间电流可达 500mA
- 信号线等长:对于高速信号(如 SPI),尽量让正负信号线长度一致。长度差控制在 5mm 以内
- 过孔数量控制:每个过孔增加约 0.1Ω 阻抗和寄生电感,能不走就不走。过孔多了不仅增加成本,还会引入信号完整性问题
- 走线避免平行:相邻层的信号线尽量垂直走线,减少层间耦合。如果必须平行,加大间距或中间夹地线
ESP32 扩展板布线要点
ESP32 模块的引脚排列比较密集,布线时需要特别注意:
- GPIO 排针布局:把常用 GPIO(如 GPIO2、GPIO4、GPIO15、GPIO16-19、GPIO21-23、GPIO25-27、GPIO32-39)引出到排针,不常用的(如 GPIO0、GPIO5、GPIO12-14)可以不引出
- SPI Flash 引脚:ESP32 内部的 SPI Flash 占用了 GPIO6-11,这些引脚不要引出,会导致启动失败
- ADC 引脚注意:GPIO32-39 是 ADC 通道,如果用于模拟信号采集,走线要远离数字信号线,并在 ADC 输入端加 100nF 去耦电容
- LED 限流电阻:状态指示 LED 串联 220Ω~470Ω 电阻,计算方式:R = (3.3V – LED压降) / 10mA
铺铜(Polygon)
布线完成后,用 B 键添加 铺铜层:
- 选择底层(Bottom Layer)
- 网络选择
GND - 勾选 "Keepout" 区域避免短路
- 点击确定,铺铜会自动填充所有空白区域
铺铜的作用:
- 提供低阻抗接地平面,降低地线噪声
- 帮助散热,特别是电源芯片和功率元件周围的铺铜
- 减少电磁干扰(EMI),铺铜相当于一个屏蔽层
- 提高 PCB 强度,减少弯曲变形
铺铜技巧:
- 顶层和底层都铺铜,并通过多个过孔连接(每隔 2~3cm 打一个地过孔)
- 铺铜和走线之间的间距(Clearance)设为 0.2mm
- 在高频信号线周围铺铜并接地,形成"保护地线",减少串扰
- 铺铜填充模式选 "Hatch"(网格状)可以减少热应力,适合手工焊接;选 "Solid"(实心)导电性更好
第五步:DRC 规则检查
布线完成别急着导出,先跑一遍 DRC:
Tools → Design Rules Checker → 勾选所有检查项 → 运行
常见 DRC 报错及解决:
| 报错 | 原因 | 解决方法 |
|---|---|---|
| Clearance violation | 走线间距太小 | 拉大间距或调整走线 |
| Unconnected items | 有未连接的引脚 | 检查原理图连线是否遗漏 |
| Drill size error | 过孔尺寸不合理 | 调整过孔直径 |
| Silk overlap | 丝印层与焊盘重叠 | 移动丝印文字位置 |
DRC 全部通过后,你的板子才算"能生产"。
第六步:导出 Gerber 文件
File → Fabrication Outputs → Gerber
勾选以下图层:
- Copper layers: F.Cu, B.Cu
- Mask layers: F.Paste, B.Paste
- Silk layers: F.SilkS, B.SilkS
- Mask layers: F.Mask, B.Mask
- Edge cuts: Edge.Cuts(板子轮廓)
- Drill files: 勾选 "Excellon" 格式
导出后,把 Gerber 文件和钻孔文件打包上传到嘉立创、捷配等 PCB 打样平台。
费用参考:5×5cm 双层板,5 片,嘉立创约 ¥15~30(不含运费),5~7 天交货。
常见问题排查
Q: 原理图编译报错 "Power input pin not connected"
这是 KiCad 的电源标志连接问题。确保所有电源引脚(VCC、GND)都通过电源标志或连线正确连接。可以用 Tools → Electrical Rules Checker 单独检查电气规则。有时候元件库中的电源引脚被标记为 "Power input" 类型,但没有连接到电源网络,ERC 就会报错。解决方法是在该引脚附近放置对应的电源标志。
Q: PCB 中找不到某个元件的封装
搜索库时试试用关键词模糊匹配。如果确实没有,可以用 Footprint Editor 自己画一个。对于标准封装(如 0805、SOT-223),KiCad 库里一定有的,只是名字不太直观。比如 SOT-223 的封装路径是 Package_TO_SOT_SMD:SOT-223,不在 "SOT-223" 这个显眼的位置。
Q: 铺铜后 DRC 报大量短路
铺铜前确保 "Clearance" 设置正确(通常 0.2mm)。检查是否把铺铜网络设成了和相邻走线相同的网络。另一个常见原因是铺铜区域包含了没有连接到地的焊盘,铺铜会自动连到这些焊盘上导致短路。解决方法是在铺铜属性中勾选 "Don’t allow copper on this layer" 排除特定区域。
Q: 打样回来的板子焊不上元件
大概率是封装尺寸不对。下单前用 KiCad 的 3D 视图(3 键)检查元件尺寸,或者在嘉立创的预览工具中核对。常见错误:把 0603 封装当成 0805 用,或者 USB Type-C 的焊盘间距和实际元件不匹配。建议第一次打样前,先用实物元件在屏幕上对比封装尺寸。
Q: 信号完整性不好,通信不稳定
检查以下几点:
- 信号线是否太长(SPI/I2C 建议 <10cm)
- 地线是否够粗、铺铜是否完整
- 去耦电容是否紧贴芯片
- 电源和信号是否共用同一条细走线
- 高速信号是否远离模拟信号区域
Q: ESP32 板子频繁重启
这是电源问题,不是 PCB 设计问题。检查:
- AMS1117 的输入输出电容是否足够(输入 10μF + 100nF,输出 10μF + 100nF)
- USB 线是否太细(用 22AWG 以上的线)
- 电源走线是否太细(至少 0.5mm)
- 是否在 Wi-Fi 发射时电压跌落超过 0.2V
进阶建议
等你熟悉了两层板的设计,可以尝试:
- 四层板:增加 GND 和 Power 内层,信号完整性大幅提升。嘉立创四层板 5×5cm 约 ¥50/5片,比想象中便宜
- 阻抗控制:对 USB、以太网等高速信号设置阻抗匹配。USB D+/D- 需要 90Ω 差分阻抗,KiCad 的
Calculator → Transmission Line工具可以帮你算线宽 - 3D 预览:KiCad 的 3D 视图(按
3键)能帮你提前发现机械干涉问题。可以导入 STEP 模型,检查外壳是否合得上 - 版本管理:用 Git 管理 KiCad 项目文件。KiCad v6+ 的项目文件是纯文本格式(.kicad_sch、.kicad_pcb),可以直接用 Git diff 查看改动
- 设计规则模板:把常用的 DRC 规则保存为模板文件,新项目直接加载,不用每次都重新设置
嘉立创打样注意事项
- 最小线宽/线距:嘉立创标准工艺是 0.15mm(6mil),别设太细,否则良率下降
- 最小钻孔:0.3mm,小于这个尺寸需要加钱选特殊工艺
- 阻焊颜色:绿色最便宜,黑色/白色/红色通常加 ¥5~10
- 拼板:如果板子小,可以让嘉立创帮你拼板(V-cut 或邮票孔),一片板子出多块,单价更低
- 文件检查:上传 Gerber 后用嘉立创的 DFM 检查工具预览,确认无误再下单
总结
KiCad 的学习曲线其实比想象中平缓。第一块板子可能会花一整天,但熟悉了流程之后,半天就能搞定一块简单的扩展板。关键是把流程拆清楚:原理图 → 封装分配 → 布局 → 布线 → DRC → 导出 Gerber。每一步都有明确的检查点,做完一步确认无误再进下一步,比一口气画完再回头改效率高得多。
给新手的三条建议:
- 别追求完美:第一块板子能点亮就成功。布线不漂亮、元件排得不整齐,都不影响功能。先跑通全流程,再追求细节
- 多参考别人的设计:KiCad 社区有很多开源项目,下载它们的原理图和 PCB 文件,看看别人怎么布局布线。GitHub 上搜 "kicad" 能找到大量参考设计
- 打样不怕错:五片板子才十几块钱,做坏了就当交学费。比买现成开发板还便宜,而且你能学到整个设计流程
PCB 设计是一项"做了就值"的技能。哪怕你只是画一块简单的转接板,理解了布局布线的逻辑之后,再看别人的硬件产品,眼光都会不一样。
希望这篇博客文章对您有所帮助!