各控制位的作用如下:
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活動
amcpuoff=0 smclk活動
oscoff=0 aclk
活動scg1=0 cpu
禁止lpm0scg0=0 mclk禁止
oscoff=0 smclk活動
cpuoff=1 aclk
活動scg1=0 cpu
禁止 mclk禁止
lpm1scg0=1 如果dcoclk位用作mclk或smclk,則直流發生器禁止,
否則,仍然活動
oscoff=0 smclk活動
cpuoff=1 aclk
活動scg1=1 cpu
禁止 如果dco未被用作mclk或smclk,自動禁止
scg0=0 mclk禁止
lpm2oscoff=0 smclk禁止
cpuoff=1 aclk
活動scg1=1 cpu
禁止 dco被禁止,直流發生器被禁止
scg0=1 mclk禁止
lpm3oscoff=0 smclk禁止
cpuoff=1 aclk
活動scg1=1 cpu
禁止 scg0=1 dco被禁止,直流發生器被禁止
lpm4oscoff=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)
}interrupt[wdt_vector] watchdog_timer(void)
MSP430低功耗模式
msp430的電壓已經降到了3.3v,雖然不是最低的 arm的部分晶元核心工作電壓降到了1.8v 但是這已經是比較低的了 msp430比較出彩的地方乙個是把一顆晶元分成了n個不同的模組部分,不用的部分功能模組可以關閉掉,電流近似為零 另乙個出彩的地方是,可以有三個時鐘源,並產生更多的內部可用工作頻率...
MSP430微控制器 中斷服務
430的中斷是按照下圖1的優先順序順序定義的,有三種中斷 1.系統重置 2.不可遮蔽中斷 nmi 3.可遮蔽中斷。圖1.中斷優先順序 部分具體的中斷優先順序由高到低為 port2 vector 1 2u 0xffe2 port 2 port1 vector 4 2u 0xffe8 port 1 ti...
MSP430微控制器的中斷
中斷是msp430微處理器的一大特色,有效地利用中斷可以簡化程式和提高執行效率。msp430的幾乎每個外圍模組都能夠產生中斷,為msp430針對事件 即外圍模組產生的中斷 進行的程式設計打下基礎。msp430在沒有事件發生時進入低功耗模式,事件發生時,通過中斷喚醒cpu,事件處理完畢後,cpu再次進...