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

对于国内中小型电子企业的工程师而言,Altium Designer、Pads、Allegro 等商业 EDA 工具的授权费用过于昂贵,且大部分仅提供了 Windows 操作系统版本,缺乏相应的跨平台支持。在电子行业版权问题逐步受到重视的今天,一款易使用、低成本的 EDA 工具对于广大电子工程师显得尤为重要。而 PCB 设计流程与布局布线经验超越 EDA 工具本身,如果没有丰富的元件库与封装库支持,也会面临无米难为炊的困境。

本文介绍的KiCad 是一款基于 GPL 开源许可下的跨平台 EDA 电子设计自动化工具集,能够处理多达 32 个铜层、14 个技术层、4 个辅助层的 PCB 电路板,并且生成加工制造所需要的所有文件(包括照片绘图仪的 Gerber 文件、钻孔文件、元件位置文件等),官方开源社区提供并维护了丰富的第三方库可供选用,而针对开源 EDA 工具普遍存在的自动布线功能偏弱的问题,KiCad 也通过FreeRouting提供了有力支持。文中所涉及原理图与 PCB 样图,皆已共享至笔者的 Github 项目Abrams

工具套件概述

KiCad 工具套件主要包含如下软件工具,这些工具即可以从项目管理器运行,也可以作为独立的工具软件运行:

程序名称 描述 文件扩展
KiCad 项目管理器 *.pro
Eeschema 原理图和元件库编辑器 *.sch, *.lib, *.net
Pcbnew PCB 和封装编辑器 *.kicad_pcb, *.kicad_mod
GerbView 光绘文件及钻孔文件查看 *.g*, *.drl 等
Bitmap2Component 将位图转换为元件符号或封装 *.lib, *.kicad_mod, *.kicad_wks
PCB Calculator PCB 计算器,可用于计算线宽、电气间隙、色环代码等
Pl Editor 图框编辑器 *.kicad_wks

KiCad 提供的项目管理器可以方便的在界面上运行其他工具,从而提供原理图与 PCB 编辑器之间、原理图与封装编辑器之间的交叉探测功能。所产生的.pro扩展名文件包含了当前工程的各种参数,其界面呈现效果如下:

原理图编辑器 Eeschema 会在工程中产生.sch原理图文件、.lib原理图元件库文件、.dcm原理图元件库文档、.cache.lib原理图元件库缓存文件、sym-lib-table符号库列表,其界面呈现效果如下:

PCB 编辑器 Pcbnew 会在工程里生成.kicad_pcbPCB 板文件、.pretty封装库文件夹、.kicad_mod封装文件、fp-lib-table封装库列表,其界面呈现效果如下图所示:

电路原理图绘制完成以后,接下来就会将其转换为 PCB。但是如果后期再涉及新元件的添加、封装尺寸调整、网络重命名等操作,就需要选择向前或者向后两种注解方式来完成:

  • 向前注解(Forward Annotation):将原理图映射至相应的 PCB 布局,原理图生成 PCB 之后,允许通过该操作向 PCB 发送增量的原理图修改。
  • 向后注解(Backward Annotation):将 PCB 布局的修改发送回对应的原理图,一旦在 PCB 布局期间进行了修改,则这些修改操作将会被回推至原理图。

涉及的环境变量

KiCad 通过环境变量来声明全局模板和库的位置,通常具有如下的环境变量:

  • KICAD_TEMPLATE_DIR:工程模板存放位置;
  • KICAD_SYMBOL_DIR:原理图元件库存放路径;
  • KISYSMOD:封装库存放路径;
  • KISYS3DMOD:3D 封装库存放路径;
  • KIGITHUB:远程封装库存放路径;
  • KICAD_USER_TEMPLATE_DIR:自定义模板存放路径;

上述环境变量可以通过 KiCad 工程管理界面,菜单栏上提供的【首选项 -> 配置路径...】命令来进行设置,这些设置只会作用于当前会话,并不会覆盖 KiCad 安装时写入操作系统当中的环境变量:

热键与快捷键

