谷动谷力

标题: 【KiCad】PCB 上常用的“点”(三) 测试点(Test Point) [打印本页]

作者: sunsili    时间: 2024-1-11 14:50
标题: 【KiCad】PCB 上常用的“点”(三) 测试点(Test Point)
本帖最后由 sunsili 于 2024-1-11 15:02 编辑

【KiCad】PCB 上常用的“点”(三) 测试点(Test Point)


“ 测试点要不要加?怎么加?网络覆盖率是否要做到 100%?这些问题都没有确切的答案,要根据实际的场景而定。 ”

如果你在一家外资企业工作,可能遇到过这样的情况:当PCB设计完成后,QA/QC部门坚决要求添加测试点,以实现100%的测试点覆盖率,否则不允许进行小批量生产(pilot run)。
这让你感到很无奈,因为板子上的走线已经非常密集,难以再添加测试点。你可能会与QA部门争论,指出高速信号线路上添加测试点会影响信号质量,好像在加一根天线一样,问他们是否愿意为此负责。这时候,你可能会心里抱怨QA部门什么都不懂。

如果你在国有企业或国内企业工作,可能遇到过这样的情况:设计完成后,才意识到工艺部门要求“每个网络至少有一个测试点”的规定,否则不会进行试产。你可能会感到无奈,觉得这样简单的板子自己已经测试过多次,肯定没问题。你可能会拿起电话与工艺部门争论,说产品下个月就要投产,现在改动已经来不及,问他们是否愿意为可能出现的延误负责。你心里可能会抱怨工艺部门完全不考虑研发的感受。

问题究竟出在哪里?其实没有哪一方是错的,只是考虑问题的角度(职位)不同而已。研发人员更关注产品的性能,需要通过热测试、可靠性测试、S&V测试、EMI/EMC测试等一系列测试,并获得FCC、CE、BSMI、KCC等安规证书。对他们而言,测试点几乎没有帮助,只会增加工作量和设计复杂性。如果没有调试或检测的需求,研发部门可能会认为没必要添加这些测试点(TP)。

而工艺和品质控制部门更关注生产或量产时的良品率,确保交到客户手中的产品没有质量问题,这对企业至关重要。因此,他们认为产品设计应该遵循DFM(为制造而设计)和DFT(为测试而设计)的原则。

那么,是否所有的板子都需要添加测试点,以及如何添加测试点呢?首先,需要明确添加测试点的目的,而不是单纯为了添加而添加。测试点的主要用途包括:产品研发阶段方便调试、产品生产(量产)阶段用于ICT测试、产品返修时便于检测。针对不同的目的,添加测试点的策略也会有所不同。。
研发阶段,需要加哪些测试点?

一些工程师可能会说:“我在研发工作多年,从未专门添加过测试点。在调试时,我直接从元件的管脚或过孔测量信号。”先不说这些“点”在严格意义上是否算作测试点,但每次调试时都需要辨认芯片的管脚号,然后四处寻找可以用万用表测量的地方,这难道不很繁琐吗?特别是处理QFP、BGA等元件时,难度不是更大吗?

因此,合理地添加测试点是有其必要性的。当然,只需要为“关注”的信号添加测试点。以下是一些建议添加测试点的网络:

电源

当你拿到第一块原型PCB时,你会检测哪些信号呢?如果发现板子运行不正常,你会首先检查什么?是的,通常首先检查的是电源。因此,在所有电源网络上添加测试点是非常重要的。

重要的控制信号(Control Signal)

例如,电源管理芯片的PowerOn(即Power Enable/Power OK)信号。在这些关键的控制信号上添加测试点可以方便我们观察信号的时序,并协助分析板子运行异常的原因。

某些需要与外部接线的信号

以下图中的I2C信号为例,加入了两个测试点,这些测试点可以用来连接外部编程器,以便对右侧的芯片进行编程。

除此之外,其他的工程师认为重要的信号也应该添加测试点。

量产阶段的ICT是什么?

关于文章开头提出的问题,即是否所有批量生产的产品都需要满足“每个网络至少有一个测试点”的要求,这主要取决于生产的规模。对于年产量达到千千万万级别的产品,无疑需要借助ICT(在线电路测试)来快速检查PCBA的品质。而对于小规模量产的产品,许多公司会在FCT(功能性测试)阶段运行一些诊断工具或测试软件来判断产品的优劣。如果采用ICT,理论上每个网络的确应至少配备一个测试点。对于工业控制板、家电等PCB面积较大的产品,这个要求是合理的。但对于手机、电脑主板等线路密度较高的产品,实现100%测试点覆盖有时是不可行的,因此有时会采取“关键网络覆盖率100%”的策略。至于哪些网络属于关键网络,通常由研发部门决定。

下面来稍微深入了解一下ICT,这对于理解测试点的设计非常有益。

ICT理论知识

ICT是在线电路测试(In Circuit Test)的缩写,它的作用类似于一个自动化的万用表,能在生产线上快速且批量地对PCBA进行测试。ICT通过探针与PCB布局上的测试点接触,用于检测PCBA线路是否有短路或开路,以及元件的焊接质量,并能准确地指出问题所在。
除ICT之外,用于PCBA检测的还有AOI(自动光学检测)和FCT(功能测试)。AOI利用摄像头扫描PCB,并将扫描出的图像与标准图像进行比对,从而识别潜在的缺陷。AOI的优势在于它的灵活性和无需治具,但它无法检测到不可见的焊点,对于虚焊等问题也无法识别。而FCT则通过软件来验证PCBA的功能是否符合要求。相比ICT,FCT的主要缺点是它不能指出具体的缺陷位置。对于产量较大的产品,由于测试成本相对较低,通常会采用AOI、ICT和FCT作为连续的多个检测工位。

