开源 EDA 工具 KiCad 6.0 电路设计小书

对于国内的中小型电子企业而言,AllegroPadsAltium Designer 等商业 EDA 工具的授权费用过于昂贵,且大部分只提供 Windows 操作系统版本,缺乏相应的跨平台支持。在电子信息技术行业版权问题充分受到重视的今天,一款易于使用并且受到厂商广泛支持的开源 EDA 工具,对于硬件电子工程师而言尤为重要。本文介绍的 KiCad 就是一款基于 GNU GPL v3 开源许可协议的跨平台 EDA 电子设计自动化工具集,其能够处理多达 32 个铜层、14 个技术层、4 个辅助层的 PCB 电路板,并且生成加工制造所需要的网表物料清单光绘文件钻孔文件元件放置文件

自 2018 年 07 月 22 日发布 KiCad 5.0 版本以后,历经了三年时间,终于在 2021 年 12 月 25 发布了全新的 KiCad 6.0 版本,新版本采用了全新的用户交互界面,带来全新原理图编辑器PCB 编辑器3D 查看器的同时,还增加了更为丰富的 DRC 设计规则约束,并且提供了对于中文语言的良好支持。全文最早基于 5.0 版本写作,鉴于官方已经升级至功能更为完善的 6.0 版本,所以基于官方新版的 《Getting Started in KiCad》 对本文进行了全面的重写。

KiCad 6 简介

本文涉及的 KiCad 工程源文件,已经全部共享至笔者的 Github 项目 Abrams,欢迎大家 Clone 或者 Fork。类似于其它的 EDA 电子设计自动化工具,KiCad 同样将 PCB 电路板的绘制过程划分为原理图Schematic [skiːˈmætɪk],电路的符号表示)与电路板PCB,Printed Circuit Board,原理图的物理实现)两个部分,并且分别提供了独立的原理图/符号编辑器,以及电路板/封装编辑器

  1. 首先,采用 KiCad 原理图编辑器绘制原理图,即在原理图当中添加符号并且绘制连接,同时为每个元件指派或者创建封装。在通过 ERC 电气规则检查之后,就可以将其更新至电路板编辑器
  2. 然后,运用 KiCad PCB 编辑器进行元件封装的物理布局与布线,这个过程当中需要特别注意 SI 信号完整性相关的问题。在通过 DRC 设计规则检查之后,就可以交付给工厂进行生产制造输出;

注意KiCad原理图编辑器PCB 编辑器之间可以进行双向的同步更新,即支持交互式布线功能;

创建工程

运行 KiCad 之后,就会打开工程文件管理窗口,鼠标选择菜单栏的【文件 ➞ 新建工程】或者直接按下快捷键【Ctrl + N】,浏览至希望保存工程的位置,并且将工程命名为 uinio,然后鼠标点击【保存】:

此时 KiCad 就会自动在工程目录当中,分别创建后缀名为 .kicad_pro(工程)、.kicad_sch(原理图)、.kicad_pcb(电路板) 的三个源文件:

除此之外,KiCad 还会自动生成一个用于工程备份的 -backups 目录,可以通过鼠标选择菜单栏的【偏好设置 ➞ 偏好设置】或者直接按下快捷键【Ctrl + ,】,打开【偏好设置】对话框,设置工程自动备份的规则:

调整配色方案

下载 kicad-color-schemes 到本地,解压之后得到一系列的配色方案,这里选择笔者比较喜欢使用的 behave-dark 配色方案,拷贝该目录当中的 behave-dark.jsonbehave-dark_footprints.json 文件至目录 C:\Users\用户名\AppData\Roaming\kicad\6.0\colors,然后重新启动 KiCad,分别在原理图编辑器PCB 编辑器当中,鼠标选择菜单栏上的【偏好设置 ➞ 偏好设置】或者按下快捷键【Ctrl + ,】,打开【偏好设置对话框】里的【颜色】菜单,将配色主题设置为Behave Dark

对于其它的操作系统,可以参考 kicad-color-schemes 工程自述文件当中的说明,拷贝 .json 配色文件至相应的目录:

  • Linux~.config/kicad/6.0/colors
  • macOS: 用户 Home 主目录 + /Library/Preferences/kicad/6.0/colors
  • Windows 10: C:\Users\username\AppData\Roaming\kicad\6.0\colors,即 %APPDATA%\kicad

原理图编辑

符号库表设置

