問題描述
stm32f0308正常是運行在Run mode下,這種mode是在reset之后的默認模式。Low Power Mode,即低功耗模式,用于在IC空閑時可以考慮選擇進入,使系統耗能降低,在必要的時候通過喚醒在進入Run mode正常工作。Low Power Mode,在嵌入式系統中考慮的很多,也很關鍵,因為一般都是用移動電源供電,合理使用Low Power Mode,會很好的提高設備的續航能力。
Low Power Mode方式
Sleep Mode:CPU時鐘關閉,所有peripheral時鐘運行;
Stop Mode:所有時鐘均停止;
Standby Mode:1.8 V domain power-off,這里domain power-off應當是相當于關閉了給IC供電的電源。
另外,如果在Run Mode下,也可以通過如下手段來降低功耗:
降低System Clock的速度,即通過Clock的配置,利用分頻的作用,將系統Clock從最高的48MHz降低,這部分的配置可以參考Clock相關文檔或文章;
當不使用APB或AHB peripheral時,使用門控時鐘的方式。在peripheral配置使用時,一般會先通過RCC_AH/PBClockCmd(xx,Enable)之類的接口來使能peripheral時鐘,有時候,可能這個peripheral并沒有再使用了,那可以通過RCC_AH/PBClockCmd(xx,Disable)的接口將其關閉,也可以省些電。這里的RCC_AH/PBClockCmd()是stm32的固件庫中提供的,需要了解細節的可以看下stm32固件庫,其中主要是通過對RCC_APBENR和RCC_AHBENR register操作來使能/禁止某項peripheral的時鐘的。
幾種Low Power Mode的比較如下:
Sleep Mode
如何進入Sleep Mode?
執行WFI (Wait For Interrupt) 指令或WFE (Wait for Event)指令。進入Sleep Mode的機制可以通過Cortex-M0 System Control register的SLEEPONEXIT bit來選擇:
6. Sleep-now:SLEEPONEXIT bit置零,在WFI/WFE指令執行之后立即進Sleep Mode;
7. Sleep-on-exit:SLEEPONEXIT bit置1,在MCU退出了最低優先級的ISR之后,即系統沒有任何ISR在處理時,就會進入Sleep Mode。
如何退出Sleep Mode?
退出Sleep Mode的方式和使用的進入Sleep Mode的指令WFI和WFE有關,使用WFI進入Sleep Mode,任何中斷的發生都會導致退出Sleep Mode,而WFE指令進入的Sleep Mode,在event發生時會退出Sleep Mode,對于WFE指令進入Sleep Mode的方式,需要使用如下兩種方式配置其退出Sleep Mode:
8. 使能一個peripheral中斷(非NVIC中斷),使能Cortex-M0 System Control register的SEVONPEND bit,當MCU從WFE Sleep Mode醒來時,需要清掉peripheral interrupt pending bit和peripheral NVIC IRQ channel pending bit ;
9. 配置一個外部或內部EXTI line為event模式。
Sleep Mode進入退出場景比較
Stop Mode
比Sleep Mode更進一步,IC內部Clock應當都停止了,SRAM和register,IO口狀態是保持在上一刻進入Stop Mode時的狀態。
Stop Mode進出場景比較
Standby Mode
比Stop Mode更省電,SRAM和register只有部分維持數據(需看下register表,應當有標明為Standby Circuitry的)。
Standby Mode進出場景比較
在上面的Stop Mode和Standby Mode中, 貌似IWDG,RTC,LSI和LSE還是由這幾個peripheral各自的register編程設定而受控制的,因為即使是進入了Low Power Mode,RTC的功能還是需要的,因為要計時,這很重要。
Low Power Mode下的debug問題
因為進入Stop Mode和Standby Mode后,Cortex M0其實已經停止了(Clock關閉了),因此用swd此時應當是沒辦法debug的,不過stm32f0308的資料說,通過設置DBGMCU_CR register的一些配置,還是可以debug的,但是沒有進一步詳細的說明了……不過,對于stm32f0308這顆IC,貌似在進入Low Power Mode后,也沒必要去debug,因為Stop Mode和Standby Mode本來就沒有代碼在執行了,除非是stm自己在開發和驗證IC時,可能需要做些debug,所以這里對使用者來說,應當沒有什么所謂了。
Low Power Mode的RTC喚醒方式
RTC alarm方式可以用來喚醒Stop mode和Standby Mode,RTC時鐘源可以選擇LSE,也可以是LSI,這兩個低速時鐘都適合用于低功耗的。
對于RTC alarm喚醒Stop Mode,需要:
10. 配置EXTI line 17為上升沿;
11. 配置RTC可產生RTC alarm。
對于RTC alarm喚醒Standby Mode,則只需要RTC可產生RTC alarm即可。
上一篇:ST-Link設備連接正常以后,在keil配置時卻找不到相關設備
下一篇:STLINK找不到debug session的解決辦法
推薦閱讀
史海拾趣
在全球電子行業快速發展的背景下,DRS面臨著來自各方面的挑戰。為了應對這些挑戰,DRS不斷加強研發投入,提高產品質量和服務水平。同時,公司也積極拓展國際市場,尋求更多的合作機會。通過這些努力,DRS在全球電子行業中保持了領先地位,并為未來的發展奠定了堅實的基礎。
請注意,由于篇幅限制,以上故事均為概述性質,具體細節和背景信息可能有所省略。
隨著全球化趨勢的加劇,飛虹高科公司意識到,要想在國際市場上取得更大的成功,必須與國際同行展開合作。因此,公司積極尋求與國際知名企業的合作機會,通過技術合作、合資建廠等方式,共同開發新產品、拓展新市場。這些合作不僅為公司帶來了資金和技術支持,還幫助公司擴大了國際影響力,提高了產品的國際競爭力。
隨著全球對環保和可持續發展的關注度不斷提高,Elite也積極響應這一趨勢。公司注重環保理念在生產過程中的貫徹實施,采用環保材料和節能技術,減少生產過程中的污染排放。同時,Elite還積極參與環保公益活動,推動環保理念的普及和實踐。這些努力不僅提升了公司的社會形象,也為公司的可持續發展奠定了堅實基礎。
隨著全球化進程的加速,Datakey Electronics意識到單靠國內市場已經無法滿足公司的長遠發展需求。于是,公司積極尋求國際合作機會,與國際知名企業建立戰略合作伙伴關系,共同開發新產品、開拓新市場。通過國際合作,Datakey Electronics不僅提高了自身的技術水平和產品競爭力,還成功將產品推向了國際市場。
ETA-USA一直注重技術創新和研發實力的提升。公司擁有一支高素質的研發團隊和先進的研發設施,不斷推出具有競爭力的新產品和解決方案。同時,ETA-USA還積極與高校、科研機構等合作,共同推動電子技術的創新和發展。
隨著業務的發展和市場的擴大,ETA-USA開始在全球范圍內布局。公司先后在中國、歐洲等地設立了分公司或辦事處,以更好地服務當地客戶。這一全球擴張策略不僅增強了公司的市場競爭力,也為其帶來了更多的商業機會和合作伙伴。
1:2440在ADC等待模式的中斷,只能每按一次產生一次中斷,如果我想按下去一直放手,最后也只能產生一次中斷....做到手寫的驅動是需要按下時一直繼續進行采樣的,可在2440不知道怎樣做 2:自動X,y轉換模式應當怎樣使用?我試過后好像不能進入中斷服務程序 ...… 查看全部問答∨ |
|
我想在wince環境下 生成一個xml文件 內容有 <?xml version="1.0" encoding="GB2312"?> <note> <to>George</to> <from>John</from> & ...… 查看全部問答∨ |
有誰知道一般的科學計算器用的是什么型號的CPU?51系列還是其它的呢?謝謝! 自己想搭個硬件平臺做科學計算器,把自己的計算器拆開只看到一個裸片,一塊大黑痣里面是啥都看不到郁悶!有人知道一般的科學計算器都用什么cpu來實現么,不知c51能不能符合要求,因為c51對浮點的支持比較差,只支持到單精度,這對對精度要求較高的 ...… 查看全部問答∨ |
哪位有STM8L151G4 和STM8L152M8的最小系統圖 抱歉 我不是故意伸手 主要是時間緊 而且剛接手 時間來不及 哪位有的高手請麻煩幫忙一下 我郵箱是396095630@qq.com萬分感謝… 查看全部問答∨ |
|
數碼管的位選能不接三極管直接接IO口嗎?為什么? 點陣可不可以不接芯片,直接用三極管驅動?為什么? 點陣可不可以直接接IO口?為什么? 請各位大大教教小白。 那還有一個問題就是接電阻的作用是限流,但是限流不就讓電流更小了嗎?那不就不會 ...… 查看全部問答∨ |
在電力電子控制系統中,FPGA的確比單純的DSP控制有優勢,本次項目面向電動汽車的電池管理系統,Cyclone V的性能很不錯,希望可以得到開發板作為測試,如果有幸得到開發板,屆時也會第一時間和網友分享使用經驗。 [ 本帖最后由 buer1209 于 2012-10- ...… 查看全部問答∨ |
一、MSP430單片機的端口概述 P1~P6每組有8個I/O 口,P3,P4,P5,P6具有I/O,及其它片內外設功能,每組具有4個寄存器。P1,P2除具有上述功能外還具有中斷能力,每組具有7個寄存器。 二、PX端口 1. P1,P2端口 (1)PxDIR 輸入/輸出方向寄存器(x ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- STM32一文通(6) 外部中斷
- ESP32玩轉MicroPython(一) 燒入固件, 初識
- ESP32玩轉MicroPython(二) 連接WIFI網絡 webperl文件傳輸
- ESP32玩轉MicroPython(三) 延時、計時 和GPIO操作
- 玩轉 ESP32 + Arduino (一) 開發環境搭建
- 玩轉 ESP32 + Arduino (四) 電容按鍵 霍爾傳感器 外部中斷 延時 脈沖檢測
- 玩轉 ESP32 + Arduino (五) platformIO引入類庫 自開發庫 串口打印字符串
- 玩轉 ESP32 + Arduino (六) 硬件定時器, IIC, SPI
- 玩轉 ESP32 + Arduino (八) U8G2驅動OLED
- STM32一文通(6) 外部中斷
- ESP32玩轉MicroPython(一) 燒入固件, 初識
- ESP32玩轉MicroPython(二) 連接WIFI網絡 webperl文件傳輸
- 助力全電氣時代:浩亭亮相2025漢諾威工業博覽會
- ESP32玩轉MicroPython(三) 延時、計時 和GPIO操作
- Gartner:到2027年,AI代理將使利用賬號暴露進行攻擊的時間減少50%
- 玩轉 ESP32 + Arduino (一) 開發環境搭建
- 玩轉 ESP32 + Arduino (四) 電容按鍵 霍爾傳感器 外部中斷 延時 脈沖檢測
- 玩轉 ESP32 + Arduino (五) platformIO引入類庫 自開發庫 串口打印字符串
- 玩轉 ESP32 + Arduino (六) 硬件定時器, IIC, SPI