对于国内中小型电子企业的工程师而言,Altium Designer、Pads、Allegro 等商业 EDA 工具的授权费用过于昂贵,且大部分仅提供了 Windows 操作系统版本,缺乏相应的跨平台支持。在电子行业版权问题逐步受到重视的今天,一款易使用、低成本的 EDA 工具对于广大电子工程师显得尤为重要。而 PCB 设计流程与布局布线经验超越 EDA 工具本身,如果没有丰富的元件库与封装库支持,也会面临无米难为炊的困境。
本文介绍的KiCad 是一款基于 GPL 开源许可下的跨平台 EDA 电子设计自动化工具集,能够处理多达 32 个铜层、14 个技术层、4 个辅助层的 PCB 电路板,并且生成加工制造所需要的所有文件(包括照片绘图仪的 Gerber 文件、钻孔文件、元件位置文件等),官方开源社区提供并维护了丰富的第三方库可供选用,而针对开源 EDA 工具普遍存在的自动布线功能偏弱的问题,KiCad 也通过FreeRouting提供了有力支持。文中所涉及原理图与PCB样图,皆已共享至笔者的Github项目Abrams。
uinika/abramsgithub.com由于知乎提供的Markdown编辑器不支持完整的表格以及书签语法,加上篇幅字数限制,因此在这里只发布了全文第1、2章节的部分内容,需要查阅带有书签的完整文章请前往笔者的博客Github Pages:
开源 EDA 工具 KiCad 5.1.5 电路设计手册uinika.gitee.io也欢迎加入成都天府软件园QQ群【621843391】,为文章勘误或者提出您的宝贵意见,也可以一起聊聊成都IT那些事儿 。也欢迎优秀原创技术类、IT产业经济类文章向知乎【成都IT圈】专栏进行投稿。
欢迎大家关注公众号【IT圈】:Electronics, Embedded & Web,获取更多电子技术、嵌入式系统、Web开发相关的原创性文章:
工具集
KiCad 工具套件主要包含如下软件工具,这些工具即可以从项目管理器运行,也可以作为独立的工具软件运行:
KiCad 提供的项目管理器可以方便的在界面上运行其他工具,从而提供原理图与 PCB 编辑器之间、原理图与封装编辑器之间的交叉探测功能。所产生的.pro
扩展名文件包含了当前工程的各种参数,其界面呈现效果如下:
原理图编辑器 Eeschema 会在工程中产生.sch
原理图文件、.lib原理图元件库文件、.dcm
原理图元件库文档、.cache.lib
原理图元件库缓存文件、sym-lib-table
符号库列表,其界面呈现效果如下:
PCB 编辑器 Pcbnew 会在工程里生成.kicad_pcb
PCB 板文件、.pretty
封装库文件夹、.kicad_mod
封装文件、fp-lib-table
封装库列表,其界面呈现效果如下:
涉及的环境变量
KiCad 通过环境变量
来声明全局模板和库的位置,通常具有如下的环境变量:
KICAD_TEMPLATE_DIR
:工程模板存放位置;KICAD_SYMBOL_DIR
:原理图元件库存放路径;KISYSMOD
:封装库存放路径;KISYS3DMOD
:3D 封装库存放路径;KIGITHUB
:远程封装库存放路径;KICAD_USER_TEMPLATE_DIR
:自定义模板存放路径;
上述环境变量可以通过 KiCad 工程管理界面,菜单栏上提供的【首选项 -> 配置路径…】命令来进行设置,这些设置只会作用于当前会话,而不会覆盖 KiCad 安装时写入系统中的环境变量:
向前与向后注解
电路原理图绘制完成以后,接下来就会将其转换为 PCB。但是如果后期再涉及新元件的添加、封装尺寸调整、网络重命名等操作,就需要选择向前或者向后两种注解方式来完成:
- 向前注解(Forward Annotation):将原理图映射至相应的 PCB 布局,原理图生成 PCB 之后,允许通过该操作向 PCB 发送增量的原理图修改。
- 向后注解(Backward Annotation):将 PCB 布局的修改发送回对应的原理图,一旦在 PCB 布局期间进行了修改,则这些修改操作将会被回推至原理图。
热键与快捷键
KiCad 拥有如下 2 种不同类型的快捷操作方式:
- 快捷键(Accelerator Keys):用途与鼠标单击菜单栏、工具栏图标的效果相同,按下鼠标左键之后才会执行该操作。
- 热键(Hotkeys):执行以后将会立即在当前鼠标位置执行操作,按下键盘上的【Ctrl + F1】即可查询 KiCad 所提供的热键。
制作原理图符号
进入【符号编辑器】界面,选择菜单栏上的【文件 -> 新建库】,建立一个名称为myLib.lib
的原理图元件库:
然后再通过鼠标选择菜单栏上的【文件 -> 新建符号…】或者按下键盘上的【Ctrl + N】,指定元件所归属的符号库,并将其命名为MYCONN3
,默认参考标识符为J
,每封装单元数为1
:
接下来分别放置VCC
、Input
、GND
三个引脚,并将其电器类型分别设置为电源输入
、无源
、无源
,然后再绘制一个矩形框作为元件体,最终呈现的效果如下图所示:
将其放置到原理图以后的效果如下,引脚的电气类型名称默认将不会被显示出来:
注意:官方 KiCad 库默认安装在 Windows 操作系统的D:SoftwareTechKiCadsharekicadlibrary目录下,或者 Linux 操作系统的/usr/share/kicad/library/目录下面。
绘制原理图
原理图编辑界面下,单击顶部工具栏上的【编辑图框设置】选择适当的尺寸,然后单击右侧工具栏上的【放置符号】图标或者按下热键【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-ISN
的2
、3
、4
、5
引脚:
注意:对于具有隐藏引脚的元件,可以通过选择左侧工具栏上的【显示隐藏引脚】切换其可见状态。如果当前原理图遵循VCC
和GND
的命名规范,这些隐藏的电源引脚就会自动连接,但是通常并不建议隐藏元件的电源引脚。
接着添加两个分别连接至GND
和VCC
引脚的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
封装,而对于电阻元件R1
和R2
应选择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:SoftwareTechKiCadbinscriptingpluginsbom2csv.xsl" "%I"
当中代表输出文件的"%O"
添加后缀名变为"%O.csv"
,注意对比下面两条命令:
xsltproc -o "%O" "D:SoftwareTechKiCadbinscriptingpluginsbom2csv.xsl" "%I" # 生成 工程名 文件
xsltproc -o "%O.csv" "D:SoftwareTechKiCadbinscriptingpluginsbom2csv.xsl" "%I" # 生成 工程名.csv 文件
由于知乎提供的Markdown编辑器不支持完整的表格以及书签语法,加上篇幅字数限制,因此在这里只发布了全文第1、2章节的部分内容,需要查阅带有书签的完整文章请前往笔者的博客Github Pages:
开源 EDA 工具 KiCad 5.1.5 电路设计手册uinika.gitee.io也欢迎加入成都天府软件园QQ群【621843391】,为文章勘误或者提出您的宝贵意见,也可以一起聊聊成都IT那些事儿 。也欢迎优秀原创技术类、IT产业经济类文章向知乎【成都IT圈】专栏进行投稿。
欢迎大家关注公众号【IT圈】:Electronics, Embedded & Web,获取更多电子技术、嵌入式系统、Web开发相关的原创性文章: