低功耗模式
本文討論下STM32低功耗模式,先看如下手冊。
對比了 STM32F0 和 STM32F1 兩者進(jìn)入低功耗是一樣的,低功耗模式有三種:
睡眠模式,CM3 內(nèi)核停止,外設(shè)仍然運行,此功耗是最高的
停止模式,所有時鐘都停止,此功耗較低,典型大概在20uA左右
待機模式,1.8V 內(nèi)核電源關(guān)閉,此功耗最低,典型大概在2uA左右
一般做開發(fā)大多都是選擇停機模式,因為停機模式功耗較低,而且任一中斷或事件都能喚醒。待機模式雖然功耗最低,電流只差10個微安,但是只有特定的事件和引腳可以喚醒,實時性不是很好。
先來看下官方庫進(jìn)入低功耗的方式。
void PWR_EnterSleepMode(uint8_t PWR_SLEEPEntry); //睡眠模式 void PWR_EnterSTOPMode(uint32_t PWR_Regulator, uint8_t PWR_STOPEntry); //停機模式void PWR_EnterSTANDBYMode(void); //待機模式
這里我們用到停機模式,有兩個參數(shù) 。
第一個PWR_Regulator是選擇電源是否進(jìn)入低功耗。
#define PWR_Regulator_ON //電源不進(jìn)低功耗 喚醒基本沒延遲#define PWR_Regulator_LowPower //電源進(jìn)去低功耗 不過喚醒啟動有一點延遲
第二個參數(shù)PWR_STOPEntry選擇喚醒的方式。
#define PWR_STOPEntry_WFI //中斷喚醒#define PWR_STOPEntry_WFE //事件喚醒
停機模式喚醒后自動選擇系統(tǒng)內(nèi)部時鐘,看自己的應(yīng)用是否需要重新配置。如果你的系統(tǒng)時鐘是HSI或者HSE是要重新配置,一般都需要重新配置,直接調(diào)用系統(tǒng)時鐘配置函數(shù)。
另外停機模式喚醒后,flash程序是從中斷或事件開始執(zhí)行的。
如何做到停機模式更低功耗
代碼
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE); //使能時鐘 PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);
上面代碼第一個參數(shù)PWR_Regulator_LowPower是配置電源低功耗模式。第二個參數(shù)PWR_STOPEntry_WFI用來確定是中斷喚醒還是事件喚醒,或者兩者都要。
第二步你要把所有引腳IO口釋放,全部配置成模擬輸入狀態(tài),此時IO口幾乎0消耗,具體見手冊說明。

我們只要在進(jìn)入低功耗之前把IO口配置一下就行了(根據(jù)自己應(yīng)用需要配置IO),但是喚醒之后就要重新配置IO口了。
注意,在配置IO模擬輸入之前,一定不要鎖定IO口。我之前就踩了這個坑,在配置成模擬輸入之前我們串口兩個引腳鎖定了導(dǎo)致我的功耗一直在90uA左右下不去。
正確配置的功耗在10uA左右,這功耗已經(jīng)相當(dāng)?shù)土?,用四?jié)5號電池夠你用至少1年了。
編輯:jq
-
STM32
+關(guān)注
關(guān)注
2309文章
11161瀏覽量
373385
原文標(biāo)題:STM32低功耗模式
文章出處:【微信號:gh_94c30763133f,微信公眾號:FPGA那點事兒】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
STM32L062x8:超低功耗32位MCU的卓越之選
STM32L072xx系列微控制器:低功耗設(shè)計的優(yōu)選之選
CW32L052的低功耗模式
探究TDA8035:高集成低功耗智能卡接口的實用之選
探究DSLVDS1048:低功耗高速差動線路接收器的杰出代表
什么是低功耗設(shè)計,如何評估低功耗MCU性能?
武漢芯源MCU的功耗如何優(yōu)化?有哪些低功耗模式和節(jié)能技術(shù)?
CW32 UART低功耗模式詳解
STM32WB1MMC藍(lán)牙低功耗模塊技術(shù)解析與應(yīng)用設(shè)計
探究STM32低功耗的幾種模式
評論