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