《電子技術(shù)應用》
您所在的位置:首頁 > 電源技術(shù) > 業(yè)界動態(tài) > 微控制器耗電嗎,如何進行微控制省電管理

微控制器耗電嗎,,如何進行微控制省電管理

2020-06-21
來源:21IC

    微控制器的使用越來越多,,在現(xiàn)實諸多方面均有微控制器的身影,。但在實踐過程中,,暴露出一些微控制器問題,,譬如如何對微控制器進行省電管理,。

    

1.jpg

    一,、微控制器省電管理方法

    新唐科技的NUC1xx包含NUC101,、NUC100、NUC120,、NUC130和NUC140,,是以ARM Cortex-M0為核心的32位微控制器(MCU),經(jīng)由不同時鐘的設(shè)定,,最高可以達到50MHz的運作頻率,。然而在一般簡單控制或系統(tǒng)負載較低時,CPU并不需要執(zhí)行在最高的運行時鐘下即可應付所需要的計算量,。這時候,,便可以利用系統(tǒng)時鐘的控制來降低時鐘,以達到省電的目的,。

    另一種情況是CPU因為等待下一個工作或只需要久久工作一次時,,就可以先將CPU進入Idle或Power Down模式,等到一定的時間之后或是有特定的事件發(fā)生時,,才被喚醒過來進行相關(guān)事件的處理,。同時,如果系統(tǒng)內(nèi)沒有用到的系統(tǒng)模塊,,也可以將其關(guān)閉以節(jié)省不必要的耗電,。下面介紹各種不同的省電方法的原理,并提供相關(guān)的范例說明,。

    二,、開關(guān)系統(tǒng)模塊

    在新唐科技NUC1xx中,為了省電的需求,,當某個系統(tǒng)模塊不使用時,,可以將其輸入時鐘關(guān)閉,使其進入關(guān)閉的模式,,依此來達到省電的效果,。在NUC1xx中,幾乎所有的系統(tǒng)模塊都可以各別被關(guān)閉,,這些模塊包括:Watch Dog TImer,、RTC、TImer0~3,、I2C0~1,、SPI0~3、UART0~2、PWM0~7,、CAN,、USB、ADC,、ACMP,、PS2、PDMA,、 Flash ISP,。不過,,并非每顆芯片都包含了所有模塊功能,,例如CAN模塊只在NUC130和NUC140才有此功能,詳細說明請參考各芯片的相關(guān)文件,。

    各模塊的相關(guān)耗電如表1所示,。

    

222.png

    新唐科技NUC1xx藉由關(guān)閉各模塊時鐘的方式來達到關(guān)閉各模塊的目的,所以要關(guān)閉模塊就必須設(shè)定相關(guān)的時鐘控制緩存器,。NUX1xx提供AHBCLK Register與APBCLK Register,,來控制上文所列出各模塊的開關(guān)。

    三,、系統(tǒng)時鐘設(shè)定

    新唐科技NUC1xx本身的耗電量和它的運行時鐘有很大關(guān)系,。如果運行的時鐘高,則耗電高,,反之則比較省電,,但同時CPU就可能無法負荷大量的運算。因此,,如果要同時兼顧大量運算跟省電,,就必須能夠根據(jù)實際上的需求來調(diào)整CPU的工作時鐘,以求達到最佳的運作效率,。

    NUC1xx內(nèi)建了PLL,,能使用外部12MHz的晶振或是內(nèi)部22M振蕩器產(chǎn)生系統(tǒng)所需的時鐘,由PLL所產(chǎn)生的時鐘再經(jīng)過適當除頻,,即可作為CPU的工作頻率,。另外NUC1xx也提供經(jīng)由外部32KHz的晶振或是內(nèi)部10KHz 振蕩器直接供給作為CPU工作頻率的方式。因此,,NUC1xx對于工作時鐘的設(shè)定,,提供了很大的靈活性。

  