首次打开 KiCad原理图编辑器时,会出现【配置全局符号库表】对话框,即指定原理图符号库文件 sym-lib-table 的存储位置,如果当前已经安装了默认库,那么可以选择默认的选项【复制默认全局符号库表】(把安装目录下的 sym-lib-table 文件复制一份至用户目录):

如果 KiCad 在默认的位置找不到 sym-lib-table 符号库文件,则上述的默认选项将会被禁用。这种情况下,应当选择第 2 个选项【复制自定义全局符号库表】,然后分别浏览到当前操作系统的如下目录,手动的选择 sym-lib-table 文件:

  • Linux/usr/share/kicad/template/
  • macOS: /Applications/KiCad/KiCad.app/Contents/SharedSupport/template/
  • Windows: KiCad\share\kicad\template

原理图编辑器基础

通过 KiCad原理图编辑器打开 uinio.kicad_sch 原理图文件之后,可以通过【鼠标中键】或者【鼠标右键】平移原理图,或者使用按键【F1 / F2】或者【鼠标滚轮】进行放大与缩小操作:

原理图编辑器 默认勾选了【偏好设置 ➞ 鼠标和触摸板 ➞ 缩放时居中光标】,可以在用户执行缩放操作时,使得鼠标光标能够自动的在屏幕上面居中。

除此之外,还可以打开原理图编辑器当中的【偏好设置 ➞ 快捷键】菜单,由用户自定义快捷键:

原理图编辑器左侧的工具栏包含了基本的显示设置,而右侧的工具栏则包含了常用的原理图绘制工具

原理图设置

鼠标单击原理图编辑器菜单栏的【文件 → 图框设置】,对原理图相关的信息进行设置,原理图框的尺寸默认为 A4 210 × 297mm 大小,而发行日期修订标题厂商信息设置分别如下图所示:

添加原理图符号

鼠标点击工具栏右侧的【添加符号】按钮或者直接按下快捷键【A】,打开【选择符号】对话框,选择当前需要放置的原理图符号:

首先,向下滚动并且展开【Device】库,选择【LED】符号,鼠标点击【确定】按钮或者按下【回车键】,再次点击【鼠标左键】放置原理图符号:

然后,通过在【选择符号】对话框顶部过滤器内输入 R 或者 R_US 来添加一个限流电阻,并将其放置在原理图当中:

最后,再放置一个 Battery_Cell 电池符号,用于为上面添加的 LED 供电:

选择和移动符号

原理图编辑器当中,如下的快捷键用于选择原理图符号:

  • 鼠标左键】是选择一个原理图符号,
  • Shift + 鼠标左键】则是选择多个符号,
  • Ctrl + Shift + 鼠标左键】移除当前选择的符号,

而如下的快捷键,则可以用于操作原理图符号:

  • R】旋转原理图符号;
  • M】移动符号(连线不会跟随移动);
  • G】拖动符号(连线同时跟随移动);
  • Del】 删除原理图符号;

将之前放置在原理图上的 3 个符号,按照下图所示的位置进行摆放:

连接原理图符号

首先,鼠标点击原理图编辑器右侧的【添加连线】按钮或者按下快捷键【W】,把原理符号按照下图所示的形式连接起来:

注意:按下快捷键【Esc】可以取消连接,或者将鼠标悬停在未连接的符号引脚上,当光标指示发生改变的时候,点击【鼠标左键】,同样可以从这个位置开始绘制连线

接下来,为了更加方便的理解原理图,需要再行添加电源符号接地符号,鼠标左键点击原理图编辑器右侧的【添加电源端口】按钮或者按下快捷键【P】,打开【选择电源符号】对话框:

然后,分别向原理图当中添加一个 VCC 和一个 GND 符号,再使用连线将其连接至刚才的电路:

最后,在发光二极管电阻器之间的导线上添加网络标签,鼠标左键点击原理图编辑器左侧的【添加网络标签】按钮或者按下快捷键【L】,放置过程当中需要让标签的方形连接点连线重叠:

注意:相同名称的标签电源符号表示相互之间是连接在一起的,即使它们在视觉上没有连接关系。

位号 / 符号属性 / 封装

位号是每一个原理图符号的唯一标识,鼠标点击原理图编辑器顶部工具栏的【填写原理图符号位号】按钮,打开【批注原理图】对话框,并且点击【批注】按钮:

符号属性是每一个原理图符号的属性值,鼠标选中原理图里的 LED 发光二管,然后按下快捷键【E】或者选择鼠标右键菜单里的【属性】,打开【符号属性】对话框,将 Value 字段的 LED 修改为 Red LED 字符串,然后点击【确定】按钮:

