《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > NUC1xx微控制器的省電方式
NUC1xx微控制器的省電方式
電子發(fā)燒友
摘要: 新唐科技的NUC1xx包含NUC101,、NUC100,、NUC120,、NUC130和NUC140,,是以ARMCortex-M0為核心的32位微控制器(MCU),,經(jīng)由不同時(shí)鐘的設(shè)定,最高可以達(dá)到50MHz的運(yùn)作頻率,。然而在一般簡(jiǎn)單控制或系統(tǒng)負(fù)載較低時(shí),,CPU并不需要執(zhí)行在最高的運(yùn)行時(shí)鐘下即可應(yīng)付所需要的計(jì)算量,。這時(shí)候,,便可以利用系統(tǒng)時(shí)鐘的控制來(lái)降低時(shí)鐘,,以達(dá)到省電的目的,。另一種情況是CPU因?yàn)榈却乱粋€(gè)工作或只需要久久工作一次時(shí),,就可以先將CPU進(jìn)入Idle或PowerDown模式,,等到一定的時(shí)間之后或是有特定的事件發(fā)生時(shí),,才被喚醒過來(lái)進(jìn)行相關(guān)事件的處理。同時(shí),,如果系統(tǒng)內(nèi)沒有用到的系統(tǒng)模塊,也可以將其關(guān)閉以節(jié)省不必要的耗電,。本文介紹各種不同的省電方法的原理,并提供相關(guān)的范例說明,。開關(guān)系統(tǒng)模塊在新唐科技NUC1xx中,,為了省電的需求,,當(dāng)某個(gè)系統(tǒng)模塊不使用時(shí),,可以將其輸入時(shí)鐘關(guān)閉,,使其進(jìn)入關(guān)閉的模式,,依此來(lái)達(dá)到省電的效果,。在NUC1xx中,,幾乎所有的系統(tǒng)模塊都可以各別被關(guān)閉,這些模塊包括:WatchDogTimer,、RTC,、Timer0"3、I2C0"1,、SPI0"3,、UART0"2、PWM0"7,、CAN,、USB、A
Abstract:
Key words :

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

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

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

  在新唐科技NUC1xx中,為了省電的需求,,當(dāng)某個(gè)系統(tǒng)模塊不使用時(shí),,可以將其輸入時(shí)鐘關(guān)閉,使其進(jìn)入關(guān)閉的模式,,依此來(lái)達(dá)到省電的效果,。在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才有此功能,詳細(xì)說明請(qǐng)參考各芯片的相關(guān)文件,。歡迎轉(zhuǎn)載,,本文來(lái)自電子發(fā)燒友網(wǎng)(http://www.elecfans.com/)

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

  

各模塊的相關(guān)耗電 www.elecfans.com

 

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

  系統(tǒng)時(shí)鐘設(shè)定

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

  NUC1xx內(nèi)建了PLL,,能使用外部12MHz的晶振或是內(nèi)部22M振蕩器產(chǎn)生系統(tǒng)所需的時(shí)鐘,由PLL所產(chǎn)生的時(shí)鐘再經(jīng)過適當(dāng)除頻,,即可作為CPU的工作頻率,。另外NUC1xx也提供經(jīng)由外部32KHz的晶振或是內(nèi)部10KHz 振蕩器直接供給作為CPU工作頻率的方式。因此,,NUC1xx對(duì)于工作時(shí)鐘的設(shè)定,,提供了很大的靈活性。歡迎轉(zhuǎn)載,,本文來(lái)自電子發(fā)燒友網(wǎng)(http://www.elecfans.com/)

  

 

  IDLE省電模式

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

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

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

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

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

  Power Down省電模式

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

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

  一旦NUC1xx進(jìn)入Power Down省電模式,由于大部分的邏輯電路都進(jìn)入停止?fàn)顟B(tài),,因此要想喚醒CPU,,必須經(jīng)由特殊定義的中斷源來(lái)喚醒。在Idle省電模式下,,只要有任何中斷即可喚醒CPU不同,,不過相同的是,兩者都必須要在進(jìn)入省電模式前,,先設(shè)定好將來(lái)要用來(lái)喚醒CPU的模塊,,這包括其中斷或喚醒功能,這些為了喚醒CPU的準(zhǔn)備都完成之后,,才能進(jìn)入省電模式,,否則就沒有任何方式能夠再喚醒CPU了。歡迎轉(zhuǎn)載,,本文來(lái)自電子發(fā)燒友網(wǎng)(http://www.elecfans.com/)

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

  

 

  本文小結(jié)

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

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。