010: MSP430时钟系统的配置
要了解MSP430 单片机的时钟系统,首先要了解单片机的时钟源
一,时钟源种类:
MSP430单片机共有三个时钟源:高频时钟源(XT2CLK),低频时钟源(LFXT1CLK),内部时钟源(DCOCLK)
高频时钟源一般由8M的晶振产生
低频时钟源一般由32K的晶振产生
内部时钟源可由RC振荡器产生
二,时钟系统种类:
MSP430单片机共有三个系统时钟:主系统时钟(MCLK),子系统时钟(SMCLK),辅助系统时钟(ACLK)
主系统时钟(MCLK)可由软件程序选择来自低频时钟源(LFXT1CLK),高频时钟源(XT2CLK),内部时钟源(DCOCLK)三者之一,然后经过1,2,4,8分频。 一般用于CPU和系统
子系统时钟(SMCLK)可由软件程序选择来自低频时钟源(LFXT1CLK),高频时钟源(XT2CLK),内部时钟源(DCOCLK)三者之一,然后经过1,2,4,8分频。一般用于其他模块
辅助系统时钟(ACLK)只能是有低频时钟源(LFXT1CLK)信号经过1,2,4,8分频得到的。 ACLK 可由软件选为各个外围模块的时钟信号, 一般用于低速外设。
三,MSP430的时钟设置包括3个寄存器,DCOCTL、BCSCTL1、BCSCTL2
1>> DCOCTL,DCO控制寄存器,地址为56H,初始值为60H
DCO2 | DCO1 | DCO0 | MOD4 | MOD3 | MOD2 | MOD1 | MOD0 |
DCO0~DCO2: DCO Select Bit,定义了8种频率之一,而频率由注入直流发生器的电流定义。
2>> BCSCTL1,Basic Clock System Control 1,地址为57H,初始值为84H
XT2OFF | XTS | DIVA1 | DIVA0 | XT5V | RSEL2 | RSEL1 | RSEL0 |
RSEL0~RSEL2: 选择某个内部电阻以决定标称频率.0最低,7最高。
3>>BCSCTL2,Basic Clock System Control 2,地址为58H,初始值为00H
SEM1 | SELM0 | DIVM1 | DIVM0 | SELS | DIVS1 | DIVS0 | DCOR |
DCOR: .0,选择内部电阻;1,选择外部电阻
1 /* 2 * 时钟配置 3 */ 4 void Clock_Init() 5 { 6 uchar i; 7 BCSCTL1&=~XT2OFF; //打开XT2振荡器 8 BCSCTL2|=SELM1+SELS+DIVS3; //MCLK为8MHZ,SMCLK为1MHZ 9 do{ 10 IFG1&=~OFIFG; //清楚振荡器错误标志 11 for(i=0;i<100;i++) 12 _NOP(); 13 } 14 while((IFG1&OFIFG)!=0); //如果标志位1,则继续循环等待 15 IFG1&=~OFIFG; 16 }
【人生没有白走的路,每一步都算数!】