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