引言
STM32U575/585 微控制器(MCU)基于具有 Arm TrustZone和 FPU 的高性能 Arm 32 位 Cortex?M33CPU。這些 MCU 采用新型結(jié)構(gòu)制造,得益于其高度靈活性和高級外設(shè)集,實(shí)現(xiàn)了一流的超低功耗性能STM32U575/585 器件可為應(yīng)用實(shí)現(xiàn)極高的能效。
帶有“Q”后綴的 STM32U575/585 器件(例如 STM32U5xxxxQ)支持在運(yùn)行和低功耗模式下使用內(nèi)部 SMPS,從而能夠設(shè)計(jì)出非常高效的低功耗應(yīng)用
通過集成 ART 加速器 8 KB 指令緩存,STM32U575/585 MCU 可在高達(dá) 160MHz 的頻率下運(yùn)行,實(shí)現(xiàn) 240 DMIPS 性能,同時(shí)保持極低的動態(tài)功耗。
STM32U575/585 器件嵌入了大量智能高性能外設(shè),具有多種先進(jìn)的超低功耗模擬功能。借助于 LPBAM(低功耗后臺自主模式),許多外設(shè)(包括通信、模擬、定時(shí)器和音頻)均可正常工作并自主進(jìn)入停機(jī)模式,并直接訪問內(nèi)存。超低功耗設(shè)計(jì)和處理性能的組合使這些器件能夠達(dá)到行業(yè)領(lǐng)先的 EEMBC ULPBench得分,最高達(dá)到 535 ULPMark。
STM32U575/585 MCU 集合了多種創(chuàng)新,能夠使不同模式下的功耗減到最小,同時(shí)保留大部分現(xiàn)有外設(shè)并很好地實(shí)現(xiàn)了引腳兼容,能夠很容易地從現(xiàn)有產(chǎn)品上進(jìn)行移植。
得益于其內(nèi)置內(nèi)部穩(wěn)壓器和電壓調(diào)節(jié),無論外部供電電壓是多少,在活動模式下都能保持盡可能小的消耗。這使得這些器件非常適合電池供電的產(chǎn)品,所需供電電壓可低 至 1.71 V。
此外,它們具有多電壓域,允許產(chǎn)品以低壓供電,同時(shí)模數(shù)和數(shù)模轉(zhuǎn)換器可在高達(dá) 3.6V 的高電源電壓和參考電壓下工作。
STM32U575/585 器件可支持電池備份域以保持 RTC(實(shí)時(shí)時(shí)鐘)運(yùn)行,并能支持 32 個(gè)寄存器(每個(gè)寄存器為 32 位寬)的組,該寄存器組在失去電源時(shí)能夠保持內(nèi)容。該可選備份電池可在有主電源時(shí)充電。
這些器件支持多種主要的低功耗模式,其中每種都有多個(gè)子模式選項(xiàng)。這使得設(shè)計(jì)人員可以在低功耗性能、短啟動時(shí)間、可用外設(shè)集與喚醒源最大數(shù)量之間實(shí)現(xiàn)最佳折中。
1、概述
本應(yīng)用說明適用于基于 Arm Cortex內(nèi)核的 STM32U575/585 微控制器。
參考文檔
[1] 參考手冊:基于 Arm的 STM32U575xx 和 STM32U585xx 高級 32 位 MCU(RM0456)
[2] STM32U575xx(DS13737)和 STM32U585xx(DS13086)的數(shù)據(jù)表
[3] 應(yīng)用筆記用于硬件設(shè)置和低功耗的 STM32 微控制器 GPIO 配置(AN4899)
[4] 應(yīng)用筆記使用 LPBAM 進(jìn)行的 STM32U575/585 功耗優(yōu)化(AN5645)
[5] EEMBC 組織網(wǎng)址 http://www.eembc.org
2、高效能處理
由于使用了關(guān)聯(lián)到其存儲器接口的 Cortex?M33 核,因而在運(yùn)行模式下獲得了很高的處理性能(以 DMIPS/MHz 表示)。為確保實(shí)現(xiàn)最大工作頻率下的高性能工作,STM32U575/585 器件嵌入了 ART 加速器指令緩存(ICACHE),通過其屏蔽 Flash 訪問等待狀態(tài)。無論系統(tǒng)時(shí)鐘頻率是多少,都可達(dá)到 1.5 DMIPS/MHz 的處理性能。
STM32U575/585 器件支持動態(tài)電壓調(diào)節(jié),以便優(yōu)化其在運(yùn)行模式下的功耗。可根據(jù)系統(tǒng)的最高操作頻率,調(diào)節(jié)為邏輯(VCORE)供電的主穩(wěn)壓器提供的電壓。更多詳細(xì)信息,請參見參考文檔[1]。
主調(diào)壓器在以下范圍內(nèi)運(yùn)行:
? Range 1(V 內(nèi)核 = 1.2 V),其中 CPU 和外設(shè)運(yùn)行頻率高達(dá) 160 MHz
? Range 2(V 內(nèi)核 = 1.1 V),其中 CPU 和外設(shè)運(yùn)行頻率高達(dá) 110 MHz
? Range 3(V 內(nèi)核 = 1.0 V),其中 CPU 和外設(shè)運(yùn)行頻率高達(dá) 55 MHz
? Range 4(V 內(nèi)核 = 0.9 V),其中 CPU 和外設(shè)運(yùn)行頻率高達(dá) 25 MHz
除非另有說明,否則本應(yīng)用筆記中使用的所有功耗數(shù)據(jù)均基于從參考文檔[2]中提取的 TA = 25 ° C 且 VDD = 3.0 V
時(shí)的典型規(guī)格。
提示
使用低功耗調(diào)壓器時(shí),根據(jù)軟件配置,系統(tǒng)時(shí)鐘可以是頻率高達(dá) 24MHz(默認(rèn)為 4MHz)的 MSIS,也可以是HSI16。
2.1 內(nèi)部調(diào)壓器效率
STM32U575/585 器件嵌入了兩個(gè)內(nèi)部調(diào)壓器,可在應(yīng)用運(yùn)行時(shí)根據(jù)應(yīng)用要求進(jìn)行選擇:
? SMPS 降壓轉(zhuǎn)換器
? 線性調(diào)壓器(LDO)
LDO 和 SMPS 穩(wěn)壓器有兩種模式:
? 主調(diào)壓器(需要性能時(shí)使用)
? 低功耗調(diào)壓器
兩個(gè)調(diào)壓器都可以提供四個(gè)不同電壓(電壓調(diào)節(jié)),同時(shí)還能在停機(jī)模式下工作。
下圖顯示了 STM32U575/585 微控制器在運(yùn)行模式下用于 SMPS 和 LDO 配置的典型電流消耗(作為系統(tǒng)頻率的函數(shù))。
下圖顯示了該曲線在 CPU 頻率下轉(zhuǎn)化為功率效率(將其除以電流消耗、乘以電源電壓得到功率圖)。
2.2 ICACHE效率
指令緩存(ICACHE)旨在緩存來自處理器的指令提取或指令存儲器負(fù)載。ICACHE 只管理讀事務(wù),不管理寫事務(wù)。在大部分時(shí)間,ICACHE 通過從內(nèi)部 ICACHE 提取指令來降低功耗,而不是從更大且功耗更大的主存儲器中獲取指令。
ICACHE 的默認(rèn)配置(復(fù)位時(shí))是雙路組相聯(lián)緩存。對于需要極低功耗配置文件的應(yīng)用,ICACHE 可以配置為單路,即直接映射緩存。
下圖顯示了 STM32U575/585 微控制器在運(yùn)行模式下在不同 ICACHE 配置的斐波那契基準(zhǔn)中的功率效率(作為系統(tǒng)頻率的函數(shù)),其中采用 SMPS 且 VDD = 1.8 V。
2.3 Flash效率
下圖顯示了 Flash 延遲(要被編程到 Flash 訪問控制寄存器中的等待狀態(tài)數(shù)值),具體取決于 STM32U575/585 穩(wěn)壓器電壓調(diào)節(jié)范圍和系統(tǒng)時(shí)鐘頻率。
本應(yīng)用說明適用于基于 Arm Cortex內(nèi)核的 STM32U575/585 微控制器。
3、STM32U575/585 超低功耗特點(diǎn)
3.1 低功耗模式
STM32U575/585 微控制器實(shí)現(xiàn)了多種不同的功耗模式。默認(rèn)情況下,系統(tǒng)復(fù)位或上電復(fù)位后,MCU 進(jìn)入運(yùn)行模式。系統(tǒng)提供了多個(gè)低功耗模式,可在 CPU 不需要運(yùn)行時(shí)(例如等待外部事件時(shí))節(jié)省功耗。由用戶選擇具體的模式,以在低功耗、短啟動時(shí)間和可用喚醒源之間尋求最佳平衡。如需更詳細(xì)信息,請參考[1]。
3.1.1 睡眠模式
CPU 時(shí)鐘關(guān)閉,包括 Cortex-M33 內(nèi)核(例如 NVIC、SysTick 等)在內(nèi)的所有外設(shè)都可以運(yùn)行,并在發(fā)生中斷或事件時(shí)喚醒 CPU。
3.1.2 停機(jī)模式
停機(jī)模式基于 Cortex-M33 深度睡眠模式與外設(shè)時(shí)鐘門控的組合。核心域中的所有時(shí)鐘均停止。禁用 PLL、MSIS、MSIK、HSI16 和 HSE 振蕩器,如果外設(shè)請求,則可以在停機(jī) 0、停機(jī) 1、或停機(jī) 2 模式下啟用 MSIS、MSIK、HSI16。
停機(jī) 0 和停機(jī) 1 提供最大數(shù)量的活動外設(shè)和喚醒源,相比停機(jī) 2,其喚醒時(shí)間更短,但功耗較高。在停機(jī) 2 和停機(jī)3 模式下,核心域的大部分處于低漏電模式。
在從停機(jī)模式退出時(shí),系統(tǒng)時(shí)鐘可以是 MSIS(最高 24 MHz)或 HSI16,具體取決于軟件配置。
低功耗后臺自主模式(LPBAM)
一些外設(shè)是自主的,可以在需要時(shí)通過請求其內(nèi)核時(shí)鐘(最高 24MHz 的 MSIK,或 HSI16)及其總線(APB 或AHB)而在停機(jī) 0、停機(jī) 1、或停機(jī) 2 模式下運(yùn)行,以便與 DMA(GPDMA1 或 LPDMA1,取決于外設(shè)和功耗模式)傳輸數(shù)據(jù)。
3.1.3 待機(jī)模式
待機(jī)模式實(shí)現(xiàn)在保留欠壓復(fù)位功能時(shí)的最低功耗:關(guān)閉內(nèi)部調(diào)壓器,從而關(guān)閉核心域。PLL、MSI(MSIS 和MSIK)RC、HSI16 RC 和 HSE 晶振也會關(guān)閉。RTC 可保持激活狀態(tài)。可選擇保留 8、56 或 64 KB 的 SRAM2。可以施加內(nèi)部上拉或下拉來保持 I/O 電平。喚醒后的系統(tǒng)時(shí)鐘為 MSIS,最高 4MHz。
3.1.4 關(guān)斷模式
關(guān)斷模式下功耗達(dá)到最低。該模式基于深度睡眠模式,其中調(diào)壓器被禁用。因此核心域斷電。通過關(guān)閉內(nèi)部穩(wěn)壓器,以及禁用耗電監(jiān)控,該模式可實(shí)現(xiàn)最低電流消耗。借助某一個(gè)(共五個(gè))喚醒引腳或復(fù)位引腳,能夠從該模式喚醒。由低速外部振蕩器(LSE)定時(shí)的 RTC 在此模式下也是起作用的,具有喚醒功能。
文檔[1]的“功耗模式”部分中的“低功耗模式總結(jié)”表總結(jié)了每種模式的可用特性,并提供了電流消耗的指示。
3.2 功耗優(yōu)化
3.2.1 ICACHE 處于運(yùn)行模式
ICACHE 通過從內(nèi)部 ICACHE 獲取指令來降低功耗。在大多數(shù)情況下,采用較低性能配置文件和嚴(yán)格的低功耗限制的應(yīng)用程序可能會從配置為直接映射(ICACHE_1-way)的 ICACHE 的較低功耗而受益。
這種單路高速緩存配置是通過在 ICACHE_CR 中編程 WAYSEL=0 實(shí)現(xiàn)的。
3.2.2運(yùn)行和睡眠模式下的 Flash
STM32U575/585 Flash 包括主存儲器塊,該主存儲器塊由兩個(gè) 1 MB 的存儲區(qū)(bank)組成,每個(gè) bank 包含 128個(gè) 8 KB 的頁面。當(dāng) MCU 處于運(yùn)行和睡眠模式時(shí),這一結(jié)構(gòu)在專用模式下的功耗方面得到了優(yōu)化。為了降低運(yùn)行和睡眠模式下的功耗,可以根據(jù)所使用的存儲區(qū),通過設(shè)置 FLASH_ACR 中的 PDREQ1 或 PDREQ2獨(dú)立地將每個(gè)存儲區(qū)置于掉電模式。
Flash 支持低功耗讀取模式,通過在 FLASH_ACR 中編程 LPM=1 來降低功耗。
預(yù)取往往會以額外的 Flash 存取為代價(jià)提升代碼執(zhí)行性能。然而,對于大多數(shù)應(yīng)用程序,預(yù)取開啟時(shí)的電源效率會更好。
3.2.3 電源控制優(yōu)化
在待機(jī)模式下,可以將 BOR 配置為不連續(xù)模式(超低功耗模式),通過將 PWR_CR 中的 ULPMEN 位設(shè)置為 1 來進(jìn)一步降低電流消耗。
為降低運(yùn)行、睡眠或任何低功耗模式下的功耗,建議從 LDO 切換到 SMPS。
? SMPS 電源引腳僅在具有 SMPS 降壓轉(zhuǎn)換器選項(xiàng)的特定封裝上可用。
? 可以動態(tài)完成 SMPS 到 LDO 和 LDO 到 SMPS 的切換。
3.2.4 低功耗模式下的 RCC
為了維持輸出時(shí)鐘精度,MSI 偏置默認(rèn)為連續(xù)模式。當(dāng)調(diào)壓器處于 Range 4 中并且設(shè)備處于停機(jī) 1 或停機(jī) 2 模式時(shí),在進(jìn)入低功耗模式之前在 RCC_ICSCR1 中設(shè)置 MSIBIAS 可降低 MSI 功耗。
在進(jìn)入低功耗模式之前,建議選擇 HSI16 或 MSIS(16 或 24MHz)作為喚醒源,以縮短喚醒時(shí)間,并減少喚醒期間損失的能量。若使用 24 MHz,則須為 SRAM 讀訪問配置一個(gè)等待 狀態(tài)延遲,這會影響代碼執(zhí)行性能。然后須在1 個(gè) SRAM 等待狀態(tài)下使用 24 MHz 和使用 16 MHz 作為系統(tǒng)時(shí)鐘之間對該性能進(jìn)行評估。
停機(jī)模式期間或從停機(jī)模式喚醒時(shí)的 MSIS 頻率與進(jìn)入停機(jī)模式之前頻率相同。如果使用 MSIS 在運(yùn)行模式下饋送 PLL,則由于 PLL 輸入時(shí)鐘頻率限制使 MSIS 在 4MHz 到 16 MHz 之間。此時(shí)建議關(guān)閉 PLL 并在進(jìn)入停機(jī)模式之前將 MSIS 配置為高頻(如果使用 MSIS 作為喚醒時(shí)鐘)。
必須通過清零外設(shè)自身的使能位來禁用無法在停機(jī) 2 模式下使能的所有外設(shè),或者通過配置 RCC 寄存器 使其處于復(fù)位狀態(tài)。
對于每個(gè)時(shí)鐘源來說,在未使用時(shí)都可單獨(dú)開啟或者關(guān)閉,以降低功耗。
3.2.5 低功耗模式下的 I/O 狀態(tài)
如需更詳細(xì)信息,請參考[3]。
配置未使用的 GPIO
GPIO 始終有一個(gè)輸入通道,可以是數(shù)字或模擬通道。如果不需要讀取 GPIO 數(shù)據(jù),則優(yōu)先配置為模擬輸入。這節(jié)省了輸入施密特觸發(fā)器的消耗。
禁用 GPIO 寄存器時(shí)鐘
如果某個(gè) GPIO 組長時(shí)間不需要使用,請使用 HAL_RCC_GPIOx_CLK_DISABLE()函數(shù)禁用其時(shí)鐘。
進(jìn)入低功耗模式時(shí)配置 GPIO
在睡眠、停機(jī) 0、停機(jī) 1 或停機(jī) 2 模式下,所有 I/O 引腳保持與運(yùn)行模式中相同的狀態(tài)。對于輸出,根據(jù)外部組件所需的電平驅(qū)動合適的電平。
在停機(jī) 3、待機(jī)或關(guān)斷模式下,I/O 默認(rèn)處于浮動狀態(tài)。根據(jù)外部組件所需的電平施加上拉或下拉。應(yīng)認(rèn)識到,在退出關(guān)斷模式時(shí)不會施加該上拉/下拉,直到固件配置 GPIO 為止。
在一些應(yīng)用中,為了進(jìn)一步降低停機(jī)模式下的功耗,并為了獲得更高的電阻值精度,建議使用外部上拉而不是內(nèi)部上拉。
3.2.6 內(nèi)部 SRAM
STM32U575/585 器件嵌入了五個(gè) SRAM,每個(gè)都具有特定的功能:SRAM1、SRAM2、SRAM3 為主 SRAM。SRAM4 在 SRAM 中用于停機(jī) 2 模式下的外設(shè)低功耗后臺自主模式(LPBAM)。
保留所有 SRAM 和寄存器內(nèi)容,但 SRAM 可全部或部分關(guān)閉,以便進(jìn)一步降低功耗。這些 SRAM 由多個(gè)可以關(guān)閉的塊組成:
? 運(yùn)行模式
要降低運(yùn)行模式下的功耗,應(yīng)通過在 PWR_CR1 中編程 SRAMxPD 來關(guān)閉所有 SRAM。
? 停機(jī)模式
該模式可實(shí)現(xiàn)最低功耗,同時(shí)保持低功耗調(diào)壓器供電的 SRAM 和寄存器的內(nèi)容。停機(jī) 3 是具有完全保留的最低功耗模式。為了進(jìn)一步優(yōu)化功耗,建議如下:
– 通過在 PWR_CR2 中編程 SRAMxPDSy = 1 來關(guān)閉未使用的 SRAM:
? SRAM1, SRAM3, SRAM4
? DCACHE1、DMA2D、FDCAN、FMAC、PKA(如可用)和 USB 的 SRAM
– 根據(jù)應(yīng)用數(shù)據(jù)大小,通過清除 PWR_CR2 中的 SRAMPDS1 和/或 SRAMPDS2 位來保留 SRAM2 第 1頁和/或第 2 頁。
? 待機(jī)模式
進(jìn)入待機(jī)模式后,除備份域和待機(jī)電路中的寄存器和備份 SRAM(2 KB)外,其余 SRAM 和寄存器的內(nèi)容都將丟失。通過在 PWR_CR1 中設(shè)置由低功耗調(diào)壓器供電的 RRSB1 和/或 RRSB2,SRAM2 第 1 頁(8 KB)或第 2 頁(56 KB)或兩頁都可以在待機(jī)模式保持(在 RAM2 保持模式下待機(jī))。
3.2.7 運(yùn)行和停機(jī)模式下的外設(shè)時(shí)鐘門控
STM32U575/585 器件支持關(guān)閉 AHB/APB 時(shí)鐘的功能,以進(jìn)一步降低功耗。
未使用任何 AHB/APB 外設(shè)并且其時(shí)鐘被禁用時(shí),會出現(xiàn)以下情況:
? 當(dāng)在 RCC_CFGR2 中設(shè)置 AHB1DIS = 1 時(shí),AHB1 外設(shè)的所有時(shí)鐘都關(guān)閉( BKPSRAM、DCACHE1、FLASH、ICACHE 和 SRAM1 除外)。
? 當(dāng)在 RCC_CFGR2 中設(shè)置 AHB2DIS = 1 時(shí),來自 RCC_AHB2ENR1 的 AHB2 外設(shè)的所有時(shí)鐘都關(guān)閉(SRAM2 和 SRAM3 除外)。
? 當(dāng)在 RCC_CFGR3 中設(shè)置 AHB3DIS = 1 時(shí),AHB3 外設(shè)的所有時(shí)鐘都關(guān)閉(SRAM4 除外)。
? 當(dāng)在 RCC_CFGR2 中設(shè)置 APB1DIS = APB2DIS = 1 且在 RCC_CFGR3 中設(shè)置 APB3DIS = 1 時(shí),APB1/2/3外設(shè)的所有時(shí)鐘都關(guān)閉。
當(dāng)啟用外設(shè)時(shí),其時(shí)鐘可在器件處于休眠模式時(shí)通過清除 RCC_AHBxSMENR 和 RCC_APBxSMENR 中的外設(shè)SMEN 位而自動關(guān)閉。外設(shè)的 EN 位和 SMEN 位均須設(shè)置為 1,以便在休眠模式下保持時(shí)鐘開啟。
外設(shè)的 SMEN 位還用于根據(jù)外設(shè)請求在停機(jī) 0 和停機(jī) 1 模式下允許外設(shè)提供時(shí)鐘。當(dāng)外設(shè)請求時(shí)鐘時(shí),該時(shí)鐘將分配給所有啟用的外設(shè)。因此,如果在停機(jī)模式下未使用外設(shè),則須在進(jìn)入停機(jī)模式之前清除 SMEN 位。
Caution: 外設(shè)的 SMEN 位必須設(shè)置成允許產(chǎn)生能夠從停機(jī)模式喚醒器件的中斷。
3.3 使用 LPBAM 優(yōu)化外設(shè)功耗
STM32U575/585 器件支持低功耗后臺自主模式(LPBAM),使外設(shè)能夠在停機(jī) 0、停機(jī) 1 和停機(jī) 2 模式(無任何軟件運(yùn)行)下工作并保持自主。
由于外設(shè)自身的獨(dú)立時(shí)鐘(稱為內(nèi)核時(shí)鐘)請求性能,此功能在停機(jī)模式下可用。該內(nèi)核時(shí)鐘在有外設(shè)請求時(shí)自動打開,并在無外設(shè)請求時(shí)自動關(guān)閉。如需更詳細(xì)信息,請參考[1]。
3.3.1 支持 LPBAM 的外設(shè)
下表列出了支持 LPBAM 的所有 STM32U575/585 外設(shè)。
3.3.2 主要用例
以下是可以留在停機(jī)模式下完成的用例示例(有關(guān)更多詳細(xì)信息,請參見文檔[4]):
? 由低功耗定時(shí)器(或任何其他觸發(fā)器)觸發(fā)的 ADC 或 DAC 轉(zhuǎn)換
? 音頻數(shù)字濾波器數(shù)據(jù)傳輸?shù)?SRAM 中:檢測到聲音活動時(shí)從停機(jī)喚醒
? I2C/SPI 從設(shè)備傳輸、UART/LPUART 接收:在外設(shè)傳輸結(jié)束時(shí)或在 DMA 緩沖區(qū)事件時(shí)喚醒
? 由 LPTIM 觸發(fā)器觸發(fā)的(例如傳感器周期性讀取)I2C/SPI 主設(shè)備傳輸,UART/LPUART 傳輸:在外設(shè)傳輸結(jié)束時(shí)或在 DMA 緩沖區(qū)事件時(shí)喚醒
? 外設(shè)之間的橋。例如:通信外設(shè)傳輸?shù)?ADC 轉(zhuǎn)換數(shù)據(jù)
? 從 SRAM 到另一個(gè) SRAM 的數(shù)據(jù)傳輸
4、低功耗模式的選擇方法
考慮一個(gè)簡化的應(yīng)用模型,其中應(yīng)用每隔 Tperiod 喚醒一次,始終執(zhí)行一些相同操作并將指令數(shù)視為常數(shù)(無等待循環(huán),無數(shù)據(jù)依賴)。然后可以進(jìn)行以下近似計(jì)算:
? PROCESS 階段持續(xù)時(shí)間(Tprocess)可由每個(gè)階段要執(zhí)行的時(shí)鐘周期次數(shù)(NOC)來定義。將 FCLK 定義為CPU 系統(tǒng)時(shí)鐘頻率,PROCESS 階段的持續(xù)時(shí)間等于 TPROCESS = NOC / FCLK。此階段的平均電流消耗等于Iprocess。
? INACTIVE 階段的持續(xù)時(shí)間為 TPERIOD - TPROCESS,其平均電流消耗為 IINACTIVE。
?
4.1 PROCESS 階段
根據(jù)處理要求(DMIPS),可以使用下列不同運(yùn)行模式中的某一種:
? 具有 Range 1 電壓的運(yùn)行模式,在 160 MHz 運(yùn)行時(shí)最大可達(dá) 240 DMIPS
? 具有 Range 2 電壓的運(yùn)行模式,在 110 MHz 運(yùn)行時(shí)最大可達(dá) 165 DMIPS
? 具有 Range 3 電壓的運(yùn)行模式,在 55 MHz 運(yùn)行時(shí)最大可達(dá) 82.5 DMIPS
? 具有 Range 4 電壓的運(yùn)行模式,在 25 MHz 運(yùn)行時(shí)最大可達(dá) 37.5 DMIPS
選擇頻率時(shí)另一個(gè)需要考慮的參數(shù)是支持相關(guān)外設(shè)約束(如有)的能力。
4.2 INACTIVE 階段
STM32U575/585 期間提供了可用于 INACTIVE 階段的不同低功耗模式:
? 睡眠
? 停機(jī) 0(主調(diào)壓器開啟)
? 停機(jī) 1(具有低功耗穩(wěn)壓器)
? 停機(jī) 2(具有低功耗穩(wěn)壓器)
? 停機(jī) 3(具有低功耗穩(wěn)壓器)
? 待機(jī)(具有 RTC 和 SRAM2 保留選項(xiàng))
? 關(guān)斷(使用 RTC 作為選項(xiàng))
根據(jù)喚醒源和睡眠周期持續(xù)時(shí)間,可選擇下述某一種模式:
? 睡眠:如果反應(yīng)性是關(guān)鍵參數(shù)(此時(shí)喚醒時(shí)間僅為 8 個(gè)系統(tǒng)時(shí)鐘周期)
? 停機(jī) 0:當(dāng)喚醒時(shí)間至關(guān)重要時(shí)(如果程序位于 Flash 中,則《2.5μs)
? 停機(jī) 1:如果有多個(gè)外設(shè)需保持喚醒且系統(tǒng)有多種喚醒源(此時(shí)應(yīng)用必須能夠容許約 13 μs 的從 Flash 喚醒的時(shí)間)
? 停機(jī) 2:如果有少數(shù)外設(shè)需保持喚醒且能產(chǎn)生喚醒事件,如 DMA 傳輸完成、LPUART/SPI/I2C 傳輸事件、通
過 SDF 語音檢測、ADC 模擬看門狗(此時(shí)應(yīng)用須能夠容許約 20 μs 的從 Flash 喚醒的時(shí)間)
? 停機(jī) 3:如果除 RTC 之外無其他外設(shè)需要在保留所有 SRAM 的情況下保持喚醒,在 FSTEN = 0 時(shí)從 Flash喚醒的時(shí)間為 66.5 μs
? 待機(jī):如果除 RTC 之外無其他外設(shè)需要保持喚醒,并且需要保留不超過 64 KB 的 SRAM2(此時(shí)應(yīng)用須容許在 MSIS = 4 MHz 且 FSTEN = 0 時(shí)從 Flash 喚醒的時(shí)間約為 64.5 μs)
? 關(guān)斷:如果只有 RTC 和備份寄存需要保持喚醒(此時(shí)應(yīng)用須容許在 MSIS = 4 MHz 時(shí)約 610 μs 的喚醒時(shí)間)
喚醒時(shí)間取決于代碼位置(Flash)、系統(tǒng)時(shí)鐘源和頻率。詳細(xì)情況請參考[2]。上述從停機(jī)喚醒的圖形對應(yīng)于 24MHz 或 4 MHz 時(shí)的 MSIS 且代碼在 Flash 中。為了縮短喚醒時(shí)間,建議在 PWR_CR2 中設(shè)置 FLASHFWU = 1 且SRAM4FWU = 1。
4.3 睡眠模式選擇
以下數(shù)值結(jié)果基于從文檔[2]中提取的 25°C 時(shí)的典型規(guī)格值。
針對 RTC 處于 INACTIVE 階段的不同選擇的低功耗模式(睡眠、停機(jī) 1 、停機(jī) 2、停機(jī) 3、具有 RTC 和 SRAM2保留功能的待機(jī)、待機(jī)和關(guān)斷),下圖給出了作為主電源(VDD)函數(shù)的理論功耗。
前面的圖表明,對于需要保留一些數(shù)據(jù)的應(yīng)用,待機(jī)模式可實(shí)現(xiàn)最佳能耗,而停機(jī) 3 模式是保留所有 SRAM 的最低功耗模式。如圖 7 所示,使用 SMPS 將能耗降至一半。
丟棄了關(guān)機(jī)模式(虛線),因?yàn)樵撃J綗o法為此類應(yīng)用提供足夠的數(shù)據(jù)保持能力。
低功耗模式選擇不只是由總體功耗決定的,還與連接到該應(yīng)用的其他喚醒考慮有關(guān)。圖 6 而且圖 7 表明,相比于待機(jī),以少量額外功耗為代價(jià),停機(jī) 2 和停機(jī) 3 模式針對喚醒的設(shè)置更加強(qiáng)大、簡單和快速(無需外設(shè)重新初始化)
?4.4 低功耗模式選擇
對于實(shí)際應(yīng)用,根據(jù)喚醒周期,可使用下面的準(zhǔn)則:
? 如果喚醒周期長于幾十 ms,則使用待機(jī)模式實(shí)現(xiàn),可具有更好的功耗性能。
? 如果喚醒周期較短,則使用停機(jī) 2 或停機(jī) 3 模式實(shí)施效果則更好。
? 如果溫度較高,則最好使用待機(jī)模式。
低功耗模式選擇不僅依賴于功耗,還與喚醒時(shí)間要求(系統(tǒng)反應(yīng)性)和數(shù)據(jù)保持要求有關(guān)。如果處理可適應(yīng)低于 24 MHz 的頻率,則最優(yōu)點(diǎn)如下:
? 待機(jī)或停機(jī) 3 模式
在待機(jī)模式下,最佳點(diǎn)是喚醒轉(zhuǎn)換時(shí)間長于 66μs、保留區(qū)低于 64KB SRAM + 2KB BKPSRAM。在停機(jī) 3 模式下,可以保留所有 SRAM。
? 停機(jī) 2 模式
最佳點(diǎn)是喚醒轉(zhuǎn)換時(shí)間長于 20μs 并且保留區(qū)大于 66KB (64KB SRAM2 + 2KB BKPSRAM)保留。
如果喚醒周期長于幾秒且無需保留內(nèi)存,則關(guān)機(jī)模式下會有最好的功耗性能。這種情況下喚醒時(shí)間典型值為 610μs。
4.5 轉(zhuǎn)換的影響
為了完成這項(xiàng)研究,必須考慮在轉(zhuǎn)換階段(喚醒和停用)消耗的能量。
根據(jù)文檔[2],在 VDD=3.0V 時(shí),使用 SMPS,離開低功耗模式時(shí)所消耗的能量大致為:
? 1.1 nAs,對于從停機(jī) 1 到運(yùn)行模式的轉(zhuǎn)換(MSI = 24 MHz)
? 0.57 nAs,對于從停機(jī) 2 到運(yùn)行模式的轉(zhuǎn)換(MSI = 24 MHz)
? 4.54 nAs,對于從停機(jī) 3 到運(yùn)行模式的轉(zhuǎn)換(MSI = 24 MHz)
? 21.22 nAs,對于從待機(jī)到運(yùn)行模式的轉(zhuǎn)換(MSI = 4 MHz)
? 457.29 nAs,對于從關(guān)斷到運(yùn)行模式的轉(zhuǎn)換(MSI = 4 MHz)
5、ULPMark-CP 用例優(yōu)化
5.1 ULPMark-CP 描述
ULPMark-內(nèi)核配置文件(CP)基準(zhǔn)側(cè)重于 MCU 內(nèi)核,特別是睡眠中的能源成本,以及與激活模式之間的轉(zhuǎn)換。
該基準(zhǔn)使用一組可在 8 位、16 位和 32 位微控制器之間移植的通用工作負(fù)載。內(nèi)核配置文件以 1 秒的占空比運(yùn)行,將這些工作負(fù)載與延長的不活動時(shí)間相結(jié)合,從而啟用微控制器低功耗模式。
在測試的激活部分,基準(zhǔn)測試執(zhí)行以下操作:
? 生成 20 個(gè) GPIO 脈沖。
? 執(zhí)行 8 位線性插值。
? 執(zhí)行 16 位積分(過濾器)。
? 計(jì)算 7 段 LCD 二進(jìn)制轉(zhuǎn)換(保存狀態(tài))。
? 在字符串中搜索子字符串。
? 執(zhí)行小型冒泡排序。
? 根據(jù)輸入和先前狀態(tài)置換字符串的位。
下圖顯示了 ULPMark-CP 基準(zhǔn)在長時(shí)間睡眠中運(yùn)行,隨后短暫喚醒以執(zhí)行最少的處理,模擬睡眠邊緣節(jié)點(diǎn)來節(jié)省能源(更多詳細(xì)信息,請參見[5])。
5.2 應(yīng)用約束條件
ULPMark-CP 規(guī)定了下列約束條件:
? 該應(yīng)用每秒喚醒一次,基于精確 RTC 在一組數(shù)據(jù)上執(zhí)行某些操作。
? 從一個(gè)處理周期到下一個(gè)處理周期時(shí),數(shù)據(jù)需要保持。這要求在 INACTIVE 階段中能夠保持?jǐn)?shù)據(jù)。
? 利用編譯器最強(qiáng)優(yōu)化選項(xiàng)進(jìn)行編譯時(shí),應(yīng)用所需的處理周期數(shù)約為每秒 10000 周期。
對于系統(tǒng)反應(yīng)性不作特別約束,以便服務(wù)外部事件或 RTC 周期中斷。
5.3 PROCESS 階段優(yōu)化
基準(zhǔn)測試的激活部分僅運(yùn)行總運(yùn)行時(shí)間的約 3%,因此用戶可以使用內(nèi)部 MSIS,使用對應(yīng)于 16 MHz 電壓調(diào)節(jié)范圍4 的功率最佳點(diǎn)。在 16 MHz 標(biāo)稱頻率下使用MSIS 時(shí),其功耗低于使用 PLL 的任何其他解決方案。
為了進(jìn)一步優(yōu)化激活階段的功耗,可以應(yīng)用以下步驟:
1. 在運(yùn)行模式下關(guān)閉 SRAM1、SRAM2、SRAM3、SRAM4。
2. 將系統(tǒng)時(shí)鐘配置為 16 MHZ 的 MSIS 電壓調(diào)節(jié)范圍 4。
3. 將數(shù)據(jù)置于 BKPSRAM。
4. 禁用未使用的 AHB/APB 時(shí)鐘。
5. 將所有 GPIO 引腳置于模擬模式。
6. 關(guān)閉 Flash 存儲區(qū) 2。
7. 啟用 Flash 低功耗模式。
8. 配置編譯器優(yōu)化(高速,無大小限制)。
下圖顯示了處于激活階段的 ULPMark-CP。從喚醒到進(jìn)入低?功耗模式大約需要 156μs,在 16 MHz 系統(tǒng)時(shí)鐘 MSIS的運(yùn)行模式下消耗 550 μA 電流。
5.4 INACTIVE 階段優(yōu)化
ULPBench-CP 基準(zhǔn)要求從一次運(yùn)行到下一次運(yùn)行時(shí)能夠在低功耗模式下保持?jǐn)?shù)據(jù)變量無變化。因此,不可使用關(guān)機(jī)模式,因?yàn)樵撃J綗o法為該應(yīng)用提供足夠的數(shù)據(jù)保持能力。
停機(jī) 3 模式可在保留 8 KB SRAM2 或 2 KB BKPSRAM 以及最短喚醒時(shí)間的條件下使用。然而,最節(jié)能的解決方案是使用待機(jī)模式并且具有 RTC 和 8 KB SRAM2 或 2 KB BKPSRAM 數(shù)據(jù)保持。
為了進(jìn)一步優(yōu)化 INACTIVE 階段的功耗,可以應(yīng)用以下步驟:
1. 啟用 SMPS 調(diào)壓器。
2. 啟用 ULPMEN 位。
3. 在停機(jī) 3 模式下關(guān)閉未使用的 SRAM。
4. 禁用 AHB/APB 外設(shè)的所有時(shí)鐘(RTC 的 AHB3/APB3 除外)。
下圖顯示了待機(jī)模式下處于 INACTIVE 階段的 ULPMark-CP,其中平均電流消耗為 1.34μA。
下圖顯示了停機(jī) 3 模式下處于 INACTIVE 階段的 ULPMark-CP,其中平均電流消耗為 2.97μA。
在 ULPBench 基準(zhǔn)的情況下,喚醒周期為 1 秒,處理載荷約為每秒 10 K 循環(huán)時(shí),最佳選擇是在 INACTIVE 階段使用待機(jī)模式,在 PROCESS 階段關(guān)聯(lián)地使用 16 MHz(來自 MSIS)下電壓調(diào)Range 4 模式。
5.5
STM32U575/585 測量結(jié)果
下圖顯示了在 PROCESS 階段使用不同系統(tǒng)時(shí)鐘頻率進(jìn)行的 ULPMark-CP 得分測量,其中非活動階段使用具有BKPSRAM 保留和 RTC 功能的待機(jī)模式。
結(jié)果提供了不同的時(shí)鐘配置:對于低于 24MHz 的頻率,使用 MSI(因?yàn)閺拇龣C(jī)模式喚醒時(shí)會自動啟動)。
如在理論研究中已經(jīng)看到的,使用電壓調(diào)節(jié)范圍 4 在 16 MHz 時(shí),使用 MSIS 實(shí)現(xiàn)最佳結(jié)果。
5.6 電壓范圍內(nèi)的性能演變
EEMBC 定義了 3.0V 的基礎(chǔ)測試默認(rèn)值,但該電壓并不代表電池供電的低功耗應(yīng)用。使用 LDO 調(diào)壓器時(shí),與保持在 3.0V 相比,移至較低電壓時(shí)的功率增益明顯。相反,當(dāng)使用 SMPS 調(diào)壓器增加 VDD 時(shí),功耗降低。這就是為什么 EEMBC 引入了用戶定義電壓的比較,讓制造商選擇理想的工作條件。
下圖顯示了不同電壓下的 ULPMark-CP 得分測量。
6、結(jié)論
本應(yīng)用筆記介紹了 STM32U575/585 微控制器的超低功耗特點(diǎn)。它們顯示了此微控制器系列在嵌入式系統(tǒng)中降低電流消耗方面所具有的優(yōu)勢。無論何種應(yīng)用,這些器件均可在優(yōu)化性能和功耗方面提供多種選擇。
基于實(shí)驗(yàn)和定量結(jié)果,本文檔提供了相關(guān)指南,幫助根據(jù)終端用戶應(yīng)用的特點(diǎn)和約束條件,快速選擇最佳運(yùn)行和低功耗模式?! ?/p>
評論
查看更多