前两天一个做硬件的老同事给我打电话,说新款控制板在PCB厂做ICT首件测试的时候,发现顶层测试点上不了针,飞针程序编到一半,又说有三个关键电源网络压根没放测试点,只能临时改阻焊层开窗,一批板子的测试周期硬生生拖了两天。这种场景,干过板卡级硬件的人应该都不陌生。测试点看着就是板上一个不起眼的小焊盘,但它直接决定你的设计到了产线能不能被可靠地测出来,能不能在维修台上一秒钟找到关键信号,甚至决定治具厂愿不愿意接你的单子。这篇文章我想把多年在Altium Designer里做测试点设计的思路、规范、操作步骤和踩坑经验摊开讲清楚,适合硬件设计、PCB Layout以及刚接触ICT/FCT测试流程的工程师参考。
1. 测试点是什么,以及你的板子为什么离不开它
1.1 测试点在制造测试链里的位置
很多人第一次接触测试点,是在PCB编辑器里看到DRC报告出现“Testpoint Usage”相关规则报错,或者是在给工厂提交Gerber时被要求单独导出一份测试点报告。测试点本质上是PCB上用来让测试探针物理接触的金属节点。板子焊完元器件之后,贴片机有没有贴偏、回流焊有没有虚焊、相邻引脚有没有连锡,这些问题都不能靠肉眼一一确认,只能通过电测来验证。
产线上的电测通常分两类,一类是ICT(In-Circuit Test,在线测试),板子不上电,靠探针接触测试点测量电阻、电容、二极管、IC引脚间的连接关系,用来判断元器件贴装和焊接是否合格;另一类是FCT(Functional Test,功能测试),给板子上电,通过测试点(或连接器)读取信号输出,验证整板功能。不管哪一类,探针都必须有一个稳定可靠的物理接触点,这个点就是测试点。
所以测试点不是可有可无的装饰,它是设计端和制造测试端之间的接口。你的原理图再完美,Layout走线再漂亮,如果测试点漏了或者放得不合理,到了产线上就是一片“测不出来”的黑洞,最后只能靠人工目检和返修来兜底,成本和交付周期都会变得很难看。
1.2 测试点不只是“一个焊盘”:两种主流测试形态
测试点设计的具体要求,跟产线用哪种测试方式高度相关。飞针测试机和针床测试治具对测试点的尺寸、间距、位置要求差别很大。
飞针测试机是靠两个或四个探针在PCB表面高速移动,通过步进电机定位到每个测试点,逐点接触测量。它的优点是换产品不用做治具,适合样品阶段和小批量生产,对测试点的间距要求相对宽松,但也要求测试点尽量在同一面,不然翻面会增加编程和测试时间。
针床测试(也叫治具测试)则是做一整块针板,板上每个需要测试的网络对应一根探针,板子压下去,所有探针同时接触对应的测试点,一次完成几乎所有测量。它的效率极高,适合稳定量产的大批量产品,但治具成本高、制作周期长,而且对测试点的位置精度、尺寸、高度一致性要求非常苛刻。探针之间如果间距不够,针板就没法布针,或者探针外径会互相干涉。
这两种测试形式的参数要求,我用一个表来对比:
| 对比项 | 飞针测试 | 针床ICT |
|---|---|---|
| 测试点直径 | 0.4mm以上可测,推荐0.6mm | 推荐0.8mm以上,至少0.6mm |
| 测试点中心距 | 1.0mm以上 | 1.27mm起,推荐2.54mm网格 |
| 测试点同一性 | 尽量同面,异面增加翻面 | 必须同面,而且要同层 |
| 单点测试成本 | 低(无治具) | 高(针板治具) |
| 适合场景 | 样品、小批量、返修验证 | 大批量稳定生产 |
做设计时我的原则是:如果产品可能走大批量,测试点就按针床ICT的较严格规格来放,这样即便先期用飞针打样,后面转产针床时也不用再改板。千万别先按飞针的宽松要求放,等上量了再返工,那才是真的折腾。
2. 从规范到细节:测试点尺寸、间距与位置的硬指标
2.1 尺寸规范:到底放多大才靠谱
测试点的尺寸没有国标统一值,不同的贴片厂、测试厂、治具厂都会有自己的工艺能力表,但业界有一套相对通用的推荐范围。我的长期实践经验是:测试焊盘(实心焊盘)直径做到0.8mm左右最稳妥,考虑到板面密度,最小不要低于0.6mm。原因很简单,探针针尖的直径通常就在0.3mm到0.5mm之间,接触点太小,对位稍微偏一点就接触不良;太大则占板面积,高密度板放不下。
对于用过孔做的测试点,孔径建议控制在0.5mm以内,最好0.3mm到0.4mm。过孔孔径越大,探针下压时针尖越容易插进孔里面。探针一旦扎进过孔,很容易刮伤孔壁铜,造成孔内短路隐患,严重时针尖断在孔里,那就真的哭了。如果设计上没办法必须用过孔当测试点,一定要让PCB厂做树脂塞孔,至少在测试面做“绿油塞孔”或者“阻焊塞孔”,保证孔口不露洞。
下面是我常用的尺寸参考表,可以参考工厂实际能力调整:
| 测试点类型 | 设计尺寸 | 备注 |
|---|---|---|
| 实心焊盘(表层) | 直径0.6~0.8mm | 0.8mm优先,高密度可降到0.6mm |
| 过孔(Via as Testpoint) | 孔径0.3~0.5mm,焊盘0.7mm以上 | 必须塞孔,防止探针卡孔 |
| 电源/大电流网络测试点 | 直径1.0mm以上 | 降低探针接触电阻 |
| 定位基准附近 | 不允许放测试点 | 治具定位柱会干涉 |
这里还要注意一个细节:测试点的“直径”指的是成品焊盘尺寸,不是封装库里的标称值。如果做了大面积铺铜,散热快,喷锡时焊盘上的锡可能偏薄,探针接触电阻会偏高。镀金(沉金)板通常接触更稳定,这也是很多通信板和工控板指定测试点区域沉金的原因。
2.2 间距规范:探针干涉的“安全线”
测试点之间的距离,核心约束是探针外径和针板的布针空间。针床上探针的常见外径在0.7mm到1.2mm之间,加上安装探针的套筒,两根探针中心距小于1.27mm时,针板基本没法做。所以针床ICT一般要求测试点中心距至少1.27mm,保险起见做到2.54mm网格。飞针测试虽然对间距要求低很多,但如果同一网络上有多个测试点距离太近,飞针在测完一个点移动到下一个点时也容易误触发,所以我还是建议至少留1.0mm。
测试点到其他元素的间距也要注意:
- 测试点到SMD小元件本体边沿,建议不小于1mm。探针下压是有行程的,压下去以后针尖会在焊盘上轻微滑动找正,如果旁边元件太近,探针可能蹭到元件本体或端电极,轻则测量误判,重则撞坏元件。
- 测试点到较高的元件(电解电容、继电器、立式电感)至少留2.5mm。高元件会挡住探针垂直运动的路径,针床压合时可能把元件压裂。
- 测试点到板边至少2.5mm,推荐5mm以上。板边区域要留给夹具压边和导轨,太靠近板边的测试点在针床压合时很难对位。
还有一个容易被忽略的:不要在两个测试点之间走平行长线。探针接触测试点时,如果走线恰好从两个测试点之间穿过,针床压合导致板子轻微变形,走线可能对探针产生微短路风险。这种概率虽然低,但治具厂做针床时如果发现两个目标测试点距离很近,而中间又有走线,通常都会要求设计端调整。
2.3 实心焊盘 vs 过孔测试点:选错会出大问题
很多刚入行的Layout工程师喜欢直接把信号过孔当作测试点用,因为省事,不用额外添加焊盘,网络也一样。但量产测试中,过孔测试点会是很多问题的根源。
第一个问题就是刚才提到的“探针卡孔”。探针头部带有一定的尖度,下压接触过孔时如果针尖正好对准孔中心,针尖会嵌进孔壁。尤其孔径稍大或者孔壁铜厚不均时,探针回拉会刮伤孔壁铜,甚至让孔壁产生毛刺,这是后续短路失效的隐患。批量生产几千片板子,出现一两片刮伤孔壁的次品,良率损失要比多放一个实心焊盘昂贵得多。
第二个问题是过孔在焊接过程中的“吸锡效应”。过孔连接多个层,焊接时,特别是波峰焊或手工补焊时,焊锡会顺着孔壁流走,导致焊盘处锡量不足,出现虚焊。你要是把这个过孔同时当作测试点,探针接触时就会觉得接触电阻忽大忽小,测试机误报率飙升。
第三个问题比较隐蔽,就是过孔的镀层和表面处理通常不如专门的测试焊盘讲究。普通过孔大多采用喷锡或OSP工艺,反复接触探针后,表面容易氧化或磨损,测试点位损耗后难以返修。
所以我的结论很明确:关键网络优先放实心测试焊盘,过孔只作为万不得已的补充。如果一定用过孔,就在Altium的过孔属性里单独确认孔径、塞孔方式和阻焊开窗,并且在图纸上把过孔测试点的位置标注清楚,让PCB厂知道这是测试点位,需要做塞孔处理。
3. Altium Designer实战:从放置测试点到自动分配完整流程
3.1 在原理图阶段把测试点的“种子”埋好
测试点最好从原理图阶段就开始规划,而不是等到PCB布局时才拍脑袋加。原理图里放测试点符号的好处有两个:一是网络关系清晰,评审时大家可以确认哪些网络必须能测到;二是导网表后测试点会跟着网络走,后续DRC检查时不会被当成孤立网络忽略。
Altium默认库里有可以用的测试点符号,比如Miscellaneous Devices.IntLib里的TEST POINT,但元件库里的焊盘尺寸不一定满足你的产线规范。更推荐的做法是建立自己公司的统一测试点库:原理图符号就是一个单引脚器件,Pin Name可以命名成测试信号,Footprint对应一个实心圆焊盘,直径按你们公司的标准来定,比如TP-0.8表示0.8mm直径测试焊盘。
在原理图里放置测试点符号后,给它分配Designator,建议用TP开头加序号,例如TP101、TP102。这样PCB上对应的测试点就自动有了位号,导出的BOM、坐标文件和测试点报告都能对上。如果你非要直接在PCB里放一个裸焊盘当测试点,也不是不行,但网络赋值要自己手动加,而且很多人会忘记给测试点加位号,最后维修时想找“这个测试点接的是哪路信号”会非常痛苦。
3.2 PCB阶段手动指定测试点:属性面板里的关键设置
不管测试点是在原理图阶段就放好的,还是直接在PCB上补的,最终都要在PCB编辑器里确认它的测试点属性。Altium中焊盘或过孔可以被明确指定为测试点,操作路径因版本略有差异,AD20及之后的版本是在Properties面板中,选中焊盘或过孔,找到Testpoint Assignment相关选项,设置为Top Layer或Bottom Layer。设置为None,则这个焊盘不参与测试点统计。
这一步有个非常关键、也最容易被忽视的配套操作:检查阻焊开窗。测试点必须裸露铜面才能被探针接触,如果在焊盘属性里Solder Mask Expansion设置为负值,或者阻焊开窗小于焊盘尺寸,绿油就可能盖住测试焊盘。产线上探针扎在绿油上,接触电阻非常大,测试程序会直接判定Fail。我在实际项目中就遇到过一块板,测试点属性都设置好了,所有网络也有测试点,结果开窗没注意到,整批ICT测试全部超时,最后才发现是绿油把测试点覆盖了。
还要养成一个习惯:手动指定测试点后,用View模式高亮显示所有测试点,目测一遍是否有明显密集区域。Altium里可以用PCB过滤器选中所有测试点对象,然后统一显示,或者打开PCB面板,按Testpoint对象类型过滤,把测试点的位置分布直观地看清楚。
3.3 Testpoint Manager自动分配:规则、优先级与报告
当板子网络很多、测试点数量上百个时,手动一个个指定不现实。Altium提供的Testpoint Manager(菜单路径:Design → Testpoint Manager)是自动分配测试点的核心工具。
打开后你会看到一个类似规则设置的界面,需要重点配置这几个选项:
- 可分配测试点的层:一般选Bottom Layer或Top Layer,如果允许双面测,也可以选Both,但产线翻面会增加工序,建议尽量单面。
- 是否优先使用焊盘:比优先使用过孔更稳妥。Altium分配测试点时会复用板上已有的、满足尺寸和间距规则的焊盘或过孔,并不会凭空生成新的测试点焊盘。所以如果某个网络没有任何合适的Pad或Via,分配后会留在未分配列表里。
- 测试点的最小尺寸限制:过小的焊盘会被自动过滤,避免探针接触不良。
- 是否允许复用定位孔、安装孔:不建议复用,这些孔的应力状态复杂,探针接触可能影响结构强度。
配置好之后,点击执行分配,Altium会遍历所有网络,把符合条件的焊盘/过孔标记为测试点。测试点管理器里会列出已分配的网络和未分配的网络。对于未分配网络,直接双击跳转到对应网络,手动补放测试焊盘,再重新执行分配。
自动分配完成后,强烈建议立刻运行一次DRC,因为测试点管理器可能会改变部分焊盘的属性,甚至引入一些间距问题。DRC规则里专门有一类Testpoint Style和Testpoint Usage规则,可以约束测试点尺寸、允许的层、最小间距等。设定好这些规则再自动分配,Altium会在分配过程中自动避开违反规则的位置,后面省心很多。
3.4 用Testpoint Report检查覆盖率
测试点分配好,不等于设计完成。你还需要导出一份测试点报告,这份报告不仅是给你自己看的,更是给测试工程师、治具厂和产线看的。Altium中可以在File → Fabrication Outputs → Testpoint Report生成报告,也可以在Output Job文件里预先配置好Testpoint Report输出。
报告内容通常包括每个测试点所在的网络、坐标X/Y、所在层面、关联的焊盘位号、测试点类型(Pad还是Via)。检查报告时重点关注两个指标:一是所有必须测试的网络是否都有测试点,二是测试点是否集中在同一面。如果发现网络上没有测试点,回Testpoint Manager重新分配或手动补焊盘。
这里分享一个实用技巧:把测试点报告导成CSV或者PDF,发给治具厂做针床坐标时,要明确告诉对方坐标系和原点位置。通常Altium导出的坐标是基于PCB原点的绝对坐标,而治具厂在软件里建针床时可能使用板子左下角或者Mark点作为原点,两边对齐才能保证探针位置准确。这个对接细节很多人等到治具做回来,装上去对不准才知道要返工。
4. 真正生产线上踩过的坑:避坑指南与经验补充
4.1 板边与拼板禁区:V-cut、邮票孔、定位孔
测试点的位置设计,不只是看“孤立的焊盘间距”,还要看它在拼板、工艺边和装配环境中的相对位置。
首先是V-cut。V-cut在分板时会沿着切割线产生应力,测试点如果放在V-cut线上或距离太近,分板时焊盘可能受力开裂。间距至少在2mm以上才保险。邮票孔连接点位置也不建议放测试点,邮票孔区域在分板后边缘并不平整,探针接触会受影响,而且分板应力容易让测试焊盘与铜箔剥离。
其次是定位孔。PCB上的定位孔、工艺边上的Mark点、治具定位孔周围,都是测试治具的机械干涉区。针床压合前,设备会用定位销插入板边定位孔,探针针板再下压。如果测试点正好在定位孔附近,定位销占了空间,针床根本没有落针的位置。经验上,定位孔中心周围半径5mm内不要放测试点。
还有一类问题是拼板方向。如果拼板时测试点朝向内侧,针床可以正常接触;但如果板子方向装反,测试点到了治具盲区,整批测不了。所以投板前一定要和PCB厂确认拼板V-cut和工艺边方向,并在测试点报告里标注板子方向,产线首件确认时就能提前发现。
4.2 探针与元件的安全距离:为什么总是靠近了才发现
测试点与元件的安全距离,理论规范归规范,实际Layout时常常被密度压力挤掉。我处理过一个案例:一个0.8mm测试焊盘旁边紧挨着0402电阻,间距只有0.5mm。做飞针测试时,探针下压接触测试点的瞬间产生轻微滑动,针尖直接蹭到了电阻端电极,把电阻的一端刮伤,测试直接失败,板子报废。后来测量了实物才发现,探针下压时并不是垂直穿透,而是会有一段很小的水平位移来找正,如果这个位移范围内有元件,就会发生干涉。
所以安全间距不仅仅是“画规则的时候设一个数字”,还要考虑探针的机械工作方式。针对不同元件,我通常采用以下经验值:
| 相邻对象 | 最小间距 | 说明 |
|---|---|---|
| SMD小元件(0402/0603) | 1.0mm | 探针滑移余量 |
| 大元件(电解、电感) | 2.5mm | 避免探针行程压迫元件 |
| 连接器、屏蔽罩 | 2.0mm | 机械干涉风险高,越远越好 |
| 晶体、振荡器 | 2.0mm | 恶劣接触可能影响频率信号 |
| 丝印文字 | 0.5mm以上 | 避免油墨影响接触 |
现实中高密度板很难保证所有测试点都有1mm间距。折中办法是:对密集区域改用更小探针的测试方式,或者把该区域的测试点移到另一面。Altium里可以通过Spacing Rule,单独为测试点网络定义一个更大的间距约束,让DRC在布局阶段就报警,而不是等到投板后被工厂退回来。
4.3 铺铜、绿油、丝印:看不见的坑最致命
测试点是用来做电气接触的,所以凡是会影响接触的东西都要排查干净。
第一个坑是铺铜。大面积铺铜的网络,比如GND网络,很多人会想直接在铺铜区放一个测试点。原则上可以,但要注意铺铜连接方式。如果焊盘和铺铜的连接是热焊盘(十字连接),探针接触时的接触电阻不一定稳定;如果散热很大,焊盘上锡后可能很薄,反复测试几次焊盘表面就不平了。针对电源和地网络,我建议单独放实心测试焊盘,不要和铺铜的十字连接粘连太紧密,最好让焊盘完全独立,只通过网络连接。
第二个坑是绿油盖焊盘。前面说过,测试焊盘必须开窗。但还有一个更隐蔽的情况:绿油桥。如果阻焊层设计时开了网格状绿油桥,两个相邻测试焊盘之间会有细窄的绿油筋,探针下压时焊盘边缘翘起,绿油筋可能刺穿,造成短路。规范做法是:测试焊盘的开窗要比焊盘直径每边大0.15mm到0.2mm,不要做成“刚好等于焊盘”的开窗。
第三个坑是丝印。测试点上面如果压了丝印,油墨层会让探针接触电阻明显上升。白色丝印尤其明显,因为它成分里有颜料,绝缘性更强。所以测试点区域内不要放位号丝印、不要放说明文字。在Altium里,可以在丝印层的对象属性里手动避开,或者在布局时把丝印文字整体移到测试点区域之外。
4.4 让测试资产生命周期更长:与DFM/工艺的衔接
测试点设计不应该是一个项目结束就消失的东西,它是整个硬件生命周期里可复用的工程资产。
我的习惯是,在公司的统一PCB设计模板里,预先定义一套测试点规则和测试点专用封装,这样每个新项目打开模板,就自动带上了测试点尺寸、间距约束和测试点符号库。不同工程师画出来的板子,测试点风格统一,产线能够形成稳定的测试作业标准,治具厂也愿意接你的单。
同时,投板资料里除了常规Gerber和坐标文件,一定要包含测试点报告。有些工程师觉得工厂自己能看Gerber找测试点,其实工厂最怕的就是没有明确的测试点坐标清单。把Altium生成的Testpoint Report整理进投板包,让PCB厂和治具厂直接按坐标做治具,能少很多沟通成本。
这里也要多说一句Altium Designer Viewer。很多供应商、产线工程师电脑上没有完整的Altium License,但需要查看PCB上的测试点位置,这时候让他们用免费的Altium Designer Viewer打开工程文件或Gerber工程,可以快速查看焊盘属性、测量间距,比来回截CAD图高效得多。
4.5 个人经验:测试点合理性自检清单
最后整理一份我个人每次投板前都会过一遍的测试点自检清单,不算标准答案,但能挡住大部分低级问题:
- 每个信号网络是否至少有一个测试点?电源和地网络建议至少两个,因为这类网络电流大、探针接触电阻影响明显,多一两个测试点可以交叉验证。
- 测试点是否全部集中在同一面?如果实在做不到同面,至少要保证关键网络同面,否则产线测试要翻面,效率低而且容易漏测。
- 有没有把普通过孔、定位孔、安装孔误设成测试点?有的话单独确认塞孔和开窗方案。
- 测试焊盘开窗是否比焊盘大?丝印有没有压在测试点上?
- 测试点是否避开了V-cut、邮票孔、定位孔、高产元件区域?
- Altium的Testpoint Usage规则有没有报错?Testpoint Report里有没有未分配网络?
这套清单在我这边已经用了好几年,每次评审都能揪出几个问题。尤其是新同事画的板子,最容易在“所有网络都有测试点”和“测试点位置合理”这件事上同时踩雷,因为Altium自动分配只能保证覆盖率,不能保证产线好测,最终还是需要人来判断。
最后再分享一个我自己的习惯:每次发出去打样之前,我会把测试点报告导成PDF,然后把未分配测试点的页面截图贴在评审文档第一页。这个动作看着小,但产线测试工程拿到资料时能一眼看到设计意图,不用在几十页报告里翻找哪些网络没有测试点。硬件设计就是这样,很多麻烦不是靠什么高深理论避免的,而是在这些细节上提前多想一步。