33.png

  

    四,、IDLE省電模式

    新唐科技NUC1xx除了可利用設(shè)定最適合的工作時鐘來達到省電的目的外,,如果在系統(tǒng)完全不需要工作時,還可以將CPU及大部分的硬件關(guān)閉,,以達到最大的省電效果,。這種搭配關(guān)閉CPU及大部分硬件的模式,,我們稱之為省電模式,其中包括了Idle省電模式及Power Down省電模式,。下面就Idle省電模式進行說明,。

    藉由關(guān)閉大部分硬件時鐘以達到最大省電效率的模式主要有兩種,一種是Idle省電模式,,另一種是Power Down省電模式,。這兩種模式最大的不同點是,當系統(tǒng)進入Idle省電模式下時,,任何的中斷事件都可以重新喚醒CPU,,以便讓系統(tǒng)可以處理新進的事件。但如果系統(tǒng)處于Power Down省電模式,,就只有少數(shù)特定的中斷事件能夠喚醒系統(tǒng),。

    由于所謂的Idle模式,實際上就是把CPU的時鐘關(guān)閉,,這樣讓CPU在沒有工作時處在最省電的模式,。因為在這個模式下,只是將CPU的時鐘關(guān)閉,,一旦有任何中斷事件發(fā)生,,馬上可以打開CPU的時鐘來處理相關(guān)的事件,所以不會造成處理事件的延遲,,同時又可以達到省電效果,,是兼顧速度與省電的一種模式。

    NUC1xx可以利用ARM Cortex-M0本身提供的WFI/WFE指令進入Idle模式,。一旦進入Idle模式,,CPU將立刻進入Sleep模式而停止運作,因此在WFI/WFE指令之后的程序都必須等到CPU被喚醒后才會被執(zhí)行,。此時NUC1xx的耗電量將降到約[email protected],。

    進入Idle省電模式之后,如果要喚醒CPU,,回到一般的工作模式,,就必須先產(chǎn)生中斷信號。該中斷信號可以是NUC1xx中的任何模塊所產(chǎn)生的中斷,,也可以通過外部中斷的方式來喚醒CPU,。需要注意的是,當決定CPU要由某個中斷來喚醒時,,就必須在進入Idle省電模式前,,將該中斷設(shè)定完成,才能使其產(chǎn)生中斷事件來喚醒CPU。

    五,、Power Down省電模式

    Power Down是新唐科技NUC1xx最省電的一種模式,,因為一旦進入Power Down省電模式,晶振時鐘會被關(guān)閉,,整顆NUC1xx呈現(xiàn)靜止的狀態(tài),,這時的耗電量將減到最小的程度。而在此模式下,,也只有少數(shù)的特定中斷事件能夠喚醒NUC1xx,,使其恢復工作狀態(tài)。在Power Down模式下,,NUC1xx提供了GPIO,、USB、UART,、RTC,、ACMP和CAN的中斷喚醒方式,。

    要進入Power Down省電模式,,除了必須呼叫WFI/WFE指令外,在調(diào)用WFI/WFE指令之前,,必須另將PD_WAIT_CPU和PWR_DOWN_EN兩個功能依序打開,。已確保CPU先進入Sleep模式后,系統(tǒng)再進入Power Down模式,,此時NUc1xx是屬于最省電的狀態(tài),,耗電量將降到約15uA。

    一旦NUC1xx進入Power Down省電模式,,由于大部分的邏輯電路都進入停止狀態(tài),,因此要想喚醒CPU,必須經(jīng)由特殊定義的中斷源來喚醒,。在Idle省電模式下,,只要有任何中斷即可喚醒CPU不同,不過相同的是,,兩者都必須要在進入省電模式前,,先設(shè)定好將來要用來喚醒CPU的模塊,這包括其中斷或喚醒功能,,這些為了喚醒CPU的準備都完成之后,,才能進入省電模式,否則就沒有任何方式能夠再喚醒CPU了,。

    由于所謂的Power Down省電模式,,實際上是把晶振的時鐘關(guān)閉,讓整個NUC1xx呈現(xiàn)靜止的狀態(tài)。而因為晶振也被關(guān)閉了,,一旦有喚醒中斷事件發(fā)生,,需要等到晶振穩(wěn)定下來后,CPU才能繼續(xù)運作,,所以由Power Down進入一般的工作模式,,會需要延遲一點時間來等待,而NUC1xx系列所提供的延遲時間預設(shè)為4096個clock cycle,。以12MHz來計算,,延遲時間為(1/12MHz)*4096=341.12us(圖2中的T2),而晶振起振所需時間(圖2中的T1)則會隨著晶振頻率,、品牌,、PCB 布線等都會造成少許差異。一般而言, 12MHz晶振起振所需時間約1~2ms,。實際量測范例數(shù)據(jù)如圖2所示,。

    

44.png

    本文介紹了新唐科技NUC1xx所提供的各種省電方式,包括了關(guān)閉沒用到的模塊,、調(diào)整CPU運作的時鐘,、Idle省電模式與Power Down省電模式。在實際應用時,,使用者可以根據(jù)自身所需,,選擇適合的方式,甚至組合不同的省電方法以達到最佳的省電效率,。

    

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]