事情是這樣的……
1. 背景
年前有個(gè)朋友和我閑聊,他做了一款手持設(shè)備,功能、性能測(cè)試都正常。正當(dāng)將要大功告成,準(zhǔn)備拿年終獎(jiǎng)回家過年的時(shí)候,設(shè)備出問題了。
2. 現(xiàn)象
問題是這樣的…… 將該設(shè)備放到高低溫箱內(nèi),設(shè)定高溫70℃,濕度為0。當(dāng)測(cè)試進(jìn)行到兩個(gè)小時(shí)的時(shí)候,該設(shè)備突然開機(jī)工作了。
原因解構(gòu)
1. 供電邏輯
樣機(jī)放到高低溫箱,內(nèi)部獨(dú)立供電。沒有接入外部電源。那么問題一定出在供電的路徑上。VBAT為電池,VExt-5V為外部電源。兩個(gè)電源通過兩個(gè)二極管實(shí)現(xiàn)或門的邏輯,如下圖所示:
具體說來就是當(dāng)沒有外部電源的時(shí)候,VCC由VBAT提供。如果有外部電源,由于外部輸入為5V,所以下面二極管是導(dǎo)通的,電池電壓最高4.2V,低于外部電源電壓。所以無論何時(shí),如果一旦接入外部電源,上面二極管就是反向截止,就由外部電源來為VCC供電。
以上是外部電源與電池供電或門邏輯的介紹,也是常規(guī)電路。比如在RTC實(shí)時(shí)時(shí)鐘上面,這種也是比較常見的。
如上圖所示,VCC輸出之后,會(huì)通過一個(gè)三極管+MOS管的開關(guān)電路來控制整個(gè)系統(tǒng)是否工作。這個(gè)驅(qū)動(dòng)端有三個(gè)驅(qū)動(dòng)源。一是按鍵,二是單片機(jī)IO,三是外部電源;正常的邏輯是當(dāng)按鍵按下,開關(guān)電路打開,MCU程序開始執(zhí)行,并且通過置IO端口為高電平,來維持開關(guān)電路的導(dǎo)通狀態(tài),實(shí)現(xiàn)系統(tǒng)開機(jī)的功能。從圖中可以看出,外部電源控制開關(guān)導(dǎo)通的優(yōu)先級(jí)要高于二極管組成的或門電路。即一旦外部電源進(jìn)行供電,整個(gè)系統(tǒng)立刻可以開機(jī)工作,繞過按鍵按下這一信號(hào)條件。
2. 問題分析
說到這里,問題基本已經(jīng)清楚了。那就是懷疑串聯(lián)在外部電源和VCC之間的二極管在某種條件下,反向漏電流變大了,通過外部供電路徑來驅(qū)動(dòng)設(shè)備運(yùn)行。無疑,這個(gè)條件就是高溫。如下圖所示,是二極管的反向電壓特性圖表:
規(guī)格書中關(guān)于反向漏電流的描述:
為了驗(yàn)證猜想,將二極管換為1N4148。下圖是1N4148的漏電流信息。相比之下,1N4148的反向漏電流要小很多。
3. 結(jié)果
如上分析,在替換為1N4148之后,進(jìn)行高溫環(huán)境測(cè)試,沒有出現(xiàn)以上自動(dòng)開機(jī)的問題。