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