采用同样的方法,将电阻器电池符号的 value 属性分别修改为 1k3V,修改完毕之后的原理图如下面所示:

封装用于描述原理图符号映射到电路板时的物理形式,某一些原理图符号默认自带封装,而另外一些符号则需要手动进行指定。鼠标点击原理图编辑器顶部工具栏的【运行封装分配工具】按钮,打开【关联封装】对话框:

分别为当前原理图当中的符号,选择如下对应的封装规格,然后点击【确定】按钮完成封装分配:

  • 电池Battery:BatteryHolder_Keystone_1058_1x2032
  • 电阻Resistor_THT:R_Axial_DIN0309_L9.0mm_D3.2mm_P12.70mm_Horizontal
  • 发光二极管LED_THT:LED_D5.0mm

筛选封装的过程当中,要善于利用对话框顶部的【封装筛选器】功能,它们分别是:

  • 筛选封装列表;
  • 引脚数量 筛选封装列表;
  • 符号中定义的封装筛选器 筛选封装列表;

注意:除此之外,也可以选择在原理图符号的【符号属性】对话框直接分配封装。

ERC 电气规则检查

通常会在原理图设计的最后阶段,执行一次电气规则检查ERC,Electrical Rules Check),鼠标点击原理图编辑器顶部的【执行电气规则检查】按钮,打开【电气规则检查 (ERC)】对话框,然后点击【运行 ERC】按钮执行检查:

可以看到,通过 ERC 电气规则检查器,KiCad 发现了两处错误。用鼠标选中错误信息,KiCad 就会自动定位至原理图当中的报错位置。这个 输入电源引脚不受任何输出电源引脚驱动 错误在初次上手 KiCad 的时候比较常见,需要添加原理图符号库当中的 PWR_FLAG 符号,显式的将 VCCGND 标注为电源引脚,并且重新分配位号运行 ERC 检查。正常情况下 KiCad 将不会再提示错误信息,最终获得的原理图如下面所示:

虽然 KiCad 提供的 ERC 电气规则检查器,无法确保原理图设计能够正常工作,但是仍然可以检查出一些常见的问题。具体的 KiCad 电气检查规则,可以通过鼠标点击原理图编辑器菜单栏的【文件 ➞ 原理图设置】:

然后,打开【原理图设置】对话框下的【电气规则】菜单项进行查看:

BOM 物料清单

最后一个可选的步骤是生成物料清单BOM,Bill Of Material),鼠标点击原理图编辑器顶部工具栏的【生成当前原理图的 BOM】按钮,打开【BOM (物料清单)】对话框:

选择对话框当中的 bom_csv_grouped_by_value_with_fp 脚本,然后鼠标点击【生成】按钮,此时 KiCad 就会执行如下 Python 脚本:

1
2
3
4
python
"D:\Software\Tech\KiCad\bin\scripting\plugins/bom_csv_grouped_by_value_with_fp.py"
"D:\workspace\abrams\Tutorial\uinio.xml" "D:/workspace/abrams/Tutorial/uinio.csv"
成功。

从而在当前工程所在的目录下面,生成以 .csv.xml 作为后缀名的文件,其中的 .csv 就是 BOM 文件:

电路板绘制

完成原理图的绘制工作以后,鼠标左键点击原理图编辑器顶部工具栏的【在电路板编辑器中打开 PCB】按钮,或者返回工程管理器点击【PCB 编辑器】按钮,就可以打开 PCB 电路板文件 uinio.kicad_pcb。在 PCB 编辑器当中同样可以通过【鼠标中键】或者【鼠标右键】平移原理图,或者使用按键【F1 / F2】以及【鼠标滚轮】进行放大与缩小。

PCB 编辑器的中间是用于设计电路板的编辑区,左侧工具栏是各种显示选项,而右侧工具栏则包含有 PCB 设计工具。除此之外,最右侧还有【外观】面板和【选择筛选器】面板。

PCB 设置

开始设计 PCB 电路板之前,可以先设置一些 PCB 电路板文件的信息,鼠标左键单击【文件 ➞ 图框设置】​,这里同样将 PCB 图框的尺寸设置为 A4 210 × 297mm 大小,而发行日期修订标题厂商信息设置分别如下图所示:

接下来,转到【文件 ➞ 电路板设置】定义 PCB 如何进行生产制造,这里最重要的选项是【物理压层】,这里保持默认的铜层数量为 2 层即可:

接下来,转到【设计规则 ➞ 约束】界面,这里需要根据 PCB 制造工厂的工艺规格进行相应设置,在这里我们保持默认值即可:

