新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > MSP430教程9:MSP430單片機時鐘模塊

        MSP430教程9:MSP430單片機時鐘模塊

        作者: 時間:2016-11-13 來源:網(wǎng)絡 收藏
        MSP430時鐘模塊由低速晶體振蕩器LFXT1、高速晶體振蕩器XT2(MSP430X11X,MSP430X12X沒有)、數(shù)字控制振蕩器DCO、瑣相環(huán)FLL(MSP430X16X以上包括)和增強型瑣相環(huán)FLL+等部件組成。

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

        MSP430X1XX基本時鐘模塊有三個時鐘輸入源LFXT1CLK(低速32768Hz,高速450Hz到8MHz)、XT2CLK(450Hz到8MHz)、DCOCLK,提供以下三種時鐘信號

        1.ACLK輔助時鐘:由LFXT1CLK信號經(jīng)1、2、4、8分頻后得到,可以由軟件選作各個外圍模塊的時鐘信號,一般用于低速外設。

        2.MCLK系統(tǒng)主時鐘:MCLK可由軟件選擇來自LFXT1CLK、XT2CLK、DCOCLK三者之一,然后經(jīng)1、2、4、8分頻得到,MCLK主要用于CPU和系統(tǒng)。

        3.SMCLK子系統(tǒng)時鐘:可由軟件選自LFXT1CLK和DCOCLK(MSP430X11X、MSP430X12X系列,因其不含XT2),或XT2CLK和DCOCLK,然后經(jīng)1、2、4、8分頻得到。SMCLK主要用于高速外圍模塊。

        系統(tǒng)頻率與系統(tǒng)的工作電壓密切相關(MSP430工作電壓1.8V~3.6V,編程電壓2.7V~3.6V),所以不同的工作電壓,需要選擇不同的系統(tǒng)時鐘。當兩個外部振蕩器失效時,DCO振蕩器會自動被選作MCLK的時鐘源。PUC信號之后,DCOCLK被自動選作MCLK和SMCLK的時鐘信號,LFXT1CLK被選作ACLK的時鐘信號,根據(jù)需要MCLK和SMCLK的時鐘源可以另外設置。

        控制時鐘模塊的三個寄存器為DCO控制寄存器DCOCTL、基本時鐘系統(tǒng)控制寄存器1BCSCTL1、基本時鐘控制寄存器2BCSCTL2

        1.DCOCTL

        76 5432 10
        DCO2DCO1 DCO0MOD4MOD3MOD2 MOD1 MOD0

        DCO.0~DCO.2定義8種頻率之一(DCO=0~DCO=8),可分段調(diào)節(jié)DCOCLK頻率,相領兩種頻率相差10%。

        MOD.0~MOD.4定義在32個DCO周期中插入的fdco+1周期個數(shù),而余下的周期為fdco周期,控制切換DCO和DCO+1選擇的兩種頻率,如果DCO常數(shù)為7,表示已經(jīng)選擇最高頻率,此時不能利用MOD.0~MOD.4進行頻率調(diào)整。

        DCOCTL POR后初始值為60H。

        2.BCSCTL1

        765 4 3210
        XT2OFFXTS DIVA1 DIVA0 XT5V RSEL2RSEL1RSEL0

        BCSCTL1初始值為84H

        XT2OFF控制XT2的開啟和關閉
        0XT2振蕩器開啟
        1XT2振蕩器關閉(默認)

        XTS控制LFXT1工作模式
        0低頻模式(默認)
        1高頻模式

        DIVA1、DIVA0控制ACLK分頻
        00不分頻(默認)
        01 2分頻
        10 4分頻
        11 8分頻

        XT5V此位設置為0
        RSEL0~RSEL2三位控制內(nèi)部電阻以決定標稱頻率
        0選擇最低標稱頻率
        .........
        7選擇最高標稱頻率

        3.BCSCLK2

        76 543 21 0
        SELM1SELM0DIVM1DIVM0SELS DIVS1DIVS0 DCOR
        SELM1 SELM0選擇MCLK時鐘源
        0 0DCOCLK(默認)
        0 1DCOCLK
        1 0LFXT1CLK對于MSP430F11/12X,XT2CLK對于MSP430F13/14/15/16X
        1 1LFXT1CLK
        DIVM1DIVM0選擇MCLK分頻
        0 0不分頻
        0 12分頻
        1 04分頻
        1 18分頻
        SELS選擇SMCLK時鐘源
        0 DCLK(默認)
        1 LFXT1CLK對于MSP430F11/12X,XT2CLK對于MSP430F13/14/15/16X
        DIVS1DIVS0選擇SMCLK分頻
        00不分頻
        01 2分頻
        10 4分頻
        11 8分頻
        DCOR選擇DCO電阻
        0內(nèi)部電阻
        1外部電阻

        時鐘模塊的應用

        一、設置MCLK=XT2,SMCLK=DCOCLK,將MCLK由P5.4輸出(MSP430X14X中引腳P5.4和MCLK復用)

        #include"msp430x14x.h"
        voidmain(void)
        {
        unsigned int i;
        WDTCTL= WDTPW+WDTHOLD;//Stopwatchdog topreventtooverflow
        P5DIR| =0X10; //SetP5.4 to output
        P5SEL | =0X10; //SetP5.4 to MCLK mode
        BCSCTL1 &= ~XT2OFF; //Enable XT2

        do{
        IFG1 & = ~OFIFG; //Clear OFIFG
        for(i=0xff;i>0;i--);//Set a delay
        }while(IFG1&OFIFG); //check-up the OFIFG

        BCSCTL2 | = SELM_2;//SetXT2CLK the clock of MCLK

        for(;;);
        }

        二、設置ACLK=MCLK=LFXT1=HF,將ACLK用P2.0(復用)輸出。

        #include "msp430x14x.h"
        void main(void)
        {
        unsigned int i,j;
        WDTCTL = WDTPW+ WDTHOLD;
        P1DIR =0x02;
        P2DIR =0x01;
        P2SEL=0x01;
        BCSCTL1 | = XTS;

        do{
        IFG1 & = ~OFIFG;
        for(i=0xff;i>0;i--);
        }while(IFG1 & OFIFG);

        BCSCTL2 | = SELM_3;

        for(;;);
        }



        評論


        技術專區(qū)

        關閉
        主站蜘蛛池模板: 资中县| 二手房| 呼伦贝尔市| 淮南市| 赣榆县| 大丰市| 大理市| 盱眙县| 林芝县| 江源县| 莱西市| 平顺县| 安庆市| 湖州市| 雅安市| 克拉玛依市| 夏邑县| 虞城县| 玉山县| 宜阳县| 汨罗市| 汤原县| 抚松县| 大连市| 堆龙德庆县| 英吉沙县| 南木林县| 汶上县| 馆陶县| 五指山市| 宁化县| 安多县| 吉首市| 台安县| 彝良县| 正定县| 繁峙县| 盐城市| 茌平县| 清丰县| 炎陵县|