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