
做硬件这行最怕的不是原理图画错而是板子老老实实贴完、测试架往上一压探针没落到该落的地方。前阵子一块六层板试产ICT在线测试一次通过率只有八成排查到最后发现是测试点尺寸和铺铜打架探针打在测试点上直接打滑误判了一堆焊点。这件事之后我把测试点设计从“顺手放两三个”改成了规范动作用Altium Designer把规则、位置、报表全链路走通试产良率才算稳住。今天就把这套从规范到实战的测试点设计方法完整拆一遍内容包括AD里的测试点规则怎么配、参数怎么定、批量分配怎么用、输出文件怎么发以及我踩过的几个典型坑。硬件工程师、PCB Layout工程师还有做DFT可测试性设计和测试开发的朋友都可以直接参考。1. 测试点的本质与设计思路拆解1.1 测试点到底是什么探针、针床与ICT的三角关系在PCBA工厂里ICT测试设备用的是针床夹具密密麻麻的弹簧探针从下方顶上来压在板子预先留好的焊盘或过孔上然后通过测量网络间的电阻、电容、二极管压降、IC管脚连通性来判断贴片和焊接有没有问题。这个被探针顶住的位置就是测试点。测试点本质上是探针和电路板之间的“桥”。板上的网络很多但探针不可能每个节点都扎也没必要。测试工程师会根据原理图、BOM和生成网表选出覆盖主要元件连接关系的节点用夹具上的探针去扎。这些节点能不能被稳定扎到、扎上去接触好不好直接决定ICT测试的良率和效率。你可以把它理解成体检时往手臂上绑血压计袖带——袖带不是随便找个位置一勒就行得选一块平坦、血管清晰、不容易滑动的地方。测试点选的不好后面整个测试环节都会难受。1.2 DFT视角下的测试策略哪些网络必须留点哪些可以放行测试点设计不是“每个网络都放一个点”而是要考虑测试覆盖率和成本的平衡。点放多了板面拥挤布线难度增加高速信号还可能被测试点带来的寄生参数拖累点放少了测试覆盖不到位缺陷流到功能测试甚至客户现场才发现返工成本远高于贴片环节。我自己的习惯是在原理图阶段就用标记区分网络优先级。优先级网络类型处理策略必须加电源主供电、系统地、晶振输入输出、复位、boot配置、关键模拟输入每个网络至少一个测试点电源/地可冗余1-2个建议加普通低速数字IO、ADC采样输入、通信总线I2C、UART初期调试尽量每个网络一个方便单板调试与失效定位谨慎加高速差分线、DDR数据/地址线、USB差分、PCIe、SerDes不加或只在终端预留减少阻抗不连续禁止加受保护模拟前端、天线馈点、高精度参考源附近测试点会引入寄生电容和泄漏路径破坏信号完整性这块整理成一张电源网络/信号网络清单提前发给测试工程师对齐双方在同一张表上核对覆盖率比后期反复改板省事得多。1.3 探针接触可靠性的物理基础材质、压力、氧化与清洁测试点好不好用不只看尺寸还看材料、表面处理和使用环境。常见的探针头部是铍铜或钢材质表面镀金或镀镍针尖有尖头、皇冠头、锯齿头等区别。探针对测试点的接触力一般在100g到200g之间太大容易压坏焊盘太小接触电阻不稳。测试点所在的焊盘表面处理方式影响也很明显。喷锡板HASL表面不太平整探针压上去接触面积小阻抗容易出现波动沉金板表面平整抗氧化能力强探针接触更稳定只是成本高一点。我做过的小批量样板里沉金板和喷锡板在ICT测试上的差异很明显尤其是测试点比较密的时候沉金板几乎不用返工喷锡板偶尔会有莫名其妙的接触不良。还有一个容易被忽略的是环境因素。板子贴片完如果长时间裸露在空气中测试点会氧化助焊剂残留也会附着在表面。测试夹具的探针用久了针尖会脏需要定期清洁。设计阶段能给测试点加阻焊开窗、增加接触面积相当于给生产环节多上了一道保险。2. Altium Designer测试点设计规范落地关键参数与规则配置2.1 AD里和测试点有关的三类核心规则AD的PCB规则编辑器里有一个独立的Testpoint类别主要就两条规则Testpoint Style和Testpoint Usage。任何测试点设计最终都要落到这两条规则上。Testpoint Style定义测试点“长什么样”——是焊盘Pad还是过孔Via尺寸多大允许放在顶层、底层还是两层都行。Testpoint Usage则是“哪里需要测试点”——哪些网络必须有Required、哪些允许有Allowed、哪些禁止有Not Allowed。这两个规则结合起来AD的DRC就能自动检查设计里到底缺不缺测试点。很多朋友第一次接触测试点规则时容易犯一个错误只知道放几个焊盘忘了在Testpoint Usage里把关键网络设为Required。结果DRC跑不出任何问题等Gerber发到板厂、针床做到一半才发现某个电源网络根本没有测试点夹具没法覆盖。所以规则配置这一步不是可选项是测试点设计的起点。2.2 尺寸、间距、层别参数换算从夹具精度倒推设计值测试点的尺寸和间距不能凭感觉拍脑袋。最合理的做法是从针床加工精度和探针规格倒推需要多大。常规ICT针床的孔位加工精度在正负0.05mm左右探针针尖直径通常在0.5mm到1.0mm之间。要让探针稳定压中测试点的焊盘直径至少要比针尖直径大0.4mm以上。如果测试点直径只有0.6mm探针针尖0.7mm扎上去一大半落在阻焊层上接触面积太小ICT测试极不稳定。我常用的参考参数如下参数项普通成熟产品高密度板/精密产品说明测试点焊盘直径1.0mm - 1.2mm0.8mm - 0.9mm越大接触越稳但占板面积也大测试点间距2.54mm2.0mm与针床钻头最小间距匹配测试点到板边大于5mm大于3mm给夹具边沿和压板留空间测试点到元件本体大于3mm大于2mm防止探针压到元件或与之干涉测试点到安装孔/定位孔大于5mm大于3mm避免与螺钉、定位销冲突过孔型测试点内径0.8mm - 1.0mm0.6mm - 0.8mm过孔不宜太小否则探针进不去这些参数不是死的但有一条铁律测试点间距必须给针床的钻头留出足够空间。针床上两个相邻探针座之间距离一般不能小于1.27mm换算到设计端就是测试点中心间距至少2.0mm以上不然针床厂磨钻头都救不回来。至于层别选择我一般推荐双面都允许放测试点但优先底层焊接面。因为贴片板过回流焊后顶层元件最多探针从底层往上顶不会碰到高元件夹具设计也简单。如果双面都有BGA或密集器件就需要跟测试工程师提前确认必要时做“两面分区域测试”方案。2.3 在规则管理器里一键配置参数化模板与优先级的坑AD的规则可以存成模板复用这点强烈建议用好。配置好一次Testpoint Style和Testpoint Usage之后在规则管理器里右键导出规则存成.drl或直接用工程模板下一个项目直接导入不用每次都重新填。这里有个优先级的问题容易踩坑。AD规则是有优先级的多条规则可能同时命中同一个对象。如果同时设置了“所有网络都允许测试点”和“电源网络必须有测试点”那电源网络的Rule会优先生效没问题但如果优先级顺序反了或者规则过滤条件写错可能出现所有网络都只能有测试点或者电源网络反而被其他规则挡住。我自己的习惯是Testpoint Usage规则只建两条——一条针对整板设置Allowed一条单独针对电源地等关键网络设置Required并且把Required那条的优先级拉高。然后DRC里勾选Testpoint相关检查项出图前专门跑一遍。这样基本不会漏。3. 从布局到布线的测试点实操完整流程3.1 测试点放置的两种路线手动放置与Test Point Manager批量处理在AD里放测试点有两条路线。一条是纯手动在PCB图上选择Place菜单下的Test Point下拉里选择测试点是焊盘还是过孔放到目标网络上。另一种是批量自动化用Design菜单部分版本在Tools菜单里的Test Point Manager。手动放的优点是指哪打哪适合处理个别特殊位置。但整板几十上百个网络一个个手点效率太低还容易遗漏。我一般是先自动分配再手动微调两条路线配合使用。放置焊盘型测试点时注意一定要给焊盘勾选Testpoint属性。AD里普通焊盘默认不是测试点光有焊盘却少了Testpoint标记DRC照样报缺测试点。选中焊盘后在Properties面板里找到Testpoint选项选择允许顶层或底层这一步必须做。过孔型测试点相对简单普通过孔通过了Testpoint Style规则校验后可以被自动识别为测试点。但过孔型测试点有个劣势探针扎上去如果过孔没有塞孔探针尖端可能顶进孔里接触面积反而变小。这个问题后面避坑部分会详细讲。3.2 关键网络优先级分配与补点策略用Test Point Manager批量处理时操作顺序很关键。我建议按这个步骤来。第一步先打开Test Point Manager界面看左边的网络列表按网络类型排序把电源、地、关键信号网络单独分组。第二步对分组后的关键网络执行“添加测试点”操作AD会自动在当前层或指定层寻找合适位置优先放在元件少、空间大的区域。第三步检查自动分配结果对明显不合理的点手动拖拽调整位置。第四步执行一遍DRC确认所有Required网络都有测试点。自动分配不是万能的经常出现把测试点放在离元件引脚太近的地方或者放在铺铜区域中央的情况。这时候就得手动挪。我一般会在布线完成前先把测试点位置大体排好再进入精细布线这样测试点不会和走线抢空间。补点策略上我的原则是“电源网络冗余信号网络克制”。电源网络多一个测试点不影响信号完整性还能提高测试覆盖的稳定性高速信号网络就老老实实一个点甚至不加。普通低速信号网络一个点就够ICT测试本身只需要验证连通性不需要对待测网络反复扎针。3.3 遇到高速差分线测试点该放弃还是保留这是很多PCB工程师纠结的地方。高速信号线上加测试点等于在传输线主干上拉出一根短截线stub哪怕只有几毫米也会产生阻抗不连续和信号反射。DDR4跑到2400Mbps以上10Gbps的SerDes一个5mm的stub就足以让眼图劣化到误码。我的处理原则是速率越高、信号越敏感越要放弃直接加测试点。但测试工程师又需要验证链路通断怎么办最常用的折衷方案是“0Ω电阻测试点”。具体做法是在高速信号链路上预留一个串联0Ω电阻焊盘正常工作时贴0Ω电阻保证链路导通测试时把电阻摘下来用两端的焊盘分别接触探针测量两端网络的通断。这样既不破坏传输线主干又能做测试隔离。缺点是测试要动烙铁适合小批量或开发验证阶段。量产阶段如果必须高速链路测试就只能在差分线的终端预留connector用飞线方式外接测试设备跳过ICT直接做在线功能测试。另一个替代方案是用过孔型测试点但过孔要尽量靠近接收端或驱动端管脚让stub长度最短并且过孔下方不要有连续的参考平面掏空。实测下来把过孔stub控制在2mm以内在1GHz以下的信号上基本看不出影响再高就需要做背钻或HDI叠层处理了。4. 测试点设计与生产测试的衔接Gerber输出与夹具配合4.1 阻焊开窗与丝印标识探针接触面和人工排查的可靠保障测试点能不能被探针稳定接触和阻焊层开窗关系非常大。焊盘型测试点AD默认会在阻焊层开窗但如果你用的是过孔或特殊焊盘一定要单独检查Solder Mask层的开窗情况。测试点被阻焊油覆盖探针压上去接触的是绝缘层ICT直接报开路。还有一点容易被忽略测试点表面不能有太多焊料。波峰焊过程中测试点如果做成通孔焊盘且没有塞孔焊料很容易顺着孔壁爬上来在焊盘表面鼓一个小包。探针压上去会打滑接触电阻忽高忽低。解决方法是测试点用塞孔工艺或者在生产文件里把测试点标记为“不焊接”让板厂在过波峰焊时贴高温胶带遮挡。丝印标识看着小事实际作用很大。我习惯在测试点旁边加一个0.3mm线宽的小圆圈丝印并在旁边标注网络名或测试点编号TP001、TP_A2放到Top/Bottom Overlay层。这样产线维修人员拿万用表排查时能快速找到测试点不用对着Gerber一张张翻。丝印标识注意不要覆盖焊盘本身不然也是接触不良的隐患。4.2 用OutJob统一下发测试点相关的制造与报表文件AD的OutJob是个被很多人低估的功能。我之前发制造文件都是手动出Gerber、钻孔、装配图一忙起来经常漏掉某个层后来把OutJob配置好一键生成所有输出省了很多事。在OutJob配置里建议把这几类文件放在同一个任务组里Gerber文件包含Top/Bottom Copper、Top/Bottom Solder Mask、Top/Bottom Overlay、Drill Drawing、钻孔文件NC Drill、ODB给部分板厂用、Pick and Place贴片坐标文件以及Test Point Report测试点报表。Test Point Report这张表是发给测试工程师的核心交付物。里面包含每个测试点所在网络名、坐标、所在层、是焊盘还是过孔、焊盘大小等信息。AD可以在OutJob里直接添加Test Point Report输出生成TXT或CSV格式。拿到这张表测试工程师才能去设计针床布局决定哪些点用探针接触哪些点需要加粗探针或改用双探针结构。文件命名和版本管理也要注意。我见过不止一次因为Gerber文件名没带版本号板厂做出来的板和测试夹具版本对不上。现在的做法是在OutJob里统一加变量项目名_版本号_日期让Gerber、钻孔、Test Point Report都带相同标识从源头杜绝版本混乱。4.3 端到端沟通测试工程师需要哪些信息很多工程师以为发完Test Point Report就完事了实际上测试端需要的配套信息更多。曾经有一个项目测试点坐标发过去测试工程师问我要装配图和原理图我第一反应是“还要这个”后来才明白针床设计必须知道每个元件的高度和位置探针才不会扎到高器件上原理图则用来确认网络连接关系方便排查故障时快速定位。给测试工程师的资料包最好包含这几项资料项用途Test Point Report坐标网络尺寸针床探针布局设计PCB最终装配图含位号避让高元件、确认板上安装方向BOM含版本号确认元件封装、测试点是否被遮挡原理图PDF故障定位、网络逻辑核对拼板图/工艺边说明确认定位孔、基准点位置与夹具设计匹配探针选型这块也值得了解。如果测试点上锡较多、表面不平可以选择锯齿头或皇冠头探针能扎破氧化层和焊料表层获得可靠接触如果测试点是沉金表面用普通尖头探针就足够。把这些信息和测试工程师提前对齐可以减少很多试产后夹具调试的时间。5. 常见问题与避坑实录我踩过的测试点设计的坑5.1 坑一测试点被大面积铺铜“焊死”探针找不到落点之前有块电源板的5V网络我把测试点放在了一整片铺铜中间。过回流焊之后锡膏顺着铜皮流到测试点焊盘上把测试点表面弄得凹凸不平。ICT测试时探针压上去接触电阻忽大忽小良率直接掉到八十几。后来处理办法是把测试点设置成与铺铜采用热焊盘连接Thermal Relief而不是直接全覆盖相连。同时在测试点周围铺铜挖空一圈保证测试点焊盘边缘能露出阻焊和基材探针能精准接触到焊盘金属面。这个问题的根源是铺铜连接方式。AD里Pad和铺铜的连接方式可以在规则管理器里单独设置测试点Pad的Relief Connect宽度、空气间隙都单独配一条规则别让大面积铺铜包住测试点。5.2 坑二间距差0.3mm整个针床要重新开孔有一回设计排测试点间距基本都是2.54mm但有一个点旁边紧挨着定位孔只留了2.2mm距离。针床设计师说这个定位孔边上正好是探针座的固定螺钉位置探针座放不下最后只能改针床设计额外增加成本还拖了两天工期。从那以后我养成了一个习惯布局阶段就把所有定位孔、安装孔、基准点在PCB上的位置列一张表和测试点坐标一起检查距离不够的提前调整。AD的DRC虽然可以查间距但默认规则里不会专门查“测试点到定位孔距离”需要自己在规则里加一条查询条件。具体做法是在Clearance规则里加一个针对Testpoint和定位孔的约束把最小间距设成5mmDRC能自动扫出来。5.3 坑三高速时钟线的测试点导致信号变差现场排查到崩溃一次调试一块带100MHz时钟信号的板子眼图测试总是不过时钟沿变缓、抖动偏大。前前后后查了电源纹波、晶振负载电容、走线阻抗都找不到原因。最后把时钟线的测试点焊盘去掉信号瞬间恢复正常。原因很直白当时为了ICT覆盖我在时钟线上加了一个1mm直径的焊盘测试点这个焊盘在走线上形成了一小段stub100MHz信号的波长虽然长但谐波分量依然受到这个stub影响。从那以后凡是时钟、复位、高速差分线我默认不加测试点除非测试部门强烈要求而且就算加也只用过孔型位置尽量靠近接收端。高速设计里测试点不是免费的它消耗的是信号完整性余量。5.4 坑四AD软件异常导致测试点分配工具罢工有次打开一个旧工程发现SCH元器件属性面板只显示Simulation Generic的内容Footprint、Designator这些怎么都点不出来。当时没太在意结果网表同步到PCB之后Test Point Manager里好几个关键网络都识别不到提示网络不存在。排查了半天其实是缓存和旧工程数据冲突导致元器件属性加载异常网络信息没有完整同步过来。清掉AD缓存、重新加载库和工程再把网表重新同步一遍就好了。这件事给我的教训是测试点设计依赖的是一个完整、健康的工程数据链。原理图元件属性、封装、网表、PCB网络列表任何一环出错Test Point Manager都可能误判。批量分配测试点之前先确认PCB左侧面板里的网络列表和你预期的一致再动手操作。5.5 测试点常见问题速查表现象可能原因解决办法ICT探针接触不良测试点被阻焊覆盖、焊料鼓包、氧化检查阻焊开窗、塞孔处理、沉金表面DRC报缺少测试点Testpoint Usage规则未设置Required在规则管理器里对关键网络设置Required测试点识别不到网络网表同步异常、工程缓存问题清理缓存、重新同步网表测试点与定位孔干涉布局未考虑夹具结构在Clearance规则里加测试点与定位孔距离约束高速信号眼图变差信号线上的测试点stub过长移除测试点或改用0Ω电阻测试隔离法自动分配测试点位置差没有提前规划测试点区域布线前先预留测试点再自动分配后手动微调我自己的习惯是在Layout Review清单里固定加一项“测试点专项检查”打开Test Point Report统计测试点总数和覆盖率对照关键网络清单逐项确认再跑一遍DRC。做到这一步基本不会等到试产才被测试部门叫过去“喝茶”。测试点设计这件事前期多花半小时后面省掉的不只是几天的返工周期还有整个团队对板子质量的信任。