一、電源管理—實現低功耗
電源對電子設備的重要性不言而喻,它是保證系統穩定運行的基礎,而保證系統能穩定運行后,又有低功耗的要求。 在很多應用場合中都對電子設備的功耗要求非常苛刻,如某些傳感器信息采集設備,僅靠小型的電池提供電源,要求工作長達數年之久,且期間不需要任何維護;由于智慧穿戴設備的小型化要求,電池體積不能太大導致容量也比較小,所以也很有必要從控制功耗入手,提高設備的續行時間。 因此, STM32 有專門的電源管理外設監控電源并管理設備的運行模式, 確保系統正常運行,并盡量降低器件的功耗。
默認情況下,系統復位或上電復位后,微控制器進入運行模式。在運行模式下, CPU 通過HCLK 提供時鐘,并執行程序代碼。系統提供了多個低功耗模式,可在 CPU不需要運行時(例如等待外部事件時)節省功耗。由用戶根據應用選擇具體的低功耗模式,以在低功耗、短啟動時間和可用喚醒源之間尋求最佳平衡。
詳細信息看中文手冊的第五章,5.3電源管理
器件有三個低功耗模式:
(1)睡眠模式(Cortex-M4內核停止,外設保持運行,喚醒速度是最快的,
執行WFI (Wait For Interrupt,任何中斷都能喚醒)
(2)停止模式(所有時鐘都停止,執行PWR_EnterSTOPMode,外部中斷控制線喚醒,例如按鍵)
(3)待機模式(1.2 V 域斷電,喚醒速度最慢,程序從頭開始運行,就跟手機關機一樣,這種模式一般用的不多,調用PWR_EnterSTANDBYMode)
此外,可通過下列方法之一降低運行模式的功耗:
(1)降低系統時鐘速度
(2)不使用 APBx 和 AHBx 外設時,將對應的外設時鐘關閉
二、睡眠模式
在睡眠模式中,僅關閉了內核時鐘,內核停止運行,但其片上外設, CM4 核心的外設全都還照常運行。有兩種方式進入睡眠模式,它的進入方式決定了從睡眠喚醒的方式,分別是 WFI(wait for interrupt)和 WFE(wait for event),即由等待“中斷”喚醒和由“事件”喚醒。
1.睡眠模式各種特性
立即睡眠 :在執行 WFI 或 WFE 指令時立即進入睡眠模式。
退出時睡眠 :在退出優先級最低的中斷服務程序后才進入睡眠模式。
進入方式: 內核寄存器的 SLEEPDEEP = 0 ,然后調用 WFI 或 WFE 指令即可進入睡眠模式;
另外若內核寄存器的 SLEEPONEXIT=0 時 , 進入“ 立即睡眠 ” 模式SLEEPONEXIT=1 時,進入“退出時睡眠”模式。
喚醒方式: 如果是使用 WFI (Wait From Interrupt)指令睡眠的,則可使用任意中斷喚醒;如果是使用 WFE(Wait From Event) 指令睡眠的,則由事件喚醒。
睡眠時 ,關閉內核時鐘,內核停止,而外設正常運行,在軟件上表現為不再執行新的代碼。這個狀態會保留睡眠前的內核寄存器、內存的數據。
喚醒延遲 :無延遲。
喚醒后 ,若由中斷喚醒,先進入中斷,退出中斷服務程序后,接著執行 WFI 指令后的程序;若由事件喚醒,直接接著執行 WFE 后的程序。
進入睡眠模式之后,任意中斷可以喚醒CPU。
三、停止模式
在停止模式中,進一步關閉了其它所有的時鐘,于是所有的外設都停止了工作,但由于其 1.2V 區域的部分電源沒有關閉,還保留了內核的寄存器、內存的信息,所以從停止模式喚醒,并重新開啟時鐘后,還可以從上次停止處繼續執行代碼。停止模式可以由任意一個外部中斷(EXTI)喚醒。在停止模式中可以選擇電壓調節器為開模式或低功耗模式,可選擇內部 FLASH 工作在正常模式或掉電模式。
當退出停止模式后,它是選擇內部的HSI RC振蕩器作為時鐘,但是這不是我們想要的CPU的頻率,所以重新調用SysteInit函數
1.停止模式的各種特性
調壓器低功耗模式 :在停止模式下調壓器可工作在正常模式或低功耗模式,可進一步降低功耗
FLASH掉電模式 : 在停止模式下 FLASH 可工作在正常模式或掉電模式,可進一步降低功耗
進入方式 : 內核寄存器的 SLEEPDEEP =1, PWR_CR 寄存器中的 PDDS=0,然后調用 WFI或 WFE 指令即可進入停止模式;
PWR_CR 寄存器的 LPDS=0 時,調壓器工作在正常模式, LPDS=1 時工作在低功耗模式;
PWR_CR 寄存器的 FPDS=0 時, FLASH 工作在正常模式, FPDS=1 時進入掉電模式。
喚醒方式 : 如果是使用 WFI 指令睡眠的,可使用任意 EXTI 線的中斷喚醒;如果是使用 WFE 指令睡眠的,可使用任意配置為事件模式的 EXTI 線事件喚醒。
停止時, 內核停止,片上外設也停止。這個狀態會保留停止前的內核寄存器、內存的數據。
喚醒延遲 : 基礎延遲為 HSI 振蕩器的啟動時間,若調壓器工作在低功耗模式,還需要加上調壓器從低功耗切換至正常模式下的時間,
若 FLASH 工作在掉電模式,還需要加上 FLASH 從掉電模式喚醒的時間。
喚醒后, 若由中斷喚醒,先進入中斷,退出中斷服務程序后,接著執行 WFI 指令后的程序;若由事件喚醒,直接接著執行 WFE 后的程序。喚醒后, STM32會使用 HIS 作為系統時鐘。
由外部中斷按鍵觸發喚醒。
四、待機模式
待機模式,它除了關閉所有的時鐘,還把 1.2V 區域的電源也完全關閉了,也就是說,從待機模式喚醒后,由于沒有之前代碼的運行記錄,只能對芯片復位,重新檢測 boot 條件,
從頭開始執行程序。它有四種喚醒方式,分別是 WKUP(PA0)引腳的上升沿(相當于手機的電源鍵), RTC 鬧鐘事件(相當于手機自動開機), NRST 引腳的復位和 IWDG(獨立看門狗)復位。
1、 待機模式的各種特性
進入方式 : 內核寄存器的 SLEEPDEEP =1, PWR_CR 寄存器中的 PDDS=1, PWR_CR 寄存器中的喚醒狀態位 WUF=0,然后調用 WFI 或 WFE 指令即可進入待機模式;
喚醒方式 : 通過 WKUP 引腳的上升沿, RTC 鬧鐘、喚醒、入侵、時間戳事件或NRST 引腳外部復位及 IWDG 復位喚醒。
待機時 , 內核停止,片上外設也停止;內核寄存器、內存的數據會丟失;除復位引腳、 RTC_AF1 引腳及 WKUP 引腳,其它 I/O 口均工作在高阻態。
喚醒延遲 : 芯片復位的時間
喚醒后 , 相當于芯片復位,在程序表現為從頭開始執行代碼
上一篇:STM32紅外串口接收
下一篇:STM32嵌入式FLASH擦除與寫入
推薦閱讀
史海拾趣
近年來,隨著數字化技術的快速發展,Broyce Control也面臨著新的挑戰和機遇。為了適應市場的變化和客戶的需求,公司開始進行數字化轉型和升級。通過引入先進的生產管理系統和智能制造技術,Broyce Control提高了生產效率和產品質量。同時,公司還加強了與互聯網和物聯網技術的融合,推出了一系列智能化、網絡化的新產品和服務。這些創新舉措使得Broyce Control在數字化時代繼續保持了強勁的發展勢頭。
這五個故事雖然基于虛構,但盡量遵循了Broyce Control公司發展的邏輯和可能趨勢。它們展示了Broyce Control從創立初期到逐漸發展成為電子行業領導者的過程,以及公司在技術創新、市場擴張和行業影響力提升等方面所做的努力。這些故事旨在展現一個真實而鮮活的Broyce Control形象,同時也為讀者提供了關于電子行業發展的有趣視角。
隨著可穿戴設備的興起,Cramer公司迅速捕捉到了市場機遇。他們推出了一款智能手表,該手表不僅具備基本的時間顯示功能,還集成了健康監測、運動追蹤等多項實用功能。為了提升產品的競爭力,Cramer公司與多家科技公司合作,共同研發新技術。這款智能手表在市場上獲得了廣泛認可,進一步提升了Cramer公司的品牌知名度和市場份額。
為了確保產品質量的穩定性和可靠性,Antelec公司高度重視質量管理體系的建設。公司引入了國際先進的質量管理標準,建立了完善的質量管理體系,并不斷加強員工的質量意識和技能培訓。這些舉措使得公司的產品質量得到了持續提升,贏得了客戶的廣泛認可。
隨著公司規模的不斷擴大和產品線的日益豐富,兵字公司開始注重品牌建設和市場拓展。公司注冊了“BingZi兵字”商標,并通過一系列的市場推廣活動,提升了品牌的知名度和美譽度。同時,兵字公司還積極開拓國內外市場,與多家知名企業建立了長期穩定的合作關系,實現了業務的快速增長。
面對日益增長的市場需求,Baneasa SA意識到必須提升產能以滿足客戶的需求。于是,公司投入大量資金對生產線進行升級改造,引進了先進的生產設備和技術。這些舉措使得Baneasa SA的產能得到了大幅提升,同時也保證了產品質量的穩定性和可靠性。
駿曄科技在無線通訊模塊領域一直尋求創新。2019年,公司與硬之城達成戰略合作,推出了高性能的FSK雙向收發模塊。這款模塊采用了最新的FSK調制技術,極大地提高了數據傳輸的穩定性和效率。通過這一創新,駿曄科技在物聯網設備通訊領域取得了顯著的市場份額增長。
兩個項目急招兩個職位: 工作內容: 1)參與公司嵌入平臺方案和構架,系統設計和開發; 2)從事嵌入式產品的軟件需求分析、軟件設計與開發; 3)負責需求文檔、設計文檔、培訓文檔的編寫; 任職要求: 電子、通信計算機軟件、電力自動化相 ...… 查看全部問答∨ |
|
INT8U ContrastValue = 0x38; INT8U BT_State; void ClearScreen(void); void Print(INT8U y, INT8U x, INT8U ch[], INT16U yn); void Print6(INT8U xx,INT8U yy,INT8U ch1[],INT8U yn); 上述程序中INT8U 或著16U是什么意思啊?… 查看全部問答∨ |
|
哪些端口是CMOS口呢?資料上不是很清楚啊,資料中把IO口分為TTL 兼容口和CMOS兼容 口,TTL又有一部分是FT,可是CMOS是哪些呢? … 查看全部問答∨ |