使用KiCad创建原理图符号

KiCad自带的元器件库中的元器件型号是有限的,只是一些基本的通用器件或最新热门的器件,在每个用户的设计中肯定会遇到很多KiCad库中没有的器件,这就需要自己来解决,解决的方式有两种:

  • 先搜索一些专门提供专业元器件库的网站,比如UltraLibrarian、SnapEDA等,这些网站由专业的工程师团队同主流的元器件厂商(比如TI、ADI、美信、TE等)联合构建这些原厂最新推出的热门器件的元器件库文件 - 原理图符号、PCB封装以及3D模型,并放到网站上供大家免费查询下载。这些库文件都是经过这些运营网站或原厂的验证,可以放心使用。当然用户下载了这些库文件以后对原理图的符号仍可以做一些修改,比如调整其外框的大小、引脚的位置、排列等。
  • 自己阅读数据手册进行创建,利用KiCad提供的工具生成自己的库文件。由于KiCad的原理图符号库和PCB封装库是分开管理、设置的,因此在设计的时候可以先构建原理图符号库即可,如果能够在已有的封装库中找到对应的封装,就可以关联上,如果没有,可以在做PCB布局布线的时候再做封装库,然后关联上。

在这里,我们将了解如何使用KiCad快速创建新的原理图符号。

在KiCad中,原理图的符号是一段以DEF开头并以ENDDEF结尾的文本。 一个或多个符号通常放在扩展名为.lib的库文件中。 如果要将符号添加到库文件,只需使用文本编辑器的剪切和粘贴命令即可。

1. 使用元器件库编辑器

  1. 配置自建库文件及目录:KiCad的Component Library Editor(元器件库编辑器)是Eeschema的一部分,我们可以用它来创建新的器件的原理图符号。通常,我们需要将自己创建的库文件进行单独管理,最好是创建一个专门的库文件夹,并做清晰的标记,这个文件夹可以是全局的,针对所有的项目,也可以是针对某个具体项目的。我们以后者为例,具体的做法是在项目文件夹tutorial1中,先创建一个名为library的文件夹。在我们创建新器件后,我们将在这个文件夹内放置新的库文件myLib.lib
  2. 创建新器件并添加基本信息:从KiCad启动Eeschema,单击Library Editor(库编辑)图标,然后单击New component(新器件)图标 。将出现一个“元器件属性”窗口。将新器件命名为MYCONN3,将Default reference designator(默认参考标识符)设置为J,将Number of units per package(每个封装的单元数)设置为1,单击“确定”。如果出现警告,单击“yes”就是。到这个时候,器件还仅由其标签构成。
  3. 添加引脚:单击右侧工具栏上的Add Pins(添加引脚)图标,在MYCONN3标签正下方的元件编辑器页面中间单击鼠标左键将其放置。 * 在出现的Pin Properties(引脚属性)窗口中,将引脚名称设置为VCC,将引脚编号设置为1,将Electrical Type(电气类型)设置为Power Input(电源输入),然后单击OK。点击MYCONN3标签下方要放置引脚的位置,刚才定义好的第一个引脚就放置好了。 * 放置第二个引脚 - 重复以上过程,引脚名称定义为INPUT引脚编号定义为2,电气类型无源。 * 放置第三个引脚 - 重复以上过程,引脚名称定义为GND引脚编号定义为3,电气类型无源。 将这些引脚一个挨一个排列。 器件标签MYCONN3应位于页面的中心(蓝线交叉的位置)。
  4. 绘制器件的轮廓:单击Add rectangle(添加矩形)图标。 在引脚旁边绘制一个矩形,如下图所示。先单击矩形左上角的位置(不要按住鼠标按钮),再单击矩形右下角的位置。
  5. 轮廓内填色:有的工程师喜欢用颜色填充矩形,比如黄色,你可以在Preferences - Select color scheme(首选项→选择颜色方案)中将填充颜色设置为Yellow 4(黄色4),再用[e]在编辑的屏幕中选择矩形,选择Fill background(填充背景)。
  6. 保存新器件信息:将器件保存在你创建的库myLib.lib中。 单击New Library(新建库)图标,找到tutorial1/library/目录,将你新建的库以myLib.lib为名字保存。
  7. 设置元器件访问路径:转到Preference → Component Libraries(首选项→器件库),将用户定义的搜索路径中的tutorial1/librarymyLib.lib添加在Component library files(器件库文件)中。单击Select working library(选择工作库)图标。 在“选择库”窗口中,单击myLib,然后单击“确定”。 注意窗口的标题如何表示当前正在使用的库,现在应该是myLib
  8. 刷新当前库内容:单击顶部工具栏中的Update current component in current library(更新当前元件到当前库)图标。 单击顶部工具栏中的Save current loaded library on disk(将当前加载的库存盘)图标,保存所有修改。 在出现的任何确认信息中都单击“是”。 新的原理图器件符号现已构建完成,已经可以在窗口标题栏中指示的库中可用。关闭器件库编辑器,返回到原理图编辑器窗口,新建的器件现在可以从库myLib中使用了。
  9. 任何库file.lib文件都可以通过添加到指定的库路径上来用。 步骤就是从Eeschema,转到Preference → Library(首选项→库),将路径添加到User defined search path(用户定义的搜索路径)和,将file.lib添加到Component library files(器件库文件)中。

    2. 库器件的导出、导入和修改

    很多时候不需要从头开始创建元器件符号,可以基于现有的元器件符号(功能、引脚数比较接近,或者别人做好的器件符号需要进行调整)进行修改。在这里我们看一下如何将KiCad标准库Device(器件)的符号导出到自己的库myOwnLib.lib中进行修改使用。

  10. 选中要参考的器件:从KiCad启动Eeschema,单击Library Editor(库编辑)图标,单击Select working library(选择工作库)图标并选择Device库(这是一个KiCad自带的通用器件的库)。单击Load component to edit(加载并编辑器件)以从Current lib(当前库)图标进行编辑,然后导入RELAY_2RT。
  11. 导出该器件信息到自己的库:单击Export Component(导出器件)图标,选定library(库)文件夹,保存到名为myOwnLib.lib的新库文件。
  12. 配置自己的库路径:将此器件和整个库myOwnLib.lib添加到库路径中就可以用了。从Eeschema,转到Preference → Component Libraries(首选项→器件库),在用户定义搜索路径添加上并将myOwnLib.lib添加在Component library files(元器件库文件)。关闭窗口。
  13. 激活自己的库:单击Select working library(选择工作库)图标。在Select Library窗口中单击myOwnLib并单击OK。注意表示当前正在使用的库名字的窗口的标题已经变为myOwnLib
  14. 根据自己的需要对导出的器件进行修改:单击Load component to edit(从当前库加载元器件进行编辑)图标导入RELAY2RT进行编辑。现在可以根据需要修改器件,将鼠标悬停在标签RELAY2RT上,按[e]并将其重命名为MYRELAY2RT
  15. 保存修改:单击顶部工具栏中的Update current component in current library(更新当前器件到当前库)图标,单击顶部工具栏中的Save current loaded library on disk(将当前加载的库存盘)图标,保存所有更改。

    3. 用外部工具quicklib创建原理图符号

    除了KiCad自身的功能,还有一些第三方的工具可以用来编辑、构建新器件的符号库,比如网页版的quicklib,在这里我们演示遗下如何创建MYCONN3这个器件的符号库(功能和要求参见上面的MYCONN3)。

  16. 填写页面需要的以下信息:器件名:MYCONN3,参考前缀:J, 引脚布局样式:SIL,引脚数,N:3
  17. 单击Assign Pins(分配引脚)图标。填写页面需要的以下信息:Pin 1:VCC,Pin 2:input,Pin 3:GND,Type(类型):所有3个引脚都选为Passive(被动)。
  18. 单击Preview it(预览)图标查看一下,如果满意就点击Build Library Component(构建库元件)。下载文件并将其重命名为tutorial1/library/myQuickLib.lib ..搞定!
  19. 用KiCad看一下。从KiCad项目管理页面启动Eeschema,单击Library Editor(库编辑)图标,单击Import Component(导入元件)图标,导航到tutorial1/library/并选择myQuickLib.lib。
  20. 可以将此器件和整个库myQuickLib.lib添加到KiCad的库路径中。从Eeschema,转到Preference → component Libraries(首选项→器件库),在User defined search path(用户定义的搜索路径)中添加library(库),在Component library files(元器件库文件)中添加myQuickLib.lib