最后,打开【设计规则 ➞ 网络类表】界面,KiCad 可以支持基于网络类来为特定的电路网络配置设计规则:

注意:虽然可以在绘制电路板的过程当中手动管理这些约束,但是 KiCad 官方还是建议使用网络类,因为它能够自动的进行设计规则检查。

导入原理图

打开原理图编辑器顶部工具栏的【在电路板编辑器中打开 PCB】按钮或者直接按下快捷键【F8】,打开【从原理图更新 PCB】对话框,点击【更新 PCB】按钮,将之前原理图当中的设计数据导入至 PCB 编辑器

然后移动鼠标,选择的合适的位置按下【鼠标左键】,把原理图当中的 3 个元件封装放置在原理图编辑器的编辑区当中:

绘制 PCB 板框

放置好元件封装以后,就可以开始绘制 PCB 板框,绘制板框时通常需要将网格尺寸切换至 1mm,同时选中【外观】面板当中的 Edge.Cuts 层:

鼠标选择右侧工具栏当中的【绘制矩形】,围绕 3 个元件封装绘制一个闭合的矩形作为 PCB 板框:

注意:除此之外,还可以利用右侧工具栏当中提供的工具,绘制出线圆弧矩形圆形多边形,组合运用它们就能够绘制出复杂的板框形状。

元件的摆放布局

完成板框的绘制之后,接下来的工作便是对元件进行合理的摆放与布局,通常需要考虑到下面几个因素:

  • 遵循结构要求,合理的布局连接器屏幕按钮开关等接插元件;
  • 考虑信号完整性问题,例如旁路电容应当靠近关联的电源引脚,敏感的模拟元件应当远离数字信号的干扰;
  • 合理的选择将元件封装放置在 PCB 电路板的正面(Front)或者反面(Back);
  • 根据预拉线(也称为飞线,Ratsnest)的提示,元件的摆放位置要便于布线操作,相互连接的元件封装要摆放到一起;

选择 KiCad 右侧外观面板上的 F.Cu 顶层铜层,按下快捷键【M】按照下图所示移动与摆放元件封装,然后选中电池座 BT1,接下快捷键【F】将其从 F.Cu 顶层(显示为红色)翻转至 B.Cu 底层(显示为蓝色):

开始布线

完成元件封装的摆放布局之后,就可以开始着手进行布线了。首先将当前的活动层切换至 F.Cu 顶层铜层,然后点击工具栏上的【布线】按钮,或者直接按下快捷键【X】,开始连接元件封装的焊盘,布线过程当中如果按下快捷键【V】则会在鼠标停留位置添加一个连接顶层底层通孔,按下鼠标放置过孔之后,同时走线也会自动切换至 B.Cu 底层铜层,完成布线之后的 PCB 电路板如下图所示:

注意:布线过程当中,可以通过按下快捷键【W】和【Shift + W】前后切换预定义的线宽

覆铜操作

数字电路设计当中,覆铜区域通常会与 GND 或者 VCC 相互连接,从而降低地线阻抗提升抗干扰能力,或者降低电压降提升电源效率。鼠标点击右侧工具栏当中的【添加填充覆铜】或者按下快捷键【Ctrl + Shift + Z】。此时 KiCad 会自动弹出【覆铜区属性】对话框:

这里选择覆铜区所在的层为 B.Cu 底层铜层,所要连接的网络为 GND,然后点击按钮【确定】,依次选择出覆铜区域的四个角,最后双击鼠标完成覆铜区域的框选:

接着鼠标展开 KiCad 顶部菜单栏的【编辑 ➞ 填充所有覆铜】,或者直接按下快捷键【B】,对覆铜区域进行填充操作:

注意:覆铜操作之后,如果移动了元件封装,此时 KiCad 并不会自动重新进行覆铜,必须再次手动进行覆铜操作。除此之外,如果覆铜区域在视觉上比较遮挡接下来的布线操作,则可以点击左侧工具栏上的【仅显示覆铜边界】按钮,隐藏覆铜区的高亮颜色。

DRC 设计规则检查

最后,鼠标选择 KiCad 顶部工具栏的【显示设计规则检查器窗口】,点击【运行 DRC】按钮开始执行 DRC 设计规则检查:

DRC 设计规则的相关提示信息,可以在 KiCad 顶部菜单栏【文件 ➞ 电路板设置 ➞ 设计规则 ➞ 违规严重程度】的下面进行配置:

注意:当 KiCad 提示 DRC 检查的错误警告数量为 0 的时候,就完成了 PCB 电路板的全部设计过程。

查看 3D 效果

KiCadPCB 编辑器提供了一个 3D 查看器,可以用于查看 PCB 电路板的实物效果。鼠标点击顶部菜单栏的【视图 ➞ 3D 查看器】,或者直接按下快捷键【Alt + 3】,就可以实时的查看到当前 PCB 电路板的 3D 预览效果:

制造输出

完成 PCB 电路板的设计工作之后,就可以导出 Gerber 光绘文件,交付给工厂进行加工制造生产。

生成 Gerber 文件

鼠标选择 PCB 编辑器顶部菜单栏上面的【文件 ➞ 制造输出 ➞ Gebers (.gbr)】,在弹出的【绘制】对话框里,按照下图所示的选项进行设置。按下【绘制】按钮之后,生成的 Gerber 文件将会存放至当前工程的 Gerber 目录下面:

生成钻孔文件

按下【绘制】按钮生成 Geber 文件之后,再点击【绘制】对话框右下角的【生成钻孔文件】按钮,在打开的【生成钻孔文件】对话框里勾选如下设置,这里依然将生成的钻孔文件存放在当前工程的 Gerber 目录:

生成封装位置文件

鼠标选择 PCB 编辑器顶部菜单栏上面的【文件 ➞ 制造输出 ➞ 元件放置文件 (.pos)】,在弹出的【生成放置文件】对话框里进行如下设置,这里同样把生成的位置文件存放在当前工程的 Gerber 目录:

预览 Gerber 文件

使用 KiCad 提供的 Gerber 文件查看器 ,可以打开上述步骤在 Gerber 目录下生成的绘制文件钻孔文件进行预览:

生产制造文件清单

经过上述一系列的操作步骤之后,就可以将生成的这 11 个文件交付给 PCB 电路板工厂进行生产制造:

1
2
3
4
5
6
D:\Workspace\abrams\Tutorial\Gerber(master -> origin)
λ ls

uinio.drl uinio-B_Mask.gbs uinio-Edge_Cuts.gm1 uinio-F_Paste.gtp
uinio-all.pos uinio-B_Paste.gbp uinio-F_Cu.gtl uinio-F_Silkscreen.gto
uinio-B_Cu.gbl uinio-B_Silkscreen.gbo uinio-F_Mask.gts

电路板的分层

KiCad 提供的 PCB 编辑器 支持多达 49 个不同的图层,其中 32 个用于布线的铜层,以及 14 个固定用途的技术层(包含 12 个正面或背面的配对技术层以及 2独立技术层)。除此之外,还拥有 User.1 ~ User.9 一共 9 个可供用户自定义的图层,以及 User.Eco1User.Eco2User.Comments(注释层)、User.Drawings(图纸层) 这 4 个辅助层

打开 PCB 编辑器顶部菜单栏的【电路板设置】,展开【电路板压层】菜单的物理压层电路板编辑器图层,就可以对当前 PCB 电路板的分层信息进行设置:

铜层

铜层F.CuB.CuIn编号.Cu):用于放置元件与布线的常用工作层,层编号从0开始(即最前面的第 1 个铜层)到 31(即最后的第 32 个铜层)结束,由于元器件不能摆放在编号 1 ~ 30 的内层当中,因而只有 0 31 这两层属于元件层

配对技术层

12 个配对技术层总是成对出现:一个用于正面(用 F 标识),另外一个用于背面(用 B 标识),构成这些层之一的覆盖区(焊盘,绘图,文本)元素将会自动镜像,并在翻转覆盖区时移动到补充层。

  • 粘合剂层F.AdhesiveB.Adhesive):用于粘合剂涂抹,通常在波峰焊之前将贴片元件粘贴至 PCB;
  • 焊膏层F.PasteB.Paste):用于制造钢网,以方便在进行回流焊之前,在贴片元件焊盘上涂抹锡浆;
  • 丝印层F.SilkscreenB.Silkscreen):用于标识元件的层,例如元件的极性、首引脚标识、安装参考等;
  • 阻焊层F.MaskB.Mask):用于放置焊盘的层,该层不会被阻焊油覆盖;
  • 封装层F.CourtyardB.Courtyard):用于展示元件在电路板上面占用物理空间的大小;
  • 制造层F.FabB.Fab):用于记录需要传递给 PCB 电路板生产工厂的加工制造信息

独立技术层

  • 边缘切割Edge.Cuts)用于绘制电路板边框,放置在该图层上的任何元素(例如图形文本)都会出现在其它层;
  • 电气边界Margin)用于划分板框的电气边界,避免元件封装和走线被放置到板框以外;

