ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

飞针测试编程提速:数据驱动方法破解高密度板瓶颈

飞针测试编程提速:数据驱动方法破解高密度板瓶颈 做测试工程这一行最怕的不是设备半夜宕机而是研发那边抱着新板子跑到你工位前扔下一句话“这板子今晚能出测试程序吗”设备端Takaya飞针测试仪的操作我们早就摸透了但编程环节一直是老大难。尤其这几年板子越做越密BGA引脚间距拉到0.4mmMPU底下全是阵列焊盘靠人工在CAM软件里一个个挑测试点、手写测试程序一块高密度通信板常常要折腾三四天。后来我们把望友TEST软件引入到Takaya飞针测试设备的编程流程里情况才真正改观。这篇就把这段时间的实操经验、踩过的坑和效率数据都摊开来讲给同样被飞针编程折磨的兄弟一个参考。1. 飞针编程的瓶颈不在手速而在数据链路的断裂1.1 传统人工编程流程中的时间黑洞很多人觉得飞针测试不需要做治具编程应该比ICT简单。这话只对了一半。飞针测试确实省掉了针床治具的制作周期但程序本身的工作量一点不少。传统人工编程大概是这个流程先从EDA工具里导出坐标文件再从BOM里整理元器件位号还要从网络表里理清每个网络的连接关系然后打开CAM软件对着Gerber一层层翻人工挑选合适的测试点再逐个检查这个点会不会被元件本体挡住、会不会离板边太近、探针下去会不会打到旁边的丝印。全都确认完最后才是在Takaya自带的编程环境里把坐标点录入进去编排测试顺序生成机器可识别的程序文件。这块高密度板网络数动辄两三千个因为要保证覆盖率需要布的测试点多达四五千个。人工去处理这个量级不是能力问题是纯体力活干不完。我之前统计过一个熟练工程师一天能认真处理并反复核对完的测试点大概在八百到一千个。换句话说一块两千网络的板子光点坐标录入和检查就要花掉两到三天。如果中途发现某个测试点选得不合适需要回退修改时间还要再加。真正的麻烦在于这些工作大量是重复劳动。从EDA数据里提取坐标、把坐标从A坐标系换算成B坐标系、核对网络名是否一致……每一步都在消耗人的精力而且这些环节恰恰最容易出错。错了还不一定当场发现经常是程序传到机器上跑起来探针“咔”一下打在元件本体上才知道前面某一步出了偏差。1.2 高密度板卡为什么让老方法彻底失灵以前板子密度低间距大测试点好找人工编程虽然累但还能将就。现在完全变了。第一可供测试的空间急剧缩小。一块手机板或者通信模块表贴元件密度极高器件之间的间隙常常不到0.5mm探针头直径本身就有0.3到0.5mm要找一个既符合电气要求、又不会被机械干涉的位置非常考验经验。人工判断这个“经验值”效率低且标准不统一换个工程师结果可能就不一样。第二BGA和QFN这类底部引脚器件越来越多。这类器件的焊盘在封装底下探针够不着必须在同网络的其他位置引出测试点。如果不在设计阶段做DFT预留后期只能靠经验满板子找过孔和测试焊盘。有些过孔可以用来做测试点有些过孔因为孔径太小或者被阻焊覆盖根本不能碰。人工一个个排除工作量巨大。第三也是最容易被忽视的一点就是电气网络的完整性问题。人工编程时很容易只盯着“这个点能不能探”忽略了“这个网络测到没有”。板子上一颗芯片的电源网络可能通过好几个过孔和平面层连接你随便挑一个过孔测测出来的开路短路结果可能没有代表性。这种情况在低电压大电流的电源网络上尤其明显等板子到了功能测试阶段才发现电源内层开路前面飞针测了个寂寞。1.3 数据驱动编程和图形驱动编程的本质区别人工编程为什么慢本质原因是它的信息源是图形也就是人看着Gerber图去做判断。Gerber能表达焊盘在哪能表达走线形状但它不告诉你这个焊盘属于哪个网络也不告诉你这颗料和周围哪些过孔是同一网络。望友TEST软件这类工具走的是另一条路数据驱动。直接吃EDA设计数据比如ODB或者IPC-2581甚至直接读取Cadence、Mentor的数据库文件。这些格式里包含了完整的网络连接关系、元器件位号、焊盘坐标、封装信息全部是结构化数据。有了结构化数据之后软件做的是规则运算而不是人的视觉判断。什么位置的焊盘可以作为测试点哪个过孔属于哪个网络这个网络有没有被覆盖到全部由程序按预设规则批量算完。人从“看图找点”里解放出来只需要做规则审核和例外处理。这就是“快速编程”最本质的逻辑——不是某个环节快了一倍而是把整个流程从串行的人工判断变成了并行的自动化计算。2. 望友TEST软件破解Takaya编程慢的几个核心逻辑2.1 数据导入环节ODB、IPC-2581、CAD与Gerber的取舍用TEST软件编程第一步是导入数据。这一步最考验客户配合度也直接决定后面编程顺不顺。我实际用下来数据源优先级是这样的ODB或IPC-2581最优其次是对应EDA工具的原始数据库最差的是只给Gerber和PDF。ODB和IPC-2581这类格式把PCB设计的所有信息打包在一起各层铜箔图形、焊盘位置、网络表、元器件装配信息都有。软件读进去之后测试点提取几乎不需要人工干预网络关系也是现成的。我曾经处理过一块客户只提供Gerber的板子软件能从Gerber里还原出焊盘和走线但网络信息需要靠分析铜箔连通性来重建虽然也能用但遇到内层电源平面分割复杂的情况软件需要较长时间计算而且个别网络的判断结果需要人工核对。如果是原始EDA数据库比如Allegro的.brd文件TEST软件也能直接读效果等同于ODB。我一般建议客户在发板时连带把ODB一起导出这是效率最高的路径。具体操作上导入时需要核对几个关键参数板层叠层顺序、坐标原点、板子外形、基准点位置。尤其是原点经常有人忽略。EDA设计时的原点和软件默认的原点不一致会导致所有坐标整体偏移程序传到Takaya上之后探针全部打在偏的位置。2.2 测试点自动分配规则背后的可制造性逻辑TEST软件从设计数据里提取出所有可能的测试点之后并不是把每一个焊盘都选进去。它会按照工程规则跑一轮筛选这些规则本质上就是老师傅平时人工判断的逻辑只是被固化成可配置的参数。以我常用的设置为例最小测试焊盘直径0.5mm小于这个尺寸的焊盘直接排除因为探针接触面积太小测试稳定性差测试点到元件本体边缘的距离不小于1mm防止探针压到元件本体造成损伤测试点到板边距离不小于3mm否则探针移动时可能超出行程极限测试点不能选在过孔上除非过孔孔径足够大而且表面平整。这套规则跑完之后软件会输出一个初步的测试点分布。接下来它会检查每个网络是否至少分配到一个测试点并统计网络覆盖率。如果某些网络没被覆盖到软件会在报告里标出来。这个过程在人工编程时代根本做不到因为几千个网络靠人眼去核对是否全部覆盖几乎是不可能完成的任务。还有一点对Takaya设备特别重要探针分配。Takaya飞针测试仪一般有四根针分别从上下左右几个方向移动探针。同一时刻相邻位置的两个网络如果分给同一根探针那就会产生严重的时间冲突因为探针要等前一个点测完再移动过来。TEST软件会自动分配探针编号和方向尽量让四根针的工作量均衡减少互等时间。这个细节对测试节拍影响非常大人工排程序很难考虑到这么细的层面。2.3 覆盖率报告不是摆设要会读TEST软件导出的覆盖率报告里我最关注两类信息一是未覆盖网络清单二是覆盖冗余度。未覆盖网络清单是红色的看到就要立即处理。这些网络多半是电源地平面类的网络在表层没有合适的焊盘或过孔可测。处理办法通常是补加测试焊盘也就是在PCB空余位置放一个单点焊盘并通过过孔或走线连到对应网络上。如果板子已经投产无法改版那就只能在报告中标注“放弃测试”并和研发确认风险。覆盖冗余度则是反向信息。比如一个网络上有七八个测试点而按照规则只需要测一两个。冗余度太高会增加测试时间因为每个测试点都要执行一次探针接触动作。TEST软件可以设置每个网络的最大测试点数把冗余度降下来。我一般设置为2到3个既能保证测试可靠性又不至于让程序跑太长。这个报告我建议在编程初期就发给研发和DFM工程师看。很多时候我们觉得某个网络没法测其实研发改一下layout就能解决。以前人工编程做到这一步再回头改设计周期早就耗掉了现在TEST软件几分钟出报告提前把问题暴露出来整个流程顺畅很多。2.4 如何面向Takaya设备特性生成更稳的程序望友TEST软件生成的程序文件最终要交给Takaya设备执行所以软件里有一些针对Takaya参数的适配项这里分享几个值得留意的点。Takaya飞针测试设备的探针头属于精密部件高速移动和频繁接触对坐标精度要求极高。TEST软件生成的测试点坐标和探针移动路径默认是经过理论坐标转换的但我们上机时还是会做一次坐标校准用板上的基准点来纠正设备坐标系与PCB实际位置间的偏差。这个步骤不能省板子涨缩、贴片变形都是真实存在的。另外Takaya设备有自身的最小探针间距和最大移动范围限制。TEST软件在生成程序时会自动避开机械上的禁区但操作者还是要确认一遍设备型号对应的软件后处理器版本是否正确。我在项目上见过一次因为后处理器选错导出的程序里多了一串设备不认识的指令机器直接报警停住。后来在TEST软件的后处理器配置里选对Takaya具体型号问题就消失了。3. 一块高密度板卡的快速编程实操记录3.1 工程建立与板卡参数设定拿我们最近做的一块通信主控板举例。14层板尺寸大概230mm乘180mm表贴元件密集BGA数量有七八颗网络总数接近2800个。这种板子放以前没有四天时间根本拿不出可用的飞针程序。在TEST软件里新建工程后我做的第一件事是设置板卡基础信息板厚1.6mm基准点坐标从ODB数据里自动带出拼板方式是单板加工艺边。这里特别提醒一下拼板的工艺边会影响测试点的坐标。有工艺边时定位孔和基准点在工艺边上测试点坐标需要做整体偏移。TEST软件支持直接导入拼板信息自动展开成单板和拼板两种坐标模式省去手工换算的功夫。然后是设定层叠信息。14层板有多个内层平面软件需要知道哪些层是铜箔层、哪些是阻焊层才能在提取测试点时准确判断哪个焊盘暴露在表面。这一步如果数据完整几乎全自动完成。我手动检查了一下每一层的类型设置确认无误后就开始跑测试点提取。3.2 测试点自动生成参数设置与人工补点测试点提取前我把规则参数又过了一遍最小测试焊盘直径0.5mm元件间距1mm板边距离3mm过孔不做默认测试点但允许用户后续手工指定。每个网络最大测试点数量设置为3个最小1个。这些参数的选取不是拍脑袋是根据我们产线上的Takaya设备实际能力和产品良率要求定下来的。参数确认后点生成软件跑了大约两分钟结果出来成功分配测试点的网络有2750个覆盖率接近98.2%。剩下的几十个网络都是因为表层完全没有合适焊盘或过孔集中在几个大电源网络和地网络上。这个覆盖率数字在人工时代是无法想象的老师傅凭感觉挑测试点做到95%覆盖率已经算不错了而且你根本不知道漏掉的是哪个网络。对于未覆盖网络我打开TEST软件的补点功能在软件界面上手动指定了几个两面都可用的过孔作为测试位置。虽然过孔表面平整度不如焊盘但孔径大于0.8mm的过孔在Takaya上测试稳定性还可以接受。人工补点总共花了二十来分钟最终覆盖率做到了100%。3.3 探针分配与路径优化的实际效果覆盖率搞定后下一步是让软件自动做探针分配和路径优化。这块板子上的测试点总量是6100多个四根探针全部启用。最初生成的程序预估测试时间是每面230秒左右。我看了一眼觉得还有优化空间因为默认的探针分配倾向于就近分配但部分区域四根探针的工作量并不均衡。我在TEST软件里把路径优化策略调整为“按区域分块工作量均衡”重新生成一次预估测试时间降到了190秒。这个调整幅度看起来很玄学但原理并不复杂。探针移动是飞针测试里最大的时间消耗项两块区域距离远探针来回跑的路径就长。软件把板面按坐标划分成若干区域让每一根探针固定负责某个区域内的测试点移动距离就短了四根针并行工作的效率也上去了。人工编程时我们根本不会去考虑探针的运动轨迹规划默认是从第一个测试点一路测到最后一个顺序毫无章法。TEST软件这一点对我的帮助最大。3.4 程序导出、上传与首件核对程序生成后TEST软件通过后处理器导出Takaya专用的程序文件。我检查了一下输出文件的后缀名和版本确认与设备上的软件版本兼容然后用U盘把程序拷到Takaya控制电脑上在设备软件里打开。这里有一个非常关键的核对步骤坐标校验。设备上电之后先不直接跑整板程序而是跳转到几个已知坐标的测试点让探针低速移动到位置目视确认探针中心是否落在测试点正中。我通常选板子左上角、中心和右下角各一个点做校验这三个点分布均匀能有效发现坐标旋转或比例不对的问题。我这次选的第一批验证点全部落在焊盘中心说明ODB数据的坐标和实际板卡对得上。接下来我启动了空跑模式让设备按程序跑一遍但不实际接触板面观察探针路径是否可能与元件发生干涉。屏幕上能清楚看到四根针的移动轨迹有一个位置探针路径离一颗较高的电解电容外边缘只有约1mm软件没有报警但我觉得余量太小回去在TEST软件里把该测试点调整为同一网络的另一侧焊盘位置重新导出再上机这次路径宽松多了。4. 首件验证阶段我遇到的与TEST软件相关的实际问题4.1 测试点接触报警先查数据源不要急着改程序首件验证最让人头疼的就是接触报警探针下去了但测出来的电阻异常或者直接报开路。很多人的第一反应是去改程序里的坐标但以我的经验首先要怀疑的是数据源一致性。有一次我们用TEST软件编了一款板子的程序上机后连续十几个点接触报警。我检查了板面测试点焊盘表面看起来没问题后来在软件里把报警点对应的坐标高亮出来才发现问题是出在ODB数据里这些焊盘的坐标和实际板子之间整体偏移了约0.4mm。原因是客户更新过一版layout但ODB导出的版本还是旧的他们自己没发现。我把新版ODB重新导入自动更新测试点之后报警全部消失。所以遇到接触报警第一步永远是回头核对数据版本而不是在Takaya设备上手工改偏移量否则每块板子都要调一遍治标不治本。还有一次是测试点选在了机械过孔上。TEST软件默认会排除过孔但因为我手工补点的时候选择了过孔而那个过孔一面被元件本体遮挡另外一面虽然露出来了但焊环表面有轻微凹陷探针压下去之后接触电阻偏高。后来我在补点规则里把“过孔测试点要求双面露铜且焊环宽度不小于0.2mm”加进去这类问题就再没出现过。4.2 小间距器件遮蔽探针的问题飞针测试探针头直径小但也不是无限小。当测试点周围元件间距特别近的时候即使TEST软件规则里设了1mm间距实际运行中还是可能出现探针移动路径被旁边的元件挡住的情况。我遇到过一次典型的小间距遮蔽问题测试点旁边是一颗0.4mm间距的QFN器件本体高度虽然不高但探针从上往下接触测试点时探针的针尖角度偏转容易蹭到QFN的引脚。软件在平面几何上计算的是绝对距离足够但它不会自动考虑探针的进针角度和器件高度的三维干涉。这个问题的解决办法是靠TEST软件的三维干涉检查功能。把板卡的元件高度信息导入后软件会重新模拟探针从不同方向进针的路径找出一条不碰周围元件的安全角度。如果测试点周围实在没有避空空间软件会建议删除该测试点并搜索同网络的替代点。我现在编程时都会在导出前跑一遍三维干涉检查宁可多花十分钟也不要让设备在调试时撞针。4.3 A/B面和拼板编程的防呆处理双面板的飞针程序A面和B面测试点容易搞混。TEST软件在建立工程时就区分了TOP和BOTTOM两个面的测试点分别生成独立的程序段。Takaya设备在执行时会自动翻转板子但要求程序里明确定义哪个面先测、翻转后坐标如何对应。我碰到过最典型的错误是拼板方式变了之后坐标映射错乱。有款产品原来的拼板是2乘2后来改成3乘2客户只更新了ODB但TEST软件工程文件里的拼板矩阵还停留在旧状态导致BOTTOM面的程序里后半块拼板的坐标整体错位。后来我在工程配置里每次导入新版本数据时都强制重新读取拼板信息并检查扩展后的坐标范围确认最大坐标不超过设备行程范围才再开始跑测试点提取。还有一个细节是板子正反面原点方向不一致。有些PCB设计TOP面原点在左下角BOTTOM面原点在左上角如果不做镜像转换翻转后所有坐标全部偏移。TEST软件在导入BOTTOM面数据时可以设定镜像轴和原点位置我一般会在导出前用软件自带的图形预览功能把TOP和BOTTOM两个面的测试点分布叠在一起看一眼方向是否合理这一步比任何参数核对都直观。5. 用了几个季度后编程效率的量化复盘5.1 编程周期与首件通过率的前后对比实践了几个季度我把人工编程和用望友TEST软件编程的数据做了个简单对比直接看数字最直观。对比项人工编程方式TEST软件编程方式数据准备时间半天到一天人工整理坐标0.5到1小时导入ODB测试点提取与筛选两到三天5到10分钟覆盖率检查基本不做或靠抽检自动生成报告100%核对人工补点无规则凭经验由报告驱动目标明确程序导出手动录入设备软件一键后处理高密度板总编程周期3到5天3到6小时首件调试时间半天到一天1到2小时这个对比不是理论推演是我自己前后两段工作方式的真实记录。尤其是首件调试时间人工编程生成的程序通常要反复修改测试点位置因为上机后才发现某个坐标落在丝印上、某个测试点离元件太近探针不敢下压。TEST软件生成的程序在规则层面已经把这类问题规避掉了大半首件调试自然快很多。5.2 什么类型的板子收益最大从实际项目看并不是所有板子用TEST软件都能获得同样的效率提升。我总结下来以下三类板子收益最大。第一类是网络数多的复杂板比如通信主板、服务器主板、医疗设备控制板。这类板子人工编程的工作量呈指数级增长而TEST软件的处理时间只跟网络数的线性量级相关差距非常明显。第二类是改版频繁的板子。以前产品改版一次测试程序从头改到尾起码要一周。现在改版后直接导入新ODB规则和探针分配逻辑全部保留重新生成程序只需几个小时。版本之间的差异还能通过报告快速定位到新增的测试点和移除的测试点方便评估改版对测试覆盖率的影响。第三类是研发验证阶段的小批量板。研发打样阶段往往只有几块板子以前根本不会安排飞针测试因为编程时间太长等程序编好样品都快报废了。现在TEST软件几个小时能出程序研发板也能在Takaya上快速做一轮工艺验证提前发现PCB制造缺陷和设计问题。5.3 一点个人建议如果要用好TEST软件我个人的建议是不要把全部希望寄托在软件上。软件能处理规则明确、数据完整的场景但数据源头有问题时它一样会出错。我在项目流程里做了两个硬性要求第一所有PCB设计必须导出ODB格式不允许只给Gerber第二每版数据导入TEST软件后必须由专职工程师审核覆盖率报告和三维干涉检查结果再允许进入程序导出环节。还有一点让我感触很深就是软件把测试编程从“老师傅手艺”变成了“标准化流程”。以前这个岗位培养周期至少要半年新工程师要跟着老师傅熟悉各种板子、各种设备积累大量经验才能上手。现在TEST软件的规则库已经把很多经验固化了新人培训一两周就能完成常规板卡的编程任务老师傅可以腾出精力去处理那些真正需要判断力的异常情况。这对工程团队的梯队建设帮助非常大。另外在使用软件的过程中我建议定期把实际设备上调试时遇到的问题反馈到TEST软件规则库里。比如某些测试点虽然静态间距满足要求但设备高速运动时仍有干涉风险就可以把规则从1mm调整到1.5mm。规则库是活的只有不断根据现场情况迭代软件带来的效率优势才能持续放大。
返回列表