KiCad 拥有如下两种不同类型的快捷操作方式:

  • 快捷键(Accelerator Keys):用途与鼠标单击菜单栏、工具栏图标的效果相同,按下 【Alt + 工具/菜单栏字母】 即可完成与鼠标点选菜单类似的效果;
  • 热键(Hotkeys):执行以后将会立即在当前鼠标位置执行操作,按下键盘上的 【Ctrl + F1】 即可查询 KiCad 所提供的热键。

主界面快捷键

功能 快捷键 功能 快捷键 功能 快捷键
新建工程 【Ctrl+N】 从模板新建工程 【Ctrl+T】 打开工程 【Ctrl+O】
刷新工程目录 【Ctrl+R】 快捷键列表 【Ctrl+F1】 首选项 【Ctrl+,】
运行 Eeschema 【Ctrl+E】 运行库编辑器 【Ctrl+L】 运行 Pcbnew 【Ctrl+P】
运行封装编辑器 【Ctrl+F】 运行 Gerbview 【Ctrl+G】 运行 Bitmap2Component 【Ctrl+B】
运行 PCB 计算器 【Ctrl+A】 运行图框编辑器 【Ctrl+Y】 - -

Eeschema 快捷键

常规操作

功能 快捷键 功能 快捷键 功能 快捷键
新建 【Ctrl+N】 打开 【Ctrl+O】 保存 【Ctrl+S】
另存为 【Ctrl+Shift+S】 打印 【Ctrl+P】 撤销 【Ctrl+Z】
重做 【Ctrl+Y】 剪切 【Ctrl+X】 复制 【Ctrl+C】
粘贴 【Ctrl+V】 快捷键列表 【Ctrl+F1】 首选项 【Ctrl+,】
放大 【F1】 缩小 【F2】 刷新显示 【F3】
置中显示 【F4】 适应屏幕 【Home】 缩放至选区大小 【Ctrl+F5】
置局部坐标 【Space】 编辑项目 【E】 删除项目 【Del】
旋转项目 【R】 拖动项目 【G】 单击鼠标左键 【Return】
双击鼠标左键 【End】 - - - -

原理图编辑

功能 快捷键 功能 快捷键 功能 快捷键
查找项目 【Ctrl+F】 查找下一项 【F5】 查找下一个 DRC 标记 【Shift+F5】
查找和替换 【Ctrl+Alt+F】 重复最后项 【Ins】 移动块->拖动块 【Tab】
移动原理图项目 【M】 重复的符号或标签 【C】 添加符号 【A】
添加电源端口 【P】 X 轴镜像 【X】 Y 轴镜像 【Y】
元件默认方向 【N】 编辑符号值 【V】 编辑符号位号 【U】
编辑符号封装 【F】 显示符号数据手册 【Ctrl+D】 用符号编辑器来编辑 【Ctrl+E】
开始连线 【W】 开始总线绘制 【B】 结束总线绘制 【K】
添加标签 【L】 添加层次标签 【H】 添加全局标签 【Ctrl+H】
添加连接点 【J】 添加不连接标记 【Q】 添加图框 【S】
添加连接线入口 【Z】 添加总线入口 【/】 添加多段线图形 【I】
添加图形文字 【T】 从原理图更新 PCB 【F8】 自动放置字段 【O】
离开图框 【Alt+Back】 删除节点 【Back】 高亮连接 【Ctrl+B】
切换到软件图形加速的工具箱 【F12】 切换到硬件图形的加速工具箱(推荐) 【F11】 - -

Pcbnew 快捷键

常规操作

