王 彬,孫運濤,司聳濤
(中科芯集成電路有限公司,江蘇無錫 214072)
家居環(huán)境中,甲醛、VOC、CO 等是危害人體健康的主要有害氣體[1-2],因此逐漸得到人們的關注。隨著智能家居的興起,人們對家居環(huán)境中空氣質量的監(jiān)測方法也日益多樣,但這些監(jiān)測方法始終離不開氣體傳感器模塊。氣體傳感器作為家居環(huán)境中有害氣體的采集者[3],可以對家居環(huán)境的空氣質量進行實時檢測,為空氣凈化器的工作提供參考數據。氣體傳感器作為空氣凈化器中的重要部分,其正常穩(wěn)定的工作對整個系統來說是非常重要的。
某款氣體傳感器模塊采用本單位生產的CKS32F030F4P6 作為主控芯片,該模塊在批量生產過程中出現故障,表現為開啟激光管的過程中傳感器模塊出現死機現象,程序無法繼續(xù)執(zhí)行,無法采集周圍環(huán)境中的有害氣體濃度,并且產品不良率為50%。由于產品不良率較高,為了避免更大的經濟損失,迅速鎖定失效原因[4]、提出解決方案就顯得尤為重要。本文研究了該氣體傳感器模塊的失效原因和失效機理,從硬件和軟件兩個方面給出了解決方案,有效地解決了該產品的失效問題,避免了更大的經濟損失。
通過對大量不良品進行測試,發(fā)現產品死機現象與傳感器模塊中激光管的開啟有關。將激光管負載去掉,傳感器模塊不會出現死機現象;帶上激光管負載,傳感器模塊就會死機。由于激光管的開啟由主控芯片直接控制,因此本研究將從激光管的開啟過程對主控芯片帶來的影響進行分析。
在盡可能不改動板卡硬件方面的前提下,首先從軟件方面對該問題進行分析。由于系統是按照指令一步步執(zhí)行,為了找出系統死機的位置,采用Keil 軟件對程序指令進行仿真,仿真結果如圖1 所示。
圖1 Kile 軟件的仿真結果
系統程序在激光管開啟后會立即執(zhí)行Flash 讀寫操作。由圖1 中的仿真結果可以看出,程序運行到黃色語句之后進入HardFault 狀態(tài),通過分析得出,R0 寄存器的準確值應該是0x2000006C,但是在開啟激光管之后,Flash 讀取到R0 的值為0x2004006C。在0x800198c 處程序執(zhí)行“LDR R0[R0,#0x0]”,如果R0值為0x2004006C,則訪問非法地址,程序跑飛,表現為系統死機的現象。為了找到導致系統死機的根本原因,還需對板卡硬件部分進行分析。
對板卡的原理圖和PCB 板進行摸排,發(fā)現主控芯片CKS32F030F4P6 的電源端口VDD 并沒有設計退耦電容,僅在板卡上的低壓差線性穩(wěn)壓器的輸出端設計了穩(wěn)壓電容,板卡主控芯片原理圖和主控芯片的位置如圖2 所示。
圖2 板卡主控芯片原理圖和主控芯片的位置
從圖2 可知,在主控芯片的VDD 管腳周圍未發(fā)現退耦電容,針對這一問題采用電流鉗對激光管開啟過程中的電流進行測試,在測試過程中發(fā)現激光管開啟過程中的電流峰值約為6.5 A,激光管開啟過程中的電壓與電流波形如圖3 所示,其中上方波形為激光管電壓波形,下方波形為激光管開啟過程中的電流波形。
圖3 激光管開啟時的電壓與電流波形
板卡中的電源芯片采用的是低壓差線性穩(wěn)壓器TLV70233,封裝為SOT23-5,該電源芯片的最大輸出電流為300 mA,輸出限流最大值為860 mA,可見激光管開啟過程中的電流遠遠超過板卡中電源芯片的驅動能力,TLV70233 主要性能參數[5]如表1 所示。
表1 TLV70233 主要性能參數[5]
經分析,在正常的工作狀態(tài)下,激光管的工作電流應由板卡上的電源芯片TLV70233 提供,但當激光管的工作電流超出電源芯片的驅動能力,電源芯片內部的限流開關將被觸發(fā),此時激光管的工作電流將從兩部分獲取,一部分是從TLV70233 輸出端的電容獲取,另一部分從CKS32F030F4P6 內部電源模塊輸入電容獲取,此時VDD 端口會出現反向電流,即電流的倒灌現象。此現象勢必會對芯片內部的工作造成很大影響。通過測試CKS32F030F4P6 的VDD 端口的電壓和電流波形也證實了以上觀點,在激光管開啟時VDD端口確實會出現反向電流。激光管開啟時CKS32F030F4P6 的VDD 端口的電壓和電流波形如圖4 所示,其中上方波形為VDD 端口的電壓波形,下方波形為VDD 端口的電流波形。
圖4 VDD 端口的電壓和電流波形
整個板卡的主要模塊工作示意圖如圖5 所示,在圖中標識出了激光管開啟過程中的電流流向,一部分來自板卡上的電源芯片輸出端電容,另一部分來自芯片內部電源模塊輸入端電容。
圖5 板卡中主要模塊工作示意
為了進一步分析激光管開啟過程中的大電流對主控芯片CKS32F030F4P6 造成的影響,從眾多失效芯片中隨機抽選3 顆進行開封處理,將CKS32F030F4P6芯片內部電源模塊的輸入輸出端的電壓引出,即VCORE,該電壓為芯片內部的Flash 區(qū)域進行供電,開封處理后的芯片內部如圖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 區(qū)域正常工作范圍,導致模塊死機。
激光管開啟過程中的電流峰值高達6.5 A,該電流值遠遠超出板卡上的電源芯片的供電能力,此時電源芯片會觸發(fā)LDO 內部的限流開關。激光管開啟過程中的電流將來自板卡上的電源芯片輸出端電容和主控芯片內部電源模塊輸入端電容(見圖5)。從CKS32F030F4P6 內部抽取的電流造成VCORE過沖至1.95~2.1 V,此電壓下Flash 不能正常工作。程序在進行Flash 讀取R0 寄存器時出現錯誤,訪問非法地址導致程序進入HardFault,表現為死機現象。
通過對板卡硬件設計的分析,可以看出該設計存在缺陷。首先混淆了穩(wěn)壓電容和退耦電容的作用,主控芯片的電源端口并沒有設計退耦電容,僅在板卡上的低壓差線性穩(wěn)壓器的輸出端設計了穩(wěn)壓電容。退耦電容的作用主要有兩個:(1)消除電路之間的寄生電容,換言之就是防止前后電路電流大小變化時,在供電電路中所形成的電流波動對電路的正常工作產生影響;(2)作為儲能器件[6]。而穩(wěn)壓電容主要是用來穩(wěn)定輸出端電壓,減小輸出電壓的紋波[7]。其次該板卡上的低壓差線性穩(wěn)壓器輸出端的穩(wěn)壓電容距離主控芯片的電源端口較遠(3 cm),而且中間沒有任何濾波電容和退耦電容,到達芯片電源端口的電壓質量會受到很大影響。
第2 節(jié)從硬件和軟件兩個方面對氣體傳感器模塊的失效原因進行了詳細的分析,下面將從硬件和軟件兩個方面給出相應的解決方案。
由于傳感器模塊已進入量產階段,所以為了將經濟損失降到最低,本文優(yōu)先從軟件方面著手解決該問題。為了杜絕VCORE超出正常工作范圍帶來的死機現象,本研究將開啟激光管指令的運行方式由Flash 改為SRAM。在SRAM 中運行延時程序,延時約40 μs,延時40 μs 之后程序在Flash 中運行。選定延時40 μs 的理由是:經過大量測試,VCORE回歸穩(wěn)定的時間為6 μs 左右,同時程序是在最大主頻48 MHz 下運行,故即使降頻運行,該延時也同樣可以有效避開VCORE不穩(wěn)定的問題。該方案旨在避開激光管開啟過程中帶來的VCORE不穩(wěn)定造成的Flash 讀寫錯誤的時間,待VCORE穩(wěn)定之后再從Flash 中運行,這樣就避免了VCORE不穩(wěn)定對Flash 讀寫寄存器帶來的影響。具體程序修改如下:
為了驗證該方案,在失效芯片中隨機取100 顆并下載修改后的程序,對100 顆失效產品的測試結果如表2 所示。由表2 中的數據可知,該方案使得產品良率提高到了100%。
表2 修改程序后100 顆失效芯片的復測結果
從第3 節(jié)的分析可知,產品失效的根本原因是板卡硬件方面存在設計缺陷,若要從根本上解決該問題,必須更改板卡的硬件設計。由于產品已經進入量產階段,并有部分產品已售出,所以臨時更改板卡的硬件設計并不能及時降損。為了將經濟損失最小化,本文優(yōu)先從軟件方面著手解決該問題,盡管該方案并未從根本上解決VCORE過沖問題,但經過大量測試可以看出,該方案及時有效地解決了產品失效問題,將經濟損失最小化。
為了從根本上解決問題,提出在主控芯片的電源管腳附近添加一個1 μF 的退耦電容,更改硬件后的原理如圖8 所示。當激光管開啟的時候是直接從添加的這顆1 μF 電容抽取電流,而不是從主控芯片CKS32F030F4P6 的內部電源模塊輸入端電容抽取電流,這樣就減少甚至避免了內部電源模塊受到影響,確保VCORE的穩(wěn)定性。此時當激光管開啟時電流的流向如圖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 ℃的環(huán)境下均進行了測試,證明板卡均能正常工作。
經過對失效產品的測試和分析,氣體傳感器模塊出現死機現象的原因是激光管開啟時電流過大,遠遠超過板卡電源芯片供電能力,此時激光管開啟時所需電流一部分從CKS32F030F4P6 內部被拉出,導致內部電源模塊輸出電壓VCORE過沖至1.95~2.1 V,此電壓下Flash 不能正常工作。程序在進行Flash 讀寫操作時發(fā)生錯誤,訪問非法地址導致程序進入HardFault。針對該原因,首先提出將激光管啟動時程序運行方式由Flash 改為SRAM,延時40 μs 待VCORE穩(wěn)定之后從Flash 運行,降低了VCORE不穩(wěn)定帶來的影響。為了從根本上解決問題,提出在CKS32F030F4P6 的電源管腳附近添加1 μF 電容,該方法減少了內部電源模塊受到的影響,確保VCORE的穩(wěn)定性,將產品良率提高到100%。本研究提出的方案有效解決了產品失效問題。
為了提供更多的解決方案,未來將對該問題做進一步研究,把激光管的電源與主控芯片CKS32F030F4P6的供電電源做物理隔離,同其他幾個方案做對比,找到最佳的解決方案。