新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > MSP430(F5529)學習筆記——UCS配置詳解

        MSP430(F5529)學習筆記——UCS配置詳解

        作者: 時間:2016-11-28 來源:網絡 收藏

        (3)將SMCLK和MCLK配置XT2
        將SMCLK和MCLK配置為XT2跟配置為XT1的過程基本相同,唯一不同的是,在配置SMCLK和MCLK為XT2之前,需要將ACLK和REFCLK的時鐘源,因為ACLK和REFCLK的默認時鐘源是XT1,而我們這里并沒有配置啟動XT1CLK,所以會產生XT1時鐘錯誤,即XT1LFFG,因此,我們先將ACLK和REFCLK配置為芯片自帶的時鐘(REFOCLK或VLOCLK)或者即將啟動的時鐘(XT2),此外,XT2配置時不需要配置電容,故將SMCLK和MCLK配置為XT2的代碼如下:
        [cpp]view plaincopy
        1. #include
        2. voidmain(void){
        3. WDTCTL=WDTPW+WDTHOLD;
        4. P1SEL|=BIT0;
        5. P1DIR|=BIT0;//測量ACLK用
        6. P2SEL|=BIT2;
        7. P2DIR|=BIT2;//測量SMCLK用
        8. P7SEL|=BIT7;
        9. P7DIR|=BIT7;//測量MCLK用
        10. P5SEL|=BIT2|BIT3;//將IO配置為XT2功能
        11. UCSCTL6&=~XT2OFF;//使能XT2
        12. UCSCTL4=UCSCTL4&(~(SELA_7))|SELA_1;//先將ACLK配置為VLOCLK
        13. UCSCTL3|=SELREF_2;//將REFCLK配置為REFCLK
        14. while(SFRIFG1&OFIFG){
        15. UCSCTL7&=~(XT2OFFG+XT1LFOFFG+DCOFFG);//清除三類時鐘標志位
        16. //這里需要清除三種標志位,因為任何一種
        17. //標志位都會將OFIFG置位
        18. SFRIFG1&=~OFIFG;//清除時鐘錯誤標志位
        19. }
        20. UCSCTL4=UCSCTL4&(~(SELS_7|SELM_7))|SELS_5|SELM_5;//將SMCLK和MCLK時鐘源配置為XT2
        21. while(1);
        22. }
        做完前面三個實驗,我們就能掌握MSP430F5XX系列時鐘切換的基本操作了,講的并不詳細,有其他疑問請仔細閱讀芯片手冊或者留言討論。

        DCO模塊詳解
        DCO模塊在MSP430F5XX系列芯片中非常重要,因為從MSP430F4XX開始,MSP430引用了FLL模塊,FLL即鎖相環,可以通過倍頻的方式提高系統時鐘頻率,進而提高系統的運行速度。
        DCO模塊運行需要參考時鐘REFCLK,REFCLK可以來自REFOCLK、XT1CLK和XT2CLK,通過UCSCTL3的SELREF選擇,默認使用的XT1CLK,但如果XT1CLK不可用則使用REFOCLK。
        DCO模塊有兩個輸出時鐘信號,級DCOCLK和DCOCLKDIV,其中,倍頻計算公式如下:
        [cpp]view plaincopy
        1. DCOCLK=D*(N+1)*(REFCLK/n)
        2. DCOCLKDIV=(N+1)*(REFCLK/n)

        其中:
        n即REFCLK輸入時鐘分頻,可以通過UCSCTL3中的FLLCLKDIV設定,默認為0,也就是不分頻;
        D可以通過UCSCTL2中的FLLD來設定,默認為1,也就是2分頻;
        N可以通過UCSCTL2中的FLLN來設定,默認值為32。
        所以,系統上電后如果不做任何設置,DCOCLK的實際值為2097152,DCOCLKDIV的實際值為1048576。
        另外,配置芯片工作頻率還需要配置DCORSEL和DCOx,DCORSEL和DCOx的具體作用如下:
        DCORSEL位于UCSCTL1控制寄存器中的4到6位,共3位,將DCO分為8個頻率段。
        DCOx位于UCSCTL0中的8到12位,共5位,將DCORSEL選擇的頻率段分為32個頻率階,每階比前一階高出約8%,該寄存器系統可以自動調整,通常配置為0。
        DCORSEL和DCOx值的具體作用可以參考MSP430F5529的數據手冊,閱讀該手冊相關部分可以找到如下表格:

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

        可以見,DCORESL的頻率調節范圍大致如下:

        [cpp]view plaincopy
        1. DCORSEL=0的調節范圍約為0.20~0.70MHZ;
        2. DCORSEL=1的調節范圍約為0.36~1.47MHZ;
        3. DCORSEL=2的調節范圍約為0.75~3.17MHZ;
        4. DCORSEL=3的調節范圍約為1.51~6.07MHZ;
        5. DCORSEL=4的調節范圍約為3.2~12.3MHZ;
        6. DCORSEL=5的調節范圍約為6.0~23.7MHZ;
        7. DCORSEL=6的調節范圍約為10.7~39.7MHZ;
        8. DCORSEL=7的調節范圍約為19.6~60MHZ。


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 南皮县| 土默特右旗| 西和县| 屯门区| 景谷| 辉县市| 景洪市| 新民市| 东乡县| 兴海县| 交口县| 四平市| 大同市| 新民市| 潜山县| 太原市| 吴桥县| 宿松县| 闵行区| 同心县| 赤壁市| 原平市| 称多县| 蓝山县| 罗城| 石屏县| 洛宁县| 云林县| 舞阳县| 广西| 永川市| 房山区| 茌平县| 崇信县| 福建省| 洛浦县| 尖扎县| 梁河县| 游戏| 宜川县| 贵南县|