气体传感器模块的失效分析及解决对策*

2022-01-08 11:42孙运涛司耸涛
电子与封装 2021年12期
关键词:死机板卡端口

王 彬,孙运涛,司耸涛

(中科芯集成电路有限公司,江苏无锡 214072)

1 引言

家居环境中,甲醛、VOC、CO 等是危害人体健康的主要有害气体[1-2],因此逐渐得到人们的关注。随着智能家居的兴起,人们对家居环境中空气质量的监测方法也日益多样,但这些监测方法始终离不开气体传感器模块。气体传感器作为家居环境中有害气体的采集者[3],可以对家居环境的空气质量进行实时检测,为空气净化器的工作提供参考数据。气体传感器作为空气净化器中的重要部分,其正常稳定的工作对整个系统来说是非常重要的。

某款气体传感器模块采用本单位生产的CKS32F030F4P6 作为主控芯片,该模块在批量生产过程中出现故障,表现为开启激光管的过程中传感器模块出现死机现象,程序无法继续执行,无法采集周围环境中的有害气体浓度,并且产品不良率为50%。由于产品不良率较高,为了避免更大的经济损失,迅速锁定失效原因[4]、提出解决方案就显得尤为重要。本文研究了该气体传感器模块的失效原因和失效机理,从硬件和软件两个方面给出了解决方案,有效地解决了该产品的失效问题,避免了更大的经济损失。

2 失效原因分析

通过对大量不良品进行测试,发现产品死机现象与传感器模块中激光管的开启有关。将激光管负载去掉,传感器模块不会出现死机现象;带上激光管负载,传感器模块就会死机。由于激光管的开启由主控芯片直接控制,因此本研究将从激光管的开启过程对主控芯片带来的影响进行分析。

2.1 软件方面失效分析

在尽可能不改动板卡硬件方面的前提下,首先从软件方面对该问题进行分析。由于系统是按照指令一步步执行,为了找出系统死机的位置,采用Keil 软件对程序指令进行仿真,仿真结果如图1 所示。

图1 Kile 软件的仿真结果

