開發人員早已能夠訪問處于低功耗工作狀態的 MCU,從而通過關斷外設甚至是內核本身來降低系統功耗要求。但是對于有些應用來說,開發人員需要更直接地控制功率消耗,以確保部分系統仍處于通電狀態,從而滿足某些關鍵性功能要求。
過去,設計人員要使用獨立的電源管理器件來構建精確的功率控制。與此相反,Analog Devices ADuCM3029 MCU 提供的是集成式解決方案,可幫助開發人員更輕松地實現最高的性能,同時最大限度地減少為傳感器數據采集、可穿戴電子設備和其他物聯網 (IoT) 應用所構建的設計的功耗。
MCU 解決了電源管理問題
對于低功耗設計,工程師可以找到各種各樣設計有節能選擇的高級 MCU。面向功耗敏感型應用的器件通常具備諸如頻率調節之類功能,讓工程師能夠以性能為代價換取更低的功耗。
通常,低功耗模式通過關斷越來越多的 MCU 子系統來逐漸降低功耗,直到只有喚醒 MCU 所需的極少電路保持運行。超低功耗 MCU 添加了特殊的工作模式,可以單獨管理器件內核及其外設的電源,從而進一步改進了電源管理。即使在這些情況下,這些特殊模式有時會將外設作為一個整體關斷,或者使用給開發人員授予極少功率分配細節控制權限的自動化機制。
雖然 MCU 電源管理通常提供一系列低功耗工作模式,但轉換為低功耗模式通常會導致功能急劇下降。在許多情況下,應用可以在有限期限內容忍功能損失。然而,在某些情況下,精確控制功耗對維持運行來說至關重要。Analog Devices ADuCM3029 處理器專為支持超低功耗應用中更復雜的電源管理要求而設計。
ADuCM3029 基于 ARM? Cortex?-M3 內核構建,提供了 256 KB 的糾錯碼 (ECC) 閃存和 64 KB 帶多奇偶校驗位保護功能的可配置 SRAM。該處理器的變型版 ADuCM3027 則具有 128 KB 閃存,而其他特性和功能與 ADuCM3029 相同。
除了集成的硬件加密加速器之外,這些器件還包括一個 8 通道、12 位模數轉換器 (ADC) 以及多個數字外設,包括 SPI、I2C、UART、GPIO、同步串行端口 (SPORT) 和 25 通道 DMA 控制器。即便具有廣泛的功能,該器件在活動模式下的功耗通常仍低于 30 μA/MHz。而且借助 ADuCM3029,設計人員可以進一步微調功能性能與功耗之間的平衡。
功耗性能微調
與大多數高級 MCU 一樣,ADuCM3029 具有多種功耗模式,旨在降低低活動期間的功耗。在休眠模式下,該器件會關閉處理器內核和大多數外設,而保持對程序選擇的 SRAM 區域供電,通常功耗低于 750 nA。在應用處于非活動狀態時,該器件的關斷模式僅需要 60 nA。
然而,開發人員經常會遇到在處理器處于非活動狀態時需要某種程度的外設活動的情況。為了解決這一問題,ADuCM3029 提供了另一種功耗模式,稱為靈活休眠 (Flexi) 模式。Flexi 模式可將功耗降至 300 μA,同時提供了處于活動模式和休眠模式之間的功能。在 Flexi 模式下,器件內核保持休眠模式,而開發人員指定的特定外設保持活動狀態(表 1)。
表 1:Analog Devices ADuCM3029 MCU 的功耗模式可自動啟用(綠色)或禁用(紅色)針對某些片上區塊的電源,但仍允許開發人員控制某些外設的電源(橙色),甚至配置休眠模式期間保留的 SRAM 大小 (*)。(表格來源:Analog Devices)
開發人員只需將器件的 PMG_PWRMOD 寄存器中的 MODE 位設置為 0 并執行 WFI(等待中斷)指令,即可將 MCU 置于 Flexi 模式。在處理器內核處于非活動狀態時,開發人員可以通過向 MCU CLKG_CLK_CTL5 寄存器中每個外設的相應位寫入 0 來保持特定的外設功能。雖然該器件不能在這種模式下執行指令,但是它可以繼續在外設到存儲器之間執行像 DMA 傳輸這樣的活動。
Flexi 模式提供了保持外設運行的能力,為傳感器應用中的一個普遍問題提供了節能的解決方案,即需要先在一段時間內對一個或多個傳感器進行采樣,然后才需要處理器處理。在這種情況下,開發人員可以使用集成式 ADC 的自動循環模式在選定通道上執行一次或多次轉換,并將 DMA 控制器設置為自動傳輸樣本至 SRAM。經過程序員指定次數的轉換和相關 DMA 傳輸后,DMA 控制器將發出中斷來喚醒內核,以進行后續的采樣數據處理(圖 1)。
圖 1:在 Flexi 模式下,Analog Devices ADuCM3029 的內核處理器處于休眠狀態,而所選外設將繼續工作,以便執行 ADC 樣本的多通道 DMA 傳輸等操作,并僅在完成時喚醒處理器。(圖片來源:Analog Devices)
高速緩存和時鐘
在以功能為代價換取性能方面,Flexi 模式和其他低功耗模式為設計人員提供了一個強大的機制,可顯著降低其設計的功耗。然而,對于許多像電池供電型系統這樣的應用來說,設計人員通常需要更好地控制功耗。借助 ADuCM3029,設計人員可以利用傳統方法和新方法組合來進一步降低功耗。
在典型的傳統方法中,使用指令高速緩存可以減少對片外存儲器或高能耗片載存儲器(如 Flash)的訪問。在基于 ADuCM3029 的系統中,開發人員可以分配多達 4 KB 的 SRAM 來充當高速緩存。實際上,具體功耗節省取決于高速緩存命中率,但是 Analog Devices 指出,在一些典型的基準應用中使用高速緩存可以顯著降低功耗(表 2)。
代碼類型 SRAM (μA) 閃存 (μA) 閃存和高速緩存 (μA) 高速緩存未命中數(大約執行 12 秒) 循環代碼(質數) 950 1280 980 24 線性代碼 (ULPBench) 911 1493 1083 ~800000
表 2:通過將 Analog Device ADuCM3029 配置成使用其一部分 SRAM 作為高速緩存,典型的基準應用就可以在接近低功耗 SRAM 訪問(而不是高功耗閃存訪問)的功耗級別上運行。(表格來源:Analog Devices)
頻率調節是另一種降低功耗的長期性方法。較低的處理器時鐘速率會減慢執行指令的速度,但同時也會降低功耗(圖 2)。然而,與許多其他方法不同,ADuCM3029 允許開發人員單獨為處理器和外設動態修改時鐘頻率。在此處,器件使用由 26 MHz 內部振蕩器或外部晶體驅動的鎖相環和時鐘分頻器,為片載資源(包括處理器、存儲器和接口)生成時鐘。一個 32 kHz 內部振蕩器或外部晶體用于驅動器件的實時時鐘 (RTC) 和看門狗定時器。開發人員可以修改器件運行時期間相應的時鐘寄存器,以改變時鐘頻率,使之滿足不斷變化的應用要求,或匹配功耗降低的機會。
圖 2:設計人員只需在 Analog Device ADuCM3029 中設置一些寄存器,即可動態調節 MCU 的時鐘頻率,并實現相應的功耗降低。(圖片來源:Analog Devices)
增強的電源路徑
除了支持更傳統的功耗降低方法之外,ADuCM3029 還基于專用設備硬件特性提供了更新穎的方法。ADuCM3029 的電源路徑中設計有一個片載降壓轉換器,用于縮小器件的電源電壓范圍(VBAT,1.74 V - 3.6 V)與內部數字域工作電壓 (1.2 V) 之間的差值。
正常工作時,由集成式低壓差 (LDO) 穩壓器提供此內部電壓。與任何典型的 LDO 一樣,當 LDO 的電源電壓與負載電壓之間的差值很大時,默認的電源路徑只會消散多余的能量,從而導致功率浪費。然而,憑借此款 MCU,設計人員只需使用少量的外部電容器,即可在更高電源電壓下減少這種損耗(圖 3)。在軟件方面,開發人員只需對降壓控制寄存器 (PMG_CTL1) 進行寫入操作,即可啟用降壓轉換器。
圖 3:開發人員只需使用幾行代碼和一些外部電容器,即可啟用 Analog Device ADuCM3029 的片載降壓轉換器,以降低施加在該器件 LDO 穩壓器上的電壓電平。(圖片來源:Analog Devices)
通過一種高效的基于電容器的充電泵拓撲,該轉換器就可以降低提供給 LDO 的電壓電平。因此,MCU 可顯著降低 VBAT 高端電壓電平下的功耗(圖 4)。當電平低于約 2.3 V 時,降壓轉換器進入旁路模式并跟隨 VBAT。
圖 4:當供電 (VBAT) 電壓電平高于約 3 V 時,ADuCM3029 的片載降壓轉換器可降低 MCU 功耗。在此處所示活動模式下以及 Flexi 模式下可相對降低 50%。(圖片來源:Analog Devices)
功率優化的采樣
諸如高速緩存、頻率調節和片載 DC-DC 轉換等功能可在系統級別操作,來幫助降低功耗。在應用級別,諸如 Flexi 模式等功能有助于降低外設操作(如傳感器采樣)的功耗。然而,即使是采用這些方法,在某些應用中也可能是不夠的。例如,電池供電的 IoT 器件通常負責以極低的采樣率對傳感器進行采樣,或者定期監控某個外部進程。
對于周期活動較慢的應用,開發人員通常依靠 MCU 的 RTC 來保持一致的時基,以及驅動用于在精確的預定時間喚醒 MCU 的倒數定時器。因此,高級 MCU 通常具有即使在極低功耗模式下也能保留 RTC 功能的功耗模式。借助 ADuCM3029,開發人員可以訪問兩個獨立的 RTC(RTC0 和 RTC1),從而為平衡功耗與性能提供更多選擇。
如表 1 所示,這兩個 RTC 均支持在活動、Flexi 和休眠模式下操作,但在最低功耗關斷模式下只有 RTC0 保持可用。但在其他模式中,這兩個時鐘之間的明顯差異使開發人員可以靈活地實現更復雜的定時應用。例如,RTC0 以秒為單位計算時間(1 Hz 時),將其限制為僅以秒為單位指定的喚醒時間。RTC1 可以在較寬的范圍內預分頻,并提供低至 30.7 μs 的喚醒時間。每個時鐘的功耗也不相同。RTC0 由主電源 (VBAT) 供電,而 RTC1 由內部 1.2 V 電源域供電。因此,使用可選的降壓轉換器可進一步降低 RTC1 的有效功耗。也許更重要的是,RTC1 支持 Analog Device 的 SensorStrobe 機制,這是 ADuCM3029 中內置的一種獨特的低功耗采樣功能。
SensorStrobe 是一種特殊的 RTC1 報警,可在 MCU 的 RTC1_SS1 引腳上產生輸出脈沖。開發人員可以將 ADuCM3029 的 SensorStrobe 輸出連接到外部多傳感器器件(如 Analog Devices ADXL363),這樣只需少量的元器件,即可創造出一種較低功耗的采樣解決方案(圖 5)。
圖 5:ADuCM3029 的 SensorStrobe 機制為外部器件提供了一個穩定的同步報警,當與集成的傳感器(如 Analog Devices ADXL363)結合使用時,可實現簡單的數據采集系統。(圖片來源:Analog Devices)
Analog Devices 作為其 ADuCM3029 EZ-KIT 開發套件 ADZS-UCM3029EZLITE 的一部分提供了該特定子系統(如圖 5 所示)。除了簡單的硬件配置之外,此方法只需幾行代碼,即可設置相關的器件寄存器并啟動 SensorStrobe 機制(列表 1)。
#define PRD_VAL 255
void SensorStrobe_Cfg()
{
// SensorStrobe Pin Mux
*pREG_GPIO2_CFG |= (0x3 << BITP_GPIO_CFG_PIN11);
// Reset the RTC counter
while(*pREG_RTC1_SR1 & 0x0180); //wait until sync
*pREG_RTC1_SR0 = 0xFF;
*pREG_RTC1_CR0 = 0;
while(!(*pREG_RTC1_SR0 & 0x0080 )); //wait for sync
// SensorStrobe configuration
// Initial trigger and auto reload value = 255 RTC counts
// RTC runs at 32KHz ideally, 1 RTC count = 30.7us
while(*pREG_RTC1_SR5 != 0);
*pREG_RTC1_SS1ARL = PRD_VAL;
// SensorStrobe to be triggered after 255 RTC counts
*pREG_RTC1_CR4SS = (1 << 9); //Enable Autoreload
*pREG_RTC1_SS1 = PRD_VAL; // Initial Compare Value
// Enable SensorStrobe
*pREG_RTC1_CR3SS = 1;
while(*pREG_RTC1_SR4 != 0x77FF);
// Initialize the counter value to zero
while(*pREG_RTC1_SR1 & 0x0600);
*pREG_RTC1_CNT0 = 0;
*pREG_RTC1_CNT1 = 0;
while(!(*pREG_RTC1_SR0 & 0x0400));
// Enable (start) the counter
while(*pREG_RTC1_SR1 & 0x0180); //wait until sync
*pREG_RTC1_SR0 = 0xFF;
*pREG_RTC1_CR0 = 1;
while(!(*pREG_RTC1_SR0 & 0x0080)); //wait for sync
return;
}
列表 1:開發人員只需設置一些器件寄存器,即可利用 Analog Devices ADuCM3029 MCU 的 SensorStrobe 功能。(圖片來源:Analog Devices)
在 SensorStrobe 運行期間,開發人員可以將 ADuCM3029 置于休眠模式,以確保在擴展采樣過程中產生最低的 MCU 功耗。當 MCU 保持休眠模式時,RTC1 將一直計數到在 SensorStrobe 設置期間建立的寄存器值中指定的所需值。滿足 SensorStrobe 計數條件時,SensorStrobe 信號會被施加到 ADXL363 的中斷輸入引腳,以喚醒該器件。ADXL363 隨即會運行其自己的數據采樣例程。完成后,ADXL363 將在 MCU 的中斷引腳上發出一個信號,使 MCU 從休眠模式中喚醒并開始處理采樣數據。
過去,開發人員通常使用外部 RTC、定時器甚至簡單的振蕩器來實現這種擴展采樣設計。除了增加設計復雜性之外,使用外部時鐘源還會中斷采樣數據與 MCU 自己的時基之間的時間同步。因此,使用過去的方法時,開發人員需要有效地對其數據進行重新采樣,以將其時間戳標準化為 MCU 的時間戳。但在 SensorStrobe 模式下使用 RTC1 后,開發人員可以確保采樣時間戳與基于 ADuCM3029 的系統本身保持同步。
開發人員可能會發現可采用許多分立式機制,來實現接近 ADuCM3029 的集成式電源管理能力。但是,通過發揮該器件的內部能力,工程師也可以輕松地在功耗與性能之間實現更好的匹配。
總結
人們對較低功率系統的需求持續挑戰著開發人員在更小的節能設計中實現最高性能的能力。而且,每種應用都需要在功能性能與功耗之間達到獨特的平衡,這益發增加了開發的難度。
Analog Devices ADuCM3029 MCU 的集成式電源管理功能使開發人員可以更輕松靈活地實現平衡。使用該器件,開發人員可以兼顧每個特定應用獨特的高性能與低功耗需求。
-
mcu
+關注
關注
146文章
17316瀏覽量
352257 -
振蕩器
+關注
關注
28文章
3847瀏覽量
139277 -
電源管理
+關注
關注
115文章
6193瀏覽量
144800
發布評論請先 登錄
相關推薦
評論