系統詳解Silabs MCU低功耗優勢及經典案例
盡量減少CPU的運算量
減少CPU的運算工作量,可以有效地降低CPU的功耗。減少CPU運算的工作可以從很多方面入手:
A)用查表的方法替代實時的計算;
B)不可避免的實時計算,算到精度夠了就結束,避免“過度”的計算;
C)盡量使用短的數據類型,例如,盡量使用字符型的8位數據替代16位的整型數據,盡量使用分數運算而避免浮點數運算等。
讓I/O模塊間歇運行
A)不用的I/O模塊要關掉,間歇使用的I/O模塊要及時關掉,以節省電能。
B)不用的I/O引腳要設置成輸出或設置成輸入,用上拉電阻拉高。
總之,在單片機系統設計過程中,深入理解單片機低功耗的特性,并在硬件和應用軟件的設計過程中充分利用單片機的低功耗特性,來設計出符合低功耗要求的產品。
Silabs的C8051F系列單片機是從傳統的8051單片機衍生出來的一種新型高速單片機。它屬于CISC指令系統,但由于采用“流水線”結構方式 處理指令,70%的指令的執行時間為1個或2個系統時鐘,指令執行的峰值速度為MIPS級別。雖然它的運行速度很高,但是在低功耗設計方面具有獨特的優 勢。這主要體現在:
供電電壓范圍寬
寬的供電電壓范圍不僅為單片機系統設計帶來方便,而且低的供電電壓可以有效地降低整個單片機系統的功耗。
有多種低功耗模式
SilabsMCU有Idle、Stop和Suspend三種低功耗模式。各種模式下片上資源狀態、功耗及喚醒的情況如表1所示。在Stop和 Suspend模式下,MCU的功耗可以降低到nA級。在Suspend模式下,有多種喚醒源,當被喚醒時(非復位源喚醒),CPU不會對系統復位。在 Stop模式下,SilabsMCU有豐富的復位源使CPU被喚醒,如圖1所示。
有多種時鐘方案供選擇
SilabsMCU都設計有兩套時鐘方案供選擇。用戶可以根據實際需要選擇內部振蕩器或外部振蕩器,或者同時選擇內、外振蕩器。內部振蕩器可以通過相關 寄存器設置來選擇不同的頻率。其頻率范圍為:80KHz~100MHz。更為重要的是在MCU運行中,可以實時高速地進行內、外時鐘切換。時鐘切換速度 快,切換產生的功耗小。這種特性,對于間歇工作的單片機系統低功耗設計,特別有幫助。
靈活的I/O設計
SilabsMCU的I/O口資源豐富,配置靈活。有三種配置方式:漏極開路、推挽輸出和弱上拉方式。用戶可以根據實際需要通過相關寄存器的設置來禁止或使能這些方式。其中將端口配置成漏極開路方式是最省電的方式。
高速實時的中斷響應
SilabsMCU響應中斷的時間非常快,一般只需要5個系統時鐘周期。中斷響應速度快,CPU花費在等待方面的時間少,這可以節省不少的等待功耗。
運算速度快,處理數據能力強
雖然Silabs的C8051F系列單片機屬于CISC指令系統,但由于它采用了“流水線”結構方式處理指令,70%的指令的執行時間為1個或2個系統 時鐘,突破了傳統的8051單片機運行效率低的弱點,特別是它執行乘法指令只要4個系統時鐘,執行除法指令只要8個系統時鐘。與那些RISC指令系統的單 片機和那些速度低的CISC單片機相比,這不僅僅帶來了數據運算的高效率,同時也極大地降低了系統的功耗。因此,使用每MIPS功耗來衡量Silabs的 C8051F系列單片機的功耗,無論是處理一般事件,還是做數據運算,它都是非常低的,具有明顯的優勢。圖2是和其他MCU做除法運算的速度對比。從對比 中我們可以看出SilabsMCU具有高速處理數據能力的同時也帶來了更低的功耗。
總之,深入理解SilabsMCU低功耗的特性,根據實際情況,靈活運用,就可以設計出滿足要求的低功耗產品。
SilabsMCU低功耗實現方法
這里舉一個運動裝置的應用,采用3V電池供電,間歇工作,要求平均功耗不大于200mA。使用SilabsMCUC8051F333成功地實現了低功耗 的應用。選擇雙時鐘系統,即處理數據時使用內部高速振蕩器25MHz,空閑時使用外部晶振32.768KHz(如圖3所示),并進入Idle模式。
沒有使用到的片上模擬和數字外設全部關閉,沒有用到的I/O全部設置成漏極開路方式。
下面我們分析一下在不同情況下,CPU的功耗情況。
在溫度-40℃~85℃范圍內,工作電壓3V,系統時鐘25MHz的情況下,CPU的功耗典型值是7.8mA。其電氣特性參數表如表2所示。
我們還可以大概估算出在不同頻率下CPU的功耗。當F>15MHz時,可以用下面的公式來估算:
IDD=IDD1-(F1-F)×IDD2(1)
其中IDD1是在不同電壓、最高頻率下正常工作時的最小功耗,F1是最高工作頻率,IDD2是F>15MHz,不同電壓下的IDD頻率敏感度。例如,VDD=3.0V;F=20MHz時,根據圖2可以算出:
IDD=7.8mA-(25MHz-20MHz)×0.21mA/MHz=6.75mA
當F≤15MHz時,CPU的功耗可以用下面的公式來估算:
IDD=F÷1MHz×IDD2(2)
例如,VDD=3.0V;F=32.768KHz時,根據圖2可以算出:
IDD=32.768KHz÷1MHz×0.38mA/MHz=12.45184mA
在溫度-40℃~85℃范圍內,工作電壓3V,系統時鐘32.768KHz的情況下,CPU的功耗可以通過Idle模式下的電氣特性參數來計算。Idle模式下的電氣特性參數表如表3所示。
根據公式(2),Idle模式下的功耗為:
IDD=32.768KHz÷1MHz×0.20mA/MHz=6.5536mA
從上面的分析我們可以看出,使用外部低頻振蕩器,并進入Idle模式,CPU的功耗可以降的很低。如果能用上Stop模式,功耗可以降低到0.1mA以下。在模擬該運動裝置真實使用環境的條件下,經過使用儀器測試,平均功耗降低到了150mA以下。該產品目前已經批量上市了。
結語
C8051F系列單片機封裝小,高集成度,低功耗特性好。只要根據項目的實際情況,認真細致地分析產品的低功耗要求,靈活應用SilabsMCU的低功耗特性,從硬件和應用軟件兩方面入手,就可以設計出滿足不同要求的低功耗產品。
分頻器相關文章:分頻器原理
評論