PCB设计入门五关:元件库、封装、原理图与DRC避坑指南
简介:这份面向PCB设计零基础自学者的PDF文档,围绕嘉立创EDA/立创EDA的使用流程,解决初学者不知从何入手、工具习惯零散、元件库与封装管理混乱等问题,也适合有基础的设计者梳理入门路径。压缩包内仅1个PDF文件,约2.05MB,单文件结构便于通读和按章节检索。目前已有813人学习下载,说明其入门路线对自学者具有一定参考价值。内容把建工程与元件库、新建元件、查找与关联封装、绘制原理图、模块检查与DRC、PCB间距规范等环节串成一条可执行的学习路线,并延伸到电阻分压、二极管限幅等硬件电路思维;作者还附上自学经验与易错点提醒。文档侧重思路整理与经验分享,并非单纯工具手册,读者可据此建立较完整的设计框架,减少盲目试错。
1. 从一张地图开始:自学 PCB 到底要跨过哪几道关
自学 PCB 设计最容易踩的坑,不是软件不会点,而是顺序搞反了:一上来就想画板,结果元件没建、封装没对上、网络标签乱起,最后 DRC 一跑满屏红。把整条链路摊开看其实只有五关——建工程与元件库 → 建元件、找封装并关联 → 画原理图(含抄板连线)→ 导 PCB 布局布线并过 DRC → 用电路思维回头验证连接关系对不对。前四关是操作流程,第五关才是决定你能不能独立设计的分水岭。这份梳理适合零基础但已经装好 EDA 软件的人,也适合画过一两块板、却总在小地方翻车的半新手;它不教你点哪个菜单,而是告诉你每一关的重点在哪、哪里最容易漏。
2. 项目与元件库:工程骨架怎么搭,库怎么管
很多人学 EDA 的第一天就在"文件→新建"里迷路:新建了原理图、新建了 PCB,结果三个文件互相不认识。根源在于没先建"工程"这个容器。这一章把工程结构和元件库这两件"地基活儿"讲透,因为后面原理图和 PCB 的所有麻烦,八成都能追溯到这里。
2.1 新建工程:先把"一个项目一个文件夹"的习惯立住
标准动作是文件 → 新建 → 工程,起一个有意义的工程名,再在这个工程下面派生原理图、PCB、元件库等子文件。听起来是废话,但顺序错了会很痛苦:如果你先单独新建原理图、再想把它挂到工程里,关联关系容易断,后面导入 PCB 时会提示找不到网络或者元件更新不同步。
建议的落地结构是这样的,一个工程一个目录,库文件、输出文件、备份分开放:
# 某项目工程目录(示意,名字按自己习惯改) MyBoard_Project/ ├── MyBoard.epro # 工程主文件,双击它才进得去完整工程 ├── sch/ # 原理图 │ └── main_sch.sch ├── pcb/ # PCB 文件 │ └── main_pcb.pcb ├── lib/ # 本项目专用元件库(元件+封装) │ └── project_lib.elib ├── datasheet/ # 器件手册、商城下载的资料 └── output/ # 导出文件(BOM、坐标、Gerber) ├── bom/ └── gerber/这里的关键不是目录好不好看,而是库文件必须跟着工程走。库放在工程外、或者散落在系统默认目录里,一旦换电脑或者半年后再打开,元件全变红叉,那种感觉相当玄学。命名也别偷懒,main_sch、power_sch这种一眼能看懂的名字,比Sch1、新建文件2省下的时间多得多。
提示:工程一建好就先把
lib/、datasheet/、output/三个空目录建出来,形成肌肉记忆,后面就不会出现"这个封装我到底存哪了"的黑匣子时刻。
2.2 元件库:为什么强调"一项目一库"
教材式的说法是"把用到的元件及其封装放进库中便于管理",实际执行时更狠一点:每个工程都配一个专属元件库,路径是 文件 → 新建 → 元件库 → 起名字。理由有三条,都是血泪经验换来的。
第一,隔离。系统库和在线元件库会更新,你当年用的那个封装,可能因为平台调整被替换或下架,重新打开工程时封装对不上,PCB 里元件全部丢失。自己工程内的库是静态的,谁也改不了。
第二,可控。一个项目真正用到的元件通常就几十个,电阻电容电感、几个芯片、几个连接器、几个按键。把它们在一个库里排好序、按类型分组,原理图放置时就是点几下的事,不用每次去商城反复搜。
第三,可迁移。库跟着工程走,打包发给别人、或者拷到另一台机器,打开即用。这一步做扎实,你带人做课设、做小批量打样,都不会因为一个封装找不到而卡住。
库里的命名建议带上前缀和关键参数,比如R_0603_10K、C_0805_100nF、LDO_SOT23-5_3V3,封装类型和值一起写进名字。搜索时按0603或者10K都能命中,比电阻1、电容2强太多。元件多起来之后,你会感谢当时多敲的那几个字符。
2.3 封装的三个来源与入库动作
封装不必从零画,这是新手最容易走弯路的地方。按可靠性排序,来源分三类:
| 来源 | 做法 | 优点 | 风险 |
|---|---|---|---|
| 在线元件商城 | 搜型号 → 下载数据 → 复制商品编号 → 回系统库搜索 → 右键另存为 | 快,主流器件基本都有 | 编号抄错会拿到别的封装 |
| 平台系统库 | 直接在库中按封装名、引脚数筛选 | 无需联网下载 | 同名封装可能有多个版本 |
| 自己绘制 | 按手册尺寸在封装编辑器里画焊盘、丝印、外框 | 完全可控,异形件唯一解法 | 尺寸算错,焊盘间距翻车 |
流程上建议固定成一条流水线:先在商城按型号搜,找到参数相近的器件,点数据下载看手册确认引脚定义和封装尺寸;记下商品编号,回到系统库用编号精确搜索,避免被同名封装骗;找到后右键 → 另存为,存进自己的工程库。系统库允许只保存封装而不带元件符号,这一点很实用——元件符号自己画成统一风格,封装直接用平台的,两边分开管理。
第三种情况是"自己画封装",通常留给三类东西:连接器、异形结构件、商城搜不到的冷门芯片。画的时候只看一个东西——手册里的推荐焊盘图(Recommended Land Pattern),而不是"大概看着像"。焊盘长度、宽度、间距三个数错一个,板子回来就只能飞线,没有后悔药。
2.4 元件与封装关联:这一步漏了,后面全白做
元件(符号)和封装是两套东西:符号决定原理图上长什么样、有几个引脚、引脚叫什么名字;封装决定 PCB 上焊盘在哪、占多大面积。它们通过"封装管理/封装关联"绑定在一起,绑定的依据是引脚编号,不是引脚名。
这里最典型的翻车场景:符号的引脚编号是 1、2、3,封装的焊盘编号也是 1、2、3,但对应关系错了——原理图上 1 号脚是 VCC,封装上 1 号焊盘却是 GND 那一侧。DRC 查不出来,电气规则也不会报错,板子做出来一上电就冒烟。
所以关联动作要做两遍检查:一是在元件属性里确认封装名指向的是自己库里的那个;二是打开封装编辑器,逐个焊盘核对编号与符号引脚的对应,尤其是 SOT23-5、SOT23-6、QFN 这类编号不按常理排的封装。二极管、极性电容、三极管的极性更是重灾区,符号上的 1 脚是阳极还是阴极,必须和手册一致。
注意:元件建好后先别急着画原理图,右键元件看一眼"封装"字段是不是空的。空封装的元件放进原理图完全正常,但导入 PCB 时会报"无封装"或者直接消失,届时再回头补,已经连好的线要重连一遍。
3. 原理图与电路思维:抄板抄的是连接关系
原理图阶段的核心不是把线画好看,而是把"谁和谁连在一起"这件事记录准确。抄板(照着已有原理图连线)之所以是入门最好的训练,就是因为它把"设计"暂时抽走,只留下"连接"这一个变量,让你专注练连线、网络标签和分区。但抄也要抄明白,抄完能说出这一块是干什么的,才算过关。
3.1 放置元件与连线的顺序
合理顺序是:先摆元件,再连线,最后加标签。摆元件时按功能分块,电源部分、主控部分、接口部分各自占一块区域,别混在一起;连线时优先用短直线,能一条直线连过去就不要拐三个弯,因为原理图上的走线形态虽然不影响 PCB,但影响你自己读图的速度。
连线有个硬规矩:线与线相交必须用连接点(Junction),十字交叉但没有连接点的,在网表里就是不连。这一点在抄板时最容易出错——看图觉得两条线碰上了,实际软件里没打点,PCB 里就少了一根线,而且 DRC 不报错。养成习惯:任何 T 型或十字连接,手动补一个连接点。
另一个习惯是"先电源后信号"。把 VCC、GND 这些全局网络先铺好,再画信号线,可以少画很多重复的短线。GND 建议直接用 GND 符号而不是拉线,视觉上干净,网表也统一。
3.2 网络标签:把"图上的连接"翻译成"板上的连接"
网络标签(Net Label)是原理图里性价比最高的功能。两个相距很远的引脚,只要贴上同名标签,逻辑上就是连在一起的,不用真的拉一根线横穿整张图。抄板时尤其依赖它:原图上那些跨区域的连接,基本都是靠标签实现的。
命名要有规则,不要随手打1、a、net1。推荐的写法是"功能_方向_序号":
| 类型 | 命名示例 | 说明 |
|---|---|---|
| 电源 | VCC_5V、VCC_3V3、VBAT | 电压值写进名字,避免混压 |
| 地 | GND、AGND | 模拟地和数字地分开命名 |
| 控制信号 | MCU_EN_PWR、MCU_RST_N | 前缀写源端,后缀写功能 |
| 通信总线 | UART1_TX、I2C1_SCL | 总线号必须唯一 |
| 低有效信号 | LED_EN_N | 用_N结尾标识低有效 |
低有效信号加_N后缀这条,看起来吹毛求疵,但调试时非常有用:你看到RST_N就知道是拉低复位,不用回去翻手册。同理,同名网络标签在整张图里唯一,别在电源区写一个EN、在接口区又写一个EN,两个不相干的信号被短接到一起,那才叫真正的玄学故障。
3.3 分区、折线与文字说明
图能跑通和图画得能看懂,是两回事。半年后你自己回头看,或者把图交给别人接手,靠的就是分区和注释。
做法很朴素:用折线(有的软件叫"线框"或"分隔线")把整张图切成若干矩形区域,每个区域放一个功能块,比如"电源输入""LDO 稳压""主控最小系统""调试接口""负载输出"。折线本身不参与电气连接,纯粹是视觉分隔,样式可以统一设成细虚线,不抢元件的视觉重点。
每个功能块旁边补一段文字说明,写清楚三件事:这块电路干什么、关键参数是多少、有没有特殊注意事项。比如"R1/R2 分压,12V 转 3.3V 送 ADC,分压比 0.275,注意 ADC 输入阻抗"。这些字不占多少地方,但它是你留给未来的注释,比任何外部笔记都可靠。
整理完还要做一次"模块级复查":逐个模块看连线是不是和原图一致、每个引脚是不是都连上了、电容电阻的值有没有写错(10K 写成 10R 这种事,谁都干过)。复查顺序建议按模块走,不要按整张图扫,按模块能保证每个区域都被覆盖到。
3.4 硬件电路思维:分压与限幅
抄板抄到一定程度就该问"为什么这么接"。入门阶段最值得先啃的两个小电路,是电阻分压和二极管限幅,几乎每块板子上都有它们的影子。
电阻分压(降压):两个电阻串联在输入和地之间,中间点输出。输出电压满足Vout = Vin × R2 / (R1 + R2)。它的用途不是"供电",而是"取样"——把高电压按比例缩小到 ADC 能接受的范围,或者给比较器做基准。这里有两个新手常犯的错:一是拿分压当电源用,负载一接上去输出就塌,因为分压电路输出阻抗等于两个电阻并联,带载能力极差;二是电阻取值不当,阻值太大时 ADC 输入阻抗会并联进来影响精度,阻值太小时静态功耗又上去了。一般取几十千欧量级,再用下面这段小脚本算一下比例和误差:
# 分压网络取值验算:Vin=12V,目标 Vout≈3.3V 给 ADC Vin = 12.0 R1 = 30_000.0 # 上臂电阻,单位欧姆 R2 = 10_000.0 # 下臂电阻 R_adc = 1_000_000.0 # ADC 输入阻抗,并联在下臂上 ratio_ideal = R2 / (R1 + R2) # 空载分压比 R2_eff = (R2 * R_adc) / (R2 + R_adc) # 下臂实际等效阻值 ratio_real = R2_eff / (R1 + R2_eff) # 带上 ADC 后的真实分压比 print(f"空载输出 {Vin*ratio_ideal:.3f} V") # 3.000 V print(f"实际输出 {Vin*ratio_real:.3f} V") # 2.998 V print(f"比例误差 {(ratio_real/ratio_ideal-1)*100:.3f} %")这段代码干的事,是把"理想分压"和"接上负载后的分压"对比了一次。参数里R1、R2是分压电阻,R_adc是后级输入阻抗;结论是当下臂阻值远小于后级阻抗(这里 10k 对 1M,差 100 倍)时,误差可以忽略。如果你把 R1/R2 取成 1M/330k,误差就会肉眼可见地变大,这正是"分压电阻不能取太大"的量化解释。
二极管限幅:在分压输出或者外部信号入口处,加两个二极管,一个阳极接信号、阴极接电源,另一个阳极接地、阴极接信号。信号超过电源电压时,上管导通把电压钳在VCC+0.7V;低于地电位时,下管导通钳在-0.7V。它的作用是保护后级 ADC 或 MCU 引脚不被过压打穿。
限幅电路必须配一个限流电阻,否则二极管导通瞬间电流不受控。取值的经验算法是:R ≥ (Vin_max - VCC) / I_f,其中I_f是二极管允许的正向电流。比如输入可能冲到 15V,电源 3.3V,二极管允许 10mA,那么R ≥ (15-3.3)/0.01 = 1170Ω,取 2k 更稳妥。这一点原资料里只提了一句"加入了限幅电路(二极管)",但真正上手时,限流电阻漏掉是最常见的翻车方式。
3.5 出图前的自检清单
原理图画完不等于完成,导入 PCB 之前必须过一遍自检。清单不长,但每一条都对应过真实事故:
- 每个元件的封装字段都不为空,且指向自己工程库里的封装;
- 所有跨区域连接都用网络标签实现,标签名全局唯一;
- 所有 T 型、十字交叉处都有连接点;
- 电容、电阻的值逐个核对,尤其是 10K/10R、100nF/100pF 这类易混值;
- 极性元件(二极管、电解电容、三极管、芯片 1 脚)方向与原图一致;
- 电源网络和地网络命名统一,没有
VCC和VCC_3V3混用。
第 4 条听起来最傻,但它是最容易出错的一条,因为复制粘贴元件时值不会自动改,你复制了十个 10K,其中一个本该是 100K,肉眼极难发现。逐个核对虽然慢,但比打完样回来排查快得多。
4. 从原理图到 PCB:封装匹配、DRC 与间距规则
原理图是逻辑,PCB 是物理。这一步要做的事,是把"谁和谁连"变成"东西放在哪、线怎么走",同时接受一堆现实约束:板子多大、器件多高、线能不能过去、间距够不够。新手在这一步最常遇到的两类拦截,一个是封装对不上,一个是 DRC 报错,下面逐一说清。
4.1 导入与布局的第一步
导入方式通常是从原理图"更新/导入到 PCB",软件会自动把所有元件和网络搬过去,并在板外排成一列。此时不要急着拉线,先把板框定下来:板子外形尺寸按结构要求画,固定孔位置按装配要求放,这两件事定不下来,布局全是白干。
布局的优先级是:连接器 → 大件 → 主控 → 小件。连接器位置由外壳决定,基本没有自由度;大件(电感、电解电容、继电器)占地大、高度高,先摆能避免后面推翻重来;主控芯片放在信号汇聚的中心位置;电阻电容最后补,就近贴在它服务的引脚旁边。这个顺序不是教条,但它能显著减少"摆到一半发现放不下"的情况。
布局阶段就可以顺手看一遍封装是否全部正确显示——如果某个元件在 PCB 里是个空框、或者焊盘数量明显不对,说明封装没关联好,这时候改还来得及,等布完线再改就是大工程。
4.2 7.8mil 报错:间距规则到底在管什么
新手跑 DRC 最常撞见的一条报错,形如"对象 1 到对象 2 的距离为 7.8mil,应该 >= 10mil"。这句话的字面意思是:两个对象之间的实际间距是 7.8mil,小于规则里设定的最小安全间距 10mil,所以判违规。
要理解它,得知道 EDA 里的"安全间距"是一组规则,不是一个数。常见的有:导线到导线、导线到焊盘、焊盘到焊盘、丝印到焊盘、孔到孔、铜皮到板边。规则里设 10mil,那么任何一对对象只要实测小于 10mil 就报错。7.8mil 这个数通常来自三个原因:
| 原因 | 表现 | 处理方式 |
|---|---|---|
| 布线太贴 | 走线为了绕开焊盘挤过去 | 改线,绕远一点或换层 |
| 焊盘本身间距就小 | 芯片引脚间距 0.5mm 约 19.7mil,焊盘间隙天然小 | 针对该封装单独放宽规则 |
| 规则设太严 | 全局 10mil,但板子密度高 | 按网络/区域分级设规则 |
处理原则是:先判断是设计问题还是规则问题。如果只是自己线拉得太随意,那就改线,别去动规则;如果是器件本身引脚密集(0.5mm 间距的 QFN、0402 封装),物理上不可能满足 10mil,那就针对这个封装或者这个网络单独设一条更小的规则,而不是把全局规则一刀切放宽——全局放宽等于给整块板子埋雷。
提示:改规则前先问一句"这个间距是制造能力限制还是我画得挤"。多数打样厂的常规工艺能做的线宽线距在 6mil 上下,做到 6mil 以下就要加价或者换工艺。所以规则不是越松越好,也不是越紧越专业,卡在工艺能力之上一点最划算。
4.3 DRC 全检与封装核对
DRC(设计规则检查)要跑两遍:布完线跑一遍,出 Gerber 之前再跑一遍。第一遍查布线违规,第二遍查的是你有没有在最后阶段挪动了元件却没重跑。
除了间距,DRC 还会报这几类问题,每类的处理逻辑不一样:未连接网络(有飞线没连上,必须解决,不能忽略)、短路(两个不同网络碰到一起,优先级最高)、丝印压焊盘(丝印落在焊盘上,生产时会被擦掉,影响装配识别,可挪丝印解决)、孤立铜皮(铺铜后出现的碎铜,建议删掉避免天线效应)。
封装核对是另一个独立动作,不能靠 DRC 兜底。具体做法:打开 PCB 的 3D 视图或者封装编辑器,逐个确认焊盘数量、焊盘间距、1 脚标识位置、极性标识方向。尤其是自己画的封装,焊盘间距差 0.1mm,贴片时就可能虚焊或者连锡。这一步花十分钟,能省掉一次打样和两周等待。
5. 易漏点:5 条最容易翻车的地方
下面这五条,都是从"当时觉得没问题、后来发现全是问题"的经历里挑出来的。每一条按"易漏点 → 为什么漏 → 怎么补"写,方便直接对照自己的工程查。
5.1 元件建好了,封装是空的
为什么漏:元件符号建完后,软件不会强制你填封装,符号能正常放进原理图,连线、跑检查都一切正常,视觉上完全看不出问题。直到导入 PCB 那一刻,才提示"元件无封装"或者干脆少几个器件。
怎么补:把"填封装"变成建元件的最后一步固定动作,符号画完立刻在属性里选封装,选不到就先建封装再回来。另外在原理图完成后加一道机械检查:全选元件,看属性面板里封装字段有没有空的。
5.2 网络标签重名,两个不相干的信号被短接
为什么漏:不同功能块分头画,各自起了EN、CLK、TX这种通用名,软件不会提示"这个名字已经用过了",因为同名标签在它看来就是同一个网络,属于合法连接。DRC 也不会报错,因为网表里它们本来就是一条线。
怎么补:命名加前缀,源端 + 功能 + 序号,比如MCU_EN_PWR、UART1_TX。画完后用软件的"网络列表"功能扫一遍,看有没有名字过于简短、看不出归属的网络,有就改名。
5.3 分压电路直接当电源用
为什么漏:算出来电压是对的,万用表一量也确实是我要的值,看起来完全正常。但那是空载电压,一接负载,输出立刻塌下去,因为分压网络的输出阻抗是两个电阻并联,通常几十千欧,带不动毫安级负载。
怎么补:分压只用于取样和基准,需要供电就上加稳压器或者射极跟随器做缓冲。判断方法很简单:算一下负载电流在输出阻抗上产生的压降,超过目标电压的 5% 就说明不能直接带载。
5.4 限幅电路忘了限流电阻
为什么漏:二极管一接,钳位功能确实生效了,测电压也正常,看上去没问题。但输入过压的那一瞬间,二极管正向电流没有限制,可能直接超出手册的浪涌电流上限,二极管先挂,后级跟着挂。
怎么补:限幅二极管前面串一个限流电阻,按R ≥ (Vin_max - VCC) / I_f取值,同时确认电阻的功率余量。这一步在原理图上只多一个元件,但它是保护电路能不能真正起作用的前提。
5.5 改了原理图,PCB 没同步更新
为什么漏:改完原理图觉得"就加了个电容",回到 PCB 手动把电容摆上去、连好线,看起来一致了,但网表其实是旧的。等导出 BOM 或者生成 Gerber 时,器件编号和连接关系对不上,问题暴露得很晚。
怎么补:立规矩——任何原理图改动都必须走一次"更新到 PCB",让软件自己同步封装和网络,不要手工补。更新完立刻跑一次 DRC,确认没有新增未连接网络。这条规矩看着笨,但它能挡住绝大多数版本错乱。
6. 复习清单:把这份笔记变成可执行的查漏补缺
复习 PCB 这件事,最忌讳的是从头再点一遍菜单。软件操作练两遍就熟了,真正需要反复过的是"流程节点"和"判断依据"。下面这张清单按流程排,每一项都可以直接对照自己手上的工程打勾,缺哪一项就回去补哪一块。
| 阶段 | 检查项 | 判断标准 |
|---|---|---|
| 工程 | 是否先建工程再建子文件 | 原理图、PCB、库都在同一个工程树下 |
| 库 | 是否有本项目专属元件库 | 库文件在工程目录内,可整体拷贝 |
| 元件 | 符号的封装字段是否为空 | 全部非空,且指向自己库 |
| 封装 | 焊盘编号与符号引脚是否一一对应 | 逐个核对,极性件重点看 |
| 原理图 | 跨区连接是否用网络标签 | 标签名唯一、带源端前缀 |
| 原理图 | 交叉处是否有连接点 | 无悬空 T 型交叉 |
| 原理图 | 元件值是否逐个核对 | 无 10K/10R 类混淆 |
| 电路 | 分压是否被当作电源使用 | 带载压降在 5% 以内 |
| 电路 | 限幅是否配了限流电阻 | 按(Vin_max-VCC)/I_f取值 |
| PCB | 板框与固定孔是否先定 | 尺寸符合装配要求 |
| PCB | 间距规则是否分级 | 密集封装单独设规则,非全局放宽 |
| PCB | DRC 是否零未连接、零短路 | 两次 DRC 均通过 |
| 输出 | 原理图改动是否同步到 PCB | 走"更新到 PCB"而非手工补 |
清单之外,还有三个"通用判断依据"值得背下来,它们是所有细节背后的同一套逻辑。
第一,凡是软件不报错的地方,都要靠人眼兜底。空封装、重名网络标签、连接点缺失,这三类问题的共同点是 DRC 全部放行,因为从软件的角度看网表是自洽的。所以人工复查不是可选项,是流程的一部分。
第二,凡是规则报错,先分清是设计错还是规则错。7.8mil 小于 10mil,可能是你线拉挤了,也可能是这个封装的引脚本来就那么密。前者改设计,后者改规则,两者混着处理,最后一定是一团乱。
第三,凡是"算出来对、用起来不对"的电路,先查带载和阻抗。分压带不动负载、限幅忘了限流、ADC 采样被输入阻抗拉偏,本质都是理想模型和实际负载的差距。养成算一遍输出阻抗和电流的习惯,比记十个公式管用。
我自己的教训是:第一块板子画完,DRC 全绿,我直接导了 Gerber,回来发现两个元件的封装是空的,还有一根线十字交叉没打连接点。从那以后我每次导出之前,都强制走一遍"空封装扫描 + 网络列表扫描 + 两次 DRC",不管多小的板子都不跳步。这份清单你也可以照着抄,改成自己的版本,用一次改一次,慢慢就长成你自己的体系了。希望帮到你。
本文还有配套的精品资源,点击获取