測試條件:PIC16F676使用內(nei) 部4MHzRC振蕩,電源電壓5V,測試在睡眠下的消耗電流
單片機在外部IO口設置成輸入並有固定電平的情況下,程序進入一個(ge) NOP指令和跳轉指令的死循環後耗電約1.26mA
1.SLEEP之後:WDT開並256分頻,每2.3秒左右喚醒一次,所有IO口為(wei) 數字輸入口,直接接高電平或。5V,0.159mA,主要配置:_INTRC_OSC_NOCLKOUT & _WDT_ON & _PWRTE_ON & _MCLRE_OFF & _BODEN
2.上麵的程序沒動,隻是配置& _BODEN_OFF,電流降為(wei) 8.5μA,其它配置變化對電流消耗影響不大,WDT開與(yu) 不開隻差0.1μA,可見BROWN OUT DOWN功能是個(ge) 耗電大戶。
3.上麵的配置、程序沒動,所有IO輸入口懸空,結果電流變為(wei) 0.8-1mA,以上均沒開電平變化中斷,而且手接近單片機電流變的更大。可見雖然IO口看似沒有吸收電流,但幹擾電平引起單片機內(nei) 部頻繁翻轉的電流可以說很驚人。
4.以上配置,僅(jin) 將WDT分頻比改為(wei) 1:1,各IO口仍然接固定電平,此時單片機WDT約每1.8mS喚醒一次,電流為(wei) 8.8μA,可見RC的喚醒很省電。
5.以上配置,WDT1:256分頻,將所有IO口設置成輸出,並輸出低電平,IO口不接任何負載,結果電流為(wei) 9.5μA,與(yu) 輸入相比多了1μA。可見IO口的驅動也是要能量的。
6.以上配置,WDT1:256,各AD輸入口設置成AD輸入,其它設置成IO輸入,均接固定電平,ADON置1,GO為(wei) 零,此時AD模塊開啟,轉換未開始,轉換時鍾采用係統時鍾的1/8,電流8.8μA基本無變化,轉換時鍾采用AD獨立RC振蕩,電流仍為(wei) 8.8μA,獨立RC振蕩,GO置1,轉換完成後繼續AD轉換,電流為(wei) 9.2μA,期間沒有空餘(yu) 采樣電容的充電時間,可見AD轉換並不怎麽(me) 耗電。
7.關(guan) 閉AD,開啟RA口的弱上拉,有弱上拉的IO懸空,WDT 1:1,電流8.8μA,將弱上拉的IO口其中一腳接地,電流猛增至212.4μA,換算下來一個(ge) 弱上拉相當於(yu) 一個(ge) 24KΩ左右的電阻。
綜上所述,耗電大戶有兩(liang) 個(ge) :第一大戶是懸空的輸入腳,第二大戶為(wei) 弱上拉時IO口接地。第三大戶為(wei) BROWN OUT DOWN RESET(電壓過低複位)。若要省電的話不妨以此參考。此次試驗是單片機沒有任何的情況下測得,當然外圍電路比較複雜,設計其它電路的耗電也要考慮。若要非常省電,那麽(me) 每個(ge) 功能是否開啟都是錙珠必較的。