让你的PCB“会说话”:DUT测试点设计全攻略
你有没有遇到过这样的场景?
一块新打回来的样板,上电后毫无反应。电源正常,晶振起振,但MCU就是不跑。没有日志、没有调试输出,连JTAG都连不上——整个系统像一具沉默的躯壳。
这时候,你会怎么做?
拆焊重装?飞线排查?还是直接怀疑人生?
其实,问题的答案很可能就藏在那几个不起眼的小铜盘里:测试点(Test Point)。
别小看这些裸露的金属焊盘,它们是硬件工程师与电路板之间的“对话接口”。布置得当,它能告诉你每一条信号的状态;布置不当,它可能就成了干扰高速信号的“罪魁祸首”,甚至让你误判故障位置。
今天我们就来聊聊一个看似基础却至关重要的主题:如何科学地布置DUT(被测设备)的测试点,让产品从研发到量产全程“可测、可控、可修”。
为什么测试点不是“随便加”的事?
过去做项目,很多团队都是“先画板,后补点”——功能实现优先,测试点等样板回来再说。结果往往是:
- 关键信号被BGA封装挡住;
- 高速线上强行开窗导致阻抗突变;
- 探针压不到、夹具对不准;
- 最终只能靠飞线和示波器“人肉调试”。
这不仅效率低,还容易引入二次损伤。
随着芯片集成度越来越高、封装越来越小(比如0.4mm pitch的QFN)、信号速率突破GHz级别,传统的“事后补救”式测试方式已经走不通了。
我们必须在设计初期就把“可测性”作为一项硬性指标纳入考量。这就是DFT(Design for Testability,可测性设计)的核心思想。
而DFT落地的第一步,就是合理规划测试点的类型、位置和电气特性。
测试点的本质:不只是个焊盘那么简单
简单来说,测试点就是在PCB上预留的、用于连接探针或测试夹具的裸露导电区域。它可以是一个圆形焊盘、一个过孔,或者专用的贴片测试座。
但它背后承载的功能远不止“方便接触”这么简单:
- 它是你验证电源时序的眼睛;
- 是你诊断通信链路是否通畅的听诊器;
- 是你批量生产中自动检测短路/开路的关键触点;
- 更是你远程维护时判断现场故障的“生命线”。
典型的测试流程如下:
1. DUT放入针床夹具,探针精准压接各测试点;
2. 自动施加激励信号(如电压、时钟);
3. 采集响应数据并与预期比对;
4. 输出报告,标识异常网络。
整个过程可以在几十秒内完成,极大提升了试产阶段的问题发现效率。
布好测试点的5个黄金法则
要想真正发挥测试点的价值,不能只图“有”,更要讲“质”。以下是我们在实际工程中总结出的五大关键原则:
| 原则 | 实践建议 |
|---|---|
| 可达性优先 | 避免被元件遮挡,边缘留空≥2mm,推荐直径≥0.8mm |
| 电气无损 | 不破坏信号完整性,尤其是高速信号要控Stub长度 |
| 命名规范 | 丝印清晰标注TP编号和网络名,如TP_VDD_3V3、TP_I2C_SDA |
| 尺寸标准 | 满足探针公差要求,中心距建议≥2.54mm(兼容通用夹具) |
| 低阻连接 | 走线短而宽,避免细长引线引入测量误差 |
记住一句话:每一个测试点都应该是“有用且安全”的接入点,而不是潜在的风险源。
JTAG/Boundary Scan:复杂系统的“体检通道”
对于FPGA、MCU、SoC这类高密度器件,我们不可能逐个引脚去测通断。这时候就需要借助JTAG(IEEE 1149.1)边界扫描技术来实现非侵入式测试。
它是怎么工作的?
JTAG通过四个核心信号构建一条“扫描链”:
-TCK:时钟
-TMS:模式控制
-TDI:数据输入
-TDO:数据输出
所有支持该协议的芯片串联成一条移位寄存器链。你可以像“拉窗帘”一样,把内部引脚状态一个个“拉”出来查看,也可以反向写入,强制驱动某个引脚为高或低。
这就实现了:
- 引脚间连通性测试(查虚焊、错线)
- 芯片ID识别(读取IDCODE确认型号)
- 固件在线烧录(ISP)
- 故障隔离定位
如何布置JTAG测试点?
- 必须为TCK、TMS、TDI、TDO单独设置测试点(建议标为
TP_JTCK等),最好使用排针或2.54mm间距贴片座; - 若有多组JTAG链,需用MUX或使能信号隔离,防止冲突;
- TMS/TCK建议加10kΩ下拉电阻,防浮空误触发;
- 所有信号走线尽量等长、远离噪声源,必要时做端接匹配。
实战代码示例(OpenOCD)
# openocd.cfg interface ftdi ftdi_vid_pid 0x0403 0x6010 ftdi_device_desc "FT2232HL" transport select jtag adapter speed 10000 # 设置10MHz时钟 jtag newtap cpu tap \ -irlen 4 \ -expected-id 0x12345678 init jtag scan # 扫描链中设备 targets # 显示可用目标这段脚本常用于产线自检流程,一键检测JTAG链是否存在、芯片是否正确焊接。
电源与复位:系统稳定的“第一道防线”
再强大的处理器,也怕供电不稳。一个掉电、一次欠压锁定(UVLO),就可能导致系统随机重启甚至永久损坏。
因此,每一条主电源轨和复位信号都必须设有专用测试点。
哪些地方需要设点?
| 网络类型 | 推荐设点位置 |
|---|---|
| 主电源 | PMIC输出端、LDO后级、靠近芯片电源引脚 |
| 分组供电 | AVDD(模拟)、DVDD(数字)、IOVDD(接口)分别设点 |
| 复位信号 | MCU_RESET、WDT_RESET、POR输出 |
| 使能信号 | EN、ENABLE、RUN等控制线 |
设计要点
- 靠近负载端布置:越接近芯片越好,反映真实压降;
- 配对地测试点:每个电源测试点旁边都要有对应的GND_TP,构成完整回路;
- 大电流路径考虑开尔文结构:即独立Sense+ / Sense− 测试点,避开功率走线压降;
- 复位信号带宽足够:建议测试点支持≥100MHz采样,以捕捉窄脉冲;
- 入口加TVS保护:防止静电击穿测试仪器。
举个例子:如果你发现系统偶尔死机,用示波器接上TP_RESET可能会看到一个本不该存在的毛刺脉冲——问题根源可能是复位引脚附近布线太长导致耦合干扰。
高速信号测试:小心“好心办坏事”
最容易被“坑”的,就是高速信号上的测试点。
USB、HDMI、PCIe、DDR……这些信号本身对阻抗连续性和时序极其敏感。一旦你在上面随意加个测试焊盘,相当于人为制造了一个阻抗突变点 + 寄生电容 + Stub分支,轻则信号畸变,重则通信失败。
为什么会出问题?
- 一个标准0805大小的测试焊盘会引入约0.4pF的额外电容;
- 从主走线分出的Stub长度超过5mm就会显著影响上升沿;
- 差分对不对称布局会破坏共模抑制能力,增加EMI风险。
正确做法是什么?
✅ 推荐方案一:内嵌式测试点(In-line Test Pad)
将测试点直接放在走线中间,而非T型分支。这样可以最大限度减少Stub长度。
[Source] ----[TP]----[Load] ↑ 可接触点✅ 推荐方案二:仿真先行
在添加任何测试点之前,使用SI仿真工具(如HyperLynx、ADS)评估插入损耗(Insertion Loss)和回波损耗(Return Loss)。确保在工作频段内影响可控。
✅ 推荐方案三:临时封堵机制
生产测试完成后,可通过零欧姆电阻跳过测试点,或将测试点设计为可焊死结构,在正式出货前“关闭”接入点。
❌ 绝对禁止
- 在>1GHz差分对上直接并联测试焊盘;
- 使用尖角形测试点(易放电);
- 将多个高速信号测试点挤在一起造成串扰。
全局视角:测试点在整个系统中的角色
在一个典型的嵌入式控制系统中,测试点应覆盖以下五个层级:
核心处理器层
- JTAG/SWD调试接口
- BOOT_MODE配置引脚(用于切换启动模式)
- 内核电压监测点电源管理单元
- 各路输出电压(VCC_MAIN、AVDD_1V8等)
- PGOOD状态指示
- EN/FAULT报警信号通信接口层
- UART_TX/RX(用于串口日志抓取)
- I2C总线(地址扫描用)
- SPI_CS/MOSI/MISO(Flash编程辅助)传感器与执行器接口
- ADC采样输入点
- GPIO控制信号
- PWM输出波形观测点存储子系统
- Flash编程接口(适用于返厂升级)
- DRAM地址/数据线(仅限原型验证阶段)
这些测试点共同构成了完整的DFT基础设施,支撑从实验室调试 → 小批量试产 → 大规模自动化测试的全流程需求。
一个真实的ICT测试流程长什么样?
假设我们要对一块工业控制器主板进行ICT(In-Circuit Test)测试,典型流程如下:
- 夹具准备:根据Gerber文件制作针床,确保每个测试点与探针精确对应;
- 上电前检查:执行短路/开路测试,确认无电源反接或线路断裂;
- 供电测试:依次激活各电源轨,测量电压值与纹波;
- 时钟与复位验证:检测晶振是否起振、复位脉冲宽度是否达标;
- I2C扫描:通过
TP_I2C_SCL/SDA发起扫描,确认外设地址响应; - JTAG链检测:运行
jtag scan命令,读取IDCODE验证芯片存在; - 功能激励测试:模拟按键按下,检测中断信号是否传递到位;
- 生成报告:记录所有数据,标记异常项供分析。
整个过程可在30秒内完成单板检测,问题发现率提升80%以上,尤其擅长识别虚焊、错件、极性反接等常见工艺缺陷。
那些年我们踩过的坑:经验教训汇总
⚠️ 坑点1:BGA底部密集区强设测试点
某次设计中,为了测一个PMIC的反馈电阻,硬是在BGA焊盘之间塞了个测试点。结果回流焊后出现微裂纹,长期可靠性堪忧。
✅秘籍:BGA下方尽量避免设点,改用仿真或间接测量法。
⚠️ 坑点2:高速信号加测试点后通信失败
某DDR3地址线加了测试焊盘后,读写错误率飙升。仿真发现Stub长度达8mm,引起严重反射。
✅秘籍:高速信号测试点Stub建议<5mm,优先采用内嵌式结构。
⚠️ 坑点3:丝印混乱导致误测
多个版本迭代后,丝印未同步更新,导致测试人员接错点,误判为电源故障。
✅秘籍:建立统一的测试点清单文档,包含编号、网络名、功能描述、坐标位置,并随版本受控发布。
最佳实践清单:拿来即用的设计指南
| 建议 | 说明 |
|---|---|
| ✅ 提前规划测试区域 | 在PCB布局初期划定测试点分布区,通常放在板边或元件稀疏区 |
| ✅ 统一使用圆形铜盘+绿油开窗 | 直径1.0mm为佳,避免尖角放电 |
| ✅ 所有测试点禁止覆盖阻焊层 | 必须裸露金属表面,保证良好接触 |
| ✅ 关键信号双点备份 | 如复位信号同时在MCU侧和RC滤波后设点,便于分段排查 |
| ✅ 建立测试点管理文档 | 包括网络表、位置图、用途说明,供测试团队共享 |
写在最后:可测性是一种思维方式
测试点从来不是一个“附加项”,而是产品设计的一部分。
当你在画原理图时多想一步:“这个信号将来怎么测?”
当你在布PCB时多留一点空间:“这个地方能不能压针?”
你就已经在践行可测性优先的设计哲学。
未来,随着AI辅助布局、智能测试算法的发展,DUT测试点的设计或许会更加自动化。但无论技术如何演进,提前思考、系统规划、兼顾性能与可维护性的设计理念永远不会过时。
毕竟,一个好的产品,不仅要能跑起来,还要能让别人知道它是怎么跑起来的,以及——当它跑不动的时候,到底哪里出了问题。
如果你正在做一款新产品,不妨现在就打开你的PCB设计软件,看看那些关键节点有没有留下“对话的窗口”。
因为有时候,让电路板开口说话,只需要一个小小的测试点。
欢迎在评论区分享你遇到过的最“离谱”或最“救命”的测试点故事!