ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Altium Designer实战指南:从原理图到PCB制造,掌握规则、封装库与脚本开发

Altium Designer实战指南:从原理图到PCB制造,掌握规则、封装库与脚本开发 这些年不管怎么换公司桌面上的EDA工具大概率会有一台装着Altium Designer。它不一定是最快的也不是功能最全的但胜在流程完整、上手顺手一个人从原理图画到Gerber、从封装库管到生产文件全都能在同一个工具里搞定。很多刚入门的朋友问我这套软件到底怎么学、怎么用也有人在公司里用AD做产品却始终没把库和规则理顺今天这篇就从一个实际画过不少板子的硬件工程师角度把AD的版本选择、完整设计流程、规则管理、库维护和脚本二次开发一次性讲透。1. 认识Altium Designer为什么这么多项目离不开它1.1 从Protel一路走来的老牌EDA工具Altium Designer这个名字老工程师更习惯叫AD它的前身是Protel 99SE那是很多人在大学实验室里接触的第一款PCB设计软件。从Protel到AD变化不只是名字而是从单一的原理图工具变成了覆盖原理图设计、PCB布局布线、信号完整性分析、三维机械协同和制造文件输出的完整平台。我见过很多团队尝试用其他EDA工具做替代最后又回到AD原因是它把“设计输入-验证-制造输出”这条链路做得非常连贯。一颗芯片从选型到放进原理图再从原理图同步到PCB板框中间有ECO机制自动比对DRC规则可以细到每一根网络的线宽、间距、过孔尺寸甚至能按网络分类设置不同约束。这种规则驱动设计的思路让一个只有两三个人的小团队也能把中高速数字板画得井井有条。AD的另一个特点是插件和脚本体系开放。官方提供了DelphiScript、VBScript、JavaScript等脚本接口PCB对象模型完整熟练之后可以做批量检查、自动出BOM、调用外部DLL实现自定义算法。这也是很多公司愿意把它作为内部标准化工具的原因——设计规范可以固化成规则文件和脚本新人上手不容易把板子画得五花八门。1.2 什么人最适合用AD如果你是自己画板子的小型硬件团队、创客、电子相关专业的学生或者在公司里做产品研发但需要跨原理图、PCB、生产多个环节的岗位AD基本是绕不开的选择。它的学习曲线比一些高端仿真工具友好得多内置库已经覆盖常用元件官方还提供大量教学资源。但要注意AD不是仿真工具的全部做高速信号完整性分析时它内置的SI功能更多是预检查级别的能力真要跑IBIS模型、分析眼图和抖动通常还要配合专用工具。AD最擅长的是“把设计准确、规范地变成可生产的PCB文件”这一点大家要记住别指望一个工具解决所有问题。2. 环境准备与安装要点先把工具链理顺2.1 版本选择与硬件配置怎么定AD的版本号从AD10、AD13、AD16、AD17一路跳到AD18之后变得频繁现在用的是AD20、AD21、AD22、AD23、AD24这样的年度命名方式。版本越新对硬件要求越高尤其是AD18之后的单一文档模式、增强的3D显示和在线部件库功能吃内存和显卡都毫不客气。这里给一个比较务实的建议如果你只是学习或画两层板内存16GB、固态硬盘加一个i5级别的CPU就够要是画四层以上、元件多、有BGA或DDR这类高密度板子老老实实配32GB内存显卡用NVIDIA系的Quadro或者同级别游戏卡驱动建议选Studio驱动稳定性比Game Ready驱动好很多。我踩过的坑就是拿集成显卡的老笔记本跑AD24拉一个稍复杂的PCB就开始转圈3D预览更是卡成幻灯片后来换了台式机整个体验完全不一样。安装前还要确认系统版本Windows 10/11的64位系统是主流选择AD对中文路径支持虽然改善了但工程文件路径里有中文和空格仍然容易在输出制造文件时出问题。所以固定一个规矩工程路径全英文文件夹层级不要太深这是很多后续麻烦的根源。2.2 官方安装与授权别在别处栽跟头安装过程其实不复杂从官网下载安装包双击后选择安装目录默认装C盘就行。关键点是安装包体积很大可能十几个GB需要保持网络稳定最好关闭杀毒软件或者把AD目录加入白名单否则有概率出现安装到一半文件校验失败的情况。授权这块官方提供30天试用、免费教育版以及订阅制许可可以在线登录Altium账户来管理。公司里常用的是共享许可证通过License服务器分配启动时在License Management里选择对应方式即可。我这里多说一句网上有些第三方的授权文件、精简版、网盘分享的所谓AD资源我不评价也不建议碰工程软件动不动就崩的根源往往是授权不完整而且这类文件经常被植入不干净的东西。做设计的人时间比什么都值钱别跟稳定性和安全赌运气。2.3 不建议碰“免安装精简版”的真实原因热搜里总有人找“免安装精简版”我理解原因无非是安装麻烦或者授权受限。但AD这类设计工具不像绿色小软件它要注册系统服务、关联文件类型、准备大量库和插件环境精简版省掉的东西恰恰是后面画板时最容易用的功能模块比如3D引擎、信号完整性模块、在线库搜索。一旦缺了这些画到一半报错找不到DLL或者库面板打不开排查起来比正常安装痛苦十倍。更现实的问题是升级和协作。AD的工程文件版本兼容性本来就敏感高版本能开低版本但低版本打不开高版本你用精简版环境画出的文件发到别人电脑上稍微有点版本差异就显示不完整。与其花时间折腾不稳定环境不如直接注册一个官方试用账号安装完整版把精力放在正事上。3. 从原理图到PCB一整套完整流程实操3.1 工程结构别再一张原理图打天下很多人学AD是直接新建一个.SchDoc就开始画最后PCB也就孤零零一张板子。这个习惯在项目一复杂就出问题因为没有工程文件原理图与PCB的同步、编译检查、输出管理全都无从谈起。正确的起点是在File菜单里New一个Project后缀是.PrjPcb。工程下面再建原理图库、PCB库、原理图文档和PCB文档。这样做的好处是原理图元件与PCB封装可以通过工程统一管理编译时能生成整个项目的网络表ECO同步时也是基于工程维度比对不会出现“改了原理图但PCB不认”的尴尬。我习惯的工程目录结构是项目文件夹下分Doc设计文档和规格书、Lib封装和原理图库、Source原理图和PCB、OutputGerber和BOM。这套结构用了好多年无论接手新项目还是把文件交接给别的工程师别人一看就懂也方便用Git做版本管理——注意AD的二进制文件没法像代码那样逐行比较但配合Git的二进制锁定功能至少能保证关键节点可回溯。3.2 原理图绘制与元件库协同新建原理图后第一步是放元件。按P键打开Place菜单选择Part然后在元件库面板里搜索。AD自带Miscellaneous Devices和Miscellaneous Connectors这些基础库电阻电容、三极管、排针排母都有初学者可以先拿这些练手。到了实际项目中我还是建议每个工程都维护自己的原理图库哪怕只是给芯片画一个带电源引脚和去耦电容标注的Symbol也比从零开始找靠谱。画原理图不能只画连线电源和地网络一定要用电源符号或网络标签明确标识不要拖一根长线把所有VCC串起来。正确的做法是每个电源引脚就近放一个VCC电源端口网络标签统一命名这样后续做DRC检查时能快速发现漏连或短路。放置完所有元件后用Tools菜单下的Annotate Schematics Quietly做批量位号标注确保每个元件都有唯一的Designator这是做BOM和贴片的基础。编译检查是画完原理图后必须做的一步。在工程上右键选择Compile PCB Project下方的Messages面板会列出所有警告和错误常见的有引脚悬空、网络只有一个引脚、位号重复。把这些清零再进入PCB能省掉后面八成的问题。3.3 ECO把原理图变成PCB的真正桥梁原理图画完并不代表PCB会自动生成中间需要一次ECO同步全称是Engineering Change Order。在原理图编辑界面执行Design → Update PCB DocumentAD会弹出一个ECO对话框里面列出所有要执行的变更比如添加元件、添加网络、添加封装。在这个对话框里先点Validate Changes验证凡是右侧显示红色叉号的条目都要先处理通常是封装缺失或者元件库路径不对。都通过后再点Execute Changes执行最后Close回到PCB界面你会发现元件已经带好飞线出现在板框旁边。这一步很多人漏掉的是检查Room勾选项AD默认会给每个原理图页生成一个Room区域比较多余我一般在ECO对话框里把Add Rooms选项取消掉省得在PCB上还要手动删除。3.4 布局、布线、覆铜与DRCPCB界面第一步是定义板框Design → Board Shape → Define Board Shape然后沿着机械CAD给的轮廓线画一个闭合区域。注意板框不只是在2D视图里好看后续的覆铜、规则检查、Gerber输出都依赖它所以我习惯从结构工程师那边拿到DXF文件后专门建一个机械层导入再按实际板型精确锁定。布局阶段先把有固定位置的接口、螺丝孔、电源模块放好再按功能模块把其他元件分区域摆放。AD提供了Room功能可以把一块原理图里的元件一起搬迁到PCB对应区域也可以选中一批元件用Tools → Placement → Arrange Within Rectangle进行阵列排列。元件放完后一定要打开DRC在线检查一边摆一边看间距有没有报错避免后期集中爆雷。布线是PCB设计里最费心力的部分。按P、T进入交互式布线模式鼠标点起点沿着飞线方向走线走线过程中按*可以在信号层之间切换并自动打过孔按ShiftSpace可以循环切换45度、90度、圆弧等转角模式。电源网络的线宽一定要在规则里单独设大信号线按阻抗要求设置差分对用交互式差分布线命令配合差分规则一次拉出等长线对。覆铜是电源网络和地网络的常规处理手段用Place → Polygon Pour在要覆盖的区域画一个封闭多边形网络选GND或者主电源。覆铜完成不代表万事大吉还要在工具栏点Repour Polygon重新填充否则覆铜只是一块空壳。覆铜和走线的连接方式、热焊盘尺寸都要在规则里配好不然焊接大焊盘的时候地铜皮会把热量全吸走。全部完成后跑一遍DRCDesign → Rule Check把间距、线宽、短路、未连接网络这些项目全部打开执行一次完整检查。Messages面板里能看到的红色Error必须逐条清零不是强迫症而是这些错误到了板厂那里就是催你改版的邮件。3.5 输出Gerber和BOM画完不是终点PCB画好不等于设计结束交付板厂的核心文件是Gerber和钻孔文件。File → Fabrication Outputs → Gerber Files在弹出的配置里选择2:4精度格式、单位和层映射把所有需要出图的铜箔层、阻焊层、丝印层、助焊层都勾上。然后继续输出NC Drill Files生成钻孔数据。这里我特别提醒你会在Gerber文件里看到一层叫.PhotonPlot或PTH的钻孔层但那只是标识层真正给板厂的是Excellon格式的钻孔文件别漏。BOM表在File → Assembly Outputs → Bill of Materials里导出先把要输出的列配置好比如位号、封装、规格、数量、厂家料号再按位号合并同类项。做研发样机时我习惯再加一列采购链接或供应商备注方便硬件同事直接抓料。输出用Excel格式就行板厂照单贴片毫无压力。正式交付前把工程里的Output Job文件配置好也就是预先把Gerber、钻孔、BOM、坐标文件全部绑定到一个输出任务里每次只要运行一次OutJob所有生产文件全自动生成。这是大公司流程化的常见做法小团队养成这个习惯也会少挨板厂不少电话。4. 设计规则详解AD里最值钱的“隐形资产”4.1 规则从哪来优先级怎么排Altium Designer的设计规则Design Rules不是没事找事的表单它实际上决定了一块板子在制造和可靠性上的底线。所有距离、线宽、过孔约束都由规则驱动布线、覆铜、DRC、3D检查全都基于同一套规则引擎。规则的优先级是很多人的盲区。AD里的规则分两大类一类是全局规则比如间距默认6mil另一类是按对象范围限定的规则比如“只针对GND网络间距加宽到12mil”或者是“覆盖某个元件类”。当同一个对象同时被多条规则约束时系统根据规则的Scope范围大小来决定优先级范围越具体优先级越高。实操中我一般先设置全局规则再用Query语句对特定网络、特定元件类、特定区域设置局部规则比如InNet(GND)、InComponent(U1)、WithinRoom(R1)这些。4.2 几条必须花时间配置的核心规则第一条是Clearance间距规则全局基础间距要看板厂的工艺能力常规两层板设6mil起步四层板能做到5mil但为了良率建议留到6~8mil。第二条是Width线宽规则信号线、电源线、地线分别建不同规则电源线优先加粗3.3V小电流时12mil差不多5V或者大电流至少按1A/1mm的经验值换算宽度。第三条是Routing Via过孔规则设置默认过孔外径和孔径常规是外径24mil、孔径12mil板厂免费太小要加钱太大又占空间。还有几个容易被忽略但有奇效的规则比如Un-Routed Net规则负责检查没布完的线Solder Mask Expansion决定焊盘开窗和绿油桥宽度Silk To Solder Mask控制丝印和焊盘的距离避免丝印压焊盘被板厂自动删除。差分对规则也单独维护设置差分阻抗、线宽和间距后布线时AD能实时显示等长状态。4.3 规则怎么落到实际板子上新建规则时AD会在Design Rules面板里列出所有规则类型、类别、优先级一目了然。把规则文件导出成.Rulex或单独保存的时间有限工程中直接用Design → Rules模板导入即可。团队内部最省心的做法是把标准规则集保存成模板每个新工程都套同一套规则新员工不用自己琢磨老员工也省得每次手工配置。规则写完之后最怕“有规则但没生效”。我通常会在布线前先跑一次DRC把规则配置上的低级问题提前暴露比如规则作用范围写错导致整个板子飘红。另一个技巧是利用规则面板下方的“Batch”模式把容易误报的在线DRC项目关掉只在最后完整检查时全部打开避免布线过程中被大量警告刷屏影响效率。5. 库管理从“到处找封装”到“自己的弹药库”5.1 集成库的原理与创建AD的元件库体系最有价值的是集成库概念。单独的原理图库.SchLib只有符号PCB库.PcbLib只有封装而一个集成库.IntLib能把符号、封装、3D模型、供应商链接甚至仿真模型全部打包到一起。新建集成库工程.LibPkg分别添加.SchLib和.PcbLib编译整个LibPkg后就能生成.IntLib之后在任何工程里安装这个集成库调用元件时自动带上全部关联信息。自己建库的流程也不复杂原理图库编辑器里用Symbol Wizard画符号注意引脚命名、引脚编号和电气类型PCB库编辑器里按数据手册尺寸放焊盘、画丝印再通过Place → 3D Body放置三维模型或从STEP文件导入。做封装最讲究的是原点位置和丝印方向原点通常放在1脚或几何中心丝印长度不能超出板框也不能在装配时造成干涉。5.2 去哪找靠谱的库文件“Altium Designer库文件下载”是个长期热搜但我劝大家别随随便便从下载站搞打包库。那些库里经常是各种年代、各种来源混在一起符号和封装对不上是常事有些封装尺寸还是错的画完板子焊不上。最靠谱的库来源有三个芯片原厂官网直接提供的AD封装和符号文件、像Ultra Librarian、SamacSys这类专业库平台导出的集成库、还有官方在线库平台Altium Live Parts里能查到的原厂维护数据。拿到外部库后第一件事不是直接开始画板把每个封装跟数据手册的Recommend PCB Layout页逐项比对一遍。焊盘间距、引脚宽度、热焊盘尺寸这些关键数据错了就是一块废板花十分钟检查能救回不少制造周期。5.3 封装检查与3D模型我见过很多工程师画完原理图就往下走封装从来不看最后打样回来芯片引脚对不上焊盘。PCB库编辑器里有一个非常有用的工具是Footprint Manager能批量查看当前工程用到的所有封装检查焊盘编号、间距、丝印还支持批量替换错误封装。3D模型这部分之前大家觉得可有可无但现在做结构协同就离不开它。AD支持把PCB板子导出成STEP格式机械工程师在SolidWorks或Creo里直接调用检查元器件高度、干涉、安装空间。反过来说拿到外壳的STEP模型后也可以导入AD做3D验证。导出STEP时注意选Include 3D Bodies否则机械那边收到一坨光板。6. 二次开发脚本和DLL扩展AD的天花板6.1 用脚本能做什么Altium Designer的脚本系统被很多人忽略其实它是把重复劳动变成一键完成的利器。我最早试着用脚本是因为要处理一块上千个元件的板子手动检查每一个元件是否落在板框内眼睛都快看瞎了。后来写了一个DelphiScript脚本遍历所有PCB对象批量判断元件坐标是否在板框范围内把超出部分高亮并导出一个Excel清单十分钟完事。脚本能做的事远不止这些常见的有批量修改位号字体大小、按规则自动调整丝印位置、把DRC结果汇总成报告、检查某类元件的方向是否符合贴片规范、统计过孔数量估算成本、调用外部程序处理数据等。本质上AD的PCB对象模型是开放的原理图、PCB、网络、封装、铜皮几乎每个对象都可以通过API读取和修改。6.2 脚本入门一个遍历元件的示例我给出一个最简单的DelphiScript示例作用是在PCB环境下遍历所有元件并把位号打印出来代码风格是AD脚本常见的风格Var PCBBoard : IPCB_Board; Iterator : IPCB_BoardIterator; Comp : IPCB_Component; Begin PCBBoard : PCBServer.GetCurrentPCBBoard; Iterator : PCBBoard.BoardIterator_Create; Iterator.AddFilter_ObjectSet(MkSet(eCompObject)); Iterator.AddFilter_LayerSet(AllLayers); Iterator.AddFilter_MembershipSet(AllObjects); Comp : Iterator.FirstPCBObject; While Comp Nil Do Begin ShowMessage(Comp.Name); Comp : Iterator.NextPCBObject; End; PCBBoard.BoardIterator_Destroy(Iterator); End;这段代码的核心思路是创建一个PCB对象迭代器设置过滤条件为“所有元件对象”然后逐个取出来处理。新手想上手脚本先在DXP菜单下打开脚本窗口新建Script选择DelphiScript类型粘贴代码后运行界面会弹出位号列表。后面可以逐步加上坐标、角度、封装名输出再进阶到写文件。6.3 引DLL时该注意什么搜索热词里提到的“引用DLL 二次开发”是很多人的进阶需求常见场景是把自研算法或加密逻辑封装成DLL在AD脚本里调用。这里要泼一盆冷水AD的脚本接口对普通DLL的调用有限不像C#项目里那么简单。最稳妥的做法是把你需要调用的功能封装成COM可见组件并注册到系统然后在DelphiScript里通过CreateOleObject来拿这个组件实例调用方法。如果是.Net环境可以考虑通过编写AD扩展插件的方式实现或者干脆把DLL逻辑打包成一个独立的命令行程序脚本里用RunExternalProcess执行外部文件并读取输出。这是绕开复杂互操作性的务实方案稳定性和调试方便程度都好很多。二次开发最大的价值是沉淀公司内部的设计规范比如把《PCB设计规范文档》里几十条检查项写成脚本每次出板前跑一遍比人盯人检查靠谱。7. 常见问题与排查实录7.1 安装和启动类问题问得最多的是“安装最后一步卡住”和“启动报错”两类。安装卡住常见于杀毒软件拦截了文件写入退出杀毒或添加信任目录再装。启动报错比如缺少VCRUNTIME140.dll或者.NET Framework版本不对先去微软官方下载对应的运行库安装再启动AD。还有一个容易被忽略的原因是Windows账户名或路径是中文AD对中文路径的兼容性虽然改进了但极端情况下会在启动时加载库失败用英文用户账户最省事。7.2 运行卡顿和显示异常AD用一段时间开始卡顿先看内存占用再考虑OpenGL加速。Preferences → PCB Editor → General里关闭3D相关加速选项或者把Graphics Cache改成软件渲染很多集显机器瞬间流畅。另外PCB文档里如果堆了大量的实心覆铜每次缩放都要重新计算卡顿是正常的把显示模式切换到草稿模式可以缓解。还有一类问题是库面板或部件面板空白多数时候是网络问题或者Altium账户登录状态掉了。检查右上角账户是否在线在线部件搜索功能必须要连接服务器。如果公司内网有防火墙限制这个功能用不了解决办法是在本地库里维护常用元件不要依赖在线搜索。7.3 DRC、库和版本兼容问题速查DRC报了看起来没问题的错九成原因是规则作用范围重叠或优先级不对。比如全局间距规则8mil但同时存在一条覆盖全板的“高速网络”规则没写Query把普通信号线也套进去了就会误报。打开规则面板逐条看Scope和Constraints通常能找到问题。库和版本兼容方面低版本AD打不开高版本文件是常态AD高版本提供了Save Copy As降级保存的选项但降级后部分特性比如新的图形和规则类型可能丢失。协作时最好固定团队都使用同一主版本文件传递用标准格式。如果两个人用的版本相差太大优先转成ASCII格式或者导出ODB别硬扯兼容性。最后分享一个我自己的习惯每画完一块板子我会把工程里的规则文件、库文件、Output Job和几条常用脚本打包成一个“项目模板”下个项目直接套用。刚开始可能觉得费时间坚持两三个项目之后就会发现重复劳动越来越少错误率也明显降低。如果一个工具你已经每天都在用花点精力把它的流程和规范沉淀下来回报一定远超预期。
返回列表