FreeRTOS 低功耗之停機模式


以下轉載自安富萊電子: http://forum.armfly.com/forum.php

STM32F103 如何進入停機模式
在 FreeRTOS 系統中,讓 STM32 進入停機模式比較容易,調用固件庫函數 PWR_EnterSTOPMode
即可,不過要注意:為了進入停機模式,所有的外部中斷的請求位(掛起寄存器(EXTI_PR))和 RTC 的鬧鍾
標志都必須被清除,否則停止模式的進入流程將會被跳過,程序繼續運行。
STM32F103 如何退出停機模式
由於我們是采用指令 WFI 指令進入停機模式,那么設置任一外部中斷線 EXTI 為中斷模式並且在 NVIC
中必須使能相應的外部中斷向量,就可以使用此中斷喚醒停機模式。
在開發板上面是將實體按鍵 K2 對應的引腳設置為中斷方式觸發。按下此按鍵會將系統從停機模式喚
醒。
STM32F103 使用停機模式注意事項
使用停機模式注意以下兩個問題:
進入停機模式前,一定要關閉滴答定時器,實際測試發現滴答定時器中斷也能喚醒停機模式。
當一個中斷或喚醒事件導致退出停機模式時,HSI RC 振盪器被選為系統時鍾。 這個時候用戶要根據
需要重新配置時鍾,如果使用的 HSE 時鍾,那么要重新配置並使能 HSE 和 PLL。

STM32Fxx 如何進入停機模式
在 FreeRTOS 系統中,讓 STM32 進入停機模式比較容易,調用固件庫函數 PWR_EnterSTOPMode
即可,不過要注意:為了進入停機模式,所有 EXTI 線掛起位(在掛起寄存器 (EXTI_PR)中)、 RTC 鬧鍾
(鬧鍾 A 和鬧鍾 B)、 RTC 喚醒、 RTC 入侵和 RTC 時間戳標志必須復位,否則停機模式的進入流程將會被
跳過,程序繼續運行。
STM32F4xx 如何退出停機模式
由於我們是采用指令 WFI 指令進入停機模式,那么設置任一外部中斷線 EXTI 為中斷模式並且在 NVIC
中必須使能相應的外部中斷向量,就可以使用此中斷喚醒停機模式。
在開發板上面是將實體按鍵 K2 對應的引腳設置為中斷方式觸發,按下此按鍵會將系統從停機模式喚
醒。
STM32F4xx 使用停機模式注意事項
使用停機模式注意以下兩個問題:
進入停機模式前,一定要關閉滴答定時器,實際測試發現滴答定時器中斷也能喚醒停機模式。
當一個中斷或喚醒事件導致退出停機模式時,HSI RC 振盪器被選為系統時鍾。 這個時候用戶要根據
需要重新配置時鍾,如果使用的 HSE 時鍾,那么要重新配置並使能 HSE 和 PLL。
如何有效降低停機模式下的功耗
設計低功耗主要從以下幾方面着手:
注意 I/O 的狀態。 因為在停機狀態下,所有的 I/O 引腳都保持它們在運行模式時的狀態。
如果此 I/O 口帶上拉,請設置為高電平輸出或者高阻態輸入。
如果此 I/O 口帶下拉,請設置為低電平輸出或者高阻態輸入。
注意 I/O 和外設 IC 的連接。
測試低功耗的時候,一定不要連接調試器,更不能邊調試邊測電流。
F429關於低功耗的停機模式說明:
(1) 停機模式是在 Cortex-M4F 的深睡眠模式基礎上結合了外設的時鍾控制機制,在停機模式下
電壓調節器可運行在正常或低功耗模式。此時在 1.2V 供電區域的的所有時鍾都被停止,PLL、
HSI 和 HSE 的 RC 振盪器的功能被禁止,SRAM 和寄存器內容被保留下來。
(2) 在停機模式下,所有的 I/O 引腳都保持它們在運行模式時的狀態。
(3) 一定要關閉滴答定時器,實際測試發現滴答定時器中斷也能喚醒停機模式。
(4) 當一個中斷或喚醒事件導致退出停機模式時, HSI RC 振盪器被選為系統時鍾。
(5) 退出低功耗的停機模式后,需要重新配置使用 HSE。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM