市場上的產(chǎn)品越來越多的低功耗需求,對于單片機的電源管理就要求越來越高,關注度自然也會增加。一起看一下Cortex-M3對于電源管理的一些特性吧。
1、休眠模式
Cortex-M3提供的休眠模式為一種電源管理特性,在休眠模式中,系統(tǒng)時鐘可能會停止,而自由運行時鐘輸入仍可能在運行,以便處理器可由中斷喚醒。
處理器有下面兩種休眠模式:
休眠:Cortex-M3處理器的SLEEPING信號表示休眠狀態(tài)。
深度休眠:Cortex-M3處理器的SLEEPDEEP信號表示深度休眠狀態(tài)。
NVIC系統(tǒng)控制寄存器的SLEEPDEEP位決定休眠模式的類型。
休眠模式由等待中斷(WFI)或等待事件(WFE)指令觸發(fā),事件可以是中斷、之前觸發(fā)的中斷或者通過接收事件(EXEV)信號生成的信號脈沖。處理器內(nèi)部具有事件鎖存,因為之前的時間也可以將處理器從WFE中喚醒。

根據(jù)芯片的不同設計,進入休眠模式后處理器的實際動作可能會不同,不過一般是停止一些時鐘以降低功耗,或者可能的話將芯片整個關掉,所有的時鐘信號也會因此停止。在芯片被完全關掉的情況下,只能通過系統(tǒng)復位喚醒系統(tǒng)。
2、退出休眠特性
休眠模式的另外一個特性為它可以被設置為在退出中斷程序后自動回到休眠。這樣若沒有需要處理的中斷,內(nèi)核就可以一直保持休眠狀態(tài)。要使用這個特性,我們需要設置系統(tǒng)控制寄存器里的SLEEPONEXIT位。
應該注意的是,若使能了退出休眠特性,處理器可以在任何異常退出時進入休眠,即便是沒有執(zhí)行WFE/WFI指令。要確保處理器只在需要時進入休眠,那么若系統(tǒng)未準備好進入休眠,就不要設置SLEEPONEXIT位。
3、喚醒中斷控制器
喚醒中斷控制器(WIC)在Cortex-M3中作為一種可選單元出現(xiàn),它被連接到已有的NVIC上,并且在中斷到達時產(chǎn)生喚醒請求。
從軟件的角度來看,WFI和WFE的效果是一樣的。WIC中沒有可編程寄存器,它可以從NVIC的接口上得到所需的所有信息。通過WIC的使用,進入處理器內(nèi)核的時鐘信號可以完全停止。當有中斷請求到達時,WIC會向芯片中的系統(tǒng)控制器或電源管理單元(PMU)發(fā)出喚醒請求,通知芯片恢復處理器時鐘。

往期回顧:
●聊一聊單片機堆棧
●你知道USB的NRZI編碼嗎?
●什么是USB的描述符?
END

