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