警惕!CAF效应导致PCB漏电
最近碰到一个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漏电的更多相关文章
- PCB布线经验
查看: 3645|回复: 11 [经验] PCB设计经验(1)——布局基本要领 [复制链接] ohahaha 927 TA的帖子 0 TA的资源 纯净的硅(中级) 发消息 加好友 电 ...
- PCB的封装尺寸
PCB封装主要分为贴片式与插件式 1)贴片元件封装说明发光二极管:颜色有红.黄.绿.蓝之分,亮度分普亮.高亮.超亮三个等级,常用的封装形式有三类:0805.1206.121 (常用封装为RB.1/. ...
- Cadence PCB层的概念
Slikscreen_Top :顶层丝印层 Assemly_Top :装配层,就是元器件含铜部分的实际大小,用来产生元器件的装配图.我自己感觉这一层如果对于贴片的元器件,如电容,就是两个贴片铜 ...
- PCB 钻孔补偿那点事
没有优秀的个人,只有优秀的团队,在团队共同的协作下,PCB CAM自动化[net处理]与[钻孔处理] 第一阶段开发项完成了,,后续工作可以转向PCB规则引擎开发了.这里说说PCB工程钻孔补偿的那点事, ...
- PCB SQL SERVER 数据库阻塞进程关系以思维导图方式呈现的实现方法
最近公司服务数据库同步机制常发生阻塞,时不时的导致PCB工程系统卡死现象,只有找到阻塞源头并处理掉,才以消除阻塞,但数据库中查看会话阻塞是通过二维表方式展示的父子会话进程ID的,是很难清楚的展示各会话 ...
- 避开PCB假八层结构的温柔陷阱---浅谈六层板的叠层
https://blog.csdn.net/qijitao/article/details/51505611 作者:王辉东 一博科技高速先生团队队员 在<PCB的筋骨皮>一文中,我们提 ...
- CodeReview Learning
目录 . 引言 . 代码检视的指导思想 . 代码检视的内容 . 回归测试 0. 引言 代码检视(Code Review)是指软件开发人员在完成代码设计.编写.调试后展开的个人或群体性的代码阅读过程,代 ...
- fMRI数据分析处理原理及方法(转载)
原文地址:http://www.cnblogs.com/minks/p/4889497.html 近年来,血氧水平依赖性磁共振脑功能成像(Blood oxygenation level-depende ...
- fMRI数据分析处理原理及方法
来源: 整理文件的时候翻到的,来源已经找不到了囧感觉写得还是不错,贴在这里保存. 近年来,血氧水平依赖性磁共振脑功能成像(Blood oxygenation level-dependent funct ...
随机推荐
- Apache配置URL重定向
Apache配置URL重定向 修改/etc/httpd/conf/httpd.conf文件的内容 <Directory "/var/www"> AllowOverrid ...
- python的数据类型之字符串(一)
字符串(str) 双引号或者单引号中的数据,就是字符串. 注意事项 1.反斜杠可以用来转义,使用r可以让反斜杠不发生转义. 2.字符串可以用+运算符连接在一起,用*运算符重复. 3.Python中的字 ...
- Spring Boot 打包成的可执行 jar ,为什么不能被其他项目依赖?
前两天被人问到这样一个问题: "松哥,为什么我的 Spring Boot 项目打包成的 jar ,被其他项目依赖之后,总是报找不到类的错误?" 大伙有这样的疑问,就是因为还没搞清楚 ...
- Appium+python自动化(十六)- ADB命令,知否知否,应是必知必会(超详解)
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态. adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或 ...
- MySql EF事务using不会自动 Rollback的bug
EF to MySql一般都是用using最后Commit,一直以为最后没Commit,当using调用Dispose会自动Rollback,没想到这儿有个坑,mysql有个bug并不会Rollbac ...
- python查询elasticsearch(Query DSL) 实例
import datetime import sys import getopt import hashlib from elasticsearch import Elasticsearch &quo ...
- Golang之mirco框架部分浅析
在实习中使用 micro 框架,但是挺多不懂的,看了部分源码搞懂了一些,还是有一些比较复杂没搞懂. 第一部分:初始化 service 并修改端口 main.go // waitgroup is a h ...
- Linux权限_用户_和用户组
Linux中用户UID就判断操作系统中用户的身份. Centos7.x: 0:超级管理员 1-999:系统用户(包含Linux中自带服务) 1000以上 普通用户 Centos6.x : Root ...
- 探究Hybrid-APP技术原理
探究Hybrid-APP技术原理 author: @TiffanysBear 背景 随着Web技术的发展和移动互联网的发展,Hybrid技术已经成为一种前端开发的主流技术方案.那什么是Hybrid A ...
- .NET多线程之Thread、Task、ThreadPool、Timer
下表为多线程操作常见对象: 对象 方法/属性 描述 用途 用法 性能 Thread(线程) Start 启动线程,启动后线程处于System.Threading.ThreadState.Running ...