使用KiCad制作PCB——零基础KiCad中文教程

 

KiCad中文论坛已于2018年8月2日正式上线运营,欢迎移步至KiCad中文论坛。论坛正在建设中,希望得到你的帮助

联动教学:

电磁兼容性教程——PCB布局

进阶教程:

KiCad进阶中文教程(一):添加新元件

KiCad进阶中文教程(二):在电路板上放置自己的Logo

相关教程:

KiCad使用小窍门:利用SnapEda轻松找到元件symbol, footprint和3D模型

KiCad使用Q&A——我的工程师手记

KiCad里Pcbnew中各层的使用说明

KiCad生成xlsx格式的BOM教程

前言

KiCad是一款开源且易于上手的的电路原理图设计和 PCB 绘制集成软件包。从4.0.5版本起,KiCad对中文的支持已经达到了一个非常理想的效果。跟其他PCB设计软件相比,KiCad有如下几个优点:

  • 免费。KiCad是一款开源软件包,自1992年由法国人Jean-Pierre Charras发布以来,吸引了世界许多国家的工程师使用、设计和维护。你可以从KiCad官方网站 上免费下载并使用KiCad的稳定版本。
  • 多平台。KiCad支持所有主流操作系统:Windows,Linux以及MacOS。
  • 多语言。得益于世界各地开发者的贡献,KiCad目前(截止4.0.5版本)已经支持包括中文、英文、日文、法文在内的19种语言。尤其是对中文的支持已经非常完善。
  • 支持自动布线。KiCad可以使用使用java开发的Freerouter进行自动布线。

这篇教程是我工作一年来的经验总结。可以帮助你轻松上手KiCad,设计制作自己的PCB。

本教程基于KiCad 4.0.5版本。KiCad 5已于2018年7月底正式发布。

第一章 KiCad起步

第一节 KiCad软件包的构成

KiCad软件包包括:

  • Esschema :原理图编辑器,用于构造你自己的电路原理图
  • 原理图库编辑器:当KiCad库中没有你需要的元件时,你可以快速地自己构造一个
  • Pcbnew :PCB编辑器。使用PCB编辑器可以让你根据Esschema原理图编辑器中的构图和连线设计合适的PCB
  • PCB封装编辑器:当KiCad库中没有你所选择元件的封装时,你可以根据元件的datasheet自己画出该元件的封装。
  • GerberView :Gerber浏览器。用于检视印刷电路板的生产文件。
  • Bitmap2Component :位图转换器。转换位图到Esschema或Pcbnew。可以将bitmap图片转换成Esschema和Pcbnew可使用的格式。
  • PCB计算器:可用来计算布线宽度、稳压器电压、RF衰减等。
  • PI编辑器:图框编辑器,可用来设计电路图外观。

其中,最常使用到的软件是Esschema和Pcbnew。

第二节 KiCad的工作流程

使用KiCad进行印刷电路板设计主要分为两个部分:设计电路原理图依图布局PCB

设计电路原理图:打开Esschema -> 添加元器件于电路原理图上(若库中不存在则打开原理图库编辑器自行创建一个)-> 连线 -> 标注元器件 -> 进行规则检查(若报错则对电路原理图进行修正) -> 为元器件选择合适的封装(若库中不存在则打开封装编辑器自行创建一个)-> 生成物料清单BOM -> 生成Netlist网络表

依图布局PCB:打开Pcbnew -> 读取Netlist网络表 -> 合理选择PCB结构(双层、四层或其他)-> 确定布线宽度、间距等规则 -> 将元器件合理布局 ->手动或自动连线 -> 覆铜 -> 进行规则检查 -> 添加必要说明 -> 生成生产用Gerber文件及钻孔文件

将物料清单BOM、Gerber文件及钻孔文件发送给PCB生产厂家后就可以生产你设计的印刷电路板了。

 

第二章 使用KiCad构造电路原理图

本教程的范例,是利用555计时器设计一个10kHz的方波发生器。

第一节 设计电路

555定时器是一种集成电路芯片,常被用于定时器、脉冲产生器和震荡电路。许多厂家都生产555芯片。由于其易用性、低廉的价格和良好的可靠性,直至今日仍被广泛应用于电子电路的设计中。

