Altium Designer多层板盲埋孔设计与Gerber输出实战指南
在今天的高速高密度电路设计中,一块6层甚至10层的PCB已经不再是“高端项目”的代名词,而是许多消费电子、通信模块和工业控制产品的标配。随着封装越来越小、引脚越来越多,传统的通孔布线方式早已捉襟见肘。这时候,盲孔(Blind Via)与埋孔(Buried Via)技术便成为突破布线瓶颈的关键利器。
但问题也随之而来:很多工程师在使用Altium Designer完成复杂多层板设计后,满怀信心地导出Gerber文件发给工厂,却收到一句“盲孔未识别”或“钻孔数据混乱”的反馈——轻则返工修改,重则整板报废,延误交付周期。
这背后的问题,往往不是设计本身出了错,而是制造输出环节对盲埋孔结构的支持不到位。本文将带你一步步走完从层堆栈定义到最终Gerber输出的全过程,重点聚焦于如何正确处理含盲埋孔的多层板制造文件生成,彻底避开那些看似隐蔽实则致命的设计陷阱。
层堆栈是起点:别让PCB“长歪了骨架”
所有关于盲埋孔的一切,都始于一个被很多人忽略的地方——Layer Stack Manager(层堆栈管理器)。
你可能觉得这只是个设置板厚和铜厚的工具?错了。它是整个PCB物理结构的“基因图谱”,决定了哪些层之间可以打孔、哪些只能靠压合连接。
为什么普通堆栈不支持盲埋孔?
默认情况下,AD中的Layer Stack是一个单一整体,所有过孔都可以贯穿全部信号层。这种结构下,软件根本无法区分“只连Top到L2”的盲孔和“贯穿L1-L6”的通孔。结果就是:你画的是盲孔,系统当通孔处理,DRC不报错,但工厂做不出来。
要启用盲埋孔,必须开启Multiple Sub-stacks(多子堆栈)模式。
如何正确划分子堆栈?
以典型的6层HDI板为例:
Sub-stack 1: 外层压合一 - Top Layer (L1) - Prepreg - Internal Layer 2 (L2) Sub-stack 2: 中心芯板 - Core (连接 L2 和 L5) - Internal Layer 3 (L3) - Internal Layer 4 (L4) Sub-stack 3: 外层压合二 - Internal Layer 5 (L5) - Prepreg - Bottom Layer (L6)在这个结构中:
- L1 ↔ L2 的连接可通过激光钻实现为盲孔
- L3 ↔ L4 可预先压合前完成钻孔,形成埋孔
- L1 ↔ L6 则需后期通孔加工
只有当你在Layer Stack Manager中明确划出这三个独立的Sub-stack,并指定它们各自的起止层,Altium才能理解这些特殊过孔的合法性。
✅ 实战提示:右键点击Layer Stack界面 → “Add Layer Stack” 即可添加新子堆栈;完成后务必检查各层顺序是否与实际压合流程一致。
盲埋孔不是“随便放的过孔”:规则决定成败
一旦层堆栈定义清楚,下一步就是告诉软件:“我想在这两个特定层之间打一个非穿透孔”。
这就是Via Style的作用。
定义专用Via类型
进入Design » Rules,找到Routing组下的Width和Routing Via Style规则。
新建一条Via Style,例如命名为Blind_Via_L1-L2,然后设置:
- Start Layer: Top Layer
- End Layer: Internal Layer 2
保存后,在布线时按*切换过孔类型,或直接在快捷菜单中选择该Via Style,此时软件只会允许你在L1和L2之间放置此过孔,跨其他层会直接报DRC错误。
同理,为L3-L4定义一个Buried_Via_L3-L4类型,确保它不会出现在外层。
关键参数不能忽视
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 最小盲孔直径 | ≥0.1mm(激光钻) | 小于0.1mm良率急剧下降 |
| 孔径比(Aspect Ratio) | ≤8:1 | 深径比过大导致电镀困难 |
| 阻焊开窗尺寸 | +0.05~0.1mm | 确保激光能准确打通 |
这些数值并非随意设定,而是基于IPC-2226 Class B HDI标准以及主流PCB厂工艺能力得出的经验值。如果你的设计超出这个范围,一定要提前与厂家确认可行性。
自动化检查:用脚本防止人为失误
虽然AD没有开放Python API,但它支持Delphi Script/VB Script,我们可以写一个小工具来批量验证过孔合法性。
// 检查是否存在非法跨层过孔 procedure CheckInvalidVias; var via : IPCB_Via; layerStack : IPCB_LayerStack; startLayer, endLayer : TLayer; begin layerStack := PCBBoard.LayerStack; ResetParameters; AddStringParameter('Action', 'Highlight'); for via in PCBBoard.Vias do begin startLayer := via.StartLayer; endLayer := via.EndLayer; if not layerStack.IsLayerPairValid(startLayer, endLayer) then begin // 高亮非法过孔 RunProcess('PCB:HighlightObjects'); AddMessage('❌ 非法过孔:%s → %s,请检查层对定义', GetLayerName(startLayer), GetLayerName(endLayer)); end; end; end;这个脚本可以在布线完成后运行一次,自动找出所有不符合Sub-stack定义的过孔,避免因误用通孔替代盲埋孔而导致制造失败。
导出Gerber:别让最后一步毁了前面的努力
终于到了最关键的一步——生成制造文件。很多人以为只要点了“Generate Gerber Files”就万事大吉,殊不知这里面藏着无数细节雷区。
Step 1:启动输出向导
路径:File » Fabrication Outputs » Gerber Files
Step 2:General 设置 —— 精度决定成败
- Units: Millimeters(推荐)
- Format: 4:5(比常见的4:4更精确,避免舍入误差)
- Dimensional Format: Leading zeros
- Plot Layers Used In PCB: 勾选(自动包含有效层)
⚠️ 特别提醒:如果格式选成2:4或3:5,某些老式CAM系统可能解析失败,导致图形偏移。
Step 3:Layers 选项卡 —— 层映射必须精准
| AD层名 | 标准Gerber扩展名 | 是否必选 |
|---|---|---|
| Top Layer | .GTL | ✅ |
| Bottom Layer | .GBL | ✅ |
| Internal Layer 1~n | .G1,.G2… | ✅ |
| Top Solder Mask | .GTS | ✅ |
| Bottom Solder Mask | .GBS | ✅ |
| Top Silkscreen | .GTO | 可选 |
| Bottom Silkscreen | .GBO | 可选 |
📌重点注意阻焊层:盲孔必须在外层阻焊上有对应的开窗(Solder Mask Opening),否则会被绿油覆盖,失去电气意义。确保你的SMD焊盘在GTS/GBS中有正确暴露区域。
Step 4:Drill Drawing 设置 —— 图纸也要分层
进入 Drill Drawing 选项卡:
- 勾选Plot all used layer pairs
- 启用Show drill origin
- 命名格式建议设为%LayerPair%_Drill.PDF,例如Top-To-L2_Drill.PDF
这样每对层之间的钻孔图都会单独输出一张PDF,方便厂家核对。
NC Drill 文件:真正决定盲埋孔命运的数据
如果说Gerber描述的是“哪里有铜”,那么NC Drill文件描述的就是“哪里要打孔”。对于盲埋孔而言,必须按Layer Pair分开输出钻孔文件。
路径:File » Fabrication Outputs » NC Drill Files
关键设置:
- Units: mm
- Format: 2:5
- Hole Size Accuracy: 0.001mm
- ✅Generate separate drill files per layer pair
启用这项后,AD会自动生成如下文件:
-PTH_AllLayers.drl—— 所有层贯通的通孔
-BlindVia_TopToL2.drl—— L1到L2的激光盲孔
-BuriedVia_L3ToL4.drl—— 内部埋孔
每个.drl文件对应不同的钻孔工序阶段。工厂会先做埋孔钻孔并压合,再做盲孔,最后才是通孔。顺序错乱,整板报废。
💡 秘籍:在Mechanical层绘制一张“钻孔工艺流程图”,标注每一类孔的加工顺序,并输出PDF随文件包一起提交,极大提升沟通效率。
工程交付包该怎么打包?别少了这几样
你以为导出完Gerber和DRL就结束了?远远不够!
一个完整的制造输出包应该包括:
| 文件类型 | 作用 | 是否必需 |
|---|---|---|
.GTL,.GBL,.G1~Gn | 各层铜皮图形 | ✅ |
.GTS,.GBS | 阻焊开窗 | ✅ |
.GTO,.GBO | 丝印标识 | ✅ |
.DRL(多个) | 分层钻孔数据 | ✅ |
| Drill Drawing PDF | 钻孔图参考 | ✅ |
| Layer Stack Table PDF | 层叠结构说明 | ✅ |
| README.txt | 包含工艺要求说明 | 强烈建议 |
其中,README文档尤其重要。建议包含以下内容:
项目名称:XYZ_HDI_Module 层数:6层 板材:FR-4 High-Tg 最小线宽/间距:0.1mm / 0.1mm 盲孔工艺:UV Laser, Ø0.1mm 埋孔工艺:Mechanical, Ø0.2mm 压合次数:3次(Sub-stack x3) 阻抗要求:单端50Ω ±10%,差分100Ω ±10% 备注:请按Sub-stack分步压合,先完成L3-L4埋孔压合,再进行盲孔及通孔加工。常见坑点与避坑指南
| 问题现象 | 根本原因 | 解决方案 |
|---|---|---|
| 工厂说“看不到盲孔” | 阻焊层未开窗或钻孔文件合并输出 | 检查GTS是否有对应PAD,确认Separate DRL已启用 |
| 埋孔出现在顶层 | 使用了通孔而非专用Via Style | 在Rules中锁定Via起止层 |
| Gerber图形偏移 | 格式精度不足(如3:3) | 改为4:5格式重新输出 |
| 阻抗不达标 | prepreg厚度未准确输入 | 回Layer Stack修正介电层厚度并重新计算 |
| DRC无报错但无法生产 | Sub-stack未启用 | 回Layer Stack Manager检查多堆栈状态 |
进阶建议:迈向更高可靠性设计
优先考虑ODB++输出
虽然Gerber仍是主流,但ODB++是一种数据库式输出格式,能原生表达层对关系、过孔类型、材料属性等语义信息,极大降低误解风险。可在File » Export » ODB++中一键生成。与PCB厂早期协同设计(DFM前置)
在Layout开始前,获取合作厂家的工艺能力清单(Capability Sheet),包括最小盲孔、最大层数、支持的压合次数等,据此调整你的Layer Stack设计方案。使用Ucamco Viewer预审文件
下载免费的 Ucamco UVM 工具,导入你导出的Gerber+DRL组合,直观查看每一层的实际效果,提前发现异常。
写在最后:精准输出是专业性的体现
掌握盲埋孔设计与制造输出,不只是为了做出一块“看起来很高级”的PCB,更是为了应对日益复杂的系统集成挑战。无论是5G射频前端、AI边缘计算模组,还是医疗穿戴设备,都在追求极致的空间利用率和信号完整性。
而这一切的基础,是从你手中导出的那一套完整、清晰、无歧义的制造文件开始的。
当你把Gerber包发出去的时候,你不只是交出一堆文件,更是在传递一种信任:我相信我的设计是正确的,我也相信你能把它做出来。
而这,正是每一个资深硬件工程师的专业底气所在。
如果你正在做HDI板、遇到了盲孔出不了光绘的问题,不妨回头看看Layer Stack是不是真的“长对了样子”。也许答案,就藏在那张不起眼的层堆栈表里。