最近碰到一个PCB漏电的问题,起因是一款低功耗产品,本来整机uA级别的电流,常温老化使用了一段时间后发现其功耗上升,个别样机功耗甚至达到了mA级别。仔细排除了元器件问题,最终发现了一个5V电压点,在产品休眠的状态下本该为0V,然而其竟然有1.8V左右的压降!耐心地切割PCB线路,惊讶地发现PCB上的两个毫无电气连接的过孔竟然可以测试到相互间几百欧姆的阻值。查看该设计原稿,两层板,过孔间距焊盘间距>6mil,孔壁间距>18mil,这样的设计在PCB行业中实属普通的钻孔工艺。洗去油墨,排除油墨或孔表层的杂质导电问题,实测过孔间阻值依然存在!百思不得其解一段时间后,才发现原来是“CAF效应”导致的漏电问题!

什么是CAF效应:

CAF,全称为导电性阳极丝(CAF:Conductive Anodic Filamentation), 指的是PCB内部铜离子从阳极(高电压)沿着玻纤丝间的微裂通道,向阴极(低电压)迁移过程中发生的铜与铜盐的漏电行为。

如下图片,对两个相邻的两个过孔进行纵向研磨,置于电子显微镜下放大100倍,板材呈黯淡颜色,亮金色部分则为铜,可以看到在两个过孔间,有铜点、铜丝存在。

CAF产生的机理:

1. 常规的FR4 PCB板材是由玻璃丝编织成玻璃布,然后涂环氧树脂半固化后制成。树脂与玻纤之间的附着力不足或含浸时胶性不良,两者之间容易出现间隙,加之在钻孔等机械加工过程中,由于切向拉力及纵向冲击力的作用对树脂粘合力的进一步破坏,可能造成玻纤束被拉松或分离而出现间隙。在高温高湿的环境下,环氧树脂与玻纤之间的附着力更加出现劣化,并促成玻纤表面硅烷偶联剂化学水解,沿着玻纤增强材料形成可供电子迁移的通路;

2. 基于上面的条件,此时距离较近的两个过孔若存在电势差,那么电势较高的阳极上的铜会被氧化成为铜离子,铜离子在电场的作用下向电势较低的阴极迁移,在迁移过程中,与板材的杂质离子或OH-结合,生成了不溶于水的导电盐,并沉积下来,由此两个绝缘孔之间的电气间距急剧下降,严重的甚至可以直接导通形成短路。

阳极:

Cu → Cu2++2e–

H2O →  H++OH-

阴极:

2H++2e– → H2

Cu2++2OH– → Cu(OH)2

Cu(OH)2 → CuO+H2O

CuO+H2O → Cu(OH)2 → Cu2++2OH–

Cu2++2e– → Cu

在还没有意识到CAF效应导致的不良之前,我对于相互绝缘的两个过孔间出现阻值的现象感到不可思议,后来经过资料查询,才发现许多同行也为这个问题困扰过,甚至CAF效应已经是PCB业内一个较为热门的可靠性问题之一

如何防止或减少CAF的发生?

1. 提高板材在抗CAF方面的能力。对于电路板基材工艺,可以从提高材料中离子纯度、使用低吸湿性树脂、玻璃布被树脂充分浸泡结合良好等方面进行提高。对于应用端的工程师,在板材选型时,可以考虑使用耐CAF板材。如下板材供应商生益的板材选型中,就有耐CAF的板材可供选型。

2. PCB的机械钻孔或镭射烧孔会产生高温,超过板材的Tg点时会融溶并形成残渣,这些残渣附着于孔壁会造成镀铜时接触不良,因此在镀铜前必须进行除渣作业,除渣作业中的浸泡处理会对通孔造成一定的侵蚀并可能带来渗铜问题,使后续的铜迁移现象更加容易;

3. PCB设计时,增加通孔间距,另外,由于CAF通道几乎沿着同一玻璃纤维束产生,因此,将相邻的通孔交叉发布有助于降低CAF的发生;