任选一个厂家的555定时器产品,根据其datasheet,设计一个方波发生器是,电路应如下图所示:

其中,t1 = 0.693(R1+R2).C1,t2 = 0.693R2.C1,T= 0.693(R1+2R2).C1。方波发生器的频率f = 1.44/((R1+2R2).C1)。

为了实现占空比接近50%,频率为10kHz的方波信号,此处我们选取R1 = 47kΩ, R2 = 20.2kΩ,C1 = 1.5nF。根据datasheet,C2固定为0.01μF。

第二节 在Esschema中构造电路图

  1. 打开KiCad,选择 文件(F) —> 新建工程 —> 新建工程(N)。在你选定的文件夹中建立Tutorial工程,如图所示。出于兼容性考虑,建立的文件路径不要有中文和空格,项目名称也不要选取中文。点击保存后我们可以在屏幕左侧发现KiCad在项目文件Tutorial.pro下建立了两个子文件, Tutorial.kicad_pcbTutorial.sch。其中是Tutorial.kicad_pcb项目的PCB布局文件,Tutorial.sch是项目的电路原理图文件。以后我们打开Tutorial.pro这个项目文件就可以在屏幕找到其他我们PCB项目的所有相关文件。
  2. 单击打开Esschema,出现一张空白电路原理图。点击页面设置,按自己的需求输入参数。我的输入如图所示。点击确定后,电路原理图右下角会发生变化,增加了使用者及项目的相关信息(你可以利用 PI编辑器 按自己的需求修改页面元素)。然后点击 适合页面,以便于我们观察电路图。点击屏幕左侧 显示格点mm单位 显示/不显示隐藏的引脚 使其高亮。在电路原理图上单击右键进入网格选择,选择1.27mm的格点。
  3. 单击屏幕右侧的 放置元件(或者按下A键) ,放置我们的第一个元件 555定时器 在电路原理图的中央。如果你不知道你寻找的元器件在哪里,可以在过滤栏输入它的器件编号。这里我们输入555后,就出现了NE555可供我们选择。选中NE555,单击确定,再单击原理图的中央,我们的第一个元件就放置完毕了。如果你觉得位置不合适,可以将光标悬浮于元件之上,右键选择 移动元件(或者按下M键) 以重新放置。如果放置了错误的元件,可以将光标移至该元件上然后右键选择删除(注意不要把光标移至元件的值或者标号上)。选择注意到此刻屏幕右侧 放置元件 的按钮始终处于高亮状态,你可以按下键盘上的ESC键以恢复普通的光标功能,避免误操作。养成良好的习惯是高效使用KiCad进行设计工作的基础。
  4. 接下来依次放置两个电阻跟两个电容。按下A键,出现选择元件窗口后再过滤栏输入R。选取第一项R [Resistor]并放置其于电路图上合适的位置。重复一遍此操作以放置第二个电阻后改在过滤栏输入C,选择C [Unpolarized capacitor],以放置第一第二个电容。注意到此时元件的旁边有一些字母跟问号,如R?C?。这是因为我们的元器件还没有进行标号。单击屏幕上端的 标注元件 按钮,点击标注后我们的元器件就有了自己独特的标号 R1 R2 C1 C2。
  5. 将光标移至R1,右键选择 编辑元件 -> (或者按下V键)。在文本框中输入47k以指明R1是一个47k的电阻。同理修改R2,C1,C2的值为20.2k,1.5nF和0.01μF。如图所示:
  6. 给元件连线。点击屏幕右侧 放置连线 的按钮(或者按下W键)。将光标移至连线起始的一端的小圆圈后单击鼠标左键以开始连线。在需要转折的地方单击鼠标左键。移动光标至连线终止的一端的小圆圈后单击鼠标左键以结束连线。你可以继续调整元件放置的位置以使连线美观。移动元件时按下R键可以改变元件方向。如图所示:我们发现,为了驱动555芯片需要一个5V的电源端子(两个引脚,一个5V的VCC信号一个GND地)。还需要一个端子来接收输出方波信号。
  7. 添加电源。在屏幕右端点击 放置电源 ,选择VCC和GND,将其放置在电路图上。同时放置两个PWR_FLAG,分别将其链接至VCC和GND。PWR_FLAG的作用是标记VCC和GND是电源信号。再点击屏幕右侧的 放置局部标签,按钮高亮后把光标移至VCC与PWR_FLAGDE 连线上。再次单击鼠标左键,在文本框里输入VCC。同理,在GND与PWR_FLAGDE 连线上放置GND标签。现在我们再添加一个连接器。成品中会把外部电源连接到这个连接器上,连接器再给芯片供电。在元件库中选择CONN_01*02放置到电路图中,如下图:修改连接器的值为『Power Supply』。然后光标移至之前的局部标签VCC上,按下C键,复制VCC标签至CONN连接器的其中一个端子。同样复制GND标签到连接器的另外一个端子。位置放置正确的话连接器端子上的小圆圈会消失,如图所示:KiCad中,具有相同标签的引脚和导线会被认为是连接在一起的。所以我们直接给U1上的1脚和8脚添加上GND和VCC标签,就不用我们使用 放置连线 按钮来进行连接了,可以使我们的电路原理图更简洁易懂。
  8. 现在我们如果试着运行规则检查,会出现什么结果呢?我们发现,KiCad会提示我们555芯片的3脚还没有连接!所以我们需要给电路再增加一个输出端子。跟上一个步骤一样,我们放置一个CONN_01*01的端子,并修改它的值为Output。将它连接至555芯片的3脚。再次标注并执行规则检查后结果如图:到这里,利用555定时器搭建的10kHz方波发生器的电路图就基本完成了!虽然KiCad可以缓存,可是要养成随时保存项目的好习惯哦!

