尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

自研Pogo Pin测试治具:从选针到Python脚本的完整实战指南

发布时间:2026/9/24 14:29:29

资讯中心
01
ARTICLE

自研Pogo Pin测试治具:从选针到Python脚本的完整实战指南

自研Pogo Pin测试治具:从选针到Python脚本的完整实战指南
从研发打样到小批量试产硬件测试总是被拖到最后一刻才想起来的事。早些年我做板级测试基本是排针加杜邦线一块板四十多个测试点每次换板重新接一遍线接错一根就是半天折腾。后来被逼着自研了一套Pogo Pin测试治具把上电、电压检测、IO回读、固件校验这些步骤全部压到一个动作里配合Python脚本做自动判定原来测一块板要七八分钟压缩到十秒以内而且结果稳定得多。这篇就把我从选针、设计针板、装配治具到写测试脚本的完整过程记录下来给正在被手工测试折磨的硬件工程师、测试工程师和中试人员一个可以直接复现的路线。1. 手里的测试手段先别急着升级——先看清研发期测试痛在哪1.1 飞线测试的日常慢、乱、毁板子我最早做板级测试用的是最原始的办法万用表表笔直接点到通的过孔或者芯片引脚上。碰到间距大的板子还行碰到0.5mm引脚间距的QFP表笔稍抖一下就短路瞬间冒烟。后来改成排针转接在测试点预留焊盘上焊排针再用杜邦线引到面包板或接线端子。这个方法看起来规范实际用起来问题一堆焊盘上反复焊排针焊盘容易起皮脱落杜邦线插久了弹片变松接触电阻漂到几欧姆都浑然不知最难受的是接线顺序完全靠人脑记测电源时不小心把没接地的板子直接怼上去烧过不止一次。这些痛不是偶发而是每次打样之后都要重复一遍。研发阶段板子改动频繁今天换个电容位置明天加一个测试点手工测试的接线方式跟着改。但问题是人的精力和耐心有限连续测到十几块板子的时候注意力已经明显下降误判率开始上升。有一次我测完两批共四十块板后复核发现有三块板其实电压已经不合格但因为测试顺序错乱漏掉了最后到了整机装配才暴露返工成本翻了好几倍。1.2 为什么成品治具救不了研发期的急遇到这个阶段第一个冒出来的念头通常是找治具厂定做一套专用夹具。我当年也去打听过一块普通的针床治具报价少说八九千复杂的带气动压合、防呆检测的两三万起步交期三到五周。这个成本放在量产阶段是划算的但放在研发期就非常尴尬PCB很有可能明天还会改一版改一版意味着夹具定位孔、针位全部要跟着重做等于这份投入打水漂。还有一种现成的通用探针台适合极少数高频信号测量但只适合几十个点以内的场景。你要把一块板的所有输入输出信号同时压出来探针台并不擅长。它的探针数量有限针尖位置靠手动调节四十个点全部对准需要整整一个上午而且操作员每次放板、对位、下压的姿势稍有差别数据就不稳定。我后来放弃这条路意识到研发期真正需要的是一种能随着板子改版一起改、成本控制在几百块、精度足够用、而且拆装换型快的测试方案。1.3 自研Pogo Pin针床能换来什么自己动手做一套针床本质上是同时解决四个问题。首先是速度和一致性测试点的连接从“人工一根根怼”变成“一次性压合”接触点数量和压力都由结构保证不再依赖操作者的手感。其次是可改版能力针板是亚克力或玻纤板改动测试点位只需换孔位重新钻孔半天就能搞定材料成本几乎可忽略。再次是信号质量从Pogo Pin针尖到后端仪表的走线是固定的不会因为每次接线不同而出现地址布线的“隐性电阻”。最后是自动化基础信号全部引到端子排之后后端接程控电源、万用表或采集卡脚本就能自动完成测量和判定而不是靠人读表、记录、比对。2. Pogo Pin选型先把弹力、行程、间距这三笔账算清楚2.1 Pogo Pin是什么为什么它能当“电触点”Pogo Pin的正式名称是弹簧探针结构上由针头Plunger、针管Barrel、弹簧三部分组成。电流路径是针头接触待测焊盘经过弹簧传导到针管底部再通过针管焊接端连接导线。这个结构的核心价值在于它允许一定范围内的垂直位移只要外界给它一个下压力针头就会压缩弹簧产生接触力从而压穿焊盘表面的氧化层形成稳定电接触。Pogo Pin的规格参数决定了它能不能用在你的治具里。关键参数包括针管外径、总长、工作行程、额定电流、接触电阻、弹力、寿命。一般信号用途的针接触电阻在20到50毫欧之间额定电流1A左右大电流针可以做到5A甚至更高。针头形状分为平头、尖头、爪头、凿尖等不同形状对应不同被测表面。采购的时候有一个原则永远不要只看“长得像”要把规格书里的工作行程和弹力数据拿出来核对否则压合力算不准后面会很难受。2.2 选针顺序间距、电流、行程、头型选针不能随便拿一个型号就用我按这个顺序来决策先看测试点间距板上的测试焊盘间距决定了针管外径上限。焊盘间距2.54mm时针管外径2.0mm以下的针基本都能放得下间距1.27mm时针管外径要控制在1.0mm左右同时还要留出邻针的绝缘间隙。再看电流需求普通信号点用额定电流1A的针电源点按实际负载电流的1.5倍选型。如果板子某一组电源电流3A单根5A针放不进去或者成本高可以用两根1A针并联但这时要确认针尖位置焊盘足够大、能同时接触两根针。确认工作行程常见Pogo Pin的工作行程在1mm到3mm之间。选针时要保证治具下压后针头压缩量处于中段区间不能一压到底也不能只压一点点。比如总行程3mm的针我会设计成预压0.5mm、下压时压缩到1.5到2.0mm之间留有余量防止弹簧过早疲劳。最后定头型尖头穿透力强适合焊盘带氧化或涂层的场合但会在焊盘上留下明显压痕平头和爪头对焊盘损伤小适合裸露镀金或镀锡焊盘。我常用的搭配是信号点用爪头电源点用平头既保证接触又尽量减少焊盘损伤。2.3 弹力总和算不准夹具压下去就出问题很多人设计治具时只顾着针位对齐忽略了弹力总和的问题。这里有一个简单的计算假设单个Pogo Pin弹力是0.9N一块板上有55个测试点下压到位时所有针的弹力总和就是55乘以0.9N约等于49.5N接近5公斤力。这还不算导套摩擦、压板自重和待测板不平整造成的额外负载。我在早期就不止一次栽在这个上面。当时用了40根针算下来弹力总合力在3.5公斤左右但随手买的一个普通推拉式快速夹钳实际压紧力只有不到3公斤结果就是夹钳压到底之后针头根本没有压缩到位测试点接触电阻忽大忽小数据完全没法看。后来换了带杠杆结构的肘杆夹钳标称压紧力600N实际压合后针头压缩稳定在设计的2.0mm接触电阻才稳定下来。夹钳的力值选择有个经验法则夹钳实际输出力不要低于整组针弹力总和的5到8倍。因为针的弹力会随着使用次数增加有所衰减而且待测板如果有翘曲需要更大的压力让针头适应板面。预算允许的话直接上带自锁的肘杆夹钳或者小型气动压床省心很多。3. 治具结构设计两板一销的快拆方案3.1 用三块亚克力板搭出治具本体我常用的结构是三块板加两套导柱再加一个快速夹钳。三块板从上到下分别是压板、针板、底座。压板用来传递夹钳的压力中间装夹钳的压头针板安装Pogo Pin针尖朝下对准待测板焊盘底座负责定位待测板板子放进底座上的凹槽后用定位销锁住。材料方面压板我用10mm厚的透明亚克力好处是能直接看到压下来的过程观察针尖是否对准焊盘针板用8mm厚的电木板或者FR-4玻纤板电木加工容易、绝缘性好FR-4强度更高、不易变形。底座也用亚克力但需要在板子器件对应的位置铣出避让槽防止待测板背面有高度器件时被压伤。三块板之间用两根或四根导柱连接。导柱固定在底座上贯穿压板和针板压板沿着导柱上下运动。这个看似简单的结构解决了最关键的问题压板下压的轨迹是确定的不会出现侧向偏移针尖不会在接触瞬间因滑动而刮伤焊盘。导柱和导向孔之间我会保证比较精密的配合间隙通常紧动配合用手推时能顺畅滑动但不晃动。3.2 定位销与浮动针板为什么要这样安排待测板怎么放、放哪里决定了测试结果可不可复现。我的做法是在底座上加工一个浅槽槽的深度和待测板厚度平齐这样板子放进去后不会左右滑动。槽内对角设置两个定位销直径2mm或者3mm对应板子上已有的工艺定位孔。如果板子没有定位孔也可以临时设计两个非功能孔或者用板边挡块加一个弹性压片的方式限位。更进阶一点的设计是浮动针板。所谓浮动就是针板不是和压板完全刚性固定而是通过四个弹簧柱塞或者导柱法兰连接中间留有几毫米的浮动量。这样压板压下来的时候针板先接触待测板随着压力增大逐渐压缩弹簧把针板“压平”在板面上。这个设计的好处是当待测板有轻微翘曲时针板能自动适应板面形状保证每根针都压到焊盘上。我在做第三代治具时才加上浮动结构之前用刚性针板遇到一块板卡变形0.3毫米边角位置几个测试点接触电阻偏高总成上机后偶发故障查了很久。换了浮动针板之后这个问题彻底消失。如果你有精密加工条件导柱导套可以稍微紧配一些配合表面粗糙度好一点更能保证重复定位精度。3.3 压合力与行程夹钳不是越大力越好设计压合系统时不仅要把力算够还要控制行程。我之前见过有人直接用大行程气缸压到底之后再压一下把针头整个压穿行程结果弹簧永久变形针的寿命急剧缩短。正确的做法是给压板加限位柱也就是在针板或者底座上设置四个等高限位柱限制压板下压的最低位置。行程怎么调先把Pogo Pin压缩到它的推荐工作区间。举例某款针总行程3mm推荐预压0.5mm工作压缩量1.5mm到2.0mm。那么当夹具完全压合时针头压缩量就控制在1.8mm左右。这个值可以通过限位柱的高度来精确调整实际操作中我会在限位柱和底座之间加0.05mm精度的垫片微调几次直到所有测试点的接触电阻都低于规格要求且留有余量。注意过大的压合力对板子也有伤害。有一种常见失误是不看器件布局直接把一块大功率电容或者晶振压裂。设计阶段要检查针板与待测板器件的高度干涉避免针尖刚好顶在元件本体上——针尖接触的是测试焊盘不是元件表面。3.4 线缆布置信号和电源分开走针板背面的走线是很多人不重视的地方。针焊完后我把线引到接线端子排再连接到仪器。这个过程最容易犯的错误是所有线混在一起信号线和电源线捆成一股结果纹波和噪声全被引到测量端微弱信号根本测不准。我的布线规范是电源线和地线走一侧信号线走另一侧仪表测量线尽量用带屏蔽的线缆屏蔽层单端接地。大电流线尽量短粗一点降低压降。40个测试点以上时线缆最好分组编号每条线两端贴上热缩管标号不然后期排查接触不良能让人崩溃。在线缆固定上不要在针板背面让线直接悬空拖拽用过线夹或者扎带固定在针板边缘留出足够余量让针板可以上下浮动。我第一次做的时候就是没固定线压合次数多了之后线束在边缘反复弯折有几根内部断芯症状是偶发性不导通查了好久才发现。4. 从图纸到实物钻孔、压针、焊接的装配细节4.1 拿到CNC板件后的体检与毛刺处理图纸发出去加工之后拿到手的板件第一件事不是着急装而是检查。用卡尺量一遍关键孔径定位销孔是不是设计尺寸针板孔是否统一板面有没有明显残胶和毛刺。亚克力板的保护膜撕掉后有时候边缘会有细小的毛刺会卡住针体导致装配失败。处理毛刺我用两种办法小毛刺用美工刀轻轻刮掉再用细砂纸打磨孔内毛刺用对应直径的手用铰刀过一遍保证孔径光滑。对电木板而言加工后边缘会有粉尘用吹风清理干净必要时用酒精擦洗。这一步看似琐碎但直接影响压针的顺滑度和定位销的装配精度。还有一个检查项是板的厚度。针板厚度要和选择的Pogo Pin总长匹配保证针管焊接端能从背面露出来方便焊线。如果针板太厚针管完全埋进孔里焊接端够不到那就麻烦了。一般8mm或者10mm厚度对大多数针是合适的但每种针长度不同最好先拿一两根样品试压一下。4.2 压针的正确手感和防呆要领压针是整个装配过程中最容易毁针的一个环节。直接把针往孔里砸很容易把针头砸歪、弹簧砸坏我这个外行也废掉过几根针。后来学到的正确方式是做一个压针导向套导向套内孔和针管外径配合套在针管上用台钳或者小压床把针徐徐压入针板孔。压入方向的关键是防呆。Pogo Pin的针头和针管焊接端外观通常有明显区别有些针头端带尖、有些焊接端带凹槽装配时一定要保证针头朝待测板方向。我习惯在针板正面标注“THIS SIDE DOWN”字样装配时先统一把针板放在平整台面上正面朝上然后从背面放入针管再用工具从背面压入让针头穿过针板正面露出来。这样能最大限度避免方向搞反。如果发现针板孔径比针管外径略紧压入时阻力正常感觉到明显的摩擦力如果太松针放进去会晃动甚至掉出来那就需要重新设计孔径或者用胶水在针管背面点一点来辅助固定。但我不推荐用胶水后续换针很麻烦最好用紧配合的孔径。4.3 焊线分组与导通/短路自检针压到位后开始焊线。焊线之前先用万用表蜂鸣档检查每一根针是否安装到位表笔一端触针尖一端触针管背面应该导通。这个检查要逐根做避免后续焊完再排查。焊接时注意温度和时间我用的烙铁温度设定在350℃左右焊接时间尽量短避免热量沿针管传到弹簧处导致弹簧退火。焊线线径根据电流选择信号线用28AWG到24AWG电源线用20AWG到18AWG。焊完后在每根线靠近针板的位置套上热缩管或者用扎带固定留缓冲余量。组装完成后还有一个容易漏掉但非常重要的自检短路测试。用万用表依次量相邻针尖之间的电阻确认相邻针之间没有锡珠相连或者线束破皮短接。这个步骤能够暴露绝大部分装配质量问题一旦发现有短路立即排查焊点附近有没有残留的焊锡渣。我就曾经因为一根线剥皮过长搭在旁边针脚上导致整组电压数据异常查了半小时才发现问题。4.4 首次下压调试看针印、调行程、补支撑装配完成后的第一次下压我建议不要直接接仪表测量先做一次物理调试。放一块真实待测板进底座用手轻轻压下压板观察针尖是否全部落在焊盘中心位置。如果有个别偏位说明定位销或者针板孔位有误差需要调整。完全压合后松开压板把待测板取出来看焊盘上的针印。均匀清晰的压痕说明所有针都接触到位压痕很浅或者没有压痕的位置说明这根针要么没对准、要么长度不够、要么针板在这个区域被板面顶住了。排查方法是用塞尺或千分尺测量该位置的板高确认是不是待测板表面器件导致板面局部抬高。如果是因为板子翘曲导致个别针接触不良除了升级浮动针板还有一种简单做法在翘曲位置的底座上加一个弹簧顶销也就是浮顶支撑。弹簧作用力把板子局部顶高让针压到焊盘时接触力更均匀。这个思路成本很低但效果非常明显尤其适合大尺寸PCB。5. 连上仪表才算自动化Python测量脚本的骨架5.1 测试项拆解与程控仪器选配治具把信号引出来之后剩下的就是仪表和脚本接管。做自动化之前先把测试项拆解成一个个可以用仪器读数的断言。以我做过的一块电机驱动板为例拆出来的测试项大致是上电前测试电源输入端与地之间阻抗大于1kΩ确认没有短路上电后电压12V电源输入在11.4V到12.6VLDO 3.3V输出在3.25V到3.35V基准电压1.24V正负1%电流测量整机待机电流在20mA到50mA之间满载时不超过1.2A功能回读通过UART接口发送查询命令读取板上固件版本判断是否烧录正确固件校验读取Flash区域的CRC值与预期比对对应的仪器配置并不复杂。程控直流电源负责给板子上电并回读电压电流台式万用表负责精确测量各测试点的电压和微弱信号USB数字IO模块或者继电器板负责切换测量通道UART转USB模块负责和待测板通讯。这套配置里万用表和电源用USB或者LAN口连接电脑PyVISA库就能直接控制。5.2 SCPI指令与PyVISA通信的骨架仪器控制的关键是SCPI指令不同厂家的指令集略有差异但核心逻辑一致开机、设置量程、读取测量值。以常用的程控电源和万用表为例Python脚本可以用pyvisa写import pyvisa import time rm pyvisa.ResourceManager() # 根据实际的资源地址修改 psu rm.open_resource(USB0::0x1AB1::0x0E11::DP932E::INSTR) dmm rm.open_resource(USB0::0x0957::0x2D07::INSTR) psu.timeout 3000 dmm.timeout 3000 # 设置电源输出 psu.write(:OUTP CH1, OFF) psu.write(:VOLT CH1, 12.0) psu.write(:CURR CH1, 2.0) # 上电 psu.write(:OUTP CH1, ON) time.sleep(0.5) # 等电压稳定 # 万用表读电压 dmm.write(:CONF:VOLT:DC 10, 1e-3) raw dmm.query(:MEAS:VOLT:DC?) voltage float(raw) # 万用表读电流用单独通道串入 dmm.write(:CONF:CURR:DC 2, 1e-3) raw dmm.query(:MEAS:CURR:DC?) current float(raw) # 断电 psu.write(:OUTP CH1, OFF)这段代码看似简单但有几个细节要特别注意。第一是资源地址每一台仪器的地址都不同用rm.list_resources()先列出来再指定。第二是测量超时如果万用表量程设置不当测量时间会明显变长遇到读数为空的异常要加try-except。第三是上电和测量之间的延时我最初因为省掉time.sleep(0.5)直接测量发现读数是上电瞬间的过渡电压各种测量和提高加了延时之后才稳定。5.3 判定逻辑、结果落盘与异常处理测量得到的数据要转成PASS/FAIL判定这个环节需要把阈值写清楚。我习惯把每个测试项的上下限放在一个列表里循环执行这样未来修改判定标准只需改配置不用动主代码import csv from datetime import datetime test_items [ {name: 12V输入电压, value: voltage, low: 11.4, high: 12.6}, {name: 3.3V LDO, value: v33, low: 3.25, high: 3.35}, {name: 待机电流, value: current, low: 0.020, high: 0.050}, ] results [] all_pass True for item in test_items: ok item[low] item[value] item[high] all_pass all_pass and ok results.append({ time: datetime.now().isoformat(), name: item[name], value: item[value], low: item[low], high: item[high], pass: ok, }) # 写CSV报告 with open(ftest_report_{datetime.now():%Y%m%d_%H%M%S}.csv, w, newline) as f: writer csv.DictWriter(f, fieldnames[time, name, value, low, high, pass]) writer.writeheader() writer.writerows(results) print(ALL PASS if all_pass else FAIL)实际产品测试还需要加上重试机制和失败明细打印。比如某一块板第一次测到电压超上限有可能是接触不良导致脚本自动断电重测一次重测仍超限才判FAIL。这样能显著降低因夹具接触问题导致的误测又能自动记录可疑数据方便后续分析。5.4 把测试时间从几分钟压到十秒内的操作硬件测试自动化的价值最终体现在“节拍”上。手工测试时一块板从放上去、接线、上电、读表、记录、断电、拆线最快也要三五分钟。自动化之后我发现真正花时间的不是测量本身而是每个步骤之间的等待和检查。压缩时间的关键有三个一是合并步骤上电后同时测量多个电压点而不是一个一个测这一项能省一半时间二是缩短不必要的延时比如有些模块上电到输出稳定只需50ms但为了稳妥我最初硬是等了1秒后来实测缩短到200ms完全没问题三是批量执行同一通道夹具连续测板时脚本启动后只做“放板、压合、按确认键”三个动作其余全部自动完成。最终整体节拍稳定在八秒左右这还是包含了人工放板和压合的间隙。6. 压合几百次之后的维护磨损、误测与排查链路6.1 接触电阻突变的完整排查链路治具不是装好就能一直用Pogo Pin是有寿命的机械电子元件。用了几个月之后我遇到最典型的问题是偶发接触不良具体表现是某几个测试点的电阻偶尔偏高导致测试结果抖动。排查的时候不要瞎猜按链路走第一步用标准短接板和万用表从治具引线端直接测接触电阻。标准短接板是一块简单的双面覆铜板上层焊盘全部短接压合治具后直接测线路整体电阻。如果阻值大于100毫欧说明接触端或导线有问题。第二步如果整条链路阻值高先用排除法断开引线端直接量针尖到针管背面的电阻。若是针本体问题多半是针尖氧化、弹簧疲劳或者针管内进入了脏污。第三步检查压合行程。用塞尺测限位柱和底座之间的实际间隙如果尺寸变了夹钳力也可能随之变化导致压入力不足以保证可靠接触。第四步怀疑针板或线缆问题可以换用备用通道测量同一片板子如果备用通道读数正常问题就锁定在故障针或故障线上。这套链路我总结成一张表格贴在治具旁边遇到异常直接对应排查十分钟内能定位绝大多数问题不需要盲目拆机。6.2 针尖氧化、损伤的判别与更换窗口Pogo Pin的针尖在反复压合之后镀层会逐渐磨损。针尖出现肉眼可见的变色、毛刺、塌陷或者用放大镜看到针尖有熔坑就是明显的老化信号。但更常见的情况是镀层没破但表面氧化尤其是测试裸露铜焊盘的时候氧化层会附着在针尖上导致接触电阻缓慢爬升。我的做法是每两周用酒精和无尘布清洁一次针尖和待测板焊盘区域。注意不要用砂纸打磨针尖砂纸会直接破坏镀层让针尖更快报废。如果清洁后接触电阻恢复说明只是表面污染如果清洁后仍然偏高那就该换了。至于更换窗口不一定要等到完全失效才换。我曾在一套治具上观察到某个测试点接触电阻从20毫欧慢慢爬到80毫欧测出来电压偶尔偏低50mV但还没到阈值。这种“亚健康”状态最容易在客户现场变成偶发误测而且误测最难复现。所以我把更换标准定为接触电阻超过100毫欧无条件更换宁可提前换掉十几根针也不让一块可疑的板子从产线溜走。6.3 降低误测率的标准件校验习惯最后分享一个我一直坚持的习惯每次批量测试开始前先压一次标准校验板确认治具整体链路正常。标准校验板就是一块经过预先测量、数值已知的小板放上去后跑一遍完整测试脚本如果结果和标称值一致才允许继续测正式板。这个习惯看起来多花几十秒实际上能避免极大的浪费。有一次我因为前一天下雨湿度太高针尖表面氧化明显如果直接测板第一批十几块板很可能被判FAIL然后我还会怀疑是板子问题去查一堆根本不相关的因素。有了标准件校验一上来就发现治具链路电阻偏高赶紧清洁几分钟解决问题。另外每次换批次或者改测试项时重新校验一次标准件也是必要的。治具用久了导柱间隙、夹钳力、限位柱高度都可能因为正常磨损而变化校验件能快速暴露这些机械层面的变化让你在误测还没造成大麻烦之前发现它。这套自研Pogo Pin测试治具加Python自动测试脚本的组合是我在无数次返工和排查里慢慢磨出来的。回头看最值钱的不是某个零件或某段代码而是整个过程中对细节的把握——针的行程选多长、夹钳留多少力、线怎么分组、判定阈值给多少余量每一个单看都不难但放在一起决定了治具到底好用还是难用。中间踩过的坑确实不少但每一次改进都有数据支撑测出来的结果也一次比一次稳。如果你也正被研发期的板级测试折磨别急着花大价钱外发治具先拿二十根针和一块亚克力板试水成本不高等你用顺了会发现这套东西还能跟着你的板子一路升级。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。