本文導讀
相信大家都會遇到這樣的情況,當你正在敲一份文檔或一段代碼時,啪的一下停電啦,我擦……,我的代碼……,我的圖紙……,我剛寫好的文章……。但是在嵌入式系統中也會遇到類似的情況,通常會導致嵌入式系統數據,程序丟失,不能工作,甚至損壞存儲系統。而對于核心板的嵌入式系統來說,異常掉電情況下數據不丟失,穩定性是根本。本文基于CAT706介紹一種能夠檢測到異常掉電,并利用電容中存儲的少量電量保存數據、防止存儲器損壞、丟失數據的方法。一、概述
首先引用一篇微信文章“老板說:你去跳槽,我去跳樓!一場由SD卡引發的災難”
去年上半年,我們公司承接了某大型廣告公司的電梯廣告顯示屏的項目,該產品使用了飛思卡爾的IMX6系列芯片作為主控CPU,具備媒體人機觸摸互動、媒體投放、遠程升級、錄像監控等功能。其中很重要的一項功能就是監控和保存功能,因客戶的報價較低,我們理所當然的選擇了SD卡作為錄像數據的保存介質。
沒想到,災難半年后就降臨了,半年前發貨的10K機器,每個月都有10%的損壞率,損壞的機器90%都是SD卡損壞了!客戶不但要求我們賠償SD卡的損失,延長質保期,而且威脅一個月內不解決將終止合作,客戶是老板的唯一大客戶,丟失這個客戶我們離解散就不遠。老板甚至放下狠話:一個月內不解決,你們跳槽,我跳樓。
經過仔細檢查確定SD卡損壞的原因是設備上下電導致的。
于是我們采用了如下的方案。其中方案的核心是掉電檢測電路和超級電容繼續供電電路。掉電檢測電路是用運放搭出來的一個比較復雜的比較電路,由于復雜這里就不上圖了。圖1是超級電容的充放電電路,增加該電路可以使掉電后繼續維持2秒鐘的時間,使CPU完成掉電后的保護處理工作。
圖1 超級電容充放電電路
上述案例結局辦法是用運放搭建掉電檢測電路比較復雜,容易出現問題,這里推薦大家一個高集成度的掉電檢測電路。
二、功能簡介:
如圖2所示是CAT706芯片內部框圖。CAT706內部集成了多種功能,功能強大,使用簡便,此次只重點講解其內部的掉電檢測功能。
圖2 內部功能框圖
由于內部框圖很簡單,可以很容易的分析出有以下四種情況能導致單片機復位或中斷:
針對以上四個功能對嵌入式系統作用如下:
-
可保證VCC供電在穩定時單片機工作,不穩定時復位輸出保證系統穩定運行;
-
可人為手動控制單片機復位運行;
-
看門狗實時監測系統,防止系統跑崩潰;
-
及時監測供電系統是否掉電從而讓系統迅速處理數據。
本篇文章主要就是針對其第四點檢測意外掉電的保護處理方案。
三、典型應用
PFI相當于是一個電壓比較器的正輸入端,如果PFI電壓高于1.25V那么PFO就會輸出高電平,如果PFI電壓低于1.25V哪呢PFO就會輸出低電平。如此便可以通過PFI作為輸入將前端的高電壓分壓后接入,從而可以提前檢測到前端的掉電情況。
如圖3所示是CAT706典型應用電路及時序圖。原理圖相對比較簡單容易理解,并且畫出了在掉電和上電后各部分的理論波形圖。
一般情況下系統的供電都是由前端市電隔離降壓到相對偏高的直流電壓(如12V),再降壓到系統所需要工作的電壓(如5V/3.3V)。如圖3所示是針對于檢測前端的12V直流電壓的掉電檢測電路。
圖3 典型應用電路及時序圖
12V上電時輸出的5V會對大電容充電,圖中串聯了一個電阻用來限流,當掉電時電容的電量會通過旁邊的肖特吉二極管直接放電給后端負載使用。
由于12V掉電到5V/3.3V掉電完成之間有一段時差,所以可以提前檢測12V的掉電情況使單片機進入Interrupt對掉電采取一系列應對措施,并且在5V/3.3V掉電完成前完成操作,如圖中的時間T,并且此段時間T與圖中紅色圈的電容值大小有關,電容值越大時間T就越長(必要時可以考慮使用法拉電容);且檢測掉電的信號越靠近總電源的前端就越好。
為了增大掉電后的維持時間T,不僅可以增大儲能電容值來達到目的,也可以將掉電檢測信號往前端挪動,例如將掉電檢測移至最前端的220V市電或前端高壓,市電掉電時到12V掉電中間也有一段時間,這樣就可以間接增加掉電后的維持時間T。
如圖4所示是檢測前端電壓的掉電檢測電路。提前處理掉電信號以此來增加掉電后的電壓維持時間。
圖4 前端掉電檢測電路
以圖3所示的法拉電容放置位置可知隨著掉電后的電壓維持,電容上的電壓會逐漸下降可能會影響到后端系統的工作。為此可以將大電容的充放電電路移至前端的高電壓部分,也可以將降壓電路分為兩節或三節降壓連接,如此只需將大電容的放置位置相對往前端挪一節即可保證在掉電維持的那段時間內主系統的工作電壓維持穩定。如圖4所示對大電容的擺放位置改動。
四、實測分析
針對上一節關于CAT706原理的推算和實際效果波形的推算我們做了如下的硬件電路搭建,硬件電路針對圖3搭建。如圖5所示硬件使用洞洞板搭建,用來測試實際的輸入供電電壓波形,輸出電壓波形以及PFO和RST引腳的波形。
圖5 實物圖
如圖6所示波形1是輸入的12V電壓波形、波形2是輸出的5V電壓波形、波形3是復位引腳的電壓波形、波形4是PFO引腳的電壓波形。圖中測試時輸出以10mA的負載對其恒流放電。
圖6 測試波形圖
當輸入12V上升時,DCDC電源會緊接著開始輸出5V,同時隨之12V的上升其分壓值若大于PFI的輸入閾值時PFO會跟著立即輸出高電平,復位引腳在檢測到5V電壓正常一段時間后也會時復位系統,系統啟動工作。
當輸入12V意外斷電下降時其在PFI引腳上的分壓值低于閾值時PFO會立即輸出低電平,此PFO的低電平會中斷系統主控告知系統意外斷電應立即對存儲數據進行處理,防止數據丟失。圖中的測試波形是以10mA的恒流負載模擬測試效果,從圖中可以看出從檢測到意外斷電到系統復位停止工作中間有244ms的處理時間。這個時間和DCDC輸出端的電容有很大的關系,電容值越大其數據處理的時間越長,圖中是以2200μF的電容值大小、負載10mA恒流情況下測得是時間。實際處理時檢測到掉電主控應立即斷掉液晶屏等不需要的耗電外設只保持主控部分的供電即可。
-
檢測電路
+關注
關注
13文章
308瀏覽量
58198 -
周立功
+關注
關注
38文章
130瀏覽量
37679
原文標題:硬件設計08:巧用CAT706做掉電檢測
文章出處:【微信號:Zlgmcu7890,微信公眾號:周立功單片機】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論