是不是感觉到这种方式对于创建很多引脚数的器件会效率很高?

4. 创建很多引脚数器件的原理图符号

在quicklib的标题为Make Schematic Components的部分中,我们了解了如何使用基于web的quicklib工具制作原理图元件。但是,您偶尔会发现需要创建一个具有大量引脚(几百个引脚)的原理图元件。在KiCad中,这不是一项非常复杂的任务。

  1. 假设您要为具有50个引脚的器件创建原理图元件。通常的做法是使用多个低引脚数的图纸绘制它,例如两个图纸,每个图钉有25个引脚。该组件表示允许简单的引脚连接。
  2. 创建组件的最佳方法是使用quicklib分别生成两个25引脚组件,使用Python脚本重新编号它们的引脚,最后通过使用复制和粘贴将它们合并为一个单独的DEF和ENDDEF组件。
  3. 你将在下面找到一个简单的Python脚本示例,它可以与in.txt文件和out.txt文件一起使用,以重新编号该行:X PIN1 1 -750 600 300 R 50 50 1 1 I into X PIN26 26 -750 600 300 R 50 50 1 1 I这是针对文件in.txt中的所有行完成的。

简单的脚本

#!/usr/bin/env python
''' simple script to manipulate KiCad component pins numbering'''
import sys, re
try:
    fin=open(sys.argv[1],'r')
    fout=open(sys.argv[2],'w')
except:
    print "oh, wrong use of this app, try:", sys.argv[0], "in.txt out.txt"
    sys.exit()
for ln in fin.readlines():
    obj=re.search("(X PIN)(\d*)(\s)(\d*)(\s.*)",ln)
if obj:
    num = int(obj.group(2))+25
    ln=obj.group(1) + str(num) + obj.group(3) + str(num) + obj.group(5) +'\n'
    fout.write(ln)
fin.close(); fout.close()
#
# for more info about regular expression syntax and KiCad component generation:
# http://gskinner.com/RegExr/
# http://kicad.rohrbacher.net/quicklib.php
注:在将两个组件合并为一个组件时,有必要使用Eeschema的库编辑器移动第一个组件,以便第二个组件不会在它上面移动。 您将在下面找到最终的.lib文件及其在Eeschema中的表示。

* .lib文件的内容

EESchema-LIBRARY Version 2.3
#encoding utf-8
# COMP
DEF COMP U 0 40 Y Y 1 F N
F0 "U" -1800 -100 50 H V C CNN
F1 "COMP" -1800 100 50 H V C CNN
DRAW
S -2250 -800 -1350 800 0 0 0 N
S -450 -800 450 800 0 0 0 N
X PIN1 1 -2550 600 300 R 50 50 1 1 I

...

X PIN49 49 750 -500 300 L 50 50 1 1 I
ENDDRAW
ENDDEF
#End Library

注:这里介绍的Python脚本是一种非常强大的用于处理引脚号码和引脚标签的工具,它的所有功能都来自于神秘但却非常有用的正则表达式语法:http//gskinner.com/RegExr/。