現(xiàn)在,有許多單片機(jī)應(yīng)用領(lǐng)域,都是用電池供電,節(jié)能成為設(shè)計(jì)工程師普遍關(guān)心的問題。
進(jìn)入掉電模式
現(xiàn)在有很多的低功耗的片子,特別是在進(jìn)入掉電模式之后,只有1uA的電流。也可以使用電源管理的方法,在不工作的時候,把系統(tǒng)電源關(guān)斷,這樣更省電我用了很久51芯片,本來對它的功耗非常不滿,但是因?yàn)槠鋬r格越來越便宜,本身的性價比依舊很好,所以總也甩不掉。
1、休眠。一般的系統(tǒng)都不會到了忙不過來的地步,適當(dāng)?shù)男菝哌€是可以節(jié)省一些功耗的,在一些簡單的系統(tǒng),多抽時間休眠成了省電的關(guān)鍵,你看別的芯片都不耗電,只有單片機(jī)了,它就是關(guān)鍵了,在有些時候,提高主頻反而會獲取更多的休眠時間,反而使系統(tǒng)功耗更小了。但是值得注意的是,經(jīng)常性的切換休眠和工作狀態(tài)會讓電源產(chǎn)生mV級的波動,特別對于很多線性穩(wěn)壓器只有100mA以內(nèi)的輸出能力的情況更明顯,這樣的波動或許會影響系統(tǒng)內(nèi)的AD和一些其他模擬電路,值得注意。
2、掉電。如果進(jìn)入了掉電模式,很多51芯片是無法通過中斷重新開始工作的,可以外加一個微功耗的單片機(jī)來提供復(fù)位,這個單片機(jī)只負(fù)責(zé)鍵盤掃描和復(fù)位51單片機(jī),以及發(fā)送鍵盤編碼到51芯片。我以前見過一個手持設(shè)備,耗電很小,但是包括了大容量存儲、顯示、輸入、數(shù)據(jù)輸出、檢索等功能,平時89C51總是處于掉電狀態(tài),但是有了鍵盤操作后,就復(fù)位開始運(yùn)行,處理完鍵盤送來的任務(wù)之后又自動掉電了。
3、復(fù)雜運(yùn)算。復(fù)雜運(yùn)算(譬如指數(shù)運(yùn)算、浮點(diǎn)乘除)一定會占據(jù)更多系統(tǒng)時序,響應(yīng)減少休眠時間,可以通過查表方式,這樣用大容量的表格代替了現(xiàn)場計(jì)算,更多的時間不就可以睡覺了嗎?
4、如果軟件任務(wù)少到一定程度,那么可以考慮把晶體搞到32k去運(yùn)行,其實(shí)這樣更省電,但是這意味著51軟件基本沒什么高速的事情做,也不需要串行通信,否則,還是老老實(shí)實(shí)面對現(xiàn)實(shí)吧。
我覺得,51芯片用于電池供電的系統(tǒng)不是很合適,但是從開發(fā)周期看,它的開發(fā)環(huán)境很好,畢竟可以承載8位機(jī)的相對大型的應(yīng)用,有時候又不得不用它。我覺得距離51最靠近的AVR單片機(jī)更適合將來的應(yīng)用,因?yàn)槠湫阅軆r格比相對其他單片機(jī)還是不錯的,除非51芯片可以將來做到在3MIP下,工作電流小于2mA,休眠電流小于500uA,掉電電流小于10uA。在很多的設(shè)計(jì)中,采用線性降壓的方法,電源損耗大,如提高供電電壓,并用高效率的DC-DC電源,可延長電源使用的時間89C8252掉電工作,看門狗做“系統(tǒng)運(yùn)行時鐘”同時把看門狗復(fù)位“軟件模擬成看門狗中斷”“狗”叫一次跳起來看看,“RAM值班室登個記”,同時還登記下當(dāng)前PC+1的值,然后“睡死”過去!
平均功耗不大于5V/0。3MA,而且有很強(qiáng)的抗干擾性!
軟件優(yōu)化很重要!
如64MS一次“狗”叫!起來做40條指令,24MHZ下最多:40*0.5=20US
于是占空比:20/64000=1/3200 即平均電流下降3200倍!!!
外設(shè)會受復(fù)位改變嗎?當(dāng)然!但鎖存器干什么啊?!
如何知道程序能運(yùn)行多久?下一條運(yùn)行指令運(yùn)行到那?
如果任何時刻,你自己編的程序運(yùn)行在那個片區(qū),你都不知道,那還叫什么搞軟硬件的要天人合一啊?!
系統(tǒng)任務(wù)不忙的情況下,你的看門狗定時復(fù)位方法還可以,但是。。。好多情況下似乎做不到呀。我的51系統(tǒng)只有200微安省電是個大難題,特別是51,但只有用心還是可以做到的,特別是工作任務(wù)少的時候。我的一個水文遙測系統(tǒng),用12伏電池供電耗電只有200微安,有8Mbit data flash,一個調(diào)制解調(diào)器,一個時鐘,一個485通信口,一個232通信口,還有6個數(shù)碼管,是不是夠多的了,但它們平時都不工作,我也是用看門狗復(fù)位來喚醒51單片機(jī)的,每1.6秒一次,用的是x25045,可是25045的復(fù)位時間有200毫秒之多,實(shí)驗(yàn)發(fā)現(xiàn),51從掉電返回到正常工作只要有30個毫秒足了,別小看節(jié)省的這一百多毫秒,因?yàn)?1在每次醒來是只要發(fā)現(xiàn)沒有任務(wù)就可以馬上POWERDOWN了,所以加了一個CMOS的單穩(wěn)來復(fù)位。其它的就是口線的狀態(tài)一定要注意,不要讓它吸收電流也不要輸出電流,要是做不到可以試著加一此電路,如反相器.
穩(wěn)壓電源是個要權(quán)衡的事,雖然開關(guān)穩(wěn)壓有較高的效率,但在低功耗設(shè)計(jì)不一定對,開關(guān)電源本身消耗的電流就是一個大問題,一個微安級的系統(tǒng)也許要特別對待,我用的是max667線性穩(wěn)壓數(shù)微安靜態(tài)電流.我想開關(guān)電源做不到對于外部事務(wù)頻繁的應(yīng)用,無法使用掉電方式雖然很多51芯片支持外中斷觸發(fā)芯片脫離POWER DOWN狀態(tài)(如華邦的W78E58、W77E58),但還是解決不了串行通信的問題,而且對于需要內(nèi)部精確定時的場合,從POWER DOWN到正常工作需要很長時間,這個恐怕還是難于讓人接受。莫非沒有一個廠家可以產(chǎn)出高速小功耗的51芯片?沒到理呀,PHILIPS不是玩了很久嗎?怎么弄出的芯片在12MHz下還是大于10mA,休眠也有幾個mA,這也吹牛沒下功夫嘛!
用51做低功耗,太累了低功耗多得是,象PIC、EMC輕松做到20uA以下,51有POWER DOWN,但只能復(fù)位喚醒,有少數(shù)可用INT喚醒,太麻煩。有些有雙晶體的單片機(jī),做低功耗最簡單,平時用32768工作也只有20uA,這種單片機(jī)一般帶有LCD。EMC內(nèi)有PLL單片機(jī)做功耗系統(tǒng)很方便,象78565,567,功能強(qiáng)價格低samgsung的單片機(jī)可以做到565匠人也用過。平時進(jìn)IDLE模式,功耗只有幾個UA分級供電和外部喚醒確是一種可行的辦法 在分級供電中要注意的是如果電源是小電流的穩(wěn)壓器件最好有一個比較大的蓄電電路,要不然單片機(jī)喚醒和上電時可能會起動不了,而且可能會進(jìn)入一個不希望的振蕩期,比如單片機(jī)要起振,電流增大,這時電源供不起,電壓就下降,引起的是單片機(jī)又停振電壓又回升!所以一個合理的電源管理電路就顯得很關(guān)鍵,這方面的專業(yè)IC將是未來一個很有前途的產(chǎn)業(yè)!這個IC應(yīng)有一個內(nèi)部低速的定時器和一個專門的蓄電管理電路,當(dāng)電路進(jìn)入低功耗后應(yīng)該將蓄電電路沖滿以備喚醒和大功耗時用,這種電路主要用于小電流供電的環(huán)境,它可以為小電流供電環(huán)境提供一個短時間的大電流工作。 另外單片機(jī)的耗電除了核本身的耗電外,大多是IO口的耗電,大家可以通過降低主頻,將IO口置在比較合適的狀態(tài)來達(dá)到一個比較省心又省力的方式。而且不全理的頻繁喚醒有時會帶來更多的電耗!
用TI的單片機(jī)MSP430系列非常省電。正常工作時幾百微安,掉電時約1微安87LPC76X低功耗51,32k時20uA使用雙振的單片機(jī),在系統(tǒng)不忙的時候使用32768的晶振,同時進(jìn)入SLEEP這樣處理通常耗電都在幾個uA.在處理SLEEP喚醒后的程序需要小心處理,特別是***的單片機(jī),有時廠家給出的資料都要小心,我碰到過。我不知道您是用的哪家的51單片機(jī),功耗能做到這么低。據(jù)我所知ATMEL89C52 Powerdown mode下最少是40微安。您的系統(tǒng)中有這么多的器件,即使都是低功耗可關(guān)斷的器件,那你的系統(tǒng)每次工作時都要啟動所有的器件才能運(yùn)轉(zhuǎn)起來,這個啟動過程是多長呢?還有您的單片機(jī)不會工作在12V的,你還需要一個電壓變換器,它平時不用電的嗎?你的CMOS單穩(wěn)不用電的嗎?據(jù)我所知常用的485,232,modem,flash都不是低功耗可關(guān)斷的,如果您都使用的是特殊器件,那實(shí)用的意義何在呢?或者您使用了其他器件來控制這些耗電多的設(shè)備,那您一定是硬件高手了??煞裰更c(diǎn)一二?
評論
查看更多