|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
如果你供职于外企,有没有遇到过这种情况:板子已经设计完了,QA/QC却强势要求加测试点,达到Testpoint Coverage 100%的要求,否则不给pilot run。: }! E' z6 ~0 t2 B5 I" {
: u& A) a4 k; Z+ @) _$ n
你很委屈,板子走线已经密密麻麻了,哪儿去加测试点啊...一边拿起电话和QA争论:这是高速信号,加了测试点相当于加了根天线,对信号有影响,你能负责吗?(心里很愤怒,QA真是啥都不懂啊)
6 I& V6 H7 I9 T8 `+ n4 f9 A6 {. ~3 Z4 ~1 b, _- m9 T
1 P4 [5 X/ N0 R1 V9 |
7 Q8 P- p# Q j( p6 x! e$ F
如果你供职于国企(国内企业),有没有遇到过这种情况:板子已经设计完了,才想起工艺部门“每个网络至少有一个测试点”的要求,否则不给试产。你很无奈,这么简单的板子,老子已经测试很多遍了,肯定不会有问题...一边拿起电话和工艺部门争论:产品下个月要投产,现在改来不及,耽误了工期你能负责吗?(心里在抱怨,做工艺的真是完全不考虑研发的感受)% u. Z R. p9 h% l8 \- ?
4 e, _% p, ~! D
8 z, k- ~1 g* e
5 j( O& A/ Y$ ?究竟问题在哪儿?其实谁都没有错,考虑问题的角度(职位)不同而已。
! S! k8 ?! q2 { G F3 m
$ u; M# ]" W/ o8 s研发更多地关注产品本身的性能,还要通过thermal、reliability、S&V、EMI/EMC等一系列测试,拿到FCC、CE、BSMI、KCC等一系列安规证书。而测试点对于这些几乎没有帮助,当然最重要的是增加了研发工作量和设计复杂性。因此对于研发来说,如果没有调试、检测的需求,根本没必要加这些TP。
7 Q" ]7 I5 \* w z% R% M$ S2 W! p( u! ?
# R+ `' v4 [1 v1 |而工艺/品质更多地关注生产或量产时的良率,确保ship到客户手里的产品没有质量问题(这对企业来说非常重要),所以一定需要完整的流程和机制去检测产品潜在的不良,ICT、FCT、OQA都是其中的一部分。对于工艺/质量管控部门来说,产品设计就应该是DFM(Design for Manufacture),DFT(Design for Testing)的。# t# T- ]0 L4 Q9 Z+ v
+ d& s1 ~0 i+ [/ S+ J. ]
# K: K% A Y! |* B- R0 i
' M: b9 d- K8 a# p. h! U7 Q说了那么多,到底是否所有的板子都需要加测试点,怎么加呢?
+ S- [5 [6 Q" A: ^. Q5 r' h! B
: _7 P1 b* u+ ], e要回答这个问题,首先要明确加测试点目的,不能为了加测试点而加测试点。( F9 q: I, g. U7 b
3 P- x# D# T2 }测试点的用途主要有以下三类:4 O% C0 v8 ] G2 }
( A0 s* X9 D2 [# j- {, p1 n
产品研发阶段,便于调试
Q$ Y. U' E/ D! }8 Z+ c: n
, G6 B' w: Y. e. e产品生产(量产)阶段,用于ICT测试! N( ?& o7 j) f4 _6 Y( _
9 f# d5 m m$ x7 X! R! i: ?5 F6 T产品返修时,便于检测' \7 v' c' r! k" \0 w7 ]& _: N
' w8 Z( ?$ i8 }3 q5 v不同目的加测试点的策略是不同的。* I7 @0 I2 u- X5 x4 E
3 w) a9 Q/ T4 H研发阶段,需要加哪些测试点?+ R$ y. \5 N9 Z- V) |9 ]8 B2 H
; i9 d' o( s" l5 c$ K& X* @3 b可能会有工程师说:我干了研发那么多年,还从来没有添加过测试点,调试的时候,直接从器件管脚或者过孔处测信号。先不论这些“点”严格意义上来说本来也属于测试点,每次调试的时候,都要去数芯片上的管脚号,然后到处去找万用表可以“下针”的位置,是不是很麻烦?碰到QFP、BGA的器件是不是更麻烦?
9 K8 R: l- X$ K; D; `4 }' \( j
7 g$ d, z& N: Y因此合理的添加测试点还是有必要的,当然只需要给“感兴趣”的信号添加测试点。以下是推荐的需要添加测试点的网络:- d1 y# U, C+ b
- {, s* s2 ]$ I0 n6 D电源5 a$ b- g' c! i+ o8 W, X
" q. Y4 H: k4 w, [- i! n% Y如果你收到第一块prototype的PCB,你会测什么信号?如果板子工作不正常,你会先检查什么?没错,绝对是电源,给所有的电源网络都加上测试点很有必要。) ?. a& a6 a3 L, S) ~: r
2 h8 Q. ~* T/ o- K重要的控制信号(Control Signal)
' z5 c6 `! s K& P8 M
, ?3 _3 C* ]; T# m8 h( f比如说,电源管理芯片的PowerOn(Power Enable/Power OK)的信号。给重要的控制信号加测试点,便于我们观察信号的时序,帮助我们分析板子不正常工作的原因。
6 Y+ I# {$ o! a& _ }! m2 o/ i, m; B
某些需要与外部接线的信号
" L" ^% t: y' s+ R) T6 W" B% p i' [9 ]* n3 |& s9 m
比方说下图中的I2C信号,添加了两个测试点,可以用于与外部编程器相连,给右侧的芯片进行编程。
" S: O9 L1 T7 h
8 x( c) ]0 q d1 ~除此之外,其他的工程师认为重要的信号也应该添加测试点。3 }! w. |# T% j! ~' Q6 q% r
! b; q0 J; v: e5 i; n# j! y量产阶段的ICT是什么?
- ~% K" Y. Z. C0 g) k0 a& J
: S) R& Q) g7 j/ m% S1 m回到本文开头的那个问题,是不是所有的产品量产时都需要满足每个网络至少有一个测试点的要求?这主要还是取决于量产的规模,如果年产量达到kk级,那毫无疑问需要通过ICT快速地检查PCBA的品质。如果量产的规模较小,很多公司会通过FCT阶段跑一些Diagnostic tool或测评软件来判断产品的好坏。如果选择了ICT,理论上每个网络确实至少应该有一个测试点。对于工控板、白电等PCB面积相对富裕的产品,这个要求很合理。但对于手机、电脑主板等走线密度较大的产品,有时100%是不可能实现的,因此才会变通出"Critical Net覆盖率100%"的说法,至于哪些网络是critical的,那还不是研发说了算:P& N% x F- M9 g$ K6 r
6 K1 v D# s9 A" l这里花些时间说说ICT,这个对于理解测试点如何设计很有帮助。0 M% ~1 m R7 I. @! u. s$ y
/ {4 F% @9 G0 V9 W( N7 w/ I' mICT理论知识8 u2 B4 D" p g; u7 d E
! i: d% L# m7 s" @) K* aICT是In Circuit Test的简称,其功能类似于一块万用表,在产线上可以快速、批量地对PCBA进行测试。ICT测试靠探针接触PCB Layout时的测试点,来检测PCBA线路的短路、开路以及器件的焊接情况,并将短路、开路的点准确告诉用户。3 _1 _; J) Q. T, g3 @# ?+ R
# d* o7 u7 Q; h- Y# ]
和ICT同样用于PCBA检测的还有AOI(Automatic Optical Inspection)以及FCT(Function Test)。AOI是光学检测,通过摄像头将扫描出的图像,经过处理,与合格的图像进行对比,给出潜在的缺陷。AOI与ICT相比,优势是比较灵活、不需要治具,但对不可见的焊点无能为力,对于焊点虚焊等情况也无法检测。FCT是功能检测,通过软件来判断PCBA功能是否符合要求,这也是大部分企业采用的方式,相比ICT,它的最大缺点在于无法给出缺陷的具体位置。对于一些产量比较大的产品,测试成本相对可以忽略,通常会将AOI、ICT、FCT做为多个工未依次进行。5 K$ N2 i3 Z: a" \
0 b7 p: {. }; V* f, `2 ]8 E
下图是ICT治具的一个参考图:
. O% p8 C1 b0 l6 |/ n1 R& {9 ^) @
# b& ?$ \8 x8 G! A* s其中最贵的就是下图中的探针,表面镀金,一整套治具的价格十来万不在话下。8 H; O6 j; [9 T/ c; I6 F
5 c& P% q! p' FICT也有个致命的缺点,即市场反应速度慢,因为为一块PCBA制作和调试ICT针床夹具,往往需要花费1周甚至几周时间,并且只能用于这块PCBA。因此现在市面上也有飞针测试仪,相对ICT更灵活,可以编程实现飞针的快速切换,但缺点是测试速度慢。所以ICT现在仍是产线上的主流检测方式。
% i9 w4 S, d. k& |8 E* I9 X2 d" X& t- h" m0 d
' x1 J/ m* @' V( t* I% E- W
测试点设计规范; @% T8 i' s- d* F( ]
1 w- j& |3 k: a' K g
由于ICT的探针的机械限制,测试点的设计也要遵循一定的规范。
. ]5 q: ~' b- c6 J( Y/ B9 a, n
+ b |5 R/ e; e测试点间距
9 h4 o) B) g' A7 o4 c8 |- a) v* r# F4 z, U' g! B, p
探针的行业规范为0.100''/2.54mm(价格最低,可靠性高),因此对于这类探针,测试点之间的间距至少为0.100‘’/2.54mm或者更大。如果满足不了这个要求,就需要使用更小的标准探针,如0.075‘’/1.91mm(这种探针也很常用)或0.050'/1.27mm,当然更小的尺寸意味着更高的价格。
! I( L: l0 | A+ a$ X
# F2 w+ h; g0 `7 f5 q下图是一种测试点间距的设计方法,直接将格点设为0.080‘’/2mm,方便测试点的统一摆放
* P4 @: b6 N8 K' `2 t- V( Q) o% @' ~5 y4 W Y! }1 m
测试点尺寸
. Y2 i6 p1 s. v5 u5 N
R' k; B$ Q& Z测试点的尺寸对于治具额可靠性来讲非常重要。有可能的话,TP尺寸越大越好,最常见的TP尺寸是⌀1.2mm,最小的TP建议为⌀0.8mm,再小的话会使探针的成本极具上升。
7 P- T7 k O% }
6 q2 V9 z5 b+ ^% M一般建议企业定义几种规范的测试点,如⌀1mm,⌀1.2mm,⌀1.6mm等。
9 ~) w5 B5 Z- T- l2 `" o9 _+ Y
4 H. `3 c9 \" n0 i4 ?; X* g0 I+ Z' T8 d) L
测试点位置0 M' {- n, g: q. x# U+ F
9 o& L! P* B/ t3 }: g除了测试点间的间距要求外,测试点的位置还需遵循以下规则:
& G- l$ V7 y* {$ ~+ r! \, a) a; e
* A( @) U6 X+ \* ]测试点尽可能散开摆放,尽量不要摆放在一个很小的区域内,因为这样探针在接触TP时可能造成PCB弯曲。' p p0 e- R6 P- s1 {$ W" y3 q2 L# [
0 A Y; e3 H4 z
测试点尽可能原理板边,比如至少距离板边5mm! @4 s# L' b, s) U3 R
h/ W" l/ V( }$ s测试点原理定位孔,建议中心距至少4mm! \$ E& _) D' z1 k7 o! ^/ L4 w1 M# ^
) @: E# O/ M, c) _, O( a" t0 W0 F测试点远离较高的器件,避免干涉6 L" m: S9 q) j2 l
% ~1 w2 B5 y& T$ L/ b3 t
有可能的话,所有的测试尽量放在一个面上。如果顶层和底层都摆放测试点,意味着需要制作双面的治具或者两套治具。7 b( E7 e& ?. U5 i, C
. G, _: d! L- F0 q8 r9 R: v1 X
下图是一个设计比较好的样例,工程师并没有把蓝色箭头所指的焊盘锡点做为测试点,而是将测试点引出,提高了测试的灵活性和可靠性。
) Q8 f0 T8 {4 n& o
: b# o/ B6 q7 g, a0 L测试点类型7 B3 U3 T1 G' ~6 {. X. h! e
7 g0 y2 J+ f0 \! M/ e- Y) r
测试点应该被设计成通孔(through-hole)的还是贴片(SMT)的?
7 }/ ^2 H9 |8 j: G& ^2 a6 o$ \% J' K' [+ ^1 {- G, I7 J
原则上来说,通孔的TP比贴片的TP更有优势。通孔测试点最大的好处在于通孔本身使得探针的中心定位更准确,其次两面都可以下针。但通孔测试点最大的问题在于占用;额PCB所有层的走线空间,这也是SMT测试点最大的优势所在。因此在当今PCB尺寸越来越小的趋势中,SMT测试点被更广泛的应用。) r4 I1 X$ e$ @! g8 }) [: @
' Z" I$ ?0 Q2 ~5 ^. ^, R; Y
7 t3 g- d- D% K n$ x, x" x
测试点的材质
9 B& `7 q0 V* f6 M- I5 u* y# B2 x& S# d
测试点最常见的材料有以下两种:' j4 Y! Z" t! p2 x( r- M6 |
' ^4 g0 z/ }) q
ENIG(Electroless Nickel/Immersion Gold),俗称化学镀金
% i/ Q* Y+ ]7 d7 d
) M" @0 \' F; `) I" [HASL(Hot Air Solder Level),俗称喷锡3 @# s7 K# c' X& \0 U8 R
9 w- \* n( j2 o1 [: y建议使用化学镀金的方式,因为电导率更高,虽然价格略贵。9 k0 K3 F0 \# v7 e
1 U, A G% H" F0 t8 T# ~9 |$ d, S2 @下图是镀金测试点的一个实例:
5 y, X4 \2 Y4 ^! M, n
' t! [1 m$ Y9 C2 @' A; y6 e
7 a6 Y4 W9 x+ f- G9 L- g4 |altium中测试点的使用% i: F7 U" s1 W( E+ W
4 u/ _1 t! Z* R- w! X
AD对测试点的支持并不怎么好,只需要记住以下几点即可:( j, h! m+ Q# o$ `5 a
- i2 [2 T, L( X8 ]
标识测试点
* u$ D1 ^* Q* w
2 Y2 |' @7 U2 f在AD中,双击需要做为测试点的焊盘或过孔,在左下的属性中勾选,以此来定义测试点:6 F' p3 H" }( G; f% m% R; F
# B; n6 W0 Z6 C* F6 {4 N
后续标记过的测试点可以生成报告。
2 y0 h4 w( v- e+ F( S" P
! o2 O' C4 B7 W& d测试点相关规则6 A* u0 w0 f. R" D: v6 R g9 h P) e( l
7 i$ \$ s0 n# w! h' x比较重要的有以下两种规则:
; M# r: Z2 }8 x) c0 Z* v) J+ |
& F" M, U/ C' O* P! F4 z. r第一个是样式规则,可以在规则中定义测试点的尺寸、间距、位置等。其中间距规则允许定义TP到器件、TP到板边、TP到焊盘或过孔的距离,非常实用(老的AD版本好像没有)。 c' @, R& }0 Q2 ]( J
& W! q2 C& O$ T第二个是使用规则,可以定义是否每个网络都需要一个测试点。运行DRC后,没有添加测试点的网络都会警告提示。
2 d3 Z3 |% V* p. ~( e. F% v6 E: ^3 |
测试点管理器(Testpoint Manager)
! e- N; D% N$ x, K% h8 x# t3 p( z4 W" Q2 r# T' c7 F! r9 `/ U; ~
说实话这个功能非常鸡肋,除了能给已经存在的Pad/Via添加一个测试点的属性外,啥都做不了。而且添加属性还需要设置格点规则,不容易成功。这里就一笔带过了。
- e2 j% i: L2 Z
6 a6 G) M0 M2 r
! M3 D; p+ f1 G0 i1 Q$ l- ~& B8 T |
|