久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > MSP430F149的時鐘系統

MSP430F149的時鐘系統

作者: 時間:2016-11-27 來源:網絡 收藏
1、概述

MSP430F149有三個時鐘源:外部LF(XT1一般為32.768K),HF(XT2一般為8M),內部DCO。從時鐘系統模塊可得到三種時鐘信號:MCLK,SMCLK,ACLK。

本文引用地址:http://cqxgywz.com/article/201611/322340.htm

上電默認狀況下MCLK,SMCLK信號來自DCO,ACLK來自LF。根據官方PDF說法默認狀況下DCO模塊配置為RSELX=4,DCO=3,因此DCO應為1M,但示波器實測MCLK/SMCLK為680K,測試溫度約25攝氏度。

標注:MCLK主時鐘、SMCLK子時鐘、ACLK活動時鐘。

P5.4,P5.5,P5.6的第二功能分別對應MCLK,SMCLK,ACLK時鐘信號,可用示波器測量。測試時發現頻率后兩位一直在跳動,頻率穩定度很差。

MSP430系列單片機選擇晶振為時鐘源時,時鐘周期就是晶振周期。一個機器周期 =一個時鐘周期,即430每個動作都能完成一個基本操作; 一個指令周期 = 1~6個機器周期,具體根據具體指令而定。 如果選擇8M晶振,則一個機器周期為125ns。51單片機選擇12M晶振,它的機器周期是時鐘周期/12,一個機器周期為1us,可見 MSP430的的速度是51的8倍。

2、使用方法概述

2.1 程序架構

一般在系統初始化關閉看門狗后要配置系統時鐘,配置步驟為:

1、打開晶振;

2、等待晶振起振。清除OFIFG,延時,判斷OFIFG是否為0,為0則晶振正常起振,退出判斷;

3、選擇MCLK/SMCLK時鐘源;

uchar iq0;

BCSCTL1&=~XT2OFF; //打開XT2振蕩器

do

{

IFG1 &= ~OFIFG; // 清除振蕩器失效標志

for (iq0 = 0xFF; iq0 > 0; iq0--); // 延時,等待XT2起振

}

while ((IFG1 & OFIFG) != 0); // 判斷XT2是否起振

BCSCTL2 =SELM_2+SELS; //選擇MCLK、SMCLK為XT2

2.2 細節描述

對于DCO可以通過配置電阻和DCO得到不同的頻率。電阻可配置片內或片外(DCOR一般片內),片內電阻有8中選擇(RSELX),DCO有8中選擇(DCOX)。

3、相關寄存器

1、DCOCTL

DCOx Bits

7-5

DCO frequency select. These bits select which of the eight discrete DCO

frequencies of the RSELx setting is selected.

2、BCSCTL0

XT2OFF Bit 7 XT2 off. This bit turns off the XT2 oscillator

0 XT2 is on

1 XT2 is off if it is not used for MCLK or SMCLK.

RSELx Bits

2-0

Resistor Select. The internal resistor is selected in eight different steps.

The value of the resistor defines the nominal frequency. The lowest

nominal frequency is selected by setting RSELx=0.

3、BCSCTL0

SELMx Bits

7-6

Select MCLK. These bits select the MCLK source.

00 DCOCLK

01 DCOCLK

10 XT2CLK when XT2 oscillator present on-chip. LFXT1CLK when XT2

oscillator not present on-chip.

11 LFXT1CLK

SELS Bit 3 Select SMCLK. This bit selects the SMCLK source.

0 DCOCLK

1 XT2CLK when XT2 oscillator present on-chip. LFXT1CLK when XT2

oscillator not present on-chip.

DCOR Bit 0 DCO resistor select

0 Internal resistor

1 External resistor

4、實例

4.1 配置MCLK/SMCLK

見本節2.1。

4.2配置DCO

void main(void)

{

WDTCTL = WDTPW +WDTHOLD; // Stop Watchdog Timer

DCOCTL = DCO0 + DCO1 + DCO2; // Max DCO

BCSCTL1 = RSEL0 + RSEL1 + RSEL2; // XT2on, max RSEL

BCSCTL2 |= SELS; // SMCLK = XT2

P5DIR |= 0x70; // P5.6,5,4 outputs

P5SEL |= 0x70; // P5.6,5,5 options

while(1)

{

}

}

實測DCO最低128K,最高4.58M。



關鍵詞: MSP430F149時鐘系

評論


技術專區

關閉