系统程序在激光管开启后会立即执行Flash 读写操作。由图1 中的仿真结果可以看出,程序运行到黄色语句之后进入HardFault 状态,通过分析得出,R0 寄存器的准确值应该是0x2000006C,但是在开启激光管之后,Flash 读取到R0 的值为0x2004006C。在0x800198c 处程序执行“LDR R0[R0,#0x0]”,如果R0值为0x2004006C,则访问非法地址,程序跑飞,表现为系统死机的现象。为了找到导致系统死机的根本原因,还需对板卡硬件部分进行分析。

2.2 传感器板卡硬件方面失效分析

对板卡的原理图和PCB 板进行摸排,发现主控芯片CKS32F030F4P6 的电源端口VDD 并没有设计退耦电容,仅在板卡上的低压差线性稳压器的输出端设计了稳压电容,板卡主控芯片原理图和主控芯片的位置如图2 所示。

图2 板卡主控芯片原理图和主控芯片的位置

从图2 可知,在主控芯片的VDD 管脚周围未发现退耦电容,针对这一问题采用电流钳对激光管开启过程中的电流进行测试,在测试过程中发现激光管开启过程中的电流峰值约为6.5 A,激光管开启过程中的电压与电流波形如图3 所示,其中上方波形为激光管电压波形,下方波形为激光管开启过程中的电流波形。

图3 激光管开启时的电压与电流波形

板卡中的电源芯片采用的是低压差线性稳压器TLV70233,封装为SOT23-5,该电源芯片的最大输出电流为300 mA,输出限流最大值为860 mA,可见激光管开启过程中的电流远远超过板卡中电源芯片的驱动能力,TLV70233 主要性能参数[5]如表1 所示。

表1 TLV70233 主要性能参数[5]

经分析,在正常的工作状态下,激光管的工作电流应由板卡上的电源芯片TLV70233 提供,但当激光管的工作电流超出电源芯片的驱动能力,电源芯片内部的限流开关将被触发,此时激光管的工作电流将从两部分获取,一部分是从TLV70233 输出端的电容获取,另一部分从CKS32F030F4P6 内部电源模块输入电容获取,此时VDD 端口会出现反向电流,即电流的倒灌现象。此现象势必会对芯片内部的工作造成很大影响。通过测试CKS32F030F4P6 的VDD 端口的电压和电流波形也证实了以上观点,在激光管开启时VDD端口确实会出现反向电流。激光管开启时CKS32F030F4P6 的VDD 端口的电压和电流波形如图4 所示,其中上方波形为VDD 端口的电压波形,下方波形为VDD 端口的电流波形。

图4 VDD 端口的电压和电流波形

整个板卡的主要模块工作示意图如图5 所示,在图中标识出了激光管开启过程中的电流流向,一部分来自板卡上的电源芯片输出端电容,另一部分来自芯片内部电源模块输入端电容。

图5 板卡中主要模块工作示意

为了进一步分析激光管开启过程中的大电流对主控芯片CKS32F030F4P6 造成的影响,从众多失效芯片中随机抽选3 颗进行开封处理,将CKS32F030F4P6芯片内部电源模块的输入输出端的电压引出,即VCORE,该电压为芯片内部的Flash 区域进行供电,开封处理后的芯片内部如图6 所示。利用探针测试3 颗开封处理好的芯片内部的VCORE。用示波器同时抓取芯片VDD 端口电压与VCORE之间的变化关系,波形如图7所示。

图6 开封后的芯片内部

图7 VDD 端口电压与VCORE

从图7 可以看出,当VDD 端口电压被激光管拉低时,内部的VCORE将出现过冲,过冲电压约为1.95 V,此电压超出Flash 正常工作电压1.5 V(±10%)。开封处理的3 颗芯片的VCORE基本一致,均超过1.95 V,因此可以初步判定激光管开启时的大电流造成主控芯片的VCORE过高,超出内部Flash 区域正常工作范围,导致模块死机。

2.3 失效分析总结

激光管开启过程中的电流峰值高达6.5 A,该电流值远远超出板卡上的电源芯片的供电能力,此时电源芯片会触发LDO 内部的限流开关。激光管开启过程中的电流将来自板卡上的电源芯片输出端电容和主控芯片内部电源模块输入端电容(见图5)。从CKS32F030F4P6 内部抽取的电流造成VCORE过冲至1.95~2.1 V,此电压下Flash 不能正常工作。程序在进行Flash 读取R0 寄存器时出现错误,访问非法地址导致程序进入HardFault,表现为死机现象。

3 设计缺陷

通过对板卡硬件设计的分析,可以看出该设计存在缺陷。首先混淆了稳压电容和退耦电容的作用,主控芯片的电源端口并没有设计退耦电容,仅在板卡上的低压差线性稳压器的输出端设计了稳压电容。退耦电容的作用主要有两个:(1)消除电路之间的寄生电容,换言之就是防止前后电路电流大小变化时,在供电电路中所形成的电流波动对电路的正常工作产生影响;(2)作为储能器件[6]。而稳压电容主要是用来稳定输出端电压,减小输出电压的纹波[7]。其次该板卡上的低压差线性稳压器输出端的稳压电容距离主控芯片的电源端口较远(3 cm),而且中间没有任何滤波电容和退耦电容,到达芯片电源端口的电压质量会受到很大影响。

4 失效解决方案

第2 节从硬件和软件两个方面对气体传感器模块的失效原因进行了详细的分析,下面将从硬件和软件两个方面给出相应的解决方案。

4.1 软件解决方案

由于传感器模块已进入量产阶段,所以为了将经济损失降到最低,本文优先从软件方面着手解决该问题。为了杜绝VCORE超出正常工作范围带来的死机现象,本研究将开启激光管指令的运行方式由Flash 改为SRAM。在SRAM 中运行延时程序,延时约40 μs,延时40 μs 之后程序在Flash 中运行。选定延时40 μs 的理由是:经过大量测试,VCORE回归稳定的时间为6 μs 左右,同时程序是在最大主频48 MHz 下运行,故即使降频运行,该延时也同样可以有效避开VCORE不稳定的问题。该方案旨在避开激光管开启过程中带来的VCORE不稳定造成的Flash 读写错误的时间,待VCORE稳定之后再从Flash 中运行,这样就避免了VCORE不稳定对Flash 读写寄存器带来的影响。具体程序修改如下:

为了验证该方案,在失效芯片中随机取100 颗并下载修改后的程序,对100 颗失效产品的测试结果如表2 所示。由表2 中的数据可知,该方案使得产品良率提高到了100%。

表2 修改程序后100 颗失效芯片的复测结果

从第3 节的分析可知,产品失效的根本原因是板卡硬件方面存在设计缺陷,若要从根本上解决该问题,必须更改板卡的硬件设计。由于产品已经进入量产阶段,并有部分产品已售出,所以临时更改板卡的硬件设计并不能及时降损。为了将经济损失最小化,本文优先从软件方面着手解决该问题,尽管该方案并未从根本上解决VCORE过冲问题,但经过大量测试可以看出,该方案及时有效地解决了产品失效问题,将经济损失最小化。

4.2 硬件解决方案

为了从根本上解决问题,提出在主控芯片的电源管脚附近添加一个1 μF 的退耦电容,更改硬件后的原理如图8 所示。当激光管开启的时候是直接从添加的这颗1 μF 电容抽取电流,而不是从主控芯片CKS32F030F4P6 的内部电源模块输入端电容抽取电流,这样就减少甚至避免了内部电源模块受到影响,确保VCORE的稳定性。此时当激光管开启时电流的流向如图9 所示。

图8 更改硬件方案后的原理

图9 更改硬件方案后的电流流向

同样的,为了验证该方案,在失效芯片中随机取100 颗放在添加1 μF 电容后的板卡上,分别进行测试,并且记录激光管开启时每一个芯片内部的VCORE。该方案的验证标准首先是保证传感器模块不再出现死机现象,其次是保证VCORE满足1.5 V(±10%),即VCORE在1.35~1.65 V 的范围内,对100 颗失效芯片的测试结果如表3 所示。

表3 添加退耦电容后100 颗失效芯片的复测结果

由表3 中的数据可以看出,在CKS32F030F4P6 电源管脚附近添加1 μF 电容的方案使产品良率提高到了100%,并且VCORE在正常范围内的概率也达到了99%,极少数的VCORE在1.69 V 左右,较之前的1.95 V有很大改善。为了确保方案的严谨性,在常温、-20 ℃、60 ℃的环境下均进行了测试,证明板卡均能正常工作。

5 结论

经过对失效产品的测试和分析,气体传感器模块出现死机现象的原因是激光管开启时电流过大,远远超过板卡电源芯片供电能力,此时激光管开启时所需电流一部分从CKS32F030F4P6 内部被拉出,导致内部电源模块输出电压VCORE过冲至1.95~2.1 V,此电压下Flash 不能正常工作。程序在进行Flash 读写操作时发生错误,访问非法地址导致程序进入HardFault。针对该原因,首先提出将激光管启动时程序运行方式由Flash 改为SRAM,延时40 μs 待VCORE稳定之后从Flash 运行,降低了VCORE不稳定带来的影响。为了从根本上解决问题,提出在CKS32F030F4P6 的电源管脚附近添加1 μF 电容,该方法减少了内部电源模块受到的影响,确保VCORE的稳定性,将产品良率提高到100%。本研究提出的方案有效解决了产品失效问题。

为了提供更多的解决方案,未来将对该问题做进一步研究,把激光管的电源与主控芯片CKS32F030F4P6的供电电源做物理隔离,同其他几个方案做对比,找到最佳的解决方案。

猜你喜欢
死机板卡端口
提醒
一种端口故障的解决方案
基于PCI9054的多总线通信板卡的研制
基于FPGA的多通道模拟量采集/输出PCI板卡的研制
端口阻塞与优先级
脸死机了
一种基于光纤数据传输的多板卡软件程序烧写技术
8端口IO-Link参考设计套件加快开发速度
卫星三端口DC-DC变换器技术综述
一种通用模拟量及开关量信号采集板卡的设计