PCB 布局布线入门:KiCad 实战,从零画出一块自己的电路板

自己画一块 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 原理图看起来更专业。

放置核心元件

  1. A 打开元件选择器,搜索并放置:

    • ESP32_WROOM_32(在 module 库中)
    • AMS1117-3.3(在 regul_linear 库中)
    • C_SmallR_SmallLED(通用库)
    • USB_C_Receptacle_USB2.0(在 connector 库中)
    • CH340C(USB 转串口芯片,可选,用于调试)
  2. 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.3VGND,这比画一堆连线更清晰。电源标志是全局的,放在任何位置的 +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 同步所有更改。

布局原则

  1. 先放接口,再放核心芯片:USB 接口和排针先定位,它们的位置决定了板子外形。接口位置不对,后面整个板子都要重新排
  2. 电源部分靠近输入:AMS1117 和滤波电容放在 USB 接口旁边,缩短大电流路径,减少电压降
  3. 去耦电容紧贴芯片电源引脚:100nF 电容尽量靠近 ESP32 的 3V3 引脚,走线越短越好。去耦电容离芯片远了就失去去耦效果,这是新手最常犯的错误
  4. 信号线走向清晰:从芯片出发,按功能分区排列。模拟信号和数字信号分开区域,避免互相干扰
  5. 天线区域留空: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 模块的引脚排列比较密集,布线时需要特别注意:

  1. GPIO 排针布局:把常用 GPIO(如 GPIO2、GPIO4、GPIO15、GPIO16-19、GPIO21-23、GPIO25-27、GPIO32-39)引出到排针,不常用的(如 GPIO0、GPIO5、GPIO12-14)可以不引出
  2. SPI Flash 引脚:ESP32 内部的 SPI Flash 占用了 GPIO6-11,这些引脚不要引出,会导致启动失败
  3. ADC 引脚注意:GPIO32-39 是 ADC 通道,如果用于模拟信号采集,走线要远离数字信号线,并在 ADC 输入端加 100nF 去耦电容
  4. LED 限流电阻:状态指示 LED 串联 220Ω~470Ω 电阻,计算方式:R = (3.3V – LED压降) / 10mA

铺铜(Polygon)

布线完成后,用 B 键添加 铺铜层

  1. 选择底层(Bottom Layer)
  2. 网络选择 GND
  3. 勾选 "Keepout" 区域避免短路
  4. 点击确定,铺铜会自动填充所有空白区域

铺铜的作用:

  • 提供低阻抗接地平面,降低地线噪声
  • 帮助散热,特别是电源芯片和功率元件周围的铺铜
  • 减少电磁干扰(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。每一步都有明确的检查点,做完一步确认无误再进下一步,比一口气画完再回头改效率高得多。

给新手的三条建议

  1. 别追求完美:第一块板子能点亮就成功。布线不漂亮、元件排得不整齐,都不影响功能。先跑通全流程,再追求细节
  2. 多参考别人的设计:KiCad 社区有很多开源项目,下载它们的原理图和 PCB 文件,看看别人怎么布局布线。GitHub 上搜 "kicad" 能找到大量参考设计
  3. 打样不怕错:五片板子才十几块钱,做坏了就当交学费。比买现成开发板还便宜,而且你能学到整个设计流程

PCB 设计是一项"做了就值"的技能。哪怕你只是画一块简单的转接板,理解了布局布线的逻辑之后,再看别人的硬件产品,眼光都会不一样。

希望这篇博客文章对您有所帮助!