库与库表的管理

KiCad 当中的原理图符号PCB 封装都是以的形式进行组织(即原理图符号库PCB 封装库),它们分别以原理图符号库表PCB 封装库表的形式被 KiCad 纳入进行管理,库表当中主要保存有库的名称以及所存储的磁盘位置

库表分为全局工程两种作用域,其中全局库表里的符号封装在所有工程当中共用,而工程库表当中的符号封装只对指定的工程可用,KiCad 允许用户将自定义的添加至全局库表或者工程库表当中。

原理图编辑器当中,点击顶部菜单栏的【偏好设置 ➞ 管理符号库】,就可以打开符号库的管理界面:

PCB 编辑器当中,同样点击顶部菜单栏的【偏好设置 ➞ 管理封装库】,也可以打开封装库的管理界面:

观察上图可以发现,的路径都是采用路径变量进行定义的,这样即使用户把所有移动到新的位置,只需要重新定义路径变量指向新的位置即可,KiCad路径变量可以在原理图编辑器或者PCB 编辑器顶部菜单栏的【偏好设置 ➞ 配置路径】界面进行设置:

注意:上述界面当中的{KIPRJMOD}是一个非常有用的路径变量,该变量始终指向当前的工程目录,因而可以用于指定仅用于当前工程的符号库或者封装库

通过鼠标点击 KiCad 提供的符号编辑器或者封装编辑器顶部菜单栏的【文件 ➞ 新建库】,就可以新建一个符号库或者封装库,此时两者都会弹出一个【添加到库表】对话框,询问要将该新建添加至全局库表还是工程库表

符号封装库表文件的具体存放位置,取决于当前所使用的操作系统:

  • Linux: ~/.config/kicad/6.0/sym-lib-table~/.config/kicad/6.0/fp-lib-table
  • Windows: %APPDATA%\kicad\6.0\sym-lib-table%APPDATA%\kicad\6.0\fp-lib-table
  • MacOS: ~/Library/Preferences/kicad/6.0/sym-lib-table~/Library/Preferences/kicad/6.0/fp-lib-table

自定义原理图符号

新建符号库

鼠标点击原理图编辑器顶部菜单栏的【工具 ➞ 符号编辑器】,就可以打开原理图符号编辑器对话框:

继续点击符号编辑器顶部菜单栏的【文件 ➞ 新建库】,新建一个名称为 Getting_Started.kicad_sym符号库,将其加入至【工程】库表,并且选择存放在当前的工程目录之下,此时符号编辑器左侧的【】面板就会自动刷新显示出 Getting_Started 库:

新建符号

鼠标选中左侧【】面板当中的 Getting_Started 库,再点击鼠标右键菜单当中的【新建符号】选项,新建一个符号名称为 M2011S3A1W03,默认位号为 SW单刀单掷开关SPST,Single-Pole Single-Throw):

注意:该型号为 M2011S3A1W03 单刀单掷开关的数据手册点击可以这里进行下载。

此时,这个新建的名称为 M2011S3A1W03 的原理科符号就会出现在【】面板当中,接下来就可以在 KiCad 中间的编辑区进行符号的绘制工作:

绘制符号引脚

首先点击符号编辑器右侧工具栏当中的【符号引脚】按钮,或者直接按下快捷键【P】,然后再点击编辑区弹出【引脚属性】对话框。这里设置引脚名称A引脚编号2电气类型选择为 无源方向设置为 向右X 坐标设置为-5.08Y 坐标设置为 0,最后按下【确定】按钮把引脚放置在编辑区当中:

注意:如果需要再次编辑当前选中的引脚属性,可以【鼠标双击】引脚符号,或者选择鼠标右键菜单当中的【属性】,以及直接按下快捷键【E】。

接下来直接按下键盘上的【Insert】按键,在上述引脚的右侧放置一个引脚编号3 的引脚,并将其引脚名称设置为 B引脚编号自动被赋值为 3方向设置为 向左X 坐标设置为5.08Y 坐标设置为 0

原理图符号的引脚必须放置在 1.27mm/50mil 尺寸的网格,没有与网格对齐的引脚将无法在原理图编辑器当中进行连线操作。经过上述一系列操作之后,获得的效果如下图所示:

注意:快捷键【Insert】在 KiCad 当中用于重复上一个动作,此时所添加原理图符号的编号将会自动增长。

放置其它图形

