CPU內(nèi)狀態(tài)寄存器SR中的SCG0、SCG1、OscOff和CPUOff位是重要的低功耗控制位。
本文引用地址:
http://m.butianyuan.cn/article/201611/320060.htm 只要任意中斷被響應(yīng),PC和SR就被壓入堆棧保存,在中斷程序執(zhí)行的過程中,SR被清除(因為SR被清除,其GIE也被清除,所以中斷嵌套被禁止,如果手動將GIE置位,將不論優(yōu)先級的將該中斷服務(wù)程序中斷),CPU進入AM模式,中斷處理之后,又可以恢復(fù)先前的工作方式(在中斷處理子程序執(zhí)行期間,通過間接訪問堆棧數(shù)據(jù),可以操作這些位;這樣允許程序在中斷返回(RETI)后,以另一種功耗方式繼續(xù)運行)。
各控制位作用如下:
SCG1:當(dāng)SCG1復(fù)位時,使能SMCLK;SCG1置位則禁止SMCLK。
SCG0:當(dāng)SCG0復(fù)位時,直流發(fā)生器被激活(相當(dāng)于DCO被激活),只有SCG0被置位且DCOCLK信號沒有用于MCLK或SMCLK,直流發(fā)生器才能被禁止。
OscOff:當(dāng)OscOff復(fù)位時,LFXT晶體振蕩器激活,只有當(dāng)OscOff被置位且不用于MCLK或SMCLK時,LFXT晶體振蕩器才能被禁止。
CPUOff:當(dāng)CPUOff復(fù)位時,用于CPU的時鐘信號MCLK被激活,當(dāng)CPUOff置位時,MCLK停止。
控制位SCG1、SCG2、OscOff和CPUOff可由軟件配置成6種不同的工作模式:1種活動模式和5種低功耗模式。如下表所示:
工作模式 | 控制位 | CPU狀態(tài)、振蕩器及時鐘 |
活動模式 (AM) | SCG1=0 SCG0=0 OscOff=0 CPUOff=0 | CPU處于活動狀態(tài) MCLK活動 SMCLK活動 ACLK活動 |
低功耗模式0 (LPM0) | SCG1=0 SCG0=0 OscOff=0 CPUOff=1 | CPU處于禁止?fàn)顟B(tài) MCLK被禁止 SMCLK活動 ACLK活動 |
低功耗模式1 (LPM1) | SCG1=0 SCG0=1 OscOff=0 CPUOff=1 | CPU處于禁止?fàn)顟B(tài) 如果DCO未用作MCLK或SMCKL,則直流發(fā)生器被禁止,否則仍保持活動 MCLK被禁止 SMCLK活動 ACLK活動 |
低功耗模式2 (LPM2) | SCG1=1 SCG0=0 OscOff=0 CPUOff=1 | CPU處于禁止?fàn)顟B(tài) 如果DCO未用作MCLK或SMCKL,自動被禁止 MCLK被禁止 SMCLK被禁止 ACLK活動 |
低功耗模式3 (LPM3) | SCG1=1 SCG0=1 OscOff=0 CPUOff=1 | CPU處于禁止?fàn)顟B(tài) DCO被禁止,直流發(fā)生器被禁止 MCLK被禁止 SMCLK被禁止 ACLK活動 |
低功耗模式4 (LPM4) | SCG1=X SCG0=X OscOff=1 CPUOff=1 | CPU處于禁止?fàn)顟B(tài) DCO被禁止,直流發(fā)生器被禁止 所有振蕩器停止工作 MCLK被禁止 SMCLK被禁止 ACLK被禁止 |
評論