使用KiCad创建原理图符号
KiCad自带的元器件库中的元器件型号是有限的,只是一些基本的通用器件或最新热门的器件,在每个用户的设计中肯定会遇到很多KiCad库中没有的器件,这就需要自己来解决,解决的方式有两种:
- 先搜索一些专门提供专业元器件库的网站,比如UltraLibrarian、SnapEDA等,这些网站由专业的工程师团队同主流的元器件厂商(比如TI、ADI、美信、TE等)联合构建这些原厂最新推出的热门器件的元器件库文件 - 原理图符号、PCB封装以及3D模型,并放到网站上供大家免费查询下载。这些库文件都是经过这些运营网站或原厂的验证,可以放心使用。当然用户下载了这些库文件以后对原理图的符号仍可以做一些修改,比如调整其外框的大小、引脚的位置、排列等。
- 自己阅读数据手册进行创建,利用KiCad提供的工具生成自己的库文件。由于KiCad的原理图符号库和PCB封装库是分开管理、设置的,因此在设计的时候可以先构建原理图符号库即可,如果能够在已有的封装库中找到对应的封装,就可以关联上,如果没有,可以在做PCB布局布线的时候再做封装库,然后关联上。
在这里,我们将了解如何使用KiCad快速创建新的原理图符号。
在KiCad中,原理图的符号是一段以DEF开头并以ENDDEF结尾的文本。 一个或多个符号通常放在扩展名为.lib的库文件中。 如果要将符号添加到库文件,只需使用文本编辑器的剪切和粘贴命令即可。
1. 使用元器件库编辑器
- 配置自建库文件及目录:KiCad的Component Library Editor(元器件库编辑器)是Eeschema的一部分,我们可以用它来创建新的器件的原理图符号。通常,我们需要将自己创建的库文件进行单独管理,最好是创建一个专门的库文件夹,并做清晰的标记,这个文件夹可以是全局的,针对所有的项目,也可以是针对某个具体项目的。我们以后者为例,具体的做法是在项目文件夹tutorial1中,先创建一个名为library的文件夹。在我们创建新器件后,我们将在这个文件夹内放置新的库文件myLib.lib。
- 添加引脚:单击右侧工具栏上的Add Pins(添加引脚)图标,在MYCONN3标签正下方的元件编辑器页面中间单击鼠标左键将其放置。 * 在出现的Pin Properties(引脚属性)窗口中,将引脚名称设置为VCC,将引脚编号设置为1,将Electrical Type(电气类型)设置为Power Input(电源输入),然后单击OK。点击MYCONN3标签下方要放置引脚的位置,刚才定义好的第一个引脚就放置好了。 * 放置第二个引脚 - 重复以上过程,引脚名称定义为INPUT,引脚编号定义为2,电气类型为无源。 * 放置第三个引脚 - 重复以上过程,引脚名称定义为GND,引脚编号定义为3,电气类型为无源。 将这些引脚一个挨一个排列。 器件标签MYCONN3应位于页面的中心(蓝线交叉的位置)。
- 轮廓内填色:有的工程师喜欢用颜色填充矩形,比如黄色,你可以在Preferences - Select color scheme(首选项→选择颜色方案)中将填充颜色设置为Yellow 4(黄色4),再用[e]在编辑的屏幕中选择矩形,选择Fill background(填充背景)。
- 任何库file.lib文件都可以通过添加到指定的库路径上来用。 步骤就是从Eeschema,转到Preference → Library(首选项→库),将路径添加到User defined search path(用户定义的搜索路径)和,将file.lib添加到Component library files(器件库文件)中。
2. 库器件的导出、导入和修改
很多时候不需要从头开始创建元器件符号,可以基于现有的元器件符号(功能、引脚数比较接近,或者别人做好的器件符号需要进行调整)进行修改。在这里我们看一下如何将KiCad标准库Device(器件)的符号导出到自己的库myOwnLib.lib中进行修改使用。
- 配置自己的库路径:将此器件和整个库myOwnLib.lib添加到库路径中就可以用了。从Eeschema,转到Preference → Component Libraries(首选项→器件库),在用户定义搜索路径添加上库并将myOwnLib.lib添加在Component library files(元器件库文件)。关闭窗口。
- 保存修改:单击顶部工具栏中的Update current component in current library(更新当前器件到当前库)图标,单击顶部工具栏中的Save current loaded library on disk(将当前加载的库存盘)图标,保存所有更改。
3. 用外部工具quicklib创建原理图符号
- 前往quicklib网页:http://kicad.rohrbacher.net/quicklib.php
- 填写页面需要的以下信息:器件名:MYCONN3,参考前缀:J, 引脚布局样式:SIL,引脚数,N:3
- 单击Assign Pins(分配引脚)图标。填写页面需要的以下信息:Pin 1:VCC,Pin 2:input,Pin 3:GND,Type(类型):所有3个引脚都选为Passive(被动)。
- 单击Preview it(预览)图标查看一下,如果满意就点击Build Library Component(构建库元件)。下载文件并将其重命名为tutorial1/library/myQuickLib.lib ..搞定!
- 可以将此器件和整个库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中,这不是一项非常复杂的任务。
- 假设您要为具有50个引脚的器件创建原理图元件。通常的做法是使用多个低引脚数的图纸绘制它,例如两个图纸,每个图钉有25个引脚。该组件表示允许简单的引脚连接。
- 创建组件的最佳方法是使用quicklib分别生成两个25引脚组件,使用Python脚本重新编号它们的引脚,最后通过使用复制和粘贴将它们合并为一个单独的DEF和ENDDEF组件。
- 你将在下面找到一个简单的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/。