我最早对“测试点”这三个字留下深刻印象,是在一款消费电子主板的ICT治具回签阶段。结构工程师拿着针床图来找我,开口就问:这两个测试点中心距只有1.9mm,我的探针导套外径最小2.0mm,你打算往哪儿扎?当时我第一反应是“那错开一点不就行了”,结果一查才发现,整板有十几个测试点的间距都不满足2.54mm,最后只能重排测试点、重新投板,两周工期直接没了。从那以后我就明白,测试点从来不是PCB快画完时顺手甩几个焊盘的小事,它直接决定了产线ICT能不能测、治具要不要加钱、首件能不能顺利过。
做硬件和PCB设计这些年,我见过太多“原理图没问题、Layout没问题、一到量产测试就出问题”的项目,根子往往就出在测试点设计上。这篇文章我想把Altium Designer里测试点设计这件事从头到尾讲透,包括测试点的作用是什么、间距和尺寸参数到底怎么定、AD里面规则和Test Point Manager怎么用、以及我实际踩过的坑和排查技巧。无论你是刚入门PCB设计的工程师,还是想完善测试点规范的老手,这篇文章都应该能给你一些可以直接落地的参考。
1. 测试点设计的工程意义与方案选型
1.1 测试点在产品生命周期里到底扮演什么角色
很多刚接触PCB设计的工程师容易有一个误解,觉得测试点就是“给调试时万用表找个地方搭针”。实际上,测试点的价值在研发、生产、售后三个阶段都体现得非常明显。
在研发调试阶段,测试点是硬件工程师测量电压、波形、时序的关键位置,特别是那些没有引出排针的芯片电源引脚、I2C通信线、复位信号等,如果没有提前放置测试点,调试时探针根本不知道往哪里搭。在产线生产阶段,ICT(In-Circuit Test,在线测试)通过针床一次性接触板上所有测试点,可以在几秒钟内完成开路短路、缺件、错件、极性反、部分器件参数异常的筛查,这是批量生产质量把控的核心手段。到了售后维修阶段,维修工程师拿到故障板,首先也是靠测试点快速定位失效单元,而不是拿着放大镜去数电阻。
换句话说,测试点设计不是Layout工程师一个人的事,它需要硬件工程师、测试工程师、结构工程师共同参与,而PCB设计者往往是那个把大家需求落地成实际板子的人。如果这一步没做好,后面每一个环节都要付出额外的工时和费用,严重时甚至要改板、重投、报废治具。
1.2 焊盘型测试点、过孔型测试点、专用测试件的选型对比
Altium Designer中实现测试点的载体主要有三类:焊盘型、过孔(Via)型、以及专用测试针/测试环。这三类各有适用范围,我列个表方便对照。
| 类型 | 常见实现 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| 焊盘型 | 顶层/底层裸露焊盘,钻孔0mm | 接触面积大,探针接触可靠,不破坏走线 | 占板面积稍大 | 绝大多数量产板的首选,ICT/飞针都适用 |
| 过孔型 | 普通过孔或加大的测试过孔 | 不额外占面积,可与走线换层结合 | 孔径小容易接触不良,塞孔后失效,多次插拔易损伤焊盘 | 密度高的板子、备用测试点、低要求网络 |
| 专用测试件 | 压接测试针、弹簧探针环 | 接触极其可靠,寿命长 | 成本高,需要额外装配工序 | 高频电源、军工等高可靠性场景,或长期调试工装 |
实际项目中,绝大多数消费电子和工业控制板都用“焊盘型测试点”,也就是在PCB表面放一个孔径为0的圆形焊盘,不开钢网、不盖阻焊,直接裸露铜面,再根据表面处理工艺(喷锡、沉金、OSP)决定最终的接触效果。这里我要多说一句:如果你的板子表面处理是OSP,测试点放置时间长了铜面容易氧化,影响接触,最好在ICT之前做一次烘板或清洁;沉金板测试点的接触可靠性是最好的,对探针寿命也友好。
1.3 为什么测试点不能完全交给Layout自由发挥
我见过一个项目,Layout工程师手工放了三十多个测试点,看起来密密麻麻很丰盛,结果硬件工程师一看就懵了:三个电源网络一个测试点都没有,某个关键时钟信号倒是放了三个。这个问题的根源在于,Layout阶段大家习惯“顺手放”,没有事先定义“哪些网络必须有测试点”,也没有统一的间距和尺寸标准。
所以规范的流程是:原理图阶段就先用测试点符号把关键网络标记出来,或者整理一份“测试点需求清单”,明确每个电源域、每个关键信号、每个接插件网络的测试点数量。PCB设计阶段再根据布局空间、元件高度、工艺要求去调整具体位置。Altium Designer里有专门的Test Point管理器,可以辅助检查“哪些网络还没有测试点”,但这个工具只能作为校验手段,不能替代前期的需求定义。
2. 测试点布局规范与关键参数拆解
2.1 测试点间距:2.54mm这个数字是怎么来的
ICT测试之所以对间距这么敏感,是因为针床上的每一根探针都有一个物理的导套,导套外径通常为1.5mm到2.0mm,加上治具板上钻孔需要留出的孔壁间距和强度余量,两个探针中心距至少要2.54mm才比较稳妥。这也是行业内最通用的标准间距,很多治具厂默认按这个间距设计针床,成本也最低。如果板子密度实在高,可以做到1.27mm,但这时候导套要特殊定制、治具加工精度要求更高,成本会明显上涨,而且探针做细之后阻抗变大、寿命下降,维护频率也跟着上升。
我在实际项目中定的规范是:普通信号测试点中心距不小于2.54mm,特殊情况经测试工程师确认后可放宽到2.0mm,但尽量不要低于1.9mm。之前那个1.9mm间距的板子,其实就是Layout工程师觉得“看起来差一点点没关系”,但治具厂商算了一下导套壁厚之后直接回复做不了。间距一旦不满足,探针导套之间要相切甚至打架,针床压根没法钻孔,这种情况只能改板。
2.2 测试点尺寸和焊盘参数:圆焊盘为什么是默认选择
测试点的焊盘尺寸直接影响探针接触面积和定位容差,我建议普通焊盘型测试点直径不小于1.0mm,推荐做到1.2mm到1.5mm。小于1.0mm的焊盘,探针针尖万一有一点偏移,接触面积太小,接触电阻会很不稳定;大于1.5mm虽然接触更可靠,但在高密度板上容易挤占布线空间,得不偿失。
为什么默认用圆形焊盘而不是方形或矩形?原因是探针从各个方向落下时,圆形焊盘在任意角度都有一样的接触宽度,容差均匀;方形焊盘的角落在制造时容易翘边,探针扎到边缘时受力不均,长期使用也容易伤焊盘。所以在Altium Designer中放置测试点焊盘时,Pad Shape选择Round即可。
如果某些网络必须用过孔做测试点,孔径建议不小于0.5mm,焊盘外径不小于0.9mm,并且确认PCB加工时不允许对这个过孔做塞孔处理。很多板厂默认对过孔塞油,一旦塞了,探针接触面就废了。这个细节在发板前一定要写进加工说明里,不然板厂按默认工艺做出来,ICT阶段才会发现问题。
2.3 测试点布局禁区:板边、高器件、定位孔、Mark点
测试点不是哪里好放就放哪里,它需要兼顾“测试探针能不能够到”和“周围元件会不会干扰”两个问题。我总结了几条布局原则,项目里可以直接套用。
第一,距离板边不小于3mm。ICT针床的定位靠板边和定位孔,探针要从板子上下两个方向压下来,太靠近板边的测试点可能被治具的压板结构遮住,或者探针导套与定位销干涉。
第二,距离高度超过5mm的元件(连接器、电解电容、大电感、散热片)不小于3mm。探针导套和弹簧是有一定长度的,如果旁边立着一个高元件,导套下降时会撞上去,要么探针扎不到测试点,要么元件的引脚被压坏。
第三,距离定位孔和Mark点至少保持3mm以上。定位孔周围通常有禁布区,Mark点附近需要留出光学识别的净空,测试点放过去会导致坐标识别误判,也违反SMT工艺要求。
第四,不要在拼板V-cut、邮票孔桥连位置附近放测试点。这些位置在分板时会变形、翘曲甚至产生毛刺,探针落上去接触不稳定,测试数据忽好忽坏。
第五,如果有底面回流或波峰焊夹具,底面测试点要避开夹具支撑柱和遮蔽区域。这个容易被忽略,因为Layout阶段看不到焊接夹具的结构,最好提前找工艺工程师要一份夹具开孔图。
2.4 网络覆盖原则:每个网络至少一个测试点,电源和地要多放
测试点覆盖的核心原则是“每个需要测试的网络至少有一个物理测试点”,这句话听起来简单,落地时有很多细节。一个原则是电源网络和地网络不能只放一个测试点,因为电源网络供电路径长、电流大,只在芯片边上放一个测试点,治具测试时无法判断远端是不是断开了,至少要在主电源入口和负载端各放一个。地网络建议在板子不同区域均匀布置两到三个测试点,这样既能测地网络连续性,也能在ICT阶段作为探针回流的公共参考点。
另外,BGA芯片内部扇出的那些网络,如果不通过过孔引到PCB表面,BGA焊点内部的开路就很难测试。实际做法是把BGA扇出后的走线在远端预留一个测试点,而不是直接在BGA焊盘上放测试点。BGA焊盘间距太小,探针没法直接扎,强行扎下去还可能损伤焊盘。我通常会在BGA外围找一个相对空旷的区域,把需要测试的网络用一小段走线引出来,再接一个1.2mm的测试点焊盘。注意这段引出走线越短越好,避免在天线、射频、高速信号网络上产生额外的影响,具体我在后面“高速信号加测试点”里再展开。
3. Altium Designer规则配置与测试点管理器实操
3.1 在原理图端先给测试点安排“合法身份”
在Altium Designer里做测试点,我强烈建议原理图阶段就别偷懒。直接在原理图库中调用Test Point符号(一般在Miscellaneous Devices或自己建的库里有),放置到需要测试的网络上。这个符号本质上是一个带电气属性的单引脚元件,你把它的Pin连接到要测的Net上,然后在元件属性里给它命名位号、描述信息,将来同步到PCB时,它会自动生成一个与网络关联的焊盘,并且自动获得“测试点”属性。
这样做的好处有两点。第一,测试点数量、位置、网络对应关系在原理图审查阶段就能被人看到,硬件工程师、测试工程师可以在电路设计评审时就提意见,而不是等PCB画完了才说“这个网络也要测”。第二,原理图上的测试点有唯一的位号,后续生成的Fabrication Testpoint Report里可以清楚列出每个测试点对应哪个网络、位于哪一层,这和PCB端随手放的匿名焊盘是不一样的,治具设计方拿到的坐标数据更完整。
当然,原理图符号不是万能的。有些项目时间紧,硬件工程师没来得及在原理图里放测试点,Layout阶段就只能在PCB上“补票”。这种情况下,PCB端放置的焊盘只要在属性里正确关联了网络,Altium的Test Point管理器也能识别并纳入测试点体系,但报告的完整度不如原理图方案。
3.2 PCB端直接放置测试点焊盘的完整流程
如果你必须在PCB阶段手动补测试点,操作流程也不复杂,但有几个属性一定要设置对。
在Altium Designer中,先执行Place菜单下的Pad命令,放置一个焊盘。双击焊盘打开Pad属性面板,Layer选择需要测试的一面,通常是Top Layer或Bottom Layer,先把Pad Shape设为Round,X-Size和Y-Size都输入1.2mm或1.5mm。Hole Size这里要特别注意,焊盘型测试点的钻孔尺寸要设为0,不能留孔,否则会变成通孔焊盘,波峰焊之后孔内上了锡,探针接触面不平整。然后在下方的Net属性下拉框中,选择这个测试点要连接的网络,不要漏掉这一步。最后把Solder Mask Expansion设置成合适的开窗值,正常情况下稍大于焊盘即可,确保阻焊层不会盖住测试点铜面。
如果你用的是通孔式测试点,那Pad属性里要勾选Plated,Hole Size设为0.5mm到0.6mm,其他参数一样。但发板前一定要在加工说明里注明“指定过孔不可塞油”,否则板厂默认塞孔会让测试点报废。
3.3 Testpoint Style与Testpoint Usage规则设置要点
AD里的测试点规则分为两部分:Testpoint Style定义了“什么样的焊盘/过孔可以被当作测试点”,Testpoint Usage定义了“每个网络是否必须有测试点、用什么形式”。
在Design菜单的Rules里,展开Testpoint节点,可以看到Testpoint Style规则。双击打开后,在Where The Object Matches区域可以指定应用范围,一般选择All。然后在Constraints区域设置允许的测试点类型,包括焊盘和过孔,设置孔径的最小值、最大值,测试点焊盘尺寸范围,以及同一网络测试点的间距限制。这里要注意,规则中设置的“最小间距”与2.54mm规范是对应的,我会把Hole Size Minimum设置为0.5mm,测试点大小范围设置1.0mm到1.5mm,Spacing设置为2.54mm。
另一条Testpoint Usage规则,在Constraints里可以设置测试点使用策略:Required表示指定范围内对象必须使用测试点,Invalid表示不允许添加测试点,Optional表示可选。实际项目中,我一般对所有网络设置Required,然后可以把机械安装孔、定位孔对应的网络设为Invalid,避免AD把不该测试的铜皮网络也塞一个测试点进去。
规则设置完成后,别忘了在DRC配置里勾选Testpoint相关规则,否则你运行设计规则检查时,这些问题根本不会报出来。我见过不少工程师把规则写好了,结果最后DRC根本没过检,就是因为没有在Rule To Test里勾上。
3.4 使用Test Point Manager批量放置与校验
Altium Designer的Design菜单下有一个Test Point Manager,这是我处理测试点最常用的工具。打开后界面分为几个区域,左侧是当前PCB上已有的测试点数量统计,右侧是一个操作列表,可以设置搜索条件、放置策略和执行创建。
使用步骤大概是这样的。第一步,在Test Point Manager里配置搜索条件,可以指定优先使用现有焊盘或过孔作为测试点,也可以指定需要新建的测试点尺寸、层、间距等。第二步,点击Update Existing或者Create Testpoints,AD会自动扫描当前PCB的所有网络,找出那些还没有测试点的网络,并尝试在满足规则的区域内自动放置测试点。第三步,AD会在列表中列出每个待创建测试点的网络名、推荐位置和方式,你可以人工确认,也可以用Accept All接受全部候选测试点。
这里有个关键细节:Test Point Manager自动放置测试点时,它是按“当前PCB上已有的焊盘或过孔”优先的,所以如果你没有提前预留测试点焊盘,它也可能在普通网络的过孔上打主意,把过孔标记成测试点。如果网络布线密度高,AD甚至会找一个不太合适的位置硬塞一个测试点。因此我的习惯是:先手工把关键网络和重要电源网络的测试点放好,再用Test Point Manager补漏,最后把自动生成的候选逐个过一眼,避免出现我说的过孔被误标成测试点的情况。
3.5 测试点报告输出:给治具厂和测试工程师的交付物
测试点设计完成后,下一步就是给外部协作方输出可用的报告。在Altium Designer里,File菜单的Fabrication Outputs下有一个Test Point Report选项,可以生成包含测试点坐标、网络、层、焊盘尺寸等信息的报告文件。格式一般选CSV或IPC-D-356,CSV方便测试工程师在Excel里查看,IPC-D-356用于治具数控钻孔的导入。
如果项目里使用了OutJob文件做批量输出,也可以在OutJob中配置Test Point Setup,把测试点报告纳入一键输出流程。这样每次改完板,运行一次OutJob,原理图PDF、Gerber、坐标文件、BOM、测试点报告会一次性生成,不用手动一个个点,省下很多时间,也可以避免漏输出文件。
拿到测试点报告后,建议把CSV里的网络列表和原理图中的关键网络清单做一次交叉比对,确认电源、地、BGA扇出网络全都覆盖到了。这份报告也要及时发给测试工程师,让他们提前评估治具探针选型、压床布局和针床结构,而不是等PCB都投出去了才临时看。
4. 常见设计缺陷与DRC排查技巧实录
4.1 把过孔直接当测试点的隐患到底有多大
网上很多教程会说“没有空间时可以把过孔当测试点”,这句话容易误导人。过孔当测试点最大的问题是接触面不稳:过孔盘通常是焊环加一个孔,探针扎到孔心时悬空没接触,扎到焊环边缘时接触面积很小,而且过孔孔径越细,探针越容易滑进孔里卡住,轻则接触不良、重则探针断在里面。另一个问题是过孔塞孔工艺,现在大多数板子都要求过孔塞油,塞完油以后表面是绝缘的,探针扎上去基本等于没扎。
如果真的只能用过孔,至少保证孔径在0.5mm以上、盘径0.9mm以上,并且在加工说明中禁止塞孔。即便如此,我仍然建议在尺寸允许的地方优先用0孔径的焊盘型测试点。这个取舍看起来小,实际量产时探针寿命和测试直通率的差别非常明显。
4.2 测试点间距不足导致治具报废的真实案例
前面提到的那个1.9mm间距案例,后来我们做了一次复盘,发现根源在于设计阶段没有任何人给Layout提过“测试点最小间距2.54mm”这个约束,AD规则里也没有配置Testpoint Style的Spacing,导致DRC根本没有报错。教训就一条:测试点间距规则一定要写进AD的规则库,并且在DRC中勾选,不能依赖人工目检。
这里也分享一个排查技巧:在AD里跑完DRC之后,可以先选中一个测试点,右键选择Find Similar Objects,把所有测试点焊盘都筛出来,然后在PCB面板里看它们的间距,或者直接导出测试点坐标到Excel里算一遍最近距离。Excel打开CSV后,用几行公式就能算出任意两个测试点之间小于阈值的组合,非常快。治具报价前用这个方法自查一遍,能省掉很多来回沟通扯皮的时间。
4.3 测试点被元件、丝印和结构件遮挡的各种情况
PCB在裸板上时测试点明明都在,一到组装完就测不了,这在产线是最头疼的问题之一。典型情况有三种:一是底面的测试点被外壳的支撑柱、螺丝柱挡住了,治具探针根本压不下去;二是顶面测试点旁边加了散热片,散热片边缘把测试点的一部分盖住,探针落上去会碰到散热片;三是测试点旁边丝印文字太粗太密,丝印油墨溢出到焊盘上,导致接触不良。
针对这三种情况,我的建议是:在布局阶段就和结构工程师过一遍整机组装图,把外壳支架、连接器、散热器等可移动零件映射到PCB的禁布区域内;丝印调整时把测试点附近1mm范围内的丝印全部清掉,阻焊开窗只保留焊盘本体,不要人为扩大开窗区域。
4.4 DRC测试点报错的排查技巧速查表
实际运行中,DRC报出的测试点相关错误主要有几类,我整理了一个速查表,方便大家对照排查。
| 报错类型 | 可能原因 | 处理思路 |
|---|---|---|
| Testpoint Style Violation | 某个测试点焊盘尺寸超过规则限制,或孔径不在允许范围 | 选中报错对象,确认是否真的是测试点,调整焊盘尺寸或修改规则 |
| Testpoint Usage Required Violation | 某网络设置为Required却没有测试点 | 用Test Point Manager查看遗漏网络,补充测试点 |
| Testpoint Usage Invalid Violation | 在设置为Invalid的区域或网络上出现了测试点 | 检查是否误把机械安装孔、螺丝孔网络加了测试点,删除或改网络属性 |
| Minimum Spacing Violation | 两个测试点间距小于规则设定值 | 调整其中一个位置或缩小测试点尺寸,重排间距 |
| Testpoint Via on Component | 测试点过孔压在元件焊盘上 | 移动测试点,远离元件本体和焊盘 |
尤其要注意的是,新版Altium Designer里DRC的报错信息不仅显示规则名称,还会直接给出具体的对象坐标和网络名称,双击错误条目可以跳转到PCB上对应位置。排查时不要只看“有几个错误”,要逐个跳转过去确认是不是真正的测试点问题,还是说规则设置宽松导致误报。我见过有人报错后直接改规则把错误消掉,结果把真正的问题掩盖了,这种方式一定要杜绝。
4.5 高速信号上到底要不要加测试点
高速信号(如USB、以太网、DDR、PCIe)的测试点设计要和普通信号区别对待。原因很简单:测试点本质上是一个额外的焊盘和过孔,它会在走线上形成一个残桩(stub),残桩会产生阻抗不连续和反射,影响信号质量。如果你是直接把测试点串在走线中间,那高速信号的眼图可能直接垮掉。
我的做法是:对于高速差分对或关键时钟信号,如果测试需求不是特别强烈,尽量不加测试点;如果必须加,把它放在走线末端、靠近接收端芯片引脚附近的位置,并且让测试点焊盘到走线的引出线尽量短,降低残桩长度。做仿真或者实测时,留心一下加测试点前后的信号上升沿变化,有条件的可以用TDR看一下阻抗变化是否在可接受范围内。总之,测试点的“可测性”和“信号完整性”之间的平衡,一定要和硬件、SI工程师提前对齐,不要等到测试失败了再改。
5. 最后再分享一个我自己的实操习惯
测试点设计完成后,除了跑AD自带的DRC,我还有一个固定动作:把测试点报告导出来,人工抽看一遍网络列表,尤其是电源网络、地网络和BGA扇出网络。DRC通过只能说明“规则上没有冲突”,但规则是工具替你定的,网络覆盖是否合理需要人来做判断。比如某个电源网络只覆盖了一个测试点,而且这个测试点刚好被放在了输入端,那输出端是否开路DRC是看不出来的。
另外,在把CSV测试点报告发给治具厂之前,我会先把板子的Step格式结构图发给测试工程师,让他们在治具设计软件里模拟一下探针下落路径,确认没有干涉、没有探不到的位置。这一步看起来多余,实际能帮我在治具报价前发现至少一半的潜在问题,比之后拿针床实物来试错要划算得多。测试点这个东西,往往越早沟通,后面返工的成本越低。