让你的PCBA“会说话”:测试点设计的实战心法
你有没有遇到过这样的场景?
一块新打样的板子上电后毫无反应,电源正常、晶振起振,但MCU就是不跑代码。你盯着密密麻麻的BGA封装和0402元件发愁——关键信号全被封在里面,连个下手的地方都没有。最后只能靠猜:是复位时序不对?还是JTAG没拉起来?甚至怀疑是不是焊接虚焊……
这时候你就明白了:一块不会“说话”的PCBA,就像一辆没有诊断接口的汽车,出了问题只能拆发动机。
而测试点(Test Point),正是让电路板具备“自述能力”的第一道门槛。它不是功能电路的一部分,却决定了你在调试阶段是游刃有余,还是寸步难行。
今天我们就从实战角度出发,聊聊如何在高密度、小型化的现代PCBA设计中,合理布局那些“不起眼”的测试点,真正实现可测、可调、可修。
为什么测试点不再是“锦上添花”?
过去,很多硬件工程师觉得:“只要原理图对了,布通线就行。”测试点?那是生产的事,等出问题再说。
但现实很残酷:
- 越来越多的芯片采用BGA、QFN等无引脚封装,肉眼无法检查焊接质量;
- 高速信号(如DDR、PCIe)对走线长度、阻抗匹配极其敏感,稍有偏差就通信失败;
- 产品迭代周期压缩到以周计,谁还等得起一轮又一轮“试错式调试”?
在这种背景下,DFT(Design for Testability,可测性设计)已经从一种“加分项”变成了“必选项”。尤其是当你面对以下情况时:
- 需要做ICT(In-Circuit Test)或飞针测试;
- 客户要求提供现场维修支持;
- 项目进入量产爬坡期,需要快速定位批次性故障;
这时你会发现:前期少加一个测试点,后期可能多花三天排障时间。
所以,别再把测试点当成“补救措施”,它应该是设计之初就必须规划好的基础设施。
四类测试点,各司其职
1. 过孔当测试点?能用,但要小心!
最省空间的方式是什么?利用现成的过孔。
没错,有些工程师直接把电源地网络的过孔当作测试点使用——毕竟它裸露铜皮,还能多层导通,看起来很完美。
但在实际应用中,有几个坑必须避开:
- 盲埋孔不能用:它们不在表面,探针压不到;
- 空洞过孔易进锡膏:回流焊时助焊剂渗入会导致接触不良;
- 寄生电感影响高速信号:一个标准通孔大约有1~2nH的寄生电感,在100MHz以上频段可能引起反射或谐振。
✅正确做法:
- 使用“塞孔+电镀”工艺(filled & capped via),既保证表面平整,又防止污染;
- 表面做阻焊开窗(NSMD),确保探针能接触到足够大的铜面;
- 仅建议用于低频信号或电源/地测量,避免用于高速差分对。
小贴士:如果你一定要用过孔作测试点,请在EDA工具中标注清楚,避免DFM审查时被误判为缺陷。
2. 焊盘型测试点:最稳妥的选择
这是目前最主流的做法——专门设置圆形或方形裸露焊盘,直径通常在0.8mm~1.2mm之间,刚好适配大多数示波器探头和ICT夹具探针。
它的优势非常明显:
- 接触稳定,不易滑脱;
- 可配合丝印编号(如TP105),方便记录与追踪;
- 支持自动化测试设备批量采样。
📌关键设计参数参考:
| 参数 | 推荐值 |
|---|---|
| 直径 | ≥0.9mm(推荐1.0mm) |
| 阻焊开窗 | 比焊盘大0.1~0.2mm(SMD定义) |
| 到相邻走线间距 | ≥0.3mm(防短路) |
| 表面处理 | HASL、ENIG均可,高频场景建议ENIG |
在Altium Designer这类工具中,你可以创建统一的测试点封装库,比如命名为TP_1.0R(表示1.0mm圆形单层焊盘),然后在整个项目中复用。
// Altium封装定义示意(Footprint) Name: TP_1.0R Layer: Top Layer Shape: Circle Size: 1.0 mm Clearance: 0.3 mm (to other nets) Solder Mask: Expansion = +0.15 mm → 实现精确开窗这样做的好处是:所有测试点风格一致,生产文件清晰,测试团队拿到板子后一眼就能识别。
3. Pogo Pin兼容测试点:为量产而生
当你进入小批量试产或正式量产阶段,手动一个个测效率太低。这时候就需要上Pogo Pin测试治具——通过弹簧针阵列一次性压接多个测试点,完成供电、通信、功能检测。
这种模式下,测试点的设计就不能“随便来了”。
🔥核心设计要点:
- 镀金处理:建议0.05~0.1μm厚金层,提升耐磨性和接触可靠性(特别是频繁插拔的治具);
- 间距≥2.54mm:避免探针干涉,尤其注意不要把两个电源点挨得太近;
- 共面性要求高:所有测试点应位于同一平面,高度差≤0.1mm,否则会出现“压不实”或“戳偏”;
- 形状优选圆形:比方形更容易对准,容错率更高;
- 远离高温区和机械结构:别让散热片或螺丝柱挡住探针下压路径。
💡 实战经验:我们曾在一个项目中把TP点布置在屏蔽罩下方,结果每次测试都要先拆盖——后来改版时直接重布到底部边缘区域,效率提升70%。
此外,强烈建议将所有测试点统一编号,并输出一份《测试点清单》PDF文档,包含每个TP对应的信号名、电压范围、所属功能模块,供测试人员调用。
4. JTAG边界扫描:看不见的“内窥镜”
如果说物理测试点是“外接传感器”,那JTAG(IEEE 1149.1)就是嵌入芯片内部的“神经系统”。
它不需要你在每个引脚都设测试点,而是通过TCK、TMS、TDI、TDO这四根线,构建一条串行链路,可以:
- 检测BGA芯片的焊接连通性;
- 读取内部寄存器状态;
- 下载固件、单步调试;
- 甚至控制其他支持JTAG的外围器件。
对于FPGA、ARM处理器、复杂ASIC来说,这是不可或缺的调试通道。
来看一段STM32启用JTAG的实际配置代码(基于HAL库):
void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; // 启用PA15作为JTAG-TCK __HAL_RCC_GPIOA_CLK_ENABLE(); GPIO_InitStruct.Pin = GPIO_PIN_15; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; // 复用推挽输出 GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; GPIO_InitStruct.Alternate = GPIO_AF0_JTCK; // 映射到JTCK功能 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); // TDO通常为PB3,TDI为PB5,TMS为PA13,依此类推... }⚠️ 注意事项:
- 某些引脚默认复用为JTAG,若想释放为普通IO,需关闭相关功能;
- 如果使用SWD(Serial Wire Debug)替代JTAG,只需两根线(SWCLK/SWDIO),更节省资源;
- JTAG接口务必预留测试点!哪怕只用来烧录,也要保证首次编程可达。
测试点该放在哪?这些位置优先级最高
别盲目铺满测试点,那样只会挤占宝贵的布线空间。以下是我们在多个项目中总结出的高价值信号清单,建议必设测试点:
| 类别 | 具体信号 | 设点理由 |
|---|---|---|
| ✅ 电源系统 | 所有LDO输出、DC-DC使能端、VCC_CORE | 上电时序验证、纹波测量 |
| ✅ 时钟源 | 主晶振输出、PLL反馈端 | 判断是否起振、频率是否准确 |
| ✅ 复位信号 | nRESET、POR、看门狗输出 | 确认复位逻辑与时序 |
| ✅ 调试接口 | JTAG/SWD、UART下载口 | 固件更新与实时调试基础 |
| ✅ 关键通信总线 | I²C SCL/SDA、SPI CLK/MOSI、USB D+/D- | 抓波形查通信异常 |
| ✅ 用户接口后端 | HDMI、Type-C CC线、SIM卡检测脚 | ESD防护后信号完整性确认 |
而对于DDR数据总线这类高密度并行接口,虽然不可能每根线都设点,但可以在地址线或控制线中抽样设置1~2个代表性测试点,用于初步判断是否驱动成功。
避坑指南:那些年我们踩过的雷
❌ 坑1:丝印覆盖测试点
你以为标了个“TP101”就好?但如果丝印油墨正好盖住了焊盘中心,探针一压就打滑!
✅ 正确做法:丝印文字远离焊盘至少0.2mm,必要时采用“包围式”标注而非“叠压式”。
❌ 坑2:阻焊偏移导致接触不良
SMT生产中常见阻焊层印刷偏移,导致实际开窗小于设计值。原本1.0mm的焊盘,只剩下一圈细边可供接触。
✅ 解决方案:采用SMD(Solder Mask Defined)设计,即阻焊开窗略大于铜焊盘,留出余量。
❌ 坑3:高速信号加测试点引发反射
在200MHz以上的时钟线上随意加测试点,相当于引入一段stub(短截线),可能造成信号完整性恶化。
✅ 应对策略:
- 控制stub长度 < λ/20(例如100MHz时约为7.5cm,实际应远小于此);
- 采用T型分支结构,并在末端加端接电阻;
- 测试完成后可用0Ω电阻隔离或贴胶封堵。
❌ 坑4:工业环境腐蚀导致失效
户外或工业设备长期运行在潮湿、盐雾环境中,普通OSP表面处理的测试点容易氧化,导致接触电阻升高。
✅ 改进方法:
- 选用ENIG(化学镍金)处理,抗氧化能力强;
- 必要时局部涂覆三防漆,但需预留开窗区域供测试使用。
写在最后:好设计,是从“便于失败”开始的
优秀的硬件设计,不是追求“不出问题”,而是确保“出问题也能快速找到原因”。
测试点的存在意义,恰恰在于拥抱不确定性。它承认:无论仿真多精准、Layout多严谨,实物总会有些意想不到的行为。而我们的任务,就是提前准备好“观察窗口”。
所以,请在下次画原理图时,不只是问:“这个信号通了吗?”
更要多问一句:“如果它错了,我能怎么知道?”
当你开始这样思考,你的PCBA就已经离“智能诊断”更近了一步。
📢 互动话题:你在项目中遇到过因缺少测试点而导致的“史诗级”调试经历吗?欢迎在评论区分享你的故事。