行業(yè)新聞
當(dāng)前位置:網(wǎng)站首頁> 新聞動(dòng)態(tài) > 行業(yè)新聞 >單片機(jī),MCU 的性能與功耗平衡
發(fā)布時(shí)間:2023-04-17 16:43:48
開發(fā)人員早已能夠訪問處于低功耗工作狀態(tài)的 MCU,從而通過關(guān)斷外設(shè)甚至是內(nèi)核本身來降低系統(tǒng)功耗要求。但是對于有些應(yīng)用來說,開發(fā)人員需要更直接地控制功率消耗,以確保部分系統(tǒng)仍處于通電狀態(tài),從而滿足某些關(guān)鍵性功能要求。
過去,設(shè)計(jì)人員要使用獨(dú)立的電源管理器件來構(gòu)建精確的功率控制。與此相反,Analog Devices ADuCM3029 MCU 提供的是集成式解決方案,可幫助開發(fā)人員更輕松地實(shí)現(xiàn)最高的性能,同時(shí)最大限度地減少為傳感器數(shù)據(jù)采集、可穿戴電子設(shè)備和其他物聯(lián)網(wǎng) (IoT) 應(yīng)用所構(gòu)建的設(shè)計(jì)的功耗。
MCU 解決了電源管理問題
對于低功耗設(shè)計(jì),工程師可以找到各種各樣設(shè)計(jì)有節(jié)能選擇的高級(jí) MCU。面向功耗敏感型應(yīng)用的器件通常具備諸如頻率調(diào)節(jié)之類功能,讓工程師能夠以性能為代價(jià)換取更低的功耗。
通常,低功耗模式通過關(guān)斷越來越多的 MCU 子系統(tǒng)來逐漸降低功耗,直到只有喚醒 MCU 所需的極少電路保持運(yùn)行。超低功耗 MCU 添加了特殊的工作模式,可以單獨(dú)管理器件內(nèi)核及其外設(shè)的電源,從而進(jìn)一步改進(jìn)了電源管理。即使在這些情況下,這些特殊模式有時(shí)會(huì)將外設(shè)作為一個(gè)整體關(guān)斷,或者使用給開發(fā)人員授予極少功率分配細(xì)節(jié)控制權(quán)限的自動(dòng)化機(jī)制。
雖然 MCU 電源管理通常提供一系列低功耗工作模式,但轉(zhuǎn)換為低功耗模式通常會(huì)導(dǎo)致功能急劇下降。在許多情況下,應(yīng)用可以在有限期限內(nèi)容忍功能損失。然而,在某些情況下,精確控制功耗對維持運(yùn)行來說至關(guān)重要。Analog Devices ADuCM3029 處理器專為支持超低功耗應(yīng)用中更復(fù)雜的電源管理要求而設(shè)計(jì)。
ADuCM3029 基于 ARM® Cortex®-M3 內(nèi)核構(gòu)建,提供了 256 KB 的糾錯(cuò)碼 (ECC) 閃存和 64 KB 帶多奇偶校驗(yàn)位保護(hù)功能的可配置 SRAM。該處理器的變型版 ADuCM3027 則具有 128 KB 閃存,而其他特性和功能與 ADuCM3029 相同。
除了集成的硬件加密加速器之外,這些器件還包括一個(gè) 8 通道、12 位模數(shù)轉(zhuǎn)換器 (ADC) 以及多個(gè)數(shù)字外設(shè),包括 SPI、I2C、UART、GPIO、同步串行端口 (SPORT) 和 25 通道 DMA 控制器。即便具有廣泛的功能,該器件在活動(dòng)模式下的功耗通常仍低于 30 μA/MHz。而且借助 ADuCM3029,設(shè)計(jì)人員可以進(jìn)一步微調(diào)功能性能與功耗之間的平衡。
功耗性能微調(diào)
與大多數(shù)高級(jí) MCU 一樣,ADuCM3029 具有多種功耗模式,旨在降低低活動(dòng)期間的功耗。在休眠模式下,該器件會(huì)關(guān)閉處理器內(nèi)核和大多數(shù)外設(shè),而保持對程序選擇的 SRAM 區(qū)域供電,通常功耗低于 750 nA。在應(yīng)用處于非活動(dòng)狀態(tài)時(shí),該器件的關(guān)斷模式僅需要 60 nA。
然而,開發(fā)人員經(jīng)常會(huì)遇到在處理器處于非活動(dòng)狀態(tài)時(shí)需要某種程度的外設(shè)活動(dòng)的情況。為了解決這一問題,ADuCM3029 提供了另一種功耗模式,稱為靈活休眠 (Flexi) 模式。Flexi 模式可將功耗降至 300 μA,同時(shí)提供了處于活動(dòng)模式和休眠模式之間的功能。在 Flexi 模式下,器件內(nèi)核保持休眠模式,而開發(fā)人員指定的特定外設(shè)保持活動(dòng)狀態(tài)(表 1)。
表 1:Analog Devices ADuCM3029 MCU 的功耗模式可自動(dòng)啟用(綠色)或禁用(紅色)針對某些片上區(qū)塊的電源,但仍允許開發(fā)人員控制某些外設(shè)的電源(橙色),甚至配置休眠模式期間保留的 SRAM 大小 (*)。(表格來源:Analog Devices)
開發(fā)人員只需將器件的 PMG_PWRMOD 寄存器中的 MODE 位設(shè)置為 0 并執(zhí)行 WFI(等待中斷)指令,即可將 MCU 置于 Flexi 模式。在處理器內(nèi)核處于非活動(dòng)狀態(tài)時(shí),開發(fā)人員可以通過向 MCU CLKG_CLK_CTL5 寄存器中每個(gè)外設(shè)的相應(yīng)位寫入 0 來保持特定的外設(shè)功能。雖然該器件不能在這種模式下執(zhí)行指令,但是它可以繼續(xù)在外設(shè)到存儲(chǔ)器之間執(zhí)行像 DMA 傳輸這樣的活動(dòng)。
Flexi 模式提供了保持外設(shè)運(yùn)行的能力,為傳感器應(yīng)用中的一個(gè)普遍問題提供了節(jié)能的解決方案,即需要先在一段時(shí)間內(nèi)對一個(gè)或多個(gè)傳感器進(jìn)行采樣,然后才需要處理器處理。在這種情況下,開發(fā)人員可以使用集成式 ADC 的自動(dòng)循環(huán)模式在選定通道上執(zhí)行一次或多次轉(zhuǎn)換,并將 DMA 控制器設(shè)置為自動(dòng)傳輸樣本至 SRAM。經(jīng)過程序員指定次數(shù)的轉(zhuǎn)換和相關(guān) DMA 傳輸后,DMA 控制器將發(fā)出中斷來喚醒內(nèi)核,以進(jìn)行后續(xù)的采樣數(shù)據(jù)處理(圖 1)。
圖 1:在 Flexi 模式下,Analog Devices ADuCM3029 的內(nèi)核處理器處于休眠狀態(tài),而所選外設(shè)將繼續(xù)工作,以便執(zhí)行 ADC 樣本的多通道 DMA 傳輸?shù)炔僮?,并僅在完成時(shí)喚醒處理器。(圖片來源:Analog Devices)
高速緩存和時(shí)鐘
在以功能為代價(jià)換取性能方面,F(xiàn)lexi 模式和其他低功耗模式為設(shè)計(jì)人員提供了一個(gè)強(qiáng)大的機(jī)制,可顯著降低其設(shè)計(jì)的功耗。然而,對于許多像電池供電型系統(tǒng)這樣的應(yīng)用來說,設(shè)計(jì)人員通常需要更好地控制功耗。借助 ADuCM3029,設(shè)計(jì)人員可以利用傳統(tǒng)方法和新方法組合來進(jìn)一步降低功耗。
在典型的傳統(tǒng)方法中,使用指令高速緩存可以減少對片外存儲(chǔ)器或高能耗片載存儲(chǔ)器(如 Flash)的訪問。在基于 ADuCM3029 的系統(tǒng)中,開發(fā)人員可以分配多達(dá) 4 KB 的 SRAM 來充當(dāng)高速緩存。實(shí)際上,具體功耗節(jié)省取決于高速緩存命中率,但是 Analog Devices 指出,在一些典型的基準(zhǔn)應(yīng)用中使用高速緩存可以顯著降低功耗(表 2)。
代碼類型 SRAM (μA) 閃存 (μA) 閃存和高速緩存 (μA) 高速緩存未命中數(shù)(大約執(zhí)行 12 秒)
|
表 2:通過將 Analog Device ADuCM3029 配置成使用其一部分 SRAM 作為高速緩存,典型的基準(zhǔn)應(yīng)用就可以在接近低功耗 SRAM 訪問(而不是高功耗閃存訪問)的功耗級(jí)別上運(yùn)行。(表格來源:Analog Devices)
頻率調(diào)節(jié)是另一種降低功耗的長期性方法。較低的處理器時(shí)鐘速率會(huì)減慢執(zhí)行指令的速度,但同時(shí)也會(huì)降低功耗(圖 2)。然而,與許多其他方法不同,ADuCM3029 允許開發(fā)人員單獨(dú)為處理器和外設(shè)動(dòng)態(tài)修改時(shí)鐘頻率。在此處,器件使用由 26 MHz 內(nèi)部振蕩器或外部晶體驅(qū)動(dòng)的鎖相環(huán)和時(shí)鐘分頻器,為片載資源(包括處理器、存儲(chǔ)器和接口)生成時(shí)鐘。一個(gè) 32 kHz 內(nèi)部振蕩器或外部晶體用于驅(qū)動(dòng)器件的實(shí)時(shí)時(shí)鐘 (RTC) 和看門狗定時(shí)器。開發(fā)人員可以修改器件運(yùn)行時(shí)期間相應(yīng)的時(shí)鐘寄存器,以改變時(shí)鐘頻率,使之滿足不斷變化的應(yīng)用要求,或匹配功耗降低的機(jī)會(huì)。
圖 2:設(shè)計(jì)人員只需在 Analog Device ADuCM3029 中設(shè)置一些寄存器,即可動(dòng)態(tài)調(diào)節(jié) MCU 的時(shí)鐘頻率,并實(shí)現(xiàn)相應(yīng)的功耗降低。(圖片來源:Analog Devices)
增強(qiáng)的電源路徑
除了支持更傳統(tǒng)的功耗降低方法之外,ADuCM3029 還基于專用設(shè)備硬件特性提供了更新穎的方法。ADuCM3029 的電源路徑中設(shè)計(jì)有一個(gè)片載降壓轉(zhuǎn)換器,用于縮小器件的電源電壓范圍(VBAT,1.74 V - 3.6 V)與內(nèi)部數(shù)字域工作電壓 (1.2 V) 之間的差值。
正常工作時(shí),由集成式低壓差 (LDO) 穩(wěn)壓器提供此內(nèi)部電壓。與任何典型的 LDO 一樣,當(dāng) LDO 的電源電壓與負(fù)載電壓之間的差值很大時(shí),默認(rèn)的電源路徑只會(huì)消散多余的能量,從而導(dǎo)致功率浪費(fèi)。然而,憑借此款 MCU,設(shè)計(jì)人員只需使用少量的外部電容器,即可在更高電源電壓下減少這種損耗(圖 3)。在軟件方面,開發(fā)人員只需對降壓控制寄存器 (PMG_CTL1) 進(jìn)行寫入操作,即可啟用降壓轉(zhuǎn)換器。
圖 3:開發(fā)人員只需使用幾行代碼和一些外部電容器,即可啟用 Analog Device ADuCM3029 的片載降壓轉(zhuǎn)換器,以降低施加在該器件 LDO 穩(wěn)壓器上的電壓電平。(圖片來源:Analog Devices)
通過一種高效的基于電容器的充電泵拓?fù)洌撧D(zhuǎn)換器就可以降低提供給 LDO 的電壓電平。因此,MCU 可顯著降低 VBAT 高端電壓電平下的功耗(圖 4)。當(dāng)電平低于約 2.3 V 時(shí),降壓轉(zhuǎn)換器進(jìn)入旁路模式并跟隨 VBAT。
圖 4:當(dāng)供電 (VBAT) 電壓電平高于約 3 V 時(shí),ADuCM3029 的片載降壓轉(zhuǎn)換器可降低 MCU 功耗。在此處所示活動(dòng)模式下以及 Flexi 模式下可相對降低 50%。(圖片來源:Analog Devices)
功率優(yōu)化的采樣
諸如高速緩存、頻率調(diào)節(jié)和片載 DC-DC 轉(zhuǎn)換等功能可在系統(tǒng)級(jí)別操作,來幫助降低功耗。在應(yīng)用級(jí)別,諸如 Flexi 模式等功能有助于降低外設(shè)操作(如傳感器采樣)的功耗。然而,即使是采用這些方法,在某些應(yīng)用中也可能是不夠的。例如,電池供電的 IoT 器件通常負(fù)責(zé)以極低的采樣率對傳感器進(jìn)行采樣,或者定期監(jiān)控某個(gè)外部進(jìn)程。
對于周期活動(dòng)較慢的應(yīng)用,開發(fā)人員通常依靠 MCU 的 RTC 來保持一致的時(shí)基,以及驅(qū)動(dòng)用于在精確的預(yù)定時(shí)間喚醒 MCU 的倒數(shù)定時(shí)器。因此,高級(jí) MCU 通常具有即使在極低功耗模式下也能保留 RTC 功能的功耗模式。借助 ADuCM3029,開發(fā)人員可以訪問兩個(gè)獨(dú)立的 RTC(RTC0 和 RTC1),從而為平衡功耗與性能提供更多選擇。
如表 1 所示,這兩個(gè) RTC 均支持在活動(dòng)、Flexi 和休眠模式下操作,但在最低功耗關(guān)斷模式下只有 RTC0 保持可用。但在其他模式中,這兩個(gè)時(shí)鐘之間的明顯差異使開發(fā)人員可以靈活地實(shí)現(xiàn)更復(fù)雜的定時(shí)應(yīng)用。例如,RTC0 以秒為單位計(jì)算時(shí)間(1 Hz 時(shí)),將其限制為僅以秒為單位指定的喚醒時(shí)間。RTC1 可以在較寬的范圍內(nèi)預(yù)分頻,并提供低至 30.7 μs 的喚醒時(shí)間。每個(gè)時(shí)鐘的功耗也不相同。RTC0 由主電源 (VBAT) 供電,而 RTC1 由內(nèi)部 1.2 V 電源域供電。因此,使用可選的降壓轉(zhuǎn)換器可進(jìn)一步降低 RTC1 的有效功耗。也許更重要的是,RTC1 支持 Analog Device 的 SensorStrobe 機(jī)制,這是 ADuCM3029 中內(nèi)置的一種獨(dú)特的低功耗采樣功能。
SensorStrobe 是一種特殊的 RTC1 報(bào)警,可在 MCU 的 RTC1_SS1 引腳上產(chǎn)生輸出脈沖。開發(fā)人員可以將 ADuCM3029 的 SensorStrobe 輸出連接到外部多傳感器器件(如 Analog Devices ADXL363),這樣只需少量的元器件,即可創(chuàng)造出一種較低功耗的采樣解決方案(圖 5)。
圖 5:ADuCM3029 的 SensorStrobe 機(jī)制為外部器件提供了一個(gè)穩(wěn)定的同步報(bào)警,當(dāng)與集成的傳感器(如 Analog Devices ADXL363)結(jié)合使用時(shí),可實(shí)現(xiàn)簡單的數(shù)據(jù)采集系統(tǒng)。(圖片來源:Analog Devices)
Analog Devices 作為其 ADuCM3029 EZ-KIT 開發(fā)套件 ADZS-UCM3029EZLITE 的一部分提供了該特定子系統(tǒng)(如圖 5 所示)。除了簡單的硬件配置之外,此方法只需幾行代碼,即可設(shè)置相關(guān)的器件寄存器并啟動(dòng) SensorStrobe 機(jī)制(列表 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:開發(fā)人員只需設(shè)置一些器件寄存器,即可利用 Analog Devices ADuCM3029 MCU 的 SensorStrobe 功能。(圖片來源:Analog Devices)
在 SensorStrobe 運(yùn)行期間,開發(fā)人員可以將 ADuCM3029 置于休眠模式,以確保在擴(kuò)展采樣過程中產(chǎn)生最低的 MCU 功耗。當(dāng) MCU 保持休眠模式時(shí),RTC1 將一直計(jì)數(shù)到在 SensorStrobe 設(shè)置期間建立的寄存器值中指定的所需值。滿足 SensorStrobe 計(jì)數(shù)條件時(shí),SensorStrobe 信號(hào)會(huì)被施加到 ADXL363 的中斷輸入引腳,以喚醒該器件。ADXL363 隨即會(huì)運(yùn)行其自己的數(shù)據(jù)采樣例程。完成后,ADXL363 將在 MCU 的中斷引腳上發(fā)出一個(gè)信號(hào),使 MCU 從休眠模式中喚醒并開始處理采樣數(shù)據(jù)。
過去,開發(fā)人員通常使用外部 RTC、定時(shí)器甚至簡單的振蕩器來實(shí)現(xiàn)這種擴(kuò)展采樣設(shè)計(jì)。除了增加設(shè)計(jì)復(fù)雜性之外,使用外部時(shí)鐘源還會(huì)中斷采樣數(shù)據(jù)與 MCU 自己的時(shí)基之間的時(shí)間同步。因此,使用過去的方法時(shí),開發(fā)人員需要有效地對其數(shù)據(jù)進(jìn)行重新采樣,以將其時(shí)間戳標(biāo)準(zhǔn)化為 MCU 的時(shí)間戳。但在 SensorStrobe 模式下使用 RTC1 后,開發(fā)人員可以確保采樣時(shí)間戳與基于 ADuCM3029 的系統(tǒng)本身保持同步。
開發(fā)人員可能會(huì)發(fā)現(xiàn)可采用許多分立式機(jī)制,來實(shí)現(xiàn)接近 ADuCM3029 的集成式電源管理能力。但是,通過發(fā)揮該器件的內(nèi)部能力,工程師也可以輕松地在功耗與性能之間實(shí)現(xiàn)更好的匹配。
總結(jié)
人們對較低功率系統(tǒng)的需求持續(xù)挑戰(zhàn)著開發(fā)人員在更小的節(jié)能設(shè)計(jì)中實(shí)現(xiàn)最高性能的能力。而且,每種應(yīng)用都需要在功能性能與功耗之間達(dá)到獨(dú)特的平衡,這益發(fā)增加了開發(fā)的難度。
Analog Devices ADuCM3029 MCU 的集成式電源管理功能使開發(fā)人員可以更輕松靈活地實(shí)現(xiàn)平衡。使用該器件,開發(fā)人員可以兼顧每個(gè)特定應(yīng)用獨(dú)特的高性能與低功耗需求。