第三章 建立关联文件

第一节 为元器件选择封装

在Esschema中单击屏幕上侧右数第三个按钮,打开CvPcb关联元件与封装。在CvPcb的左侧是KiCad封装库。KiCad封装库是联网github的,由世界各地的开发者共同维护。一般的元件封装都可以在库中找到。在CvPcb的右侧是封装库中所有的封装。

鼠标点选C1使其高亮后,在右侧封装列表中双击选择Capacitors_SMD: C_0603。你可以在屏幕上方点选 关键词过滤封装引脚数量过滤封装 以快速找到所需要的封装。注意这里的0603是指英制封装!这里我们选取的电容器封装是1.6mm*0.8mm的表面装贴元件。对C2选择同样的封装。P1选择Socket_Strips:Socket _Strip_Striaight_1*02, P2选择Pin_Headers:Pin_Header_Straight_1*01。 R1跟R2我们选择Resistors_SMD:R_0603。555定时器我们查阅德州仪器的datasheet后选定SOIC-8封装。SOIC是一种表面封装。当然你也可以根据自己的需求,选择555定时器的通孔安装封装。

如果你在选择封装时有点拿不准,可以在CvPcb的右侧封装列表栏里点选你想要查看的封装,然后再点击红圈1中的 查看选择封装 即可查看所选的封装。再点击红圈2中的 三维显示 就可以查看所选封装的三维图像。如下图:为所有的元件都选择好封装后,点击屏幕左上方的保存并退出CvPcb。

第二节 生成物料清单(BOM)

如果想让PCB生产厂家不仅制作你的电路板,还希望让他帮你把所有元器件焊接上去的话,印刷电路板的物料清单(Bill Of Materials, BOM)是必不可少的。BOM里指明了元件的标号、种类、封装和数量,PCB生产厂家可以依据此清单为你的电路板焊接元件。

在Esschema中,点击屏幕上方的 生成物料清单 按钮,弹出了 BOM 材料清单 窗口。最初是没有任何插件的,你需要点击 添加插件 后在你KiCad安装路径的 plugins 文件夹中选择bom2csv.xsl。插件名称取作bom2csv。添加插件后在插件栏里选中bom2csv,KiCad已经在命令行中给你写好了路径。我们在它提示的路径中把”%O”改成”%O.csv”,再点击窗口上的 生成 按钮 就可以生成.csv为拓展名的BOM文件。成功运行的结果如下图所示。BOM文件可以在项目文件夹中找到并用Excel打开。对于如何直接生成.xlsx文件,请参阅KiCad生成xlsx格式的BOM教程

第三节 生成网络列表Netlist

