測量和優(yōu)化超低功耗
我們首先解釋如何測量它。開發(fā)人員通常會查看數(shù)據(jù)手冊,在其中可以找到每MHz的電流值,以及不同睡眠模式下的電流值。
第一個問題是,查看工作功耗時,數(shù)據(jù)手冊通常不會解釋獲得該值的條件。例如代碼、電壓和閃存上的等待狀態(tài)。有些供應(yīng)商使用工作模式參考,例如EEMBC CoreMark,而有些供應(yīng)商則使用像"while 1"語句一樣簡單的操作。如果閃存上有等待狀態(tài),則微控制器單元的性能會降低,增加執(zhí)行時間,從而提高執(zhí)行任務(wù)的能耗。有些供應(yīng)商提供典型電壓時的數(shù)值,有些提供最低電壓時的數(shù)值,還有些供應(yīng)商不指定任何電壓。也許這些差異很微妙,但沒有一個標(biāo)準(zhǔn)的話,比較只能是大致上的對比。
通常,深度睡眠模式在數(shù)據(jù)手冊中有相當(dāng)詳細的解釋,但同樣,獲得這些模式下的電流消耗的條件因供應(yīng)商而異(例如保留的內(nèi)存量或電壓)。此外,在實際應(yīng)用中,用戶還必須考慮進入和退出這些模式所消耗的電能。這可能是一個微不足道的值,也可能事關(guān)重大,取決于器件是大部分時間處于睡眠模式還是頻繁喚醒。
第二個問題是器件有多長時間處于睡眠狀態(tài)?工作模式和睡眠模式之間的平衡對于確定ULP測量非常重要。為了簡化該過程,EEMBC對其ULPMark-CoreProfile (ULPMark-CP)使用1秒鐘時間;這是一項基準(zhǔn)測試,許多微控制器廠商將其用作數(shù)據(jù)手冊的標(biāo)準(zhǔn)。注意:使用1秒的決定被視為EEMBC工作組的共識??紤]到ULPMark-CoreProfile工作負載的工作時間,占空比將為98%左右。在該基準(zhǔn)測試中,器件每秒喚醒一次,執(zhí)行少量工作(工作周期),然后回到睡眠狀態(tài)。
通常,在工作模式下,模擬電路會導(dǎo)致電流消耗存在偏移;因此,使工作電流最小并有效使用深度睡眠模式對優(yōu)化整個系統(tǒng)的電能使用是有意義的。請注意,降低頻率會降低工作電流,但時間會增加,前面提到的模擬電路造成的偏移在微控制器處于工作狀態(tài)時保持不變。但是,微控制器不同選擇的利弊是什么?應(yīng)用的占空比和深度睡眠電流對消耗的電能有何影響?
超低功耗測試平臺
微控制器——ADuCM4050 和 ADuCM302x的超低功耗(電能)特性。在ULPMark節(jié)課表中, ADuCM4050和ADuCM302x的得分分別為203和245.5。請記住,該基準(zhǔn)測試僅操作微控制器單元的核心(因此得名CoreProfile)。如何解釋18%的差異?
ADuCM4050包含一個采用ARMv7E-M架構(gòu)的ARM? Cortex?-M4F。ADuCM302x包含一個采用ARMv7-M架構(gòu)的ARM Cortex-M3。雖然兩個內(nèi)核均有帶分支推測的三級流水線,并且兩者的指令集架構(gòu)相似,但只有Cortex-M4F支持DSP和浮點指令。ULPMark-CoreProfile沒有DSP指令,因此Cortex-M4F器件沒能發(fā)揮FPU的優(yōu)勢。
對于基準(zhǔn)分析,ADuCM4050和ADuCM302x分別工作在52 MHz和26MHz。ADuCM4050需要大約11,284個周期來執(zhí)行ULPMark工作負載,ADuCM302x需要10,920個周期,這意味著前者在1秒周期的217μs內(nèi)完成工作模式部分,而后者的工作時間為420 μs。ADuCM4050使用的周期數(shù)比ADuCM3029多的原因是所用頻率不同(分別為52 MHz和26 MHz),ADuCM4050的閃存需要一個等待狀態(tài),而ADuCM3029的閃存上沒有等待狀態(tài)。ADuCM4050具有高速緩存,因此在閃存上增加等待狀態(tài)不會有太大影響,因為許多指令是從高速緩存執(zhí)行,可以全速(52 MHz)存取而無需額外的等待狀態(tài)。關(guān)于執(zhí)行時間,同預(yù)期一樣,ADuCM4050執(zhí)行工作負載的速度比ADuCM3029更快,因為其運行頻率是ADuM3029的兩倍。
超低功耗mcu-低功耗mcu的選擇方法
嵌入式微控制器 (mcu)的功耗在當(dāng)今電池供電應(yīng)用中正變得越來越舉足輕重。大多mcu 芯片廠商都提供低功耗產(chǎn)品,但是選擇一款最適合您自己應(yīng)用的產(chǎn)品并非易事,并不像對比數(shù)據(jù)表前面的數(shù)據(jù)那么簡單。我們必須詳細對比 mcu 功能,以便找到功耗最低的產(chǎn)品,這些功能包括:斷電模式、 定時系統(tǒng) 、事件驅(qū)動功能、 片上外設(shè)、 掉電檢測與保護、 漏電流處理效率。
在低功耗設(shè)計中,平均電流消耗往往決定電池壽命。例如,如果某個應(yīng)用采用額定電流為 400mAh 的 Eveready 高電量 9V 1222 型電池的話,要提供一年的電池壽命其平均電流消耗必須低于 400mAh/8760h,即45.7uA。
在使 mcu 能夠達到電流預(yù)算的所有功能中,斷電模式最重要。低功耗 mcu 具有可提供不同級別功能的斷電模式。例如,TI 超低功耗 mcu MSP430 系列產(chǎn)品可以提供 5 種斷電模式。低功耗模式 0 (LPM0) 會關(guān)閉 CPU,但是保持其他功能正常運轉(zhuǎn)。LPM1 與 LPM2 模式在禁用功能列表中增加了各種時鐘功能。LPM3 是最常用的低功耗模式,只保持低頻率時鐘振蕩器以及采用該時鐘的外設(shè)運行。LPM3 通常稱為實時時鐘模式,因為它允許定時器采用低功耗 32768Hz 時鐘源運行,電流消耗低于 1uA,同時還可定期激活系統(tǒng)。最后,LPM4 完全關(guān)閉器件上的包括 RAM 存儲在內(nèi)的所有功能,電流消耗僅 100 毫微安。
時鐘系統(tǒng)是mcu功耗的關(guān)鍵。應(yīng)用可以每秒多次或幾百次進入與退出各種低功耗模式。進入或退出低功耗模式以及快速處理數(shù)據(jù)的功能極為重要,因為 CPU會在等待時鐘穩(wěn)定下來期間浪費電流。大多低功耗 mcu 都具有“即時啟動”時鐘,其可以在不到 10~20us 時間內(nèi)為 CPU 準(zhǔn)備就緒。但是,重要的是要明白哪些時鐘是即時啟動、哪些非即時啟動的。某些 mcu 具有雙級時鐘激活功能,該功能在高頻時鐘穩(wěn)定化過程中提供一個低頻時鐘(通常為32768Hz),其可以達到 1 毫秒。CPU 在大約 15us 時間內(nèi)正常運行,但是運行頻率較低,效率也較低。如果 CPU 只需要執(zhí)行數(shù)量較少的指令的話,如:25 條,其需要 763us。CPU 低頻比高頻時消耗更少的電流,但是并不足于彌補處理時間的差異。相比而言,某些 mcu 在 6 微秒時間內(nèi)就可以為 CPU 提供高速時鐘,處理相同的 25 條指令僅需要大約 9us(6us 激活+25 條指令′0.125us指令速率),而且可以實現(xiàn)即時啟動的高速串行通信。
另外,如果 mcu 時鐘系統(tǒng)為外設(shè)提供多個時鐘源的話,當(dāng) CPU 處于睡眠狀態(tài)時外設(shè)仍然可以運行。例如,一次 A/D 轉(zhuǎn)換可能需要一個高速時鐘。如果 mcu 時鐘系統(tǒng)提供獨立于 CPU 的高速時鐘,CPU 就可以在 A/D 轉(zhuǎn)換器運行情況下進入睡眠狀態(tài),從而節(jié)省 CPU 耗流量。
事件驅(qū)動功能與時鐘系統(tǒng)的靈活性并存。中斷會使 mcu 退出低功耗模式,因此,mcu 的中斷越多,其防止浪費電流的 CPU 輪詢與降低功耗的靈活性就越大。輪詢意味著進行與不進行功耗預(yù)算之間存在差異