搜尋

會員登入

搜尋

導覽

會員
廣告
廣告

MCU睡眠模式(Sleep Mode)大解密

瀏覽次數:20

電池供電的感測器、智慧家居與可攜式裝置,經常花大量時間等待事件。延長續航的關鍵,是讓CPU只在需要時工作,並把監測、取樣與資料搬移交給適合的周邊。Microchip PIC16、PIC18與PIC32C微控制器(MCU)提供不同層次的省電機制,讓設計兼顧功耗與反應速度。

●睡得越深就一定越省電嗎

Sleep可停止CPU與主要系統時脈,但支援獨立時脈的周邊仍可能運作。真正該比較的是整個工作週期的平均電流:睡眠底電流、喚醒頻率,以及每次處理與通訊的時間都會影響結果。若休眠時間太短,喚醒與重新初始化的代價也可能是非預期的功耗來源。[1][2]

模式與保留功能依型號而異,表中模式並非全系列皆支援。

●PIC16可善用彈性的低功耗功能,

提升感測器應用效能

‧ 依工作需求選模式:CPU還有背景工作時用Doze;等待依賴系統時脈的周邊時用Idle;僅保留可獨立運作的周邊與喚醒來源時,評估Sleep。Doze只是降低CPU與程式記憶體的運作頻率,CPU並未停止。[1][7]

‧ 先確認IDLEN:以 PIC16F18146 為例,CPUDOZE.IDLEN=0 時,SLEEP指令進入Sleep;設為 1則進入Idle。[7]

‧ 讓ADCC自主監測:PIC16F18146/PIC16F17146可使用內部ADCRC,在Sleep中取樣與比較門檻,只在符合設定條件時中斷,減少CPU需逐筆處理所需功耗。[3]

‧ 掌握設定順序:選ADCRC→ 確認取樣時間與參考電壓 → 設定ADLTH/ADUTH及比較條件 → 啟用連續取樣與門檻中斷 → 處理既有旗標、啟動轉換 → 進入Sleep。若只想越界喚醒,避免同時啟用每筆轉換完成中斷。[3][7]

‧ 用上下限避免頻繁切換:水位低於下限時喚醒CPU啟動幫浦,改監測上限;到達上限時再喚醒並停止幫浦,恢復下限監測。上下限形成遲滯區間,避免在單一門檻附近反覆切換,如下圖。[3]

‧ 關閉閒置功能並量測:以PMD關閉不用的模組時脈,檢查DAC、FVR與振盪器的啟用狀態;重新使用時依資料表恢復設定並等待穩定。確認喚醒來源、使能與旗標,再以完整工作週期的平均電流評估連續監測或週期喚醒。[1][3][7]

適用提醒:各PIC16型號的ADCC、省電模式與Sleep喚醒能力不同,請依目標元件資料表確認。[3][7]

●PIC18用Doze與Idle消除空等

以PIC18FxxK42為例,可利用Doze、Idle與Sleep搭配應用節奏。CPU還有背景工作、周邊需要維持速度時,可選Doze;等待周邊完成時,可用 Idle 取代輪詢。支援DMA 的型號,也可減少CPU搬移資料的負擔。[1][4]

別忘了PMD周邊模組停用功能:關閉不用的模組時脈,可進一步降低動態耗電。重新啟用後應依資料表確認暫存器狀態與初始化需求;需要負責喚醒的模組則必須保留。[1]

●PIC32C善用SleepWalking自主工作

PIC32C涵蓋多個子系列,以下以PIC32CM LE00/LS00/LS60說明。這些元件可在Standby中利用SleepWalking,按需求啟動周邊時脈,讓CPU持續休息;配合Event System與DMA,可在周邊之間傳遞觸發與搬移資料。[5]

例如讓RTC定時透過Event System觸發ADC,只有量測值超出門檻,才以中斷喚醒CPU處理與回報。Microchip的PIC32CM LE00教學即示範這類流程,避免每次取樣都由CPU介入。[6]

設定時需確認周邊的RUNSTDBY、GCLK、ONDEMAND 與事件路徑。LE/LS 系列另可調整電源域與SRAM保留範圍;若使用Off模式,須以重置恢復,不能當成一般中斷喚醒的Standby使用。[5]

●從會睡眠到真正省電的五個步驟

1. 先定義需求:確認最長反應時間、取樣頻率、喚醒來源,以及哪些RAM資料必須保留。

2. 建立事件流程:將輪詢改為中斷,能交給ADCC、Event System或DMA的工作,優先由硬體完成。

3. 整理時脈與周邊:關閉閒置模組,保留必要時脈;檢查WDT、BOR/BOD的設定與額外耗電。

4. 檢查Board Level漏電:避免數位輸入浮接,評估分壓器、上拉電阻、感測器與穩壓器的靜態電流。[2]

5. 量測完整週期:先量持續運作基準,再比較Idle、Sleep或Standby的電流波形與平均值;隔離除錯器、LED等額外負載,並驗證反覆喚醒。[2][6]

睡眠電流的典型值不等於整機平均電流。比較規格時,務必一起確認供電電壓、溫度、啟用周邊與RAM保留條件。

官方文件與Microchip University學習資源:

[1] TB3144 – Doze, Idle and PMD Features of 8-bit PIC® Microcontrollers

[2] AN1416 – Low-Power Design Guide

[3] TB3346 – Using ADCC Modes of PIC16F17146 and PIC16F18146 Families of Microcontrollers in Applications

[4] PIC18F55K42 產品與資料表

[5] AN4068 – PIC32CM LE00/LS00/LS60低功耗功能

[6] PIC32CM LE00 Harmony v3低功耗實作

[7] PIC16F18126/46資料表

MU Low Power Programming 101 Microchip Try

MU 25009 MCU6 Arm® Cortex® 低功耗設計

本文作者為:Microchip主任應用工程師 何仁杰

從工具自動化到工作流程智慧:Agentic AI 如何提升 RTL 驗證生產力

從工具自動化到工作流程智慧:Agentic AI 如何提升 RTL 驗證生產力

數十年來,電子設計自動化(EDA)的生產力提升,主要來自效能更高的模擬器、可擴充的形式驗證工具,以及運算能力更強的求解器。然而,隨著 SoC 設計規模持續擴大,單純提升工…

數十年來,電子設計自動化(EDA)的生產力提升,主要來自效能更高的模擬器、可擴充的形式驗證工具,以及運算能力更強的求解器…