MSP430單片機低功耗結構

來源:互聯網
上載者:User
當系統時鐘發生器準系統建立之後,CPU內狀態寄存器SR的SCG1,SCG0,CPUOFF,OSCOFF位是重要的低功耗控制位。只要任意中斷被響應,上述控制位就被壓入堆棧儲存,中斷處理之後,又可恢複先前的工作方式。在中斷處理子程式執行期間,通過間接訪問堆棧資料,可以操作這些控制位;這樣允許程式在中斷返回(RETI) 後,以另一種功耗方式繼續運行。

 

        各控制位的作用如下:
SCG1: 複位,使能SMCLK;置位,禁止SMCLK。
SCG0: 複位,啟用直流發生器,只有SCG0置位,並且DCOCLK沒有被用作MCLK或SMCLK時,直流發生器才能被禁止。
OSCOFF:複位,啟用LFXT1,只有當OSCOFF被置位並且LFXT1CLK不用於MCLK或SMCLK時,FLXT1才能被禁止;當使用晶體振蕩器關閉選項OSCOFF時,需要考慮晶體振蕩器的啟動設定時間
CPUOFF:複位,啟用MCLK;置位,關閉MCLK。

 

       控制位SCG1、SCG0、CPUOFF、OSCOFF可由軟體配製成六種不同的工作模式:

 

   工作模式                 控制位                   CPU狀態、振蕩器及時鐘

 

                                 SCG1=0                   CPU活動
                                 SCG0=0                   MCLK活動
      AM                      CPUOFF=0              SMCLK活動
                                 OSCOFF=0              ACLK活動

 

                                 SCG1=0                   CPU禁止
      LPM0                   SCG0=0                   MCLK禁止
                                 OSCOFF=0                SMCLK活動
                                 CPUOFF=1               ACLK活動

 

                                 SCG1=0                   CPU禁止
                                                         MCLK禁止
      LPM1                  SCG0=1      如果DCOCLK位用作MCLK或SMCLK,則直流發生器禁止,

                                                  否則,仍然活動
                                 OSCOFF=0             SMCLK活動
                                 CPUOFF=1               ACLK活動

 

                                 SCG1=1                   CPU禁止
                                            如果DCO未被用作MCLK或SMCLK,自動禁止
                                 SCG0=0                   MCLK禁止        
      LPM2                    OSCOFF=0             SMCLK禁止    
                                 CPUOFF=1             ACLK活動

 

                                 SCG1=1                 CPU禁止
                                                    DCO被禁止,直流發生器被禁止
                                 SCG0=1                   MCLK禁止
      LPM3                    OSCOFF=0             SMCLK禁止
                                 CPUOFF=1             ACLK活動

 

                                 SCG1=1                   CPU禁止
                                 SCG0=1                   DCO被禁止,直流發生器被禁止
      LPM4                OSCOFF=1              所有振蕩器停止工作
                                                       MCLK、SMCLK禁止
                                CPUOFF=1               ACLK禁止

 

 

 

低功耗的設計技巧問題

 

1.LPM4:在振蕩器關閉模式期間,處理機的所有組件工作停止,此時的電流消耗最小。此時只有在系統上電電路檢測到低點電平或任一請求非同步響應中斷的外部中斷事件時才會從新工作。因此在設計應含有可能需要用到的外部中斷才採用這種模式,否則發生不可預料的結果。

 

2.LPM3:在DC發生關閉期間,只有晶振是活動的。但此時設定基本時序條件的DC發生器的DC電流被關閉。由於此電路的高阻設計,使功耗被抑制。當從DC關閉到啟動DC需要一段時間(ns~us)

3.LPM2:在此期間晶振和DC發生器是工作的,所以可以實現快速啟動

4.LPM1:在此期間振蕩器已經工作,所以不存在啟動延時問題

_BIS_SR(LPM3_bits)           _BIC_SR_IRQ(LPM3_bits)
LPM3                                 LPM3_EXIT

 

系統響應中斷過程:

 

1.硬體自動中斷服務
a.PC入棧
b.SR入棧
c.中斷向量賦給PC
d.GIE、SCG1、CPOOFF和OSCOFF清楚
e.IFG標誌位清除(單源中斷標誌比如WDTIFG

2.執行中斷處理子程式

3.執行RETI指令

4.SR出棧

5.PC出棧

低功耗應用
void main(void)
{
     WDTCTL=WDT_ADLY_1000;
     IE1 | = WDTIE;
     P1DIR | = 0X01;
     _EINT();
     for(;;)
       {
             LPM3;
             _NOP();
       }      
}

interrupt[WDT_VECTOR]   watchdog_timer(void)
{
     P1OUT ^ = 0X01;
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.