2012TI杯竞赛学习-----------时钟系统篇
因为参加了暑假的TI杯电子设计大赛,所以学习MSP430系列单片机,截止目前学习已有十几天,本想等比赛结束再做总结,后与人交流后发现,及时写下学习心得,与他人进行交流,更有益于今后学习。
430不同于其他单片机,其5种低功耗模式,构成了他的独特性,低功耗模式得益于他的时钟系统,遂首先谈谈时钟系统的学习心得(本人用的是430F149核心板
1. msp430f149总共有三个时钟源:
a.DCO(<5mhz) b.LFXT1(32678hz) c.XT2(8mhz)
2.总共有三个时钟信号
A.ACLK, 辅助时钟。由LFXT1 1/2/4/8分频得到,用于外围低速设备,如串口通信。
B.SMCLK 子系统时钟 由XT2,DCO 1/2/4/8分频得到。默认是DCO提供。用于外围高速设备,如ADC,定时器。
C.MCLK 主系统时钟,三个时钟源均能提供,默认是DCO提供。
那么SMCLK,MCLK,的时钟源如何选择呢?主要就是通过以下两个寄存器进行设置。
寄存器BCSCTL1
BIT7 |
BIT6 |
BIT5 |
BIT4 |
BIT3 |
BI2 |
BIT1 |
BIT0 |
XT0FF |
XTS |
DIVA.1 |
DIVA.0 |
XT5V |
RSEL.2 |
RSEL.1 |
RSEL.0 |
XTOFF :控制XT2振荡器,0开启。
XTS:LFXT1控制位,0是低频方式。
DIV1.1-DIV.0设置ACLK分频系数。
后面几位是调节内部DCO频率的。
寄存器BCSCTL2
BIT7 |
BIT6 |
BIT5 |
BIT4 |
BIT3 |
BI2 |
BIT1 |
BIT0 |
SELM.1 |
SELM.0 |
DICM.1 |
DIVM.0 |
SELS |
DIVS.1 |
DIVS.0 |
DCOR |
BIT7-BIT6:选择MCLK的时钟源
00 -01.DCO
10 XT2
11 LFXT1
BIT5-BIT4: MCLK分频系数
BIT3:选择SMCLK时钟源 ,置1时为XT2
BIT2-BIT1:SMCLK分频系数
BIT0: 选择DCO电阻为内部或外部(一般用不到)
Msp430系列单片机低功耗是其典型的特征,一般内部DCO时钟源可以满足CPU工作,LFXT1亦可让CPU工作,需要CPU高速运转时,再设置XT2为时钟源。
eg1.MCLK=XT2. SMCLK=XT2
#include<msp430x14x.h>
void main()
{
unsigned char i;
WDTCTL=WDTPW+WDTHOLD;//关狗
P5DIR|=0XFF;//P5.4MCLK. P5.5 SMCLK ,P5.6ACLK
P5SEL |=BIT4+BIT5+BIT6;
BCSCTL1&=~XT2OFF;
P2DIR|=0XFF;
P2OUT|=0XFF;
do
{
IFG1&=~OFIFG;/// IFG1&=~0FIFG ;//清除振荡失效标志
for(i=0xff;i>0;i--);
}
while((IFG1&OFIFG)!=0);
P2OUT&=~BIT4;
BCSCTL2|=SELM1+SELS;
P2OUT&=~0XFF;
for(; ; );
}
用示波器测量发现:MCLK 8MHZ
SMCLK 8MHZ
ACLK 32678H
又测量了内部DCO,差不多在800khz左右。