1、stm32的
3種低功耗模式
stm32有
3種低功耗模式,分別是睡眠模式、停機模式和待機模式。
2、stm32在不同模式下的電流消耗
a、工作模式 消耗電流在
27ma
至36ma
之間。
b、睡眠模式 消耗電流在
5.5ma
至14.4ma
之間。
c、停機模式和待機模式 停機模式消耗電流在
15ua
待機模式在
3、各種低功耗模式下的喚醒條件
從上面的圖表1
可以看到,在睡眠模式下和待機模式下可以利用外部中斷喚醒,而停機模式下只能通過以下
4種方式喚醒:
a、wakeup
引腳的上公升沿
b、rtc
鬧鐘事件
c、nrst
引腳上的外部復位
d、iwdg
獨立看門狗的復位
4、專案需求與低功耗模式選擇
專案的特殊需求有以下兩點:
a、有煙霧報警情況下的隨時從低功耗模式退出,使用wifi
傳輸報警訊號
b、報警器需要定時報告自身的狀態,所以到時間了必須從低功耗模式退出。
根據需求b
,必須要用
stm32
的rtc
功能。所以功耗選擇模式必須選擇待機模式,即
mcu在執行狀態下消耗電流約為30ma
,在低功耗模式下消耗電流約為
5ua。
5、煙霧感測器模組
煙霧感測器模組的電路主要使用了xc5012
晶元。它與
freescale
的mc145012 pin-to-pin
匹配。mc145012
的結構框圖如下:
注意上圖中的io
引腳,它就是為了擴充套件。它的詳細定義如下:
其功能就是當自身煙霧感測器檢查到煙霧時,其輸出脈衝訊號,當其級聯時,它可以接受別的模組的報警訊號。
時序圖如下:
當晶元檢查到煙霧報警條件滿足時,在io引腳上輸出高電平,直到晶元檢查到煙霧報警條件不滿足。
6、煙霧感測器與
stm32
的連線因為專案需求a
的約束,所以必須要用
stm32
低功耗的待機模式,但是此種低功耗模式不支援外部中斷喚醒。因此要利用
stm32
的wakeup
引腳喚醒待機模式。
stm32的復位電路如下:
從上圖和實際測試可以得出,當系統從低功耗管理復位時,程式**將重頭開始重新跑。
但是硬體電路設計上必須區分,目前的復位重新執行是因為wakeup
引腳的上公升沿引起復位(實際就是因為有煙霧報警的情況而產生復位)還是因為
rtc鬧鐘事件引起的復位(實際就是因為定時報告事件到了而產生的復位)。
根據以上情況設計的介面電路圖如下:
STM32低功耗模式 停止模式
停止模式是在cortex m3的深睡眠模式基礎上結合了外設的時鐘控制機制,在停止模式下電壓調節器可執行在正常或低功耗模式。此時在1.8v供電區域的的所有時鐘都被停止,pll hsi和hse rc振盪器的功能被禁止,sram和暫存器內容被保留下來。thumb指令不支援彙編內聯 採用如下方法實現執行彙編...
STM32低功耗設計
具體要點為 1 所有io管腳,如果高阻狀態埠是高電平,就設成上拉輸入,如果高阻狀態是低電平,設成下拉輸入,如果高阻是中間狀態,設成模擬輸入。這個很多人都提到過,必須的。作為輸出口就免了,待機你想輸出個什麼東西,一定要輸,硬體上加上下拉就可以了 2 兩個晶振輸入腳要remap成普通io!使用內部晶振。...
STM32的3種低功耗模式
睡眠模式 核心停止,外設如nvic,系統時鐘systick仍執行。停止模式 所有時鐘都已停止 1.8v核心電源工作 pll,his和hserc振盪器功能禁止 暫存器和sram內容保留。待機模式 1.8v核心電源關閉 只有備份暫存器和待機電路維持供電 暫存器和sram內容全部丟失 實現最低功耗。在待機...