4. 对PCBA进行表面清洁处理,例如使用高压气枪进行灰尘清理,避免杂质残留导致不必要的杂质发生电解。另外,在PCBA表面涂覆三防漆,避免水汽的侵入,特别是在高温高湿的地理环境

对于这个CAF问题导致的漏电问题,从一开始的困扰到后面的豁然开朗,这其中有两点让我有了更深的体会:

1. 对于一个bug现象的存在,当自己感到不可思议时,也请保持一种客观的态度面对,因为当前现象与已有认知的相去甚远,很可能只是你的知识体系里有盲区而已。碰到CAF现象时,我向PCB产商抛出“相互绝缘的过孔间为什么会有阻值存在”的问题,产商也觉得不可思议,但对方基于“自己做了几十年的板子也没有客户反应过这个问题”的经验性思维,始终没能客观地面对这个问题的存在,在这个前提下,即使有再好的配合力度,所谓的验证也就只能停留在了自证自己材料、制程属于行业规范的层面上,但CAF对于目前PCB行业来说本来就是一个无法100%规避的问题。由此迫使我找第三方的厂家进行剖片分析,显而易见地看到孔间的铜后,该问题才有了不容反驳的定论;

2. 应用端的电子工程师,对电子器件的认知,除了能用、会用的能力之外,还要对其基础材料有所认知。如同每天都在和电容、电阻、电感等器件打交道,但对于这些器件的制作工艺、基础材料组成却是有很多人都不自知的,而这正是这些器件电气特性的根本所在。例如在不同工作频率特性下,一个电容为什么会有阻性、感性、容性的成分所在;又或者一个铝电解电容反接为什么会爆浆,在反接电压未知的情况下,一定会爆浆吗?关于这些问题,后续我会整理出来进行记录、分享~

本文参考文献传送门:

http://www.anytesting.com/news/543325.html

《PCB漏电流失效案例分析》

http://www.edadoc.com/cn/TechnICalArticle/Show.aspx?id=1239

《谈谈钻孔间距对产品可靠性的影响》

https://mp.ofweek.com/ee/a345673623826

《印制电路板CAF失效研究》

http://www.researchmfg.com/2014/12/caf/

《电路板内微短路现象》

https://www.researchmfg.com/2015/08/caf-cause-solution/

《CAF形成的原因及改善对策》

http://www.researchmfg.com/2016/06/3d-x-ray-ct/

《3D X-Ray CT非破坏性立体扫描分析PCBA不良》

==================================================================================================================================================================================================

 更多交流,可微信关注:

