新聞中心

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

MSP430教程9:MSP430單片機(jī)時(shí)鐘模塊

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

本文引用地址:http://butianyuan.cn/article/201611/316500.htm

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

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

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

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

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

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

1.DCOCTL

76 5432 10
DCO2DCO1 DCO0MOD4MOD3MOD2 MOD1 MOD0

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

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

DCOCTL POR后初始值為60H。

2.BCSCTL1

765 4 3210
XT2OFFXTS DIVA1 DIVA0 XT5V RSEL2RSEL1RSEL0

BCSCTL1初始值為84H

XT2OFF控制XT2的開啟和關(guān)閉
0XT2振蕩器開啟
1XT2振蕩器關(guān)閉(默認(rèn))

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

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

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

3.BCSCLK2

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

時(shí)鐘模塊的應(yīng)用

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

#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(;;);
}

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

#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(;;);
}



評(píng)論


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

關(guān)閉