以下是一个ICT治具的参考图:


其中最贵的就是下图中的探针,表面镀金,一整套治具的价格十来万不在话下。


ICT的一个主要缺点是其对市场变化的响应速度较慢。这是因为为单个PCBA设计和调试一个专用的ICT针床夹具通常需要耗费一周甚至数周的时间,而这个夹具仅适用于特定的PCBA。为了提供更大的灵活性,市场上也出现了飞针测试仪。这种测试仪可以通过编程快速更换测试针,但其测试速度较慢。因此,尽管存在这些限制,ICT仍然是生产线上的主流检测方法。

测试点设计规范由于 ICT 探针的机械限制,测试点的设计也要遵循一定的规范。

测试点间距

探针的标准行业间距是0.100英寸/2.54毫米,这种尺寸的探针价格低且可靠性高。因此,对于这类探针,测试点之间的最小间距应该是0.100英寸/2.54毫米或更大。如果这个间距无法满足要求,就需要使用较小尺寸的标准探针,例如0.075英寸/1.91毫米(这也是一种常用尺寸)或者0.050英寸/1.27毫米,但需要注意的是,更小的尺寸意味着成本更高。

以下图示展示了一种测试点间距的设计方法:将格网间距直接设置为0.080英寸/2毫米,以便于测试点的统一布局。


测试点尺寸测试点的尺寸对于治具的可靠性来讲非常重要。有可能的话,TP 尺寸越大越好,最常见的 TP 尺寸是 ⌀1.2mm,最小的 TP 建议为 ⌀0.8mm,再小的话会使探针的成本极具上升。

一般建议企业定义几种规范的测试点,如 ⌀1mm,⌀1.2mm,⌀1.6mm 等。

测试点位置

在考虑测试点间距的同时,测试点的位置也需要遵循以下几个原则:
下图展示了一个设计良好的例子。在这个例子中,工程师没有直接选择蓝色箭头指向的焊点作为测试点,而是将测试点引出,从而提高了测试的灵活性和可靠性。。

测试点类型在选择测试点应该是通孔(through-hole)还是贴片(SMT)的问题上,原则上,通孔测试点通常具有优势。通孔测试点的最大优点是其结构使得探针定位更加准确,并且可以从板的两面进行测试。然而,通孔测试点的主要问题在于它会占据PCB上所有层的走线空间,这正是SMT测试点的主要优势所在。因此,在PCB尺寸不断缩小的当今趋势中,SMT测试点得到了更广泛的应用。

测试点的材质

测试点最常见的材料有以下两种:
建议使用化学镀金的方式,因为电导率更高,虽然价格略贵。
下图是镀金测试点的一个实例:


KiCad 中测试点的使用

与基准点(Fiducial)和安装孔(Mounting Hole)一样,KiCad 一如既往地为大家准备了各种样式、各种尺寸的测试点,只有你想不到的,没有你找不到的。直接在封装管理器中查找 ”Test Point”,就可以看到所有的测试点封装:

下图分别是一个贴片测试点、通孔测试点以及一个用于插入测试珠的封装:

标识测试点

在 KiCad 中,打开焊盘的属性,可以在制造属性中标识测试点:

测试点相关规则

目前的默认规则中没有与测试点相关的。如果您需要定义与测试点相关的规则,可以使用自定义规则(Custom Rule)。


比如以下语句就定义了测试点的孔径最小为 0.5mm,最大为 5mm:
  1. (version 7)
  2. (rule "测试点孔径"

  3.     (constraint hole_size (min 0.5mm)(max 5mm))
  4.     (condition "A.Pad_Type == 'Test Point'"))
复制代码

测试点报告

目前 KiCad 没有测试点报告来检查是否所有的网络都有测试点,或者测试点的数量等信息。有类似需求的小伙伴可以看一下以下项目:
https://github.com/Peboli/kicad_netlist_tp_parser

插件可以解析 KiCad 生成 xml 网表并输出简单的测试点报告:
  1. > python3 netlist_tp_parser.py part_net_relation.xml
  2. Component reference prefix to check: TP
  3. Processing, please wait ...

  4. ================= Summary ======================
  5.                   Total TestPoint : 6
  6.                        Total Nets : 8
  7.              Total connected Nets : 6
  8.                  Unconnected Nets : 2
  9.     Connected Nets with TestPoint : 5
  10. Connected Nets without TestPoint : 1
  11.                TestPoint coverage : 83.3%

  12. ====== Connected Nets without TestPoint ========
  13. Net-(J1-Pad4)

  14. ========= 1 TestPoint connected Nets ===========
  15. Net-(J1-Pad1) : TP1
  16. Net-(J1-Pad2) : TP2
  17. Net-(J1-Pad5) : TP4
  18. Net-(J1-Pad6) : TP5

  19. ===== More than 1 TestPoint connected Nets =====
  20. Net-(J1-Pad3) : TP3, TP6

  21. =============== Unconnected Nets ===============
  22. unconnected-(J3-Pad1)
  23. unconnected-(J3-Pad2)
复制代码

洋洋洒洒一大篇,终于接近尾声了。文中的大部分数据都是结合了自身经历和一些大企业的规范后整理出来的,希望对大家有用。
当然电子行业发展太快,很多数据也有可能过时,希望大家包涵。






欢迎光临 谷动谷力 (http://bbs.sunsili.com/) Powered by Discuz! X3.2