打印

MSP430教程9:MSP430单片机时钟模块

[复制链接]
3325|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
金鱼木鱼|  楼主 | 2011-6-23 20:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MSP430的时钟模块由低速晶体振荡器LFXT1、高速晶体振荡器XT2(MSP430X11X,MSP430X12X没有)、数字控制振荡器DCO、琐相环FLL(MSP430X16X以上包括)和增强型琐相环FLL+等部件组成。



MSP430X1XX基本时钟模块有三个时钟输入源LFXT1CLK(低速32768Hz,高速450Hz到8MHz)、XT2CLK(450Hz到8MHz)、DCOCLK,提供以下三种时钟信号
1.ACLK辅助时钟:由LFXT1CLK信号经1、2、4、8分频后得到,可以由软件选作各个外围模块的时钟信号,一般用于低速外设。
2.MCLK系统主时钟:MCLK可由软件选择来自LFXT1CLK、XT2CLK、DCOCLK三者之一,然后经1、2、4、8分频得到,MCLK主要用于CPU和系统。
3.SMCLK子系统时钟:可由软件选自LFXT1CLK和DCOCLK(MSP430X11X、MSP430X12X系列,因其不含XT2),或XT2CLK和DCOCLK,然后经1、2、4、8分频得到。SMCLK主要用于高速外围模块。

系统频率与系统的工作电压密切相关(MSP430工作电压1.8V~3.6V,编程电压2.7V~3.6V),所以不同的工作电压,需要选择不同的系统时钟。当两个外部振荡器失效时,DCO振荡器会自动被选作MCLK的时钟源。PUC信号之后,DCOCLK被自动选作MCLK和SMCLK的时钟信号,LFXT1CLK被选作ACLK的时钟信号,根据需要MCLK和SMCLK的时钟源可以另外设置。
控制时钟模块的三个寄存器为DCO控制寄存器DCOCTL、基本时钟系统控制寄存器1BCSCTL1、基本时钟控制寄存器2BCSCTL2



1.DCOCTL            
7   
      
6     
   
5        
4         
3        
2      
1         
0  
DCO2      
DCO1      
DCO0      
MOD4      
MOD3      
MOD2   
MOD1     MOD0

DCO.0~DCO.2    定义8种频率之一(DCO=0~DCO=8),可分段调节DCOCLK频率,相领两种频率相差10%。
MOD.0~MOD.4  
定义在32个DCO周期中插入的fdco+1周期个数,而余下的周期为fdco周期,控制切换DCO和DCO+1选择的两种频率,如果DCO常数为7,表示已经选择最高频率,此时不能利用MOD.0~MOD.4进行频率调整。

DCOCTL POR后初始值为60H。



2.BCSCTL1         
7         
6         
5   
   
4     
  
3        
2     
   
1 0
XT2OFF  
XTS   
DIVA1      
DIVA0      
XT5V   
RSEL2      
RSEL1   
RSEL0

BCSCTL1初始值为84H
XT2OFF            控制XT2的开启和关闭

   
0                  
XT2振荡器开启


   
1                  
XT2振荡器关闭(默认)

XTS                控制LFXT1工作模式

   
0                  低频模式(默认)


   
1                  高频模式

DIVA1、DIVA0  控制ACLK分频

  
0         
0      
不分频(默认)


  
0         
1      
2分频


  
1         
0      
4分频


  
1         
1      
8分频

XT5V                此位设置为0
RSEL0~RSEL2
三位控制内部电阻以决定标称频率


         
0            选择最低标称频率


        
...            
......
         
7            选择最高标称频率   




3.BCSCLK2         
7         
6      
5         
4      
3         
2      
1     
   
0  
SELM1   
SELM0   
DIVM1     
DIVM0     
SELS     
DIVS1      
DIVS0      DCOR

相关帖子

沙发
金鱼木鱼|  楼主 | 2011-6-23 20:01 | 只看该作者
SELM1 SELM0     选择MCLK时钟源
     0         0           DCOCLK(默认)
     0         1           DCOCLK
     1         0           LFXT1CLK对于MSP430F11/12X,XT2CLK对于MSP430F13/14/15/16X
     1         1           LFXT1CLK
DIVM1   DIVM0      选择MCLK分频
     0         0          不分频
     0         1           2分频
     1         0           4分频
     1         1           8分频
   SELS                 选择SMCLK时钟源
     0                     DCLK(默认)
     1                     LFXT1CLK对于MSP430F11/12X,XT2CLK对于MSP430F13/14/15/16X
DIVS1   DIVS0       选择SMCLK分频
     0         0           不分频
     0         1           2分频
     1         0           4分频
     1         1           8分频
   DCOR                选择DCO电阻
     0                     内部电阻
     1                     外部电阻



时钟模块的应用



一、设置MCLK=XT2,SMCLK=DCOCLK,将MCLK由P5.4输出(MSP430X14X中引脚P5.4和MCLK复用)

#include   "msp430x14x.h"
void   main(void)
{
   unsigned int i;
   WDTCTL= WDTPW+WDTHOLD;     //Stop   watchdog to   prevent   to   overflow
   P5DIR   | =   0X10;                           //Set   P5.4 to output                          
   P5SEL | =   0X10;                           //Set   P5.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;                   //Set   XT2CLK the clock of MCLK

   for(;;);
}



二、 设置ACLK=MCLK=LFXT1=HF,将ACLK用P2.0(复用)输出。

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

使用特权

评论回复
板凳
bit6019| | 2011-6-26 19:50 | 只看该作者
什么玩意了这是?

使用特权

评论回复
地板
wuhany| | 2011-6-26 19:51 | 只看该作者
看起来有点吃力

使用特权

评论回复
5
spark周| | 2011-6-26 23:45 | 只看该作者
还行吧

使用特权

评论回复
6
derde| | 2011-6-27 13:07 | 只看该作者
时钟模块运用的多吗

使用特权

评论回复
7
hawksabre| | 2013-1-27 10:14 | 只看该作者
谢谢了   时钟源的选择是基础啊   呵呵

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://bbs.srvee.com/forum-104-1.html

346

主题

1551

帖子

2

粉丝