在Esschema中,点击屏幕上方的 生成Netlist 按钮,弹出 网络列表 窗口。因为我们要在KiCad中对PCB进行布线,所以我们直接点击 生成 并保存就可以了。在项目文件夹中多出了一个Tutorial.net文件。接下来,我们要在Pcbnew中开始对PCB进行布线了!

第四章 PCB布局和连线

第一节 读取网络列表

在KiCad软件包中,点击打开Pcbnew。在屏幕左侧选择 显示格点mm单位。再在黑色页面空白处单击鼠标右键选择合适的网格大小。这里我们选择0.635mm的格点。

点击 页面设置 ,按自己的需求输入参数。我的输入如图所示。点击 确定 完成输入后点击屏幕上方的 适合页面,再点击屏幕上方中间位置的 读取Netlist 按钮,在弹出的窗口中点击 读取当前网络表 。如果有错误或警告,KiCad会在下方的信息栏中报警。正确读取网络列表后信息栏应如下图所示:这时,所有的元件封装都放置在了原点(0,0)处。

第二节 放置元件封装

读取网络列表后,所有的元件封装都放置在了同一个位置(原点),堆叠在一起的封装给我们的工作带来困难。

单击屏幕上方的 封装模式 使其高亮,确认鼠标处于光标模式后,讲光标移至封装外的任意一点,单击鼠标右键,选择 全局扩展和放置,点击 展开所有封装 ,点击 确定 。缩放至合适大小后如图所示。注意到元件封装间有白色的细线连接着。这是因为在屏幕左侧 线路板牵拉线 按钮处于高亮状态。白色的细线就是线路板牵拉线。牵拉线连接的两个焊盘需要用导线连接起来。

把元件封装分散开以后,点击 封装模式 取消其高亮状态。

安排一下元件封装的位置,原则是尽量不要让线路板牵拉线有过多的交叉。如图所示:

第三节 确定设计规则

1. 层设置

在屏幕的最上方,点击 设计规则(D),选择 层设置(L) ,出现 图层设置 的对话框。对于我们的555方波发生器而言,一个两层的PCB版已经足够。我们选择零件仅在表面安装后点击确认,如图:我们注意到,在层设置里有很多的层。最常使用到的是PCB的电路顶层(F.Cu)和PCB的底层(B.Cu)。关于各类层的说明,参见KiCad里Pcbnew中各层的使用说明

2. 设计规则

在屏幕的最上方,点击 设计规则(D),选择 设计规则(D) ,出现 设计规则编辑器 的对话框。在这里我们可以为我们电路原理图中的任何网络设置特定的规则,包括导线的宽度、导线间的间距、过孔的直径等。导线宽度的选取我们可以利用KiCad软件包中的PCB计算器来计算。对于本教程的555方波发生器而言,使用默认的设计规则就可以。

第四节 连线

因为我们在层设置中选择了零件在表面安装,所以电路导线主要集中在电路顶层F.Cu。首先确定屏幕上方 当前层 一栏显示的是F.Cu(PgUp),并且点击屏幕右侧 高亮网络 的按钮使其处于高亮状态。

鼠标点击屏幕右侧的 放置连线 按钮,注意到此时光标形状发生了变化。将光标移到555定时器的第一个焊盘GND上,按下鼠标左键单击以放置导线的起点。注意到此时属于同样网络(这里是GND网络)的焊盘变成了高亮状态。移动鼠标至P1的第二个焊盘GND,期间可以单击鼠标左键放置拐点。在P1的第二个焊盘上双击以放置导线的终点。注意避免导线出现锐角折角!放置导线的时候也不能和其他焊盘距离过近,否则无法放置导线。

同样的,我们将555定时器的第八个焊盘VCC链接到P1的第一个焊盘VCC上。如图所示:

此时如果我们想把C1的第二个焊盘GND从P1和U1之间穿过,会发现由于跟VCC网络导线相交的缘故,无法放置C1到P1的GND导线,如图所示:

如果把这条导线改成从P1上面通过的话,就占据了更大的空间,不符合我们使用PCB将电路小型化的目标。

