STM待機喚醒實驗_第1頁
STM待機喚醒實驗_第2頁
STM待機喚醒實驗_第3頁
STM待機喚醒實驗_第4頁
STM待機喚醒實驗_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、1會計學(xué)STM待機喚醒實驗待機喚醒實驗例說例說STM32STM3222021-12-1 很多單片機都有低功耗模式,STM32也不例外。在系統(tǒng)或電源復(fù)位以后,微控制器處于運行狀態(tài)。運行狀態(tài)下的HCLK為CPU提供時鐘,內(nèi)核執(zhí)行程序代碼。當CPU不需繼續(xù)運行時,可以利用多個低功耗模式來節(jié)省功耗,例如等待某個外部事件時。用戶需要根據(jù)最低電源消耗,最快速啟動時間和可用的喚醒源等條件,選定一個最佳的低功耗模式。 STM32的低功耗模式有3種:1)睡眠模式(CM3內(nèi)核停止,外設(shè)仍然運行)2)停止模式(所有時鐘都停止)3)待機模式(1.8V內(nèi)核電源關(guān)閉)在運行模式下,我們也可以通過降低系統(tǒng)時鐘關(guān)閉APB和A

2、HB總線上未被使用的外設(shè)的時鐘來降低功耗。例說例說STM32STM3232021-12-1 三種低功耗模式一覽表見三種低功耗模式一覽表見下下表表:例說例說STM32STM3242021-12-1 在這三種低功耗模式中,最低功耗的是待機模式,在此模式下,最低只需要2uA左右的電流。停機模式是次低功耗的,其典型的電流消耗在20uA左右。最后就是睡眠模式了。用戶可以根據(jù)自己的需求來決定使用哪種低功耗模式。 本章,我們就針對STM32的最低功耗模式-待機模式,來做介紹。待機模式可實現(xiàn)STM32的最低功耗。該模式是在CM3深睡眠模式時關(guān)閉電壓調(diào)節(jié)器。整個1.8V供電區(qū)域被斷電。PLL、HSI和HSE振蕩

3、器也被斷電。SRAM和寄存器內(nèi)容丟失。只有備份的寄存器和待機電路維持供電。 那么我們?nèi)绾芜M入待機模式呢?其實很簡單,只要按下圖所示的步驟執(zhí)行就可以了:例說例說STM32STM3252021-12-1 從上圖可知,我們有4種方式可以退出待機模式,即當一個外部復(fù)位(NRST引腳)、IWDG復(fù)位、WKUP引腳上的上升沿或RTC鬧鐘事件發(fā)生時,微控制器從待機模式退出。從待機喚醒后,除了電源控制/狀態(tài)寄存器(PWR_CSR),所有寄存器被復(fù)位。例說例說STM32STM3262021-12-1 從待機模式喚醒后的代碼執(zhí)行等同于復(fù)位后的執(zhí)行(采樣啟動模式引腳,讀取復(fù)位向量等)。電源控制/狀態(tài)寄存器(PWR_

4、CSR)將會指示內(nèi)核由待機狀態(tài)退出。 在進入待機模式后,除了復(fù)位引腳以及被設(shè)置為防侵入或校準輸出時的TAMPER引腳和被是能的喚醒引腳(WK_UP腳),其他的IO引腳都將處于高阻態(tài)。例說例說STM32STM3272021-12-1電源電源控制寄存器(控制寄存器(PWR_CR)我們通過設(shè)置PWR_CR的PDDS位,使CPU進入深度睡眠時進入待機模式,同時我們通過CWUF位,清除之前的喚醒位。例說例說STM32STM3282021-12-1例說例說STM32STM3292021-12-1電源控制電源控制/狀態(tài)寄存器(狀態(tài)寄存器(PWR_CSR)這里,我們通過設(shè)置PWR_CSR的EWUP位,來使能W

5、KUP引腳用于待機模式喚醒。我們還可以從WUF來檢查是否發(fā)生了喚醒事件。例說例說STM32STM32102021-12-1例說例說STM32STM32112021-12-11 1)設(shè)置設(shè)置SLEEPDEEP位位。該位在系統(tǒng)控制寄存器(SCB_SCR)的第二位(詳見CM3權(quán)威指南,第182頁表13.1),我們通過設(shè)置該位,作為進入待機模式的第一步。2 2)使)使能電源時鐘,設(shè)置能電源時鐘,設(shè)置WK_UP引腳作為喚醒源。引腳作為喚醒源。因為要配置電源控制寄存器,所以必須先使能電源時鐘。然后再設(shè)置PWR_CSR的EWUP位,使能WK_UP用于將CPU從待機模式喚醒。例說例說STM32STM32122

6、021-12-13 3)設(shè)置設(shè)置PDDS位,執(zhí)行位,執(zhí)行WFI指令,進入待機模式。指令,進入待機模式。接著我們通過PWR_CR設(shè)置PDDS位,使得CPU進入深度睡眠時進入待機模式,最后執(zhí)行WFI指令開始進入待機模式,并等待WK_UP中斷的到來。4 4)最后編寫最后編寫WK_UP中斷函數(shù)。中斷函數(shù)。因為我們通過WK_UP中斷(PA0中斷)來喚醒CPU,所以我們有必要設(shè)置一下該中斷函數(shù),同時我們也通過該函數(shù)里面進入待機模式。例說例說STM32STM32132021-12-1 硬件設(shè)計:硬件設(shè)計:本章,我們使用了WK_UP按鍵用于喚醒和進入待機模式。然后通過DS0來指示程序是否在運行。因為DS0和W

7、K_UP在MiniSTM32開發(fā)板上都是直接連在STM32的IO口上的,不需要任何修改。 實驗現(xiàn)象:實驗現(xiàn)象:下載代碼到開發(fā)板后看到開發(fā)板一點反應(yīng)沒有。此時,我們長按WK_UP按鍵3秒鐘左右,可以看到DS0開始閃爍。然后再然后再長按WK_UP,DS0會滅掉,程序再次進入待機模式。例說例說STM32STM32142021-12-1軟件設(shè)計:軟件設(shè)計:wkup.c例說例說STM32STM32152021-12-1例說例說STM32STM32162021-12-1sys.c例說例說STM32STM32172021-12-1 main函數(shù)函數(shù)例說例說STM32STM32182021-12-1 從待機模式喚醒后的代碼執(zhí)行等同于復(fù)位后的執(zhí)行(采樣啟動模式引腳,讀取復(fù)位向量等)。電源控制/狀態(tài)寄存器(PWR_CSR)將會指示內(nèi)核由待機狀態(tài)退出。 在進入待機模式后,除了復(fù)位引腳以及被設(shè)置為防侵入或校準輸出時的TAMPER引腳和被是能的喚醒引腳(WK_UP腳),其他的IO引腳都將處于高阻態(tài)。例說例說STM32STM32192021-12-1 硬件設(shè)計:硬件設(shè)計:本章,我們使用了WK_UP按鍵用于喚醒和進入待機模式。然后通過DS0來指示程序是否在運行。因為DS0和WK_UP在MiniSTM32開發(fā)板

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論