在编辑区按下鼠标右键,选择弹出菜单当中的【网格】,将符号编辑器的网格从 1.27mm/50mil 切换至更小的尺寸,以便于绘制其它的图形:

在更小的网格尺寸下,分别再绘制一个矩形圆形,使得原理图符号的形状更加接近于单刀单掷开关

注意:在完成了其它图形的绘制操作之后,务必从更小的网格尺寸切换回 1.27mm/50mil 网格。

编辑符号属性

鼠标点击符号编辑器菜单栏上的【文件 ➞ 符号属性】,或者【鼠标双击】中间的编辑区,打开【库符号属性】对话框,将关键字描述设置为 SPST Switch Toggle,点击【确定】按钮并且保存,这样就完成了原理图符号的绘制:

自定义 PCB 封装

前面完成了原理图符号的绘制工作之后,接下来着手进行 PCB 封装的绘制,同样用鼠标点击PCB 编辑器顶部菜单栏的【工具 ➞ 封装编辑器】,就可以打开 PCB 封装编辑器对话框:

继续点击封装编辑器顶部菜单栏的【文件 ➞ 新建库】,新建一个名称为 Getting_Started.pretty 的封装库,依然将其加入至【工程】库表,并且选择存放在当前的工程目录下面,此时封装编辑器左侧的【】面板就会自动刷新显示出 Getting_Started 库:

新建封装

鼠标选中左侧【】面板当中的 Getting_Started 库,再选择鼠标右键菜单当中的【新建封装】选项,设置封装名称为 Switch_Toggle_SPST_NKK_M2011S3A1x03,封装类型为通孔

点击【确定】按钮,就可以在封装编辑器的左侧【】面板当中看到这个新建的封装:

放置焊盘

这个单刀单掷开关拥有 2 个引脚,在数据手册当中的编号分别为 23,引脚之间的间距为 4.7mm。这里鼠标依次点击封装编辑器顶部菜单栏上的【视图 ➞ 网格属性】,打开【网格设置】对话框,添加一个尺寸为 4.7mm 的自定义网格:

添加好自定义网格之后,切换封装编辑器顶部工具栏上的【网格】为上面设置的 4.7mm 用户网格

接下来,鼠标点击封装编辑器右侧工具栏上的【添加焊盘】按钮,习惯上通孔封装的引脚 1 通常会位于编辑区坐标的 (0, 0) 位置(即封装左上角处),由于这个单刀单掷开关没有编号为 1 的引脚,因而只能将 (0, 0) 的位置留空,并且把焊盘 23 分别放置在 (0, 4.7mm)(0, 9.4mm) 的坐标位置:

注意:由于单刀单掷开关的引脚对角线尺寸为 1.42mm,所以需要将钻孔的尺寸设置为 1.42mm + 0.2mm = 1.62mm焊盘的尺寸设置为 1.62mm + 2 × 0.15mm = 1.92mm

观察可以发现此时的焊盘尺寸过小,因而可以将焊盘的尺寸增大至 1.62mm + 2 × 0.3mm = 2.22mm,以确保更好的固定开关元件。由于 KiCad 的许多输入框都能够直接输入数学表达式,这里分别选择焊盘 23 按下快捷键【E】修改其属性,直接将等式 1.62 + 2 * 0.3 作为焊盘的尺寸输入进去,然后按下【确定】按钮进行保存:

制作轮廓

制作封装轮廓的时候,首先会在 KiCad制造层F.Fab)绘制一个精确的真实轮廓,用于标识元件的实际尺寸;然后在丝印层F.Silkscreen)绘制一个稍大一些的丝印轮廓,用于展示元件的安装位置,而在封装层F.Courtyard)绘制一个更大的封装轮廓,用于防止与其它的封装发生重叠。

第一步,鼠标点击封装编辑器右侧外观面板当中的 F.Fab 切换到制造层,此时的轮廓必须与元件的物理尺寸精确匹配,即宽度为 7.9mm,高度为 13mm。接下来,就可以利用右侧工具栏当中提供的线圆弧圆形矩形多边形工具绘制轮廓。通过将用户网格设置为如下参数,可以实现矩形轮廓的精确放置:

  • 网格尺寸 X 和 Y 分别设置为 7.9mm13mm
  • 网格原点坐标 X 和 Y 分别设置为 7.9mm / 2 = 3.95mm4.7mm - (13mm / 2) = -1.8mm

首先,切换封装编辑器顶部工具栏上的【网格】为上面设置的用户网格;然后,在右侧【外观】面板切换至 F.Fab 制造层;最后,点击右侧工具栏当中的【绘制矩形】按钮,用鼠标拖拽出一个下图这样的矩形框:

第二步,切换到 F.Silkscreen 丝印层,因为丝印轮廓正好在真实轮廓之外,所以绘制的时候需要向外移动 0.11mm。这里同样可以通过设置如下的自定义网格参数,快速实现轮廓的精确绘制:

  • 网格尺寸 X 和 Y 分别设置为 7.9mm + 2 * 0.11mm = 8.12mm13mm + 2 * 0.11mm = 13.22mm
  • 网格原点坐标 X 和 Y 分别设置为 8.12mm / 2 = 4.06mm-1.8mm - 0.11mm = -1.91mm

依然选中右侧工具栏当中的【绘制矩形】按钮,使用鼠标在真实轮廓外面拖拽出一个类似于下图这样的矩形框:

第三步,切换到 F.Courtyard 封装层,同样由于封装轮廓正好位于丝印轮廓外侧,所以绘制时依然需要向外移动 0.25mm。这里不再利用自定义网格的方式进行精确的绘制,而是直接切换至 KiCad 预定义的 1mm 网格,使用鼠标点击【绘制矩形】按钮并大致的拖拽出一个下图这样的矩形:

接下来再选中这个矩形,选择鼠标右键菜单当中的【属性】,或者按下快捷键【E】,打开【矩形属性】对话框,分别设置该矩形起始点XY 坐标为 -4.2mm-2.05mm结束点XY 坐标为 4.2mm11.45mm,按下【确定】按钮之后,封装轮廓就会自动缩小至正确的位置:

第四步,按照下图展示的样子,重新摆放一下封装当中的文字信息,从而就完成了 PCB 封装的全部绘制工作:

注意KiCad 官方提出《KiCad Library Convention》规范用于维护高质量的原理图符号PCB 封装库。

关联符号与封装

返回到符号编辑器,打开单刀单掷开关的原理图符号,依次打开【文件 ➞ 符号属性】,打开【库符号属性】对话框,鼠标单击 Footprint 字段,选择刚才在 Getting_Started 封装库下制作的 Switch_Toggle_SPST_NKK_M2011S3A1x03 封装,完成之后再点击【确定】按钮保存配置:

从现在开始,单刀单掷开关原理图符号PCB 封装之间就建立起了关联,每次从原理图更新 PCB 时,就不需要再手动选择封装。接下来再打开原理图编辑器,将上面绘制的单刀单掷开关原理图符号添加到电路里去,并且重新进行【填写原理图符号位号】和【执行电气规则检查】的操作,最后得到的原理图如下面所示:

保存上面的原理图,然后按下【F8】键,将原理图更新到 PCB 电路板,并且删除之前的布线过孔,在【PCB 编辑器】当中重新进行布局布线覆铜设计规则检查,并且添加上丝印 UinIO.com by Hank,最后得到的 PCB 电路板如下图所示:

在【PCB 编辑器】按下快捷键【Alt + 3】打开 3D 查看器,就可以对 PCB 电路板的效果进行预览:

原理图编辑器当中的每一个符号都需要分配相应的封装,分配给每一个原理图符号的封装名称,都会被保存在【符号属性】的 Footprint 字段里面:

注意原理图符号必须指定相应的 PCB 封装,但是反过来 PCB 封装并不需要关联至原理图符号

封装的 3D 模型同样会被保存在【封装属性】的 3D 模型标签下面,KiCad 可以支持以 .step.wrl 作为后缀的 3D 模型格式,这些格式可以通过 FreeCadKiCad StepUp 两个工具进行创建:

总而言之,原理图符号PCB 封装3D 模型三者之间的关联关系可以概括为原理图符号 ➥ PCB 封装 ➥ 3D 模型,全文至此正式结束,更多关于 KiCad 使用技巧方面的内容,可以直接浏览KiCad 官方文档

插件使用问题

解决过孔栅栏生成器(Via Fence Generator) 插件找不到 pyclipper 库的问题,可以进入 KiCad 安装目录下的 D:\Software\Tech\KiCad\bin,执行 python -m pip install pyclipper 命令即可解决问题。

1
2
3
4
5
6
7
8
D:\Software\Tech\KiCad\bin

λ python -m pip install pyclipper
Collecting pyclipper
Downloading pyclipper-1.3.0.post3-cp39-cp39-win_amd64.whl (94 kB)
---------------------------------------- 94.4/94.4 kB 179.4 kB/s eta 0:00:00
Installing collected packages: pyclipper
Successfully installed pyclipper-1.3.0.post3