解决方法很简单:从C1第二个焊盘引出导线时,在与VCC导线相交之前按下键盘上V键以放置通孔(Via),这时我们发现导线变成了绿色。这是因为此时的导线不再在PCB的电路顶层F.Cu了,而是经过通孔,到达了电路的底层B.Cu。在电路底层穿过VCC导线后再次按下V键,经过一个通孔将导线引回到电路顶层(也可以不回到顶层)。在P1的第二个焊盘上双击以放置导线终点,如图所示:完成其他连线,如图所示:如果发现Esschema和Pcbnew中的电路图有残影,可以通过缩放电路图达到快速刷新显示的效果。

第五节 确定PCB版的大小

在右侧工具栏 可见 中,选择 选项卡,选中 Edge.Cuts 层,使小箭头指向Edge.Cuts。单击 添加图形 按钮,在元件的周围画出一个长方形,如图所示

这样,我们设计的PCB将是上图黄色长方形的大小和形状。

第六节 覆铜(Copper Pour)

覆铜既可以作为一个动词,也可以作为一个名词。

所谓动词覆铜,就是将PCB层上闲置的空间(也就是没有放置导线跟元器件的地方)作为基准面,然后用固体铜填充。这个基准面可以是地(GND),也可以是电源5V/3.3V,也可以是孤立的铜区。覆铜可以提高电源效率,减少高频干扰,而且显得很美观。

而名词覆铜,就是指经过上述过程所铺放在PCB板上的铜层。

本教程中是一个两层板电路板,所以我们需要在两个电路层覆铜。我们先给F.Cu层覆铜。

首先确定覆铜的边界。在右侧工具栏 可见 中,选择 选项卡,选中 F.Cu 层,也就是电路的安放元件的顶层。单击 添加填充覆铜 按钮,将鼠标移向第五节中所画的电路板边框的其中一角,单击鼠标左键,出现 铜区属性 对话框。在层中,确认我们选中的是F.Cu。在网络中,选择GND以构造一个地铜层(Ground Plane)。连接焊盘的方式选择热风焊盘Thermal Relief(散热式镂空)。如果不采用热风焊盘将焊盘用辐条状的铜线与外部铜区连接,在焊接的时候焊盘会因为铜极好的导热性而难以达到足够高的温度软化锡膏,给焊接带来困难。边框线角度选择 仅允许水平/垂直/45度。其他设置保持不变,点击确定,如图所示:

点击确定后,将光标沿着PCB边框黄线移动,在每个角单击鼠标左键以切换方向,最后双击完成F.Cu层覆铜的边界。可以看到在覆铜的边界有暗红色的阴影线。在覆铜边界范围内点击鼠标右键选择 填充或重新填充所有覆铜或按下键盘B,即可完成地层的覆铜,如下图所示:

我们发现,右下角的区域没有覆铜。这是因为在我们所选择的边界条件下,这片区域不适合GND覆铜。不过没有关系,不覆地层铜,我们也可以选择在此区域构造孤立铜区,以使电路板平整,美观。

重复上述覆铜边界操作,但是在铜区属性对话框中选择 no net 网络,并且将覆铜优先级Priority Level改为1。在右下角没有覆铜的区域构造覆铜边界,完成后按下键盘B键完成覆铜。

给B.Cu层的GND覆铜也是一样的道理。只要在 可见 层 中选中B.Cu后执行上述步骤即可。如果F.Cu层的导线和覆铜影响了你的观察,可以在 可见 中取消F.Cu的勾选即可。

第七节 执行规则检查

在上层工具栏中,点击规则检查。在DRC对话框中,单击 启动DRC,待完成后查看错误信息。如果没有错误,则在错误信息的问题/标记未连接选项卡中,都是空白。

按下Alt+F3可以查看我们所设计的PCB的3D效果图。

第五章 生成生产文件

到第四章第七节为止,我们的PCB设计就基本完成了。现在需要生成PCB厂家所使用的生产文件。通常PCB厂家使用Gerber文件。

文件 菜单中选择 绘图(L),在绘图对话框的绘图格式中选择Gerber,勾选F.Cu, B.Cu, F.SilkS, F.Mask, Dwgs.User, Edge.Cuts。先点击绘图,再点击生成钻孔文件。这样,我们将项目文件夹中的.gbr文件和.drl文件发给PCB生产厂家,再指明所需要的工艺就大功告成了!如果需要PCB贴装元件,别忘了要一并发送BOM表。


