
简介《KiCad使用指南——开源的PCB设计工具eeschema2017》是一份聚焦 KiCad 核心原理图编辑器 Eeschema 的使用文档面向硬件工程师、电子爱好者和 PCB 入门学习者帮助读者理解并上手 PCB 原理图设计。压缩包共 1 个 PDF 文件大小约 1.94MB内容按手册章节组织涵盖 Eeschema 简介与技术概述、鼠标/键盘/菜单三类基本命令、热键与快捷键、网格与缩放选择、光标坐标显示、顶部菜单栏、左右工具栏、弹出菜单与快速编辑以及文件、首选项、帮助等主菜单的详细说明。读者可按目录定位功能结合命令示例逐步熟悉原理图绘制、元件放置与编辑、视图控制等操作流程尤其适合初学者按章节顺序边看边练也方便有经验的设计师快速检索命令。目前已有 442 人学习文档轻量便携适合在 PCB 设计过程中随时查阅也可作为 Eeschema 入门阶段的系统参考。1. KiCad不是 Cadence 的平替2017 年的 eeschema 手册到底告诉了我们什么一提到开源 PCB 设计工具大多数人第一反应是“免费、但能不能画板”——如果手里正好有一份 2017 年的 eeschema 手册 PDF你得先明白这份文档讲的是 KiCad 4.0 时代的原理图编辑器操作逻辑和今天 6.0/7.0 的界面有很大差异但符号、网表、封装、PCB 这套底层工作流从 2017 年至今几乎没变过。这篇文章不带你逐页翻译那份 PDF而是把它背后真正值钱的东西拆出来装上哪个版本、怎么配置、如何用 eeschema 把一张可编译的原理图做完以及在什么环节会摔跟头。无论你是给某课程作业画一块板还是想在公司项目里试试替换商业 EDA这套链路都能直接照做。2. 装对版本才能跑顺 2017 工作流安装选型与三层初始化2.1 2017 年的文档对应哪个版本系列先弄清楚再学快捷键如果你手里的 PDF 标题带着 2017那它大概率描述的是 KiCad 4.0.x 系列也可能顺带提到 4.0.7 这个常见的小版本号改动。4.0 是 KiCad 从“画得出图”到“正经做产品”的分水岭它补全了符号库管理系统、CvPcb 封装关联工具还让网表生成稳定了不少。但 4.0 和 5.0 之后的界面差异非常大——4.0 里 eeschema 的工具栏还是经典风格放置元件、连线、放网络标签的快捷键分别是A、W、L到了 5.0 以后部分快捷键和菜单布局重排过新手如果对着旧 PDF 在 7.0 里按A弹出的可能不是同一个对话框。我一般会建议这样的策略如果你的目标是复现 PDF 里的每一步操作就在虚拟机里装一个 4.0.7 专门对照着学如果你的目标是做完一块真实的板子就装最新稳定版把 PDF 当“概念书”看操作细节查新文档。这样既不浪费资料也不会被旧截图带到沟里。从学习次序上看KiCad 的完整流程是原理图 → 网表 → 封装关联 → PCB 布局布线 → Gerber 输出eeschema 只是第一棒但第一棒决定了后面所有环节能不能跑通。所以安装阶段不用急着装一堆插件先把主程序和库装对。2.2 安装时勾选的三类组件符号库、封装库与 3D 模型库KiCad 从 4.0 开始就把库拆成了独立的安装包老版本里你装完主程序后还得额外用“库下载器”拉取符号库和封装库很多新手装完发现元件库里空荡荡就是漏了这一步。现在的安装器虽然把库集成进了主程序但安装时依然有选项可以勾掉建议保持默认全选除非你的磁盘空间实在不够。首次启动后你需要确认三样东西存在文件菜单下的“符号库管理器”里有完整的KiCad库列表封装库管理器里能看到Package_*系列以及 3D 模型目录指向了*.3dshapes。3D 模型库不是必备品但如果你做完 PCB 想渲染一张效果图放进设计评审报告里没有它就会看到一堆裸的方形封装。还有个变量是库的更新渠道——现代 KiCad 可以通过插件与内容管理器直接下载社区库我习惯在第一次装完后手动执行一次“更新所有库”因为官方打包的库版本往往比仓库上的落后几个小版本而社区库修 bug 的速度远快于大版本发布。更新后重启一次程序确保库索引没有被锁住。2.3 首次启动的三处设置单位、网格与自动保存间隔这三项配置决定了你后续的每一次操作手感我建议在画第一张原理图之前就定好不要画到一半再改。第一处是单位KiCad 默认使用 mil也就是千分之一英寸老一代工程师习惯这种单位因为很多芯片引脚间距就是 50mil 或 100mil 的整数倍而新一代工程师更愿意用毫米因为机械结构件尺寸大多以毫米标注。切到“偏好设置”里改单位不影响电路电气特性但影响网格吸附和坐标显示建议根据你之后要对接的结构工程师来定。第二处是网格原理图网格默认 1.27mm50mil这个值不要随意调小。网格太小会让元件脚看起来像浮在半空连线两端不落格点时电气连接会断。PCB 编辑器里的网格经常需要在 0.25mm 和 1.27mm 之间切换但原理图里我始终锁在默认值。第三处是自动保存在偏好设置里把自动保存间隔从 15 分钟缩短到 5 分钟。KiCad 的崩溃恢复机制不像商业工具那样成熟尤其是老版本一次闪退可能丢掉半小时的工作这个开关是性价比最高的后悔药。配置完成后顺手做一次“空项目测试”新建项目、放置一个电阻、画一段线、生成网表确认全流程没报错。花十分钟验证环境比画到一半才发现库路径错了要划算得多。3. 用 eeschema 画出可编译的原理图四个核心操作3.1 从空页到元件放置、旋转与属性修改打开 eeschema 后第一件事不是急着摆元件而是先确认页面大小默认是 A4 横向A4 适合小型电路但如果你的板子有几十个芯片和上百个电阻建议在页面设置里换成 A3 甚至 A2不然元件堆在一起后续连线时眼睛根本分不清网络。放置元件的入口在右侧工具栏的“放置符号”按钮快捷键A4.0 习惯在弹出的符号选择器里你可以按关键字过滤。放一个电阻就输入R会出现R、R_US、R_Potentiometer等多个符号新手常见的误区是随便挑一个就放下去结果后面 PCB 封装关联时找不到匹配项。我的习惯是先输入元件的完整值比如10k再根据电阻类型选R还是R_US前者是欧美风格直线符号后者是日式矩形符号选哪种无所谓关键是整个项目保持一致。放置时按R旋转、按X翻转、按E编辑属性这三个动作是高频操作。属性表里最重要的字段是“参考编号”比如R1、C3、U2如果在复制粘贴元件时没有手动改编号后面 ERC 会直接报重名错误所以养成“放一个就改一个编号”的习惯能省掉后面批量重命名的麻烦。改属性还有个细节数值字段里别带单位。比如电阻值写10k而不是10kΩ这是因为原理图里的字符串会直接转移到 BOM 报表里带单位会让采购同事抓狂。3.2 电气连接三件套连线、网络标签与电源符号元件放好了接下来是画连接。连线工具是右侧工具栏的“放置导线”快捷键W。KiCad 的连线规则和绝大多数 EDA 一样连线的端点必须在元件的引脚端点或另一个连线的端点上而且必须在同一个网格点上。如果端点位置不对线画过去时不会产生电气连接但肉眼几乎看不出来。这里我建议你先打开“显示网格”和“显示隐藏引脚”前者帮助你让端点落在格点上后者让你看清每个元件的未连接引脚尤其对于多引脚芯片看不见的电源和地引脚往往是后患。连线之外网络标签是第二重要的连接手段放置网络标签的快捷键是L点击一条连线输入网络名比如MCU_TX另一张原理图里同样放置一个名为MCU_TX的标签两张图就完成了跨页连接。网络标签是大小写敏感的mcu_tx和MCU_TX是两个完全不同的网络这也是新手最容易翻车的地方之一。第三种连接方式是电源符号在工具栏里选择“电源VCC”或“电源GND”。要注意 KiCad 里电源符号不只表示电压它本身就建立了全局网络连接——你放置了三个 GND 符号这三个引脚在电气上就是连在一起的不需要额外连线。4.0 时代有个坑电源符号如果选了“局部电源”类型它的网络只在当前页面生效混用时经常出现“为什么这个 GND 没接地”的疑惑建议全程用全局电源符号。连线时我会在每根线拐弯后按一下空格键锁定线段方向这样连出来的线都是垂直或水平的不会有斜线可读性高很多。3.3 ERC 查错把隐患挡在制板之前画完一张原理图后最重要的一步是运行 ERC也就是电气规则检查。在菜单里选择“检查 → 电气规则检查器”运行后你会看到错误和警告列表像“引脚类型冲突”“未连接的引脚”“网络只有一个引脚”这些信息。不要觉得 ERC 报错是程序在找茬它每一条都有实际意义。比如“引脚类型冲突”是真问题一片运放的输出引脚接到了另一片运放的输出引脚这在逻辑上就是两个驱动源互相打架制板出来大概率会发热甚至烧芯片。有一种高频误报来自电源引脚芯片的电源脚如果在符号里被定义为“电源输入”而你用普通网络标签而非电源符号去连它ERC 会抱怨“引脚类型 PWR_IN 连接到非电源网络”。解决方法是不要用标签去连电源脚改用全局电源符号。如果你确实需要用特殊电压比如 3.3VKiCad 的符号库里也有3V3这样的电源符号拉出来直接用就行。还有一类“未连接引脚”的警告要分清情况芯片的 NC 脚本来就该悬空但 eeschema 里必须主动放一个“无连接标记”快捷键Q放在该引脚端点ERC 才不会误报。这个标记也是给 PCB 阶段看的没有它后面的 DRC 也会把这个引脚当遗漏处理。每次改完原理图都跑一次 ERC比攒到最后一次性清错要轻松得多因为很多时候错误是连环的第一个错的元件会引发后面七八条假警报清起来非常浪费时间。3.4 导出网表与 BOM给自己画的图一个交接文件原理图画好、ERC 通过后下一步就是导出网表。菜单路径是“生成 → 网表”格式选择默认的KiCad格式生成一个.net后缀的文件它记录了所有元件实例和网络连接关系是 PCB 编辑器读取原理图的唯一入口。网表文件的扩展名看起来不起眼但它是文本格式你可以直接用记事本打开看结构里面分了(components)和(nets)两段前者列出所有元件编号、值和封装后者列出每个网络的引脚成员。我强烈建议你导出一版后打开扫一眼确认里面的元件数量和你画的图对得上封装字段不是空值网络名没有乱码——这一步提前发现了后面 PCB 里才不用手忙脚乱。BOM 表在同一个菜单下生成格式选 CSV。KiCad 的 BOM 工具允许你自定义字段排序我的习惯是把“参考编号”“值”“封装”“描述”四列按顺序输出再把数量统计用脚本合并一次。有经验的工程师看到 BOM 首先检查单价和交期双高元件其次才是数量对不对这些工作要在原理图阶段打好基础。导出完成后做一次全流程验证关掉原理图重新打开项目再生成一次网表两次结果应完全一致。这能暴露文件没保存干净的问题也能让你确认工程的自动保存没有丢节点。4. 从原理图到 PCB封装关联与布局布线的第一公里4.1 CvPcb 批量关联封装让每个符号都有真实焊盘网表里的元件如果没有指定封装PCB 编辑器打开时就是一堆空洞的飞线。在 KiCad 4.0 中封装关联在独立的 CvPcb 工具里完成。打开 CvPcb 时它会加载网表和封装库左侧列表是原理图里的元件右侧是可选的封装列表下方是 3D 预览和焊盘图。关联的基本原则是“按真实器件选封装”。比如一个 0805 电阻封装库里可能有R_0805、R_0603、R_1206等多个选项。新手常犯的错误是看名字差不多就双击确认没有检查焊盘间距和器件实际尺寸。正确做法是把数据手册里的封装尺寸图调出来和 CvPcb 里的焊盘尺寸做一次比对间距、宽度、都得对上。CvPcb 支持批量过滤在封装过滤器里输入0805会自动过滤出所有匹配项。对于同一类元件选中多个元件后可以一次性指定同一个封装这个功能在高密度板子里能节省大量时间。还有一个细节某些元件在原理图符号里已经有默认封装比如常用的芯片和连接器它们的封装字段不是空的。CvPcb 会默认保留原值你不用动它。只有那些符号库里没有封装信息的被动元件才需要手动指定。完成所有关联后保存并关闭 CvPcb回到 eeschema 再生成一次网表这一步是为了把封装信息写进网表文件里跳过它PCB 里看到的封装还是空的。4.2 读入网表后的布置分区、对齐与飞线收敛在 PCB 编辑器里导入网表后第一眼看到的是一堆元件堆在板框旁边飞线杂乱无章。这个时候不要急着拉线先做物理分区。分区策略按信号流来电源模块放一角主控放中心接口器件靠板边高速信号路径要短而直。KiCad 没有自动布局功能但你可以用“群组”把同一功能模块的元件框选成一组整体移动和旋转这样在空间上先达成模块化。摆放时留意元件方向电阻电容的丝印标号方向尽量一致这样人工检查时不用频繁旋转脑袋。芯片的去耦电容要尽量靠近电源引脚这是布局阶段就要落实的不是布线时补救的。布局初步完成后看飞线密度。飞线特别密集的区域说明元件跨模块混插了调整元件位置直到飞线分布均匀这个“飞线收敛”的过程做好布线阶段会很顺手。如果某个网络飞线特别多比如地网络那是正常的因为地要统一处理通常最后覆铜解决。KiCad 4.0 提供了“从现有板子更新”功能当你回到原理图改掉一个网络名、加了一个元件后不用重新导入直接更新即可。但这个操作是覆盖式的板子上已有的布线如果对应网络发生了变化会被打断。改原理图前先想清楚比事后清理现场要省力。4.3 布线一轮与 DRC线宽过孔的常用起点布线阶段的第一件事是设置设计规则在“设计规则”菜单里设置最小线距、最小线宽和过孔尺寸。我常用的起点是一般信号线用 0.2mm 线宽电源线用 0.5mm地线如果走线而不是覆铜用 0.5mm过孔外径 0.6mm钻孔 0.3mm。这些参数对应的是常规两层板工艺普通制板厂都能做不要一上来就挑战 0.1mm 线宽。布线时打开“高亮网络”功能比如点一下电源网络所有电源引脚和焊盘都会高亮这样走电源线时目标明确。KiCad 的交互式布线器支持推挤、拉线过程中自动切换层并打过孔V键放普通过孔这些操作熟练后布线速度能追上手绘板。第一轮布线不求完美先把所有网络连通DRC 通过再回来优化长度和过孔数量。这个策略防止你在单个网络上花太久而忽略了全局连通性。布完线立刻跑 DRC重点是“未连接”“短路”“间距违规”和“钻孔到板边距离”。前面几项是电气问题最后一项是加工问题过孔太靠近板边会导致制板时孔壁破损。DRC 报错处理原则逐一读取报错坐标右键跳转到对应位置先看是不是封装焊盘报告太近、还是走线真的短路。KiCad 4.0 的 DRC 有时会因为一个圆角覆铜产生一堆虚报要会分辨哪些是真问题哪些是规则参数设得太苛刻。5. 原理图与 PCB 阶段的高频翻车现场现象、原因、处理5.1 网络名大小写不一致电源和地静默断连现象原理图 ERC 全部通过网表生成无警告但在 PCB 里某个芯片的电源引脚始终没有飞线看起来像芯片没接电。原因KiCad 的网络名是大小写敏感的VCC和Vcc是两个网络。如果你在电源符号上写的全局标签是VCC另一个模块里用的是Vcc那么这两个点理论上应该是同一个电源实际却各连各的ERC 并不会发现这种跨模块的名字差异。解决在 eeschema 里按L放置网络标签前先建立一个统一的网络命名规范。比如电源域全部用大写VCC、VEE地网络固定GND把命名表写在纸上贴在显示器边框。导出网表后用文本搜索(Vcc和(VCC各查一遍确认没有混用再往下走。5.2 连线端点不落格点看起来连上实际断开现象原理图里一根线明显搭在引脚端点ERC 却报该引脚未连接。原因在网格不是默认值的情况下元件引脚端点没有落在格点上而连线吸附在格点上两者在图形上重叠但坐标数值差了一丁点KiCad 判定为未连接。解决回偏好设置确认网格是 1.27mm然后框选整张原理图把网格设为“元素”对齐选中所有元件后执行“对齐到网格”。这个操作在工具栏里有入口它会强制所有元件引脚落到最近的网格点之后所有连线重画一遍问题自然消失。预防方法放置元件后不要手动拖拽微调位置让元件吸附在格点上连线时不要用鼠标自由落点所有转折点都按网格吸附。原理图里没有“看起来对齐就行”这回事坐标对齐才是电气对齐。5.3 改完原理图忘记更新 PCB手工补线导致库文件错乱现象原理图里增加了一个下拉电阻PCB 里没有出现同事提醒后直接手工画了一段线和焊盘结果 DRC 报短路网表重新同步时又把手工线段当成违规清除。原因KiCad 的 PCB 编辑器和原理图是单向联动PCB 必须从网表获得元件和连接信息。手工在 PCB 里加的线段不属于任何网络重新读取网表时会被当杂物清理这是个不可逆操作。解决从原理图到 PCB 的流程永远是从 eeschema 里生成网表再到 pcbnew 里执行“读取网表”。PCB 里不要画任何原理图里不存在的网络。如果发现板子上缺东西回到原理图补再同步一次。习惯每次改完原理图后保存 → ERC → 生成网表 → 进入 PCB → 更新 PCB → DRC一口气做完不要停在中间步骤。半同步状态是出各种诡异问题的温床。5.4 封装焊盘尺寸对不上手工焊接一碰就掉现象板子打样回来某个贴片电阻焊盘明显比器件金属端小手动焊接时器件放上去容易偏移烙铁一碰就站不住。原因封装选择错误。0805 电阻选了 0603 的封装焊盘间距和宽度都小一截机械强度完全不够。解决CvPcb 关联封装时放大预览图和器件手册里的封装图做重叠对比重点看焊盘宽度是否比引脚宽出至少 0.2mm左右两端焊盘内侧间距是否比器件本体窄一点让器件能够架在两端焊盘上。参数参考0805 电阻本体宽约 1.25mm焊盘宽度要到 1.5mm 才算牢固焊盘长度 1.4mm。去耦电容和电阻选同规格封装没有任何问题但功率稍大的电阻和磁珠就要加宽焊盘和增加铜箔散热面积这是选封装时最容易被忽略的。5.5 ERC 误报重复清不完越改越烦最后全部忽略现象ERC 列表里出现大量“引脚类型冲突”和“连接到非电源网络”的警告新手逐个检查却看不出问题最终选择忽略结果制板后芯片发烫。原因最常见的来源是“电源符号的引脚类型”和“实际连接网络”对不上。比如你用3V3电源符号连到了 5V 供电的芯片电源脚ERC 会告诉你类型不匹配。另一种来源是某元件符号画得不规范比如自定义符号里的电源脚被设成了 Passive 类型导致 ERC 无法识别功率流方向。解决不要批量忽略任何 ERC 信息先把警告按元件名排序逐条看是哪个元件哪只脚报的然后回 eeschema 修改正确的符号。如果你用的是标准库符号报错大概率是你连错了如果是自定义符号去符号编辑器里把引脚类型改对重新生成网表后 ERC 会安静下来。本质ERC 是原理图的编译期检查这个阶段多花半小时能避免 PCB 回来后的返工不算浪费时间。6. 用脚本把复查变成习惯批量核对网表封装与 DRC 报告到了这步板子已经能投出去了但我建议再花十分钟做一次自动化复查。KiCad 的网表.net文件是纯文本可以直接用脚本解析。下面这段 Python 脚本做的事情是读取网表提取每个元件的封装字段列出所有没有指定封装的元件以及封装名里可能打错的拼写。import re net_file project.net with open(net_file, r, encodingutf-8) as f: content f.read() # 只匹配 components 块 comp_block re.search(r\(components(.*?)\)\s*\(nets\), content, re.DOTALL) missing_fp [] fp_counts {} if comp_block: parts re.findall(r\(comp \(ref (.*?)\) \(value (.*?)\) \(footprint (.*?)\), comp_block.group(1)) for ref, value, fp in parts: if not fp.strip(): missing_fp.append(f{ref} ({value})) else: fp_counts[fp] fp_counts.get(fp, 0) 1 print( 未指定封装的元件 ) for item in missing_fp: print(item) print(\n 封装使用次数统计(前10) ) for fp, cnt in sorted(fp_counts.items(), keylambda x: -x[1])[:10]: print(f{cnt:3d} {fp})这段脚本的作用是把网表里“没指定封装”和“封装用得异常多”的元件揪出来。比如某个电阻你预期用 20 个统计却显示 21 次多半是有个元件串了位置。参数上正则表达式按 KiCad 网表的固定结构写了三字段抽取如果你的网表版本里footprint字段为空字符串说明 CvPcb 那步漏了回原理图补上再生成一遍网表。不同版本的 KiCad 网表结构基本一致这个脚本从 4.0 用到 8.0 都没改过主逻辑只偶尔微调正则。跑完脚本再看一眼 DRC 报告。KiCad 的 DRC 可以把结果导出为文本文件我会用一条命令过滤出“未连接”和“短路”之外的所有项因为这些项往往是规则参数设置导致的重复告警grep -v 无源元件\|未连接\|短路 drc_report.txt | head -30这条命令帮你把 DRC 报告里真正值得人工判断的条目显示出来。平时我会把 DRC 报告按日期存档和上一版对比看看有没有新增的告警防止某个改动默默引入新问题。有一次我在某图像处理 Demo 的板子上反复出现“间距违规”排查半天发现是丝印层的参考编号离焊盘太近——这在制造上是合规的但 DRC 把它当电气间距报了。这个教训让我意识到工具报警首先去定位坐标别凭记忆猜测。KiCad 这套工具链真正让人放心的是它所有中间产物都是文本文件网表能查、封装能核、Gerber 能审只要形成“原理图改完 → 重跑 ERC → 重新生成网表 → 回 PCB 同步 → 再 DRC → 比对上版告警”这套习惯开源 PCB 设计的可靠性并不会输给商业工具。希望我这个流程能帮到你。本文还有配套的精品资源点击获取