STM8L的低功耗模式的配置

低功耗可以說是stm8l系列單片機的核心特色了。假設假設我們有一個溫度傳感器設備,他處於某種很特殊的地方,只能使用電池,而且我們很難去更換,那麼低功耗就顯得尤爲重要。那麼繼續假設我們這個溫度傳感器不需要一直工作,只需要1小時採集一次數據就行了,也就是說,一個小時內,我們這個傳感器只工作1秒鐘,那麼剩下的59分59秒怎麼辦?也許有的同學就會說了,while(1)循環啊,這種回答就很沒有靈性。都不需要工作了,我們還關機不就行了,讓它一小時啓動一次,測量完就繼續關機。那麼就可以讓電池裏的電物盡其用。stm8l就有一個停機指令halt(),執行這條指令後,內核時鐘停止工作,就相當於關機了。

但是並不是停機了,整個電路中的電流消耗就達到了最小!

第一:

雖然MCU是停機了,但是電路板還有其他的芯片在工作,它們仍然在消耗電量,所以我們在停機前應該要把其他芯片給關閉(可以通過特定的指令或者片選線)。條件好的可以直接用切斷它們的電源。

第二:

我是這樣理解的:進入停機模式後,只是MCU中最耗電的內核部分被關了,而所有寄存器和內存中的值是保持不變的,所以它的外設還在消耗電量,所以我們要在停機之前把開啓的外設給關了。這裏要注意一點:外設開啓時是先開時鐘再設置寄存器,關閉時先清除寄存器再關閉時鐘。我是這樣理解的:操縱一個外設的寄存器肯定是需要時鐘的,如果我們先把時鐘給關了,那麼還怎麼操作寄存器呢,如果光關了時鐘,不清寄存器的相應位,那麼外設還處於“靜態耗電”的狀態。在研究低功耗的過程中,我被這個坑了好久。關於這一點的實例可以參考這篇博客:

http://blog.csdn.net/qq_25186745/article/details/52777375

第三:

關於IO口的電平,這個是非常重要的一點,和之前提到的外設一樣,GPIO也是一種外設,但是特殊的是,這個外設是和芯片外部直接打交道的,如果GPIO外部接了個上拉電阻,而你在停機之前設置的IO口是低電平的,那麼電流不就通過電阻,流到IO口裏來了,比如正常的說接了個10k的上拉電阻,接到3.3v電壓上,那麼電流就是330uA,這個值可不小呢,stm8l在停機時極限最小電流好像能達到0.4uA。那麼你這個電路就是因爲這個電阻,停機電流比別人大了將近800倍了,那麼假如你的產品能待機1年,人家待機800年,這還怎麼比?所以IO口是絕對不能被忽視的。stm8l芯片復位以後所有引腳都是浮空輸入模式,理論上懸浮空輸入時IO口的狀態爲高阻態是最省電的,那麼我們只要把所有IO都DeInit就可以了。但是事實上不是,我把沒有用到的管腳全部推輓輸出高電平或低電平,不用的外部晶振的引腳要改爲上拉輸入才省電,外部有上拉下拉電阻的引腳分別推輓輸出高電平和低電平,一般電路中上拉電阻比較多(比如IIC的總線外部都有上拉的)。和外部芯片相連的引腳都推輓輸出低電平,因爲外部芯片斷電後所有引腳都是高阻態或接地的吧,如果你弄個高電平,就可能會有電流流過去。

在實際的項目中我們採用的方法是進入停機模式後,只有RTC時鐘在工作,然後RTC每隔一段時間喚醒一次MCU,MUC工作完成後繼續停機。

停機的代碼爲:

DeInit外設;
關閉外設時鐘;
逐個配置GPIO的電平
CLK_HaltConfig(CLK_Halt_FastWakeup,ENABLE);   //快速喚醒後時鐘爲HSI
PWR_FastWakeUpCmd(ENABLE);                    //開啓電源管理裏的快速喚醒
PWR_UltraLowPowerCmd(ENABLE);                 //使能電源的低功耗模式(這句話的作用很大)
RTC_ITConfig(RTC_IT_WUT, ENABLE);             //使能RTC中斷
CLK_HSICmd(DISABLE);                          //關閉內部高速時鐘(之前內核是工作在HSI下的)
//sim();                                      //關閉所有中斷,手冊上說最好關閉所有中斷在進入停機模式,但是好像這條指令並不會關閉RTC中斷,我也沒用這行代碼
halt();                                       //到這一步執行完後,內核時鐘就停止了,進入停機模式
WakeUp_Init();                                //rtc喚醒後PC指針在這裏,從這裏開始執行,所以我們要在這裏添加初始化各種外設和外部芯片的代碼


最後我測出來實際進入休眠模式後電流5~6uA左右,和理想的還是有一點差距,因爲我們的板子上帶有穩壓芯片,消耗量一部分的電流。

這裏有網友分享的低功耗模式下電流的數據:

http://bbs.21ic.com/icview-670756-1-1.html
--------------------- 
作者:chenqt123 
來源:CSDN 
原文:https://blog.csdn.net/chenqt123/article/details/73848798 
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章