本教程版权归 张海鹏 所有。禁止未经书面许可将本教程用于商业目的。联系作者请发送电子邮件至contact@haipeng.me

Copyright © 2017 张海鹏 haipeng.me

《使用KiCad制作PCB——零基础KiCad中文教程》有48个想法

  1. 您好,有幸看到您的教程,非常有帮助!正好我刚刚在学习Kicad的知识.只是其中有一个连接“KiCad里Pcbnew中各层的使用说明”部分失效了,希望能够补全,谢谢.

      1. 你好,想请问一个问题,在结尾部分,覆铜的时候选择”边框线角度选择 仅允许水平/垂直/45度”,请问这样设置的原因是什么?因为我看大多数教程里选择的都是默认设置“任意”,谢谢

        1. 你好, 仅允许水平/垂直/45度 有两方面考虑。第一,覆铜的边界如果是水平、垂直或者沿斜45°的话,覆铜区域看起来相对比较有形状,美观大方。第二,也是更重要的一点,这样的覆铜形状往往不会有尖锐角出现,形状相对不那么棱角分明,可以有效避免无意辐射发射的问题,避免我们的电路板产生电磁干扰。

      1. 您好,有个问题请教!
        KICAD中,由原理图生成PCB文件时,大量网络标号没有连接起来,是否有什么解决办法?
        谢谢!

  2. 非常感谢你的教程和分享! 满满的干货,无私的帮助,充分体现了互联网精神!
    为国内越来越多有像你这样的人才感到自豪!

    1. 哈哈,很想知道你们在国内是怎么找到我的网站的。百度根本都没有收录我的页面。难道你们翻了墙?

  3. haipeng 你好:
    謝謝你用心介紹,請問在電路圖R2與C1之間有連線,但再電路板上少了這條線。另外有沒有要在寫個進階版更深入介紹更深一層運用。

    1. 你好,謝謝你細心的指正,的確這裡確實了一條微帶線連接C1和R2。因為我今年更換了筆電所以原始的設計檔已經無從查找。近期我會抽空重新繪製您所指正的那個電路,並且爭取盡早寫出KiCad的進階教程。也希望您可以告訴我關於KiCad的使用,您比較想要了解哪方面呢?

  4. 这个网站里面的内容都还蛮不错的!学习教程,一些DIY都蛮不错的!我喜欢。
    忘记了之前是从哪里获取到这个网站的。

    1. 谢谢支持!貌似百度没有收录我的网站,只能用谷歌跟必应搜索到。喜欢的话可以把我的网站跟论坛分享推荐给更多需要的人,谢谢啦。

        1. 你好,请问注册时反馈什么信息?我这边后台显示已经有你的邮箱注册成功的会员,现在是无法登陆吗?

  5. 你好,我在使用 usbc 的时候,引脚间距很小,然后不能走线。我想问下如何设置某个元器件的引脚之间安全距离。谢谢

    1. 在Pcbnew里上方菜单栏 设置设计规则编辑网络类选项卡中修改你USB-C焊盘相关网络的布线宽度跟间距

      1. 那里面只能更具网络设置安全距离,不能根据 器件 来设置 0.0 感觉有点小麻烦。不过还是谢谢啦

    1. KiCad很大的优点就是跨平台,只要项目文件保存位置管理得当,很容易把项目内容在windows、mac和linux之间交换

    1. 你好,这个层没有什么作用,仅仅是为了图形示意而已,对电路板厂一般没什么作用。
      一般必不可少的几个层是F.Cu, B.Cu(顶层和底层电路层),F.Paste, B.Paste(顶层和底层焊膏层),F.Mask, B.Mask(顶层和底层阻焊层),F.Silk,B.Silk(顶层和底层丝印层)以及Edge.Cuts(电路板外形层)。如果是多层板,还会有In1.Cu, In2.Cu等。再加上钻孔文件就可以发给板厂了。更多信息你可以参考我这篇文章KiCad里Pcbnew中各层的使用说明

    1. 拼版是PCB板厂的工作,一般不是PCB设计师的任务,所以原生的KiCad软件套装暂时还没有支持拼版设计。

发表评论

电子邮件地址不会被公开。 必填项已用*标注