用法拉電容從容實(shí)現(xiàn)單片機(jī)掉電數(shù)據(jù)保存
公式
Q = I*t;
Q = C*U;
今天,因?yàn)?a href="/jichuzhishi/mcu/">MCU內(nèi)部一般都帶FLASH ROM和伴隨著法拉級(jí)電容的出現(xiàn),事實(shí)上已經(jīng)宣布背掉電電池或者用達(dá)拉斯DS存儲(chǔ)器實(shí)現(xiàn)掉電數(shù)據(jù)保存的傳統(tǒng)的思維和電路已經(jīng)成為歷史!
以下的電路,是一個(gè)可靠的簡(jiǎn)單的掉電檢測(cè)、法拉電容能量?jī)?chǔ)存等完整硬件電路和相應(yīng)的軟件細(xì)節(jié),是筆者在產(chǎn)品上一個(gè)成熟的可靠的自詡經(jīng)典電路和心血,在這里完全公開(kāi)地提供給二姨愛(ài)社(21IC)下的全體表兄表弟表姐表妹們以供大家一起來(lái)批判賞析借鑒和改進(jìn).
首先提請(qǐng)老表們別一看電路繁瑣就不想繼續(xù)看下去,事實(shí)是:大電容儲(chǔ)存實(shí)現(xiàn)掉電保護(hù)并非人們想象的那么容易做.
我們往往突然萌發(fā)一個(gè)跳躍靈感閃爍一絲思想火花,但最終都沒(méi)幻化為現(xiàn)實(shí)結(jié)果而最終不了了之,在我們遺憾嘆息之于我們是否思考過(guò)常常并不是我們思維"太過(guò)創(chuàng)新"需求和愿望大大超越了現(xiàn)實(shí)(我們能超越我國(guó)的現(xiàn)實(shí)的器件工業(yè)和材料工業(yè)水平嗎)最后我們總不得不以理論不完全等同于實(shí)踐來(lái)為自己無(wú)奈和熄滅的靈感作排解!其真正原因我們作過(guò)真正思考嗎?!
事實(shí)上一個(gè)理論成立,現(xiàn)實(shí)上完全具備可實(shí)現(xiàn)性的一個(gè)電路單元,到最后我們并未達(dá)到預(yù)想效果,甚至以失敗了告終,原因何在??----細(xì)節(jié)..細(xì)節(jié)..還是細(xì)節(jié)...永遠(yuǎn)的細(xì)節(jié)!!!!細(xì)節(jié)為王!!!!!
所以敬請(qǐng)大家耐心地靜靜地留意這里的每個(gè)電路技巧和對(duì)細(xì)節(jié),事實(shí)上你會(huì)發(fā)現(xiàn)這里每個(gè)細(xì)節(jié)都充滿(mǎn)著技巧智慧體貼人性和柔情.每處都讓我們感悟了一種做事就是做人和精益求精的思想和行動(dòng)境界,即使你是表弟表兄級(jí)男性電子工程師對(duì)你的設(shè)計(jì)和實(shí)現(xiàn)都應(yīng)具備女性的細(xì)膩周到和柔情.
電路見(jiàn)下:這里首先用6V供電(如7806),為什么用6V不用5V是顯而易見(jiàn)的.這里的二極管們一般都起兩個(gè)作用,一是利用單向?qū)щ娦员WC向儲(chǔ)能電容0.47F/5.5V單向沖電;二是起鉗位作用,鉗去0.6V,保證使大多數(shù)51系列的單片機(jī)都能在4.5V--5.5V之間的標(biāo)稱(chēng)工作電壓下工作.而4.5-5.5間這1V電壓在0.47F電容的電荷流失時(shí)間就是我們將來(lái)在掉電報(bào)警后我們可以規(guī)劃的預(yù)警回旋時(shí)間.
兩只47歐電阻也有兩個(gè)作用:
1:和47UF和0.01UF電容一起用于加強(qiáng)電源濾波.
2.對(duì)單片機(jī)供電限流
一般電子工程師都喜歡把單片機(jī)電源直接接7805上,這是個(gè)非常不好的習(xí)慣,為什么?7805可提供高達(dá)2A的供電電流,異常時(shí)足夠把單片機(jī)芯片內(nèi)部燒毀.有這個(gè)電阻47歐姆電阻擋即使把芯片插反或者電源極性顛倒也不會(huì)燒單片機(jī)和三端穩(wěn)壓器,但這限流電阻也不能太大,上限不要超過(guò)220歐為益,否則對(duì)單片機(jī)內(nèi)部編程時(shí),計(jì)算機(jī)會(huì)告警提示"編程失敗"(其實(shí)是電源不足).
3.對(duì)0.47F/5.5V儲(chǔ)能電容,串入的47歐電阻還消除了"巨量法拉電容"的上電浪涌.實(shí)現(xiàn)沖電電流削峰。
大家算一算要充滿(mǎn)0.47F電容到5.5V,即使用5.5A恒流對(duì)0.47F電容沖電,也需要0.47秒才能沖到5.5V,既然知道了這個(gè)問(wèn)題,大家就清楚:
I*t = UC 5.5*t=(5.5)*0.47 t=0.47S
1.如果沒(méi)有47歐姆電阻限流,上電瞬間三端穩(wěn)壓器必然因強(qiáng)大過(guò)電流而進(jìn)入自保.
2.長(zhǎng)達(dá)0.47秒(如果真有5.5A恒流充電的話(huà))緩慢上電,如此緩慢的上電速率,將使得以微分(RC電路)為復(fù)位電路的51單片機(jī)因?yàn)樯想娞裏o(wú)法實(shí)現(xiàn)上電復(fù)位.(其實(shí)要充滿(mǎn)0.47UF電容常常需要幾分鐘).
3.正因?yàn)樯想姇r(shí)間太慢,將無(wú)法和今天大多數(shù)主流型以在線(xiàn)寫(xiě)入(ISP)類(lèi)單片機(jī)寫(xiě)片上位計(jì)算機(jī)軟件上預(yù)留的等待應(yīng)答時(shí)間嚴(yán)重不匹配(一般都不大于500MS),從而造成應(yīng)答失步,故寫(xiě)片時(shí)總是提示"通信失敗".
知道這個(gè)道理我們就不難理解這個(gè)電路最上面的二極管和電阻串聯(lián)起來(lái)就是必須要加上的“上電加速電路”.這里還用了一只(內(nèi)部空心不帶藍(lán)色的)肖特基二極管(1N5819)來(lái)從法拉電容向單片機(jī)VCC的單向放電,和同時(shí)阻斷法拉電容對(duì)上電加速電路的旁路作用;用肖特基二極管是基于其在小電流下,導(dǎo)通壓降只有0.2V左右考慮的,目的是盡量減少法拉電容在掉電時(shí)的電壓損失.力爭(zhēng)獲得最留掉點(diǎn)維持時(shí)間.
三極管9014和鉗位二極管分壓電阻墊位電阻(即470歐姆)等一道構(gòu)成基極發(fā)射極雙端輸入比較器,實(shí)現(xiàn)掉電檢測(cè)和發(fā)出最高優(yōu)先級(jí)的掉電中斷,這部分電路相當(dāng)于半只比較器LM393,但電路更簡(jiǎn)單耗電更省(掉電時(shí)耗電小于0.15MA).
47K電阻和470歐姆二極管1N4148一道構(gòu)成嵌位電路,保證基極電位大約在0.65V左右 (可這樣來(lái)非常近似地計(jì)算0.6(二極管導(dǎo)通電壓)+5*0.47/47),這樣如果9014發(fā)射極電壓為0(此時(shí)就是外部掉電),三極管9014正好導(dǎo)通,而且因?yàn)?1單片機(jī)P3.2高電平為弱上拉(大約50UA),此時(shí)9014一定是導(dǎo)通且在弱電流下是飽和導(dǎo)通的,這樣就向單片機(jī)內(nèi)部發(fā)出一次最高硬件優(yōu)先級(jí)的INX0掉電中斷.
而在平時(shí)正常供電時(shí),因發(fā)射極上也有大約6*0.22/2.2=0.6V墊位電壓在上頂,容易理解三極管9014在此刻一定處于截止?fàn)顟B(tài),而使P3.2維持高電平.
下面還有兩個(gè)重要軟硬件要點(diǎn)和建議提請(qǐng)注意:
1.硬件要點(diǎn):凡是單片機(jī)外部以輸出高電平驅(qū)動(dòng)的口線(xiàn),其電流都不能到單片機(jī)的供電電壓VCC上去爭(zhēng)搶(例如上拉電阻供電不取自單片機(jī)VCC而應(yīng)直接接在電源前方),圖中4.7K電阻和口線(xiàn)PX.Y就是一個(gè)典型示例,接其它口線(xiàn)PX.Y'和負(fù)載也雷同.這里與上拉4.7K電阻相串聯(lián)二極管也有兩個(gè)作用:
1.鉗去0.6V電壓以便與單片機(jī)工作電壓相匹配,從而防止口線(xiàn)向單片機(jī)內(nèi)部反推電.帶來(lái)單片機(jī)口線(xiàn)功能紊亂.
2.利用二極管單向供電特性,防止掉電后單片機(jī)通過(guò)口線(xiàn)向電源和外部設(shè)備反供電造成電荷泄露.
上面的硬件設(shè)計(jì),還要與軟件結(jié)合起來(lái)(見(jiàn)下面敘述)才能保證在掉電期間,不會(huì)因法拉電容上的積累電荷向已經(jīng)掉電的外部電路無(wú)謂供電和向電源內(nèi)部反向供電造成法拉電容上能量泄放從而縮短掉電維持時(shí)間.
2.軟件要點(diǎn):首先INX0在硬件上(硬件設(shè)計(jì)已經(jīng)保證)是處于最高優(yōu)先級(jí)的,這里還必須要在軟件上再次保證INX0是最高優(yōu)級(jí)別的中斷.從而確保掉電時(shí)外部中斷0能打斷其他任何進(jìn)程,最高地優(yōu)先地被檢測(cè)和執(zhí)行到.其次在INX0的中斷程序入口,還要用:
MOV P1,#00H
MOV P2,#00H
MOV P3,#00H
MOV P0,#00H
SJMP 掉電保存
來(lái)阻斷法拉電容的電荷通過(guò)單片機(jī)口線(xiàn)外泄和隨后立即跳轉(zhuǎn)到掉電寫(xiě)入子程序模塊.(見(jiàn)硬件要點(diǎn))
有了上面的預(yù)備和細(xì)節(jié)處理,下面我們完全有理由信心百倍地一道來(lái)計(jì)算0.47UF的電容從5.5V跌落到4.5V(甚至可以下到3.6V)所能維持的單片機(jī)掉電工作時(shí)間.
這里設(shè)單片機(jī)工作電流為20MA(外設(shè)驅(qū)動(dòng)電流已經(jīng)被屏蔽)不難算出:
I*T= UC
T=UC/I=(5.5-4.5)*0.47/0.02= 23.5S
T=1V*0.47*1000(1000是因?yàn)楣ぷ麟娏鳛楹腊?/20=23.5秒!!!!!
天!這個(gè)時(shí)間對(duì)單片機(jī)而言簡(jiǎn)直相當(dāng)于從原始社會(huì)到共產(chǎn)主義社會(huì)的歷史慢長(zhǎng).休說(shuō)是從容寫(xiě)入內(nèi)部FLASH ROM掉電保護(hù)數(shù)據(jù),就是把芯片從新寫(xiě)入新程序都可以寫(xiě)5次!!!!!!!!!!