新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MSP430教程11:MSP430單片機(jī)低功耗結(jié)構(gòu)

        MSP430教程11:MSP430單片機(jī)低功耗結(jié)構(gòu)

        作者: 時(shí)間:2016-11-13 來源:網(wǎng)絡(luò) 收藏
        當(dāng)系統(tǒng)時(shí)鐘發(fā)生器基本功能建立之后,CPU內(nèi)狀態(tài)寄存器SR的SCG1,SCG0,CPUOFF,OSCOFF位是重要的低功耗控制位。只要任意中斷被響應(yīng),上述控制位就被壓入堆棧保存,中斷處理之后,又可恢復(fù)先前的工作方式。在中斷處理子程序執(zhí)行期間,通過間接訪問堆棧數(shù)據(jù),可以操作這些控制位;這樣允許程序在中斷返回(RETI)后,以另一種功耗方式繼續(xù)運(yùn)行。

        本文引用地址:http://www.104case.com/article/201611/316502.htm

        各控制位的作用如下:
        SCG1: 復(fù)位,使能SMCLK;置位,禁止SMCLK。
        SCG0: 復(fù)位,激活直流發(fā)生器,只有SCG0置位,并且DCOCLK沒有被用作MCLK或SMCLK時(shí),直流發(fā)生器才能被禁止。
        OSCOFF:復(fù)位,激活LFXT1,只有當(dāng)OSCOFF被置位并且LFXT1CLK不用于MCLK或SMCLK時(shí),F(xiàn)LXT1才能被禁止;當(dāng)使用晶體振蕩器關(guān)閉選項(xiàng)OSCOFF時(shí),需要考慮晶體振蕩器的啟動(dòng)設(shè)置時(shí)間
        CPUOFF:復(fù)位,激活MCLK;置位,關(guān)閉MCLK。

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

        工作模式控制位CPU狀態(tài)、振蕩器及時(shí)鐘

        SCG1=0CPU活動(dòng)
        SCG0=0MCLK活動(dòng)
        AMCPUOFF=0 SMCLK活動(dòng)
        OSCOFF=0 ACLK活動(dòng)

        SCG1=0CPU禁止
        LPM0SCG0=0MCLK禁止
        OSCOFF=0SMCLK活動(dòng)
        CPUOFF=1 ACLK活動(dòng)

        SCG1=0CPU禁止
        MCLK禁止
        LPM1SCG0=1如果DCOCLK位用作MCLK或SMCLK,則直流發(fā)生器禁止,

        否則,仍然活動(dòng)
        OSCOFF=0 SMCLK活動(dòng)
        CPUOFF=1ACLK活動(dòng)

        SCG1=1CPU禁止
        如果DCO未被用作MCLK或SMCLK,自動(dòng)禁止
        SCG0=0MCLK禁止
        LPM2OSCOFF=0 SMCLK禁止
        CPUOFF=1 ACLK活動(dòng)

        SCG1=1 CPU禁止
        DCO被禁止,直流發(fā)生器被禁止
        SCG0=1MCLK禁止
        LPM3OSCOFF=0 SMCLK禁止
        CPUOFF=1 ACLK活動(dòng)

        SCG1=1CPU禁止
        SCG0=1DCO被禁止,直流發(fā)生器被禁止
        LPM4OSCOFF=1所有振蕩器停止工作
        MCLK、SMCLK禁止
        CPUOFF=1 ACLK禁止

        低功耗的設(shè)計(jì)技巧問題

        1.LPM4:在振蕩器關(guān)閉模式期間,處理機(jī)的所有部件工作停止,此時(shí)的電流消耗最小。此時(shí)只有在系統(tǒng)上電電路檢測(cè)到低點(diǎn)電平或任一請(qǐng)求異步響應(yīng)中斷的外部中斷事件時(shí)才會(huì)從新工作。因此在設(shè)計(jì)應(yīng)含有可能需要用到的外部中斷才采用這種模式,否則發(fā)生不可預(yù)料的結(jié)果。

        2.LPM3:在DC發(fā)生關(guān)閉期間,只有晶振是活動(dòng)的。但此時(shí)設(shè)置基本時(shí)序條件的DC發(fā)生器的DC電流被關(guān)閉。由于此電路的高阻設(shè)計(jì),使功耗被抑制。當(dāng)從DC關(guān)閉到啟動(dòng)DC需要一段時(shí)間(ns~us)

        3.LPM2:在此期間晶振和DC發(fā)生器是工作的,所以可以實(shí)現(xiàn)快速啟動(dòng)

        4.LPM1:在此期間振蕩器已經(jīng)工作,所以不存在啟動(dòng)延時(shí)問題

        _BIS_SR(LPM3_bits) _BIC_SR_IRQ(LPM3_bits)
        LPM3 LPM3_EXIT

        系統(tǒng)響應(yīng)中斷過程:

        1.硬件自動(dòng)中斷服務(wù)
        a.PC入棧
        b.SR入棧
        c.中斷向量賦給PC
        d.GIE、SCG1、CPOOFF和OSCOFF清楚
        e.IFG標(biāo)志位清除(單源中斷標(biāo)志比如WDTIFG)

        2.執(zhí)行中斷處理子程序

        3.執(zhí)行RETI指令

        4.SR出棧

        5.PC出棧

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

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



        評(píng)論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 紫阳县| 江永县| 柏乡县| 胶州市| 淳安县| 印江| 西乡县| 呼和浩特市| 韶关市| 武清区| 遂川县| 集安市| 满城县| 运城市| 尉犁县| 陇川县| 大田县| 宝山区| 虹口区| 泾阳县| 安丘市| 星座| 南宁市| 阳江市| 顺昌县| 瓮安县| 海伦市| 蓬安县| 阿勒泰市| 武穴市| 镇安县| 清原| 射阳县| 德阳市| 永川市| 丘北县| 安顺市| 鲁甸县| 江安县| 蓝田县| 八宿县|