警惕!CAF效应导致PCB漏电的更多相关文章

  1. PCB布线经验

      查看: 3645|回复: 11    [经验] PCB设计经验(1)——布局基本要领 [复制链接]     ohahaha 927 TA的帖子 0 TA的资源 纯净的硅(中级) 发消息 加好友 电 ...

  2. PCB的封装尺寸

    PCB封装主要分为贴片式与插件式 1)贴片元件封装说明发光二极管:颜色有红.黄.绿.蓝之分,亮度分普亮.高亮.超亮三个等级,常用的封装形式有三类:0805.1206.121  (常用封装为RB.1/. ...

  3. Cadence PCB层的概念

    Slikscreen_Top  :顶层丝印层 Assemly_Top    :装配层,就是元器件含铜部分的实际大小,用来产生元器件的装配图.我自己感觉这一层如果对于贴片的元器件,如电容,就是两个贴片铜 ...

  4. PCB 钻孔补偿那点事

    没有优秀的个人,只有优秀的团队,在团队共同的协作下,PCB CAM自动化[net处理]与[钻孔处理] 第一阶段开发项完成了,,后续工作可以转向PCB规则引擎开发了.这里说说PCB工程钻孔补偿的那点事, ...

  5. PCB SQL SERVER 数据库阻塞进程关系以思维导图方式呈现的实现方法

    最近公司服务数据库同步机制常发生阻塞,时不时的导致PCB工程系统卡死现象,只有找到阻塞源头并处理掉,才以消除阻塞,但数据库中查看会话阻塞是通过二维表方式展示的父子会话进程ID的,是很难清楚的展示各会话 ...

  6. 避开PCB假八层结构的温柔陷阱---浅谈六层板的叠层

    https://blog.csdn.net/qijitao/article/details/51505611 作者:王辉东   一博科技高速先生团队队员 在<PCB的筋骨皮>一文中,我们提 ...

  7. CodeReview Learning

    目录 . 引言 . 代码检视的指导思想 . 代码检视的内容 . 回归测试 0. 引言 代码检视(Code Review)是指软件开发人员在完成代码设计.编写.调试后展开的个人或群体性的代码阅读过程,代 ...

  8. fMRI数据分析处理原理及方法(转载)

    原文地址:http://www.cnblogs.com/minks/p/4889497.html 近年来,血氧水平依赖性磁共振脑功能成像(Blood oxygenation level-depende ...

  9. fMRI数据分析处理原理及方法

    来源: 整理文件的时候翻到的,来源已经找不到了囧感觉写得还是不错,贴在这里保存. 近年来,血氧水平依赖性磁共振脑功能成像(Blood oxygenation level-dependent funct ...

随机推荐

  1. vuex中使用对象展开运算符

    使用场景 当需要进行vuex进行数据状态管理的时候,会使用到mapGetters,mapState,还有自身的计算属性的时候,这个时候就会用到这个了! 1.首先需要安装 npm install bab ...

  2. Visual Studio Code配置

    Visual Studio Code 从1.23.0开始VS Code就不再默认提供各语言版本, 而是改为使用插件的方式提供语言包. 在插件商店搜索Chinese (Simplified), 安装. ...

  3. 机器学习之使用Python完成逻辑回归

    一.任务基础 我们将建立一个逻辑回归模型来预测一个学生是否被大学录取.假设你是一个大学系的管理员,你想根据两次考试的结果来决定每个申请人的录取机会.你有以前的申请人的历史数据,你可以用它作为逻辑回归的 ...

  4. CDH CM元数据梳理,包括HIVE

      一.Schema SCM 表结构梳理(对应生产BAOFOO_SCM) AUDITS 登录信息.服务,角色重启.配置更改 PROCESSES 进程信息.这里面有很多信息.开放的web端口. HOST ...

  5. Codeforces 348B:Apple Tree(DFS+LCM+思维)

    http://codeforces.com/contest/348/problem/B 题意:给一棵树,每个叶子结点有w[i]个苹果,每个子树的苹果数量为该子树所有叶子结点苹果数量之和,要使得每个结点 ...

  6. 基数排序的可复用实现(C++11/14/17/20)

    基数排序,是对整数类型的一种排序方法,有MSD (most significant digit)和LSD (least significant digit)两种.MSD将每个数按照高位分为若干个桶(按 ...

  7. WeUI Picker组件 源代码分析

    前言 由于最近做的一个移动端项目需要使用到类似 WeUI Picker组件 的选择效果,  所以在这里来分析下 WeUI Picker 的实现逻辑.(weui.js项目地址) 之前也做过类似的组件, ...

  8. crontab 中curl命令无法正常执行

    这里所指curl无法执行Url情况是针对带参数的链接,方法体中无法获取参数的值. 比如: */7 * * * * curl http://localhost:8088/backening/sysOrd ...

  9. Spring MVC源码(二) ----- DispatcherServlet 请求处理流程 面试必问

    前端控制器 前端控制器,即所谓的Front Controller,体现的是设计模式中的前端控制器模式.前端控制器处理所有从用户过来的请求.所有用户的请求都要通过前端控制器.SpringMVC框架和其他 ...

  10. kuangbin专题专题四 Heavy Transportation POJ - 1797

    题目链接:https://vjudge.net/problem/POJ-1797 思路:请参考我列出的另一个题目,和这个题目要求的值相反,另一个清楚后,这个写的解释就明白了. 另一个类似题目的博客:h ...