功能 快捷键 功能 快捷键 功能 快捷键
新建 【Ctrl+N】 打开 【Ctrl+O】 保存 【Ctrl+S】
另存为 【Ctrl+Shift+S】 打印 【Ctrl+P】 撤消 【Ctrl+Z】
重做 【Ctrl+Y】 剪切 【Ctrl+X】 复制 【Ctrl+C】
粘贴 【Ctrl+V】 快捷键列表 【Ctrl+F1】 首选项 【Ctrl+,】
放大 【F1】 缩小 【F2】 刷新显示 【F3】
置中显示 【F4】 自动缩放 【Home】 缩放至选区大小 【Ctrl+F5】
3D 查看器 【Alt+3】 切换单元 【Ctrl+U】 重置局部坐标 【Space】
设置网格原点 【S】 复位网格原点 【Z】 单击鼠标左键 【Return】
双击鼠标左键 【End】 减小层透明度 【 { 】 增加层透明度 【 } 】
切换光标显示 【Ctrl+Shift+X】 测量距离 【Ctrl+Shift+M】 - -

PCB 编辑

功能 快捷键 功能 快捷键 功能 快捷键
放置项目 【P】 添加封装 【O】 添加过孔 【Ctrl+Shift+V】
添加埴充区域 【Ctrl+Shif+Z】 添加禁止布线区 【Ctrl+Shift+K】 添加挖空区域 【Shift+C】
添加相似区域 【Ctrl+>】 绘制线 【Ctrl+Shift+L】 绘制圆 【Ctrl+Shft+C】
绘制圆弧 【Ctrl+Shift+A】 绘制多边形 【Ctrl+Shft+P】 添加文本 【Ctrl+Shift+T】
添加标注 【Ctrl+Shift+H】 放置 DXF 【Ctrl+Shift+F】 添加新布线 【X】
切换布线状态 【/】 保持角度拖动布线 【D】 添加通孔 【V】
添加盲/埋孔 【Alt+Shft+V】 添加微孔 【Alt+V】 差分对布线 【6】
调整单轨布线 【7】 调整差分对长度 【8】 调整差分对偏斜 【9】
布线选项 【Ctrl+<】 长度调整设置 【Ctrl+L】 1 个步长增加弯曲间距 【1】
1 个步长减少弯曲幅度 【2】 1 个步长增加弯曲幅度 【3】 1 个步长降低曲折幅度 【4】
差分对标注 【Ctrl+Shift+R】 埴充或重新填充所有区域 【B】 删除所有填充区域 【Ctrl+B】
插入拐角 【Ins】 选择单轨布线 【U】 选择已连接的布线 【I】
切换到所选网络高亮 【 ` 】 布线显示模式 【K】 自定义布线/过孔尺寸 【Q】
切换下一个布线宽度 【W】 切换上一个布线宽度 【Shift+W】 增大过孔尺寸 【'】
减小过孔尺寸 【\】 删除整条布线 【Del】 删除布线段 【Back】
拖动项目 【G】 复制项目 【C】 移动项目 【M】
获取和移动封装 【T】 精确移动项目 【Ctrl+M】 项目相对位置 【Ctrl+R】
翻转项 【F】 旋转项目 【R】 顺时针旋转项 【Shift+R】
选择层并添加通孔 【 < 】 选择层并添加盲/理孔 【Alt+<】 重复项 【Ctrl+D】
重复项与增量 【Ctrl+Shift+D】 创建阵列 【Ctrl+T】 锁定/解锁封装 【L】
查找项目 【Ctrl+F】 编辑项目 【E】 在封装编辑器編辑 【Ctrl+E】
切换到元件层(顶层铜层) 【PgUp】 切换到铜层(底层铜层) 【PgDn】 内层 1 【F5】
内层 2 【F6】 内层 3 【F7】 内层 4 【F8】
内层 5 【Shift+F5】 内层 6 【Shift+F6】 下一层 【+】
上一层 【-】 切换为快速网格 1 【Alt+1】 切换为快速网格 2 【Alt+2】
切换网格到下一个 【N】 切换网格到上一个 【Shift+N】 切换高对比度模式 【Ctrl+H】
切换到传统工具箱 【F9】 切换到软件图形加速的工具箱 【F12】 切换到硬件图形加速的工具箱 【F11】

调整配色方案

下载 kicad-color-schemes 到本地,解压后每个主题目录都包含有 EeschemaPcbnew 安装文件的配色方案,将主题目录下面的文件复制到如下操作系统对应的目录:

  • Linux~.config/kicad/
  • macOS: 用户 Home 主目录 + /Library/Preferences/kicad
  • Windows XP: C:\Documents and Settings\username\Application Data\kicad,即 %APPDATA%\kicad
  • Windows 10: C:\Users\username\AppData\Roaming\kicad,即 %APPDATA%\kicad,例如:C:\Users\hank\AppData\Roaming\kicad

注意:笔者个人比较推荐 kicad-color-schemes 当中的 behave-dark 配色方案。

安装常用插件

将下列插件解压到 KiCad 安装目录下面的 \share\kicad\scripting\plugins 文件夹,例如把下载解压 kicad_scripts 以后得到的teardrops目录,或者下载解压 InteractiveHtmlBom.zip 以后获得的 InteractiveHtmlBom 目录,拷贝至D:\Software\Tech\KiCad\share\kicad\scripting\plugins,然后重新启动 KiCad 即可完成插件安装。

  • kicad_scripts:一款用于导出交互式 HTML BOM 的插件;
  • InteractiveHtmlBom:一款用于删除与添加 PCB 焊盘泪滴的插件;
  • RF-tools-KiCAD:提供弧形走线,阻焊开窗、长度角度测量、射频微带线过孔等常用功能;
  • kicad-action-scripts:提供了批量自动过孔工具ViaStitching和圆形覆铜工具CircularZone
  • HierPlace:基于设计的层次结构对 PCB 当中的元件进行批量排列;

KiCad 的 PCB 分层

KiCad 当中的 Pcbnew 可以使用多达 50 个不同的图层,其中 32 个用于布线的铜层14 个固定用途的技术层(包含 12 个正/背面配对技术层以及 2 个独立技术层),以及Eco1.UserEco2.UserCmts.User 注释层、Dwgs.User 图纸层这 4 个辅助层。鼠标点击菜单栏的【电路板设置】按钮,就开始可以设置 PCB 的厚度、铜层的名称与功能数量、可禁用的技术层等。

铜层

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

1
2
3
4
5
6
7
8
9
/* 2 层 PCB 层次结构 */
F.Cu =====> 信号层
B.Cu =====> GND 层

/* 4 层 PCB 层次结构 */
F.Cu =====> 信号层
In1.Cu =====> GND 层
In2.Cu =====> VCC 层
B.Cu =====> 信号层

配对技术层

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

  • 粘合剂层F.AdhesB.Adhes):用于粘合剂涂抹,通常在波峰焊之前将贴片元件粘贴至 PCB;
  • 焊膏层F.PasteB.Paste):用于制造钢网,以方便在进行回流焊之前,在贴片元件焊盘上涂抹锡浆;
  • 丝印层F.SilkSB.SilkS):用于标识元件的层,例如元件的极性、首引脚指标识、安装参考等;
  • 阻焊层F.MaskB.Mask):所有焊盘放置的层,该层不会被阻焊油覆盖;
  • 封装层F.CrtYdB.CrtYd):用于显示元件在 PCB 上物理占用的空间大小;
  • 制造层F.FabB.Fab):制造层主要用于记录需要传达给 PCB 制造商或者组装厂的信息;

独立技术层

  • 边缘切割Edge.Cuts)用于绘制电路板边框,放置在该图层上的任何元素(图形,文本…)都出现在所有其他图层上。 仅使用此图层绘制板边框;
  • 边距Margin)板的边缘后退边框;

制作原理图符号

进入【符号编辑器】界面,选择菜单栏上的【文件 -> 新建库】,建立一个名称为myLib.lib的原理图元件库:

然后再通过鼠标选择菜单栏上的【文件 -> 新建符号...】或者按下键盘上的【Ctrl + N】,指定元件所归属的符号库,并将其命名为MYCONN3,默认参考标识符为J,每封装单元数为1

接下来分别放置VCCInputGND三个引脚,并将其电器类型分别设置为电源输入无源无源,然后再绘制一个矩形框作为元件体,最终呈现的效果如下图所示:

将其放置到原理图以后的效果如下,引脚的电气类型名称默认将不会被显示出来:

注意:官方 KiCad 库默认安装在 Windows 操作系统的D:\Software\Tech\KiCad\share\kicad\library目录下,或者 Linux 操作系统的/usr/share/kicad/library/目录下面。

绘制原理图

Eeschema是 KiCad 提供的电路原理图编辑器,单击顶部工具栏上的【编辑图框设置】选择适当的尺寸,然后单击右侧工具栏上的【放置符号】图标或者按下热键【A】开始放置元件。

将鼠标悬停在元件R上(无需单击), 然后按下【R】旋转元件。此时如果出现元件叠加的情况,就会弹出菜单明确选择对应的元件。

右键单击元件选择【属性 -> 编辑值】或者按下快捷键【V】实现相同功能,当然也可以通过选择【属性 -> 编辑属性】或者按下【e】打开更为详细的设置窗口。

将文本输入域当中的值修改为1k,然后点击确定:

如果出现输入错误需要删除元件,可以在元件上鼠标右键然后选择【删除】,或者鼠标悬停在待删除元件上以后,按下【Delete】键。除此之外,将鼠标悬停在元件上以后可以运用的操作与对应热键如下图所示:

接下来,继续添加向原理图添加microchip_pic12mcu库里的PIC12C508A-ISN元件以及 LED 元件:

继续放置刚才myLib.lib库下面自定义的MYCONN3元件,然后选择右侧工具栏上的【放置电源端口】按钮或者按下【P】弹出 选择电源符号 界面:

在弹出的 选择电源符号 界面选中并且放置 3 个VCC和 2 个GND,此时原理图效果呈现的如下:

下一步会使用导线连接原理图上的元件,单击右侧工具栏上的【放置连线】按钮,或者鼠标放置到元件的连接点以后,再按下键盘的【W】。最终,完成导线连接后的原理图如下:

这里将会放置网络标签用于对电路进行注释,选择右侧工具栏上的【放置网络标签】按钮或者按下【L】,保存后的原理图如下所示:

此时会发现PIC12C508A-ISN元件的摆放方向有问题,按下【Y】键将元件垂直 Y 轴镜像,然后再选择右侧工具栏上的【放置不连接标记】按钮或者按下键盘上的【Q】键,注意下图中PIC12C508A-ISN2345引脚:

注意:对于具有隐藏引脚的元件,可以通过选择左侧工具栏上的【显示隐藏引脚】切换其可见状态。如果当前原理图遵循VCCGND的命名规范,这些隐藏的电源引脚就会自动连接,但是通常并不建议隐藏元件的电源引脚。

接着添加两个分别连接至GNDVCC引脚的PWR_FLAG元件, 用于标识当前原理图的电源入口:

然后,再选择顶部工具栏上的【批注原理图符号】按钮,为原理图上的元件分配唯一标识符:

单击顶部工具栏上的【执行电气规则检查】按钮,或者按下键盘上的热键【Alt + I -> C】并且回车,检查完成后会生成如下错误报告:

按照提示添加不连接标记以后,再次执行电气规则检查,虽然不再出现报错信息,但是网络标识符底部出现了不应出现的小方框,表示其位置未正确进行放置:

一张电路原理图上,网络标识符相同的部分默认是连接在一起的,因此原理图上的网络标号需要进一步调整位置【即网络标识符底部不再出现小方框为止】,以正确的体现这种连接关系:

原理图业已绘制完成,接下来将基于此生成网表文件kicad.net,选择顶部工具栏上的【生成网表文件】按钮,弹出如下对话框以后,将网表保存至当前项目所在的目录下面:

老版本 KiCad 当中,PCB 的生成必须基于网表,而新版本中则可以通过顶部菜单栏上的【工具 -> 从原理图更新 PCB...】直接将原理图变更更新至 PCB,不过必须首先为原理图元件指定对应的 PCB 封装。如果通过网表文件生成 PCB,则是在网表文件生成完成以后,再执行顶部工具栏上的【分配 PCB 封装到原理图符号】按钮,打开如下的分配封装界面进行进一步操作:

在原理图编辑界面关联 PCB 封装的方式有多种,将鼠标放置到元件上面,然后右键菜单选择【属性 -> 编辑属性...】或者【属性 -> 编辑封装...】就可以完成指定元件的封装分配。如果需要批量指定原理图元件的封装,那么推荐的方式是采用顶部工具栏上的【编辑符号字段】按钮,在弹出的符号字段对话框上选择相应封装:

对于网络标识为U1的元件选择Package_DIP:IP-8_W7.62mm封装,对于自定义原理图元件J1则选择Connector:Banana_Jack_3Pin封装,而对于电阻元件R1R2应选择Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P2.54mm_Vertical封装,对于 LED 元件D1选择LED_THT:LED_D5.0mm封装:

网表文件用于描述原理图上的元件及其相应的连接关系,实质上是一个易于编辑的文本文件,这一点与.lib文件类似。保存封装设置以后,需要再次返回原理图编辑界面,重新点击工具栏顶部的【生成网表】按钮更新网表文件。

最后一步是创建物料清单 BOM,选择 Eeschema 原理图编辑器顶部工具栏上的【生成物料清单】按钮 。然后选择bom2csv.xsl插件,将 BOM 输出为*.xsl文件:

上面截图中,需要为xsltproc -o "%O.csv" "D:\Software\Tech\KiCad\bin\scripting\plugins\bom2csv.xsl" "%I"当中代表输出文件的"%O"添加后缀名变为"%O.csv",注意对比下面两条命令:

1
2
xsltproc -o "%O" "D:\Software\Tech\KiCad\bin\scripting\plugins\bom2csv.xsl" "%I"      # 生成 工程名 文件
xsltproc -o "%O.csv" "D:\Software\Tech\KiCad\bin\scripting\plugins\bom2csv.xsl" "%I" # 生成 工程名.csv 文件

原理图总线应用

多引脚元件通常会采用总线来进行相互的连接,在原理图编辑界面下,添加Connector_Generic库下的Conn_01x04四针连接器,然后分别重命名为CONN_1CONN_2CONN_3CONN_4,接着鼠标选择右侧工具栏上的【放置连线到总线入口】或者按下快捷键【Z】、或者点击【放置总线到总线入口】或按下快捷键【Shift + /】,完成总线入口的放置以后,原理图呈现效果如下:

CONN_1CONN_2CONN_3的 4 个引脚分别命名为a1a2a3a4CONN_4的 4 个引脚命名为b1b2b3b4,然后采用右侧工具栏上的【放置连线】按钮,将引脚与总线入口进行连接:

选择右侧工具栏上的【放置总线】按钮,将所有总线入口连接到一起,然后分别添加网络标识符a[1..4]b[1..4],完成后得到的最终原理图效果如下:

注意:按下键盘上的【Insert】键可以重复上一步的操作,这对于需要反复执行相同操作的场景极为有用。

印刷电路板布局

KiCad 提供的 Pcbnew 可以基于当前项目当中,可以支持通过顶部工具栏上的【加载网表】按钮基于指定网表文件生成 PCB,也支持运用菜单栏上的【工具 -> 从原理图更新 PCB..】直接基于原理图生成 PCB ,操作完成以后将会自动打开如下的 Pcbnew 编辑界面:

鼠标单击顶部工具栏上的【图框大小和文本的图框设置】,将纸张尺寸设置为A4,8.5x11尺寸:

单击顶部工具栏上的【电路板设置】按钮打开设置界面,然后选择左侧的【设计规则】选项卡,将最小布线宽度设置为0.25mm

然后切换至【网络类表】选项卡下面,将间隙差分对宽度亦设置为0.25mm,然后确定保存。

此时应该会注意到,PCB 绘制区域的元件都通过一条白色的飞线来体现连接关系,点击左侧工具栏上的【显示/隐藏电路板飞线】按钮可以切换其显示状态。与原理图类似,通过把鼠标悬停在元件上,然后按下【M】键可以移动元件,按下【R】键则会旋转元件,完成调整以后的电路图布局应当如下所示:

接下来定义 PCB 边框,选择顶部工具栏上的Edge.Cuts图层,然后单击右侧工具栏上的【添加图形线条】按钮,沿着电路板边缘的四个角落点击,勾画出如下的矩形边框形状:

打开顶部工具栏上的【电路板设置】界面,然后选择左侧【设计规则】选项卡下的【导线和过孔】,并对布线宽度进行如下设置:

注意:通过左侧工具栏上的【将单位设置为英寸】和【将单位设置为毫米】按钮,可以将当前 PCB 涉及的单位调整为mil或者mm

继续选择顶部工具栏上的顶部铜层F.Cu (PgUp),然后点击右侧工具栏上的【布线】按钮,并设置顶部的布线宽度菜单,选择20.00 mils

顶层布线完成以后的 PCB 展示如下:

放置过孔到a元件的GND引脚上面,并且设置好过孔的尺寸,然后选择顶部工具栏上提供的底部铜层B.Cu (PgDn),并将过孔连接至GND焊盘。最后,选择右侧工具栏上的【添加填充区域】对整个底部铜层进行覆铜操作:

最后一步,再进行一次 DRC 设计规则检查,如果没有发现报错信息,就可以继续选择顶部菜单栏上的【视图 -> 3D 查看器】或者按下快捷键【Alt + 3】,打开如下的3D 查看器界面:

在使用 Pcbnew 进行电路版图绘制的过程当中,还有如下技巧与注意事项:

  • 一个元件放置完成之后,可以通过按下快捷键【E】打开封装属性,选中【锁定封装】;
  • 按下快捷键【T】可以快速获取在 PCB 编辑界面当中获取指定位号的封装;
  • 点击右侧工具栏上的【高亮网络】图标,可以更加方便的展现元件之间的网络关系;
  • 应当先做好元件布局,然后再进行布线;避免同时进行布局与布线,导致返工的几率较大;
  • 走线过程当中,拐角的角度分别为 45° 或者 135°,出线过程当中按下快捷键 【/】 可以快速在这两种走线角度之间切换;
  • 按下快捷键【G】可以自由角度拖动布线,而按下快捷键【D】则可以 45° 拖动布线,推荐以 45° 方式拖动布线;
  • 接下快捷键【I】可以选中已经完成连接的整条布线;
  • PCB 上的 GND 可以通过接地的铺铜来进行解决;

导出加工制造文件

生成 Gerber 文件

PCB 布线完成以后,选择菜单栏上的【文件 -> 绘制...】,生成对应的加工文件至当前项目下的 Gerber 目录:

生成钻孔文件

鼠标点击【绘制】按钮之后,再选择【生成钻孔文件...】按钮勾选如下设置:

生成封装位置文件

接着选择工具栏上的【文件 -> 制造输出 -> 封装位置文件】:

经过上述一系列操作步骤之后,将会生成如下所示的 11 个生产加工文件:

1
2
3
4
5
C:\Workspace\abrams\Gerber (master -> origin)
λ ls
abrams.drl abrams-B_Mask.gbs abrams-Edge_Cuts.gm1 abrams-F_Paste.gtp
abrams-all.pos abrams-B_Paste.gbp abrams-F_Cu.gtl abrams-F_SilkS.gto
abrams-B_Cu.gbl abrams-B_SilkS.gbo abrams-F_Mask.gts

使用 Gerber View 预览

通过 KiCad 提供的 Gerber View 工具,可以打开上述的 Gerber 文件进行预览:

制作常见的双面 PCB 时候,通常需要使用到的 PCB 层次如下面表格所示:

名称 KiCad 层 KiCad 扩展名 Altium Designer 层 Altium Designer 扩展名
底部铜层 B.Cu .gbr Bottom Layer .GBL
顶部铜层 F.Cu .gbr Top Layer .GTL
顶层丝印层 F.SilkS .gbr Top Overlay .GTO
底层阻焊层 B.Mask .gbr Bottom Solder Resist .GBS
顶层阻焊层 F.Mask .gbr Top Solder Resist .GTS
板框边缘层 Edge.Cuts .gbr Edges .GM1

注意:KiCad 输出的 Gerber 文件当中,后缀名为.drl的文件为钻孔文件,后缀名.pos则代表位置文件。

生成位号图

选择菜单栏上的【文件 -> 打印 】生成位号图(用于工厂生产时校正位号与 BOM 单是否保持一致),勾选如下设置之后鼠标点击【打印预览】,然后截取预览图片:

生成 BOM 表格

使用 Kicad Eeschema 当中自带的【bom2grouped_csv】插件生成 BOM 文件时,需要将执行命令当中的 "%O" 修改为 "%O.csv",便于 Windows 操作系统正确识别以 .csv 作为后缀名的 BOM 表格文件:

自动布线 FreeRouting

对于元件数量较多的 PCB,可以只对关键线路进行手动布线,然后对于其它无关紧要的线路采用 FreeRouting 进行自动布线,不过首先必须使用 Pcbnew 编辑器的【文件 -> 导出 -> 自动布线 DSN...】命令将 PCB 导出为kicad.dsn文件。

KiCad 官方文档推荐从另一款软件LayoutEditor当中获取 FreeRouting 的二进制.jar包,否则就必须自行使用 Java IDE 编译源代码,这里笔者为了便于大家使用,已经将freeRouting.jar编译并存放在Abrams项目的6-FreeRouting目录下面,使用时可以在已经安装有 Java 虚拟机的前提下,执行如下命令:

1
2
D:\Workspace\abrams\6-FreeRouter (master -> origin)
λ java -jar freeRouting.jar

接下来 FreeRouting 的界面将会自动打开,这里选择刚才导出的kicad.dsn文件,作为需要自动布线的目标文件:

点击【打开】按钮后将会进入 FreeRouting 的 Board Layout 对话框,然后选择顶部菜单栏上的【Routing -> Autorouting】开始执行自动布局处理:

等待处理完成之后,继续选择顶部菜单栏上的【File -> Export -> Specctra Session File】命令,将自动布局的处理结果导出为kicad.ses文件:

最后,返回 Pcbnew,鼠标选择菜单栏上的【文件 -> 导入 -> 自动布线会话】命令,将上一步导出的kicad.ses文件导入进来,以便于进行进一步的手动处理:

PCB 封装制作

选择 Pcbnew 编辑器顶部的【打开封装编辑】按钮,打开 PCB 封装编辑器界面,然后选择菜单栏命令【文件 -> 新建库...】新建一个名为myfootprint封装库,然后在该封装库上执行鼠标右键新建一个名为MYCONN3的封装,并将封装默认的参考编号REF**修改为SMD,并将其按照如下位置进行摆放:

选中右侧工具栏上的【添加焊盘】按钮,并且依据如下橙色框选的参数设置其属性:

接下来单击右侧工具栏中的【添加图形线】按钮添加封装的边框,并且继续放置23号焊盘,最终的呈现的效果如下:

最后,按下键盘快捷键【Alt + 3】预览上面绘制封装的 3D 效果:

板框绘制

PCB 板框的绘制需要在 Edge.Cuts 层进行,如果同时需要在板框当中添加防止 V-Cut 破坏走线的边距层,则需要切换至 Margin 层进行绘制,且保持与板框 0.3mm 距离(板厂要求板内导线离 V 割线距离不小于 0.4mm)。选择【添加图形线条】按钮,鼠标左键单击逐个确定顶点位置,即可完成板框绘制。

由于板框通常需要定义精确的尺寸,因此绘制时需要关注鼠标光标所在位置的坐标(使用空格键可以随时让其相对坐标归零),并且还可以使用【Ctrl + U】切换毫米英寸两种显示单位。除此之外,还可以选择【添加圆弧】按钮,对板框边角进行弧形化处理(单击鼠标左键确定圆心,移动鼠标调整半径):

注意:上图绘制了一个长度为10cm宽度为10cm的板框,并且设置了半径为1cm的弧形角。