时钟系统概述

  Unified Clock System Introduction 

统一时钟系统(UCS)支持低功耗和超低功耗。使用三个内部时钟信号,用户可以在性能和低功耗间做出最好的权衡。统一时钟系统模块可以被设置为操作不带任何外部器件、带一或两个外部晶振、陶瓷振荡器,其完全在软件控制之下。

统一时钟系统模块包含5个时钟源:

l XT1CLK:低频/高频晶振,可以用低频32768Hz手表晶振、标准晶振、陶瓷振荡器、或范围4MHz-32MHz的外部时钟源。

l VLOCLK:内部非常低功率、低频率的12KHz典型频率的晶振

l REFOCLK:内部的、修正过的、低频32768Hz典型频率振荡器,可以作为FLL的基准时钟。

l DCOCLK:内部数控振荡器,可以用FLL稳定。

l XT2CLK:可选择的高频振荡器,可以用标准晶振、陶瓷振荡器、或范围4MHz-40MHz的外部时钟源。

从统一时钟系统模块有3个有效的时钟信号:

l ACLK:辅助时钟。ACLK可软件选择来自XT1CLK、REFOCLK、VLOCLK、DCOCLK、DCOCLKDIV和XT2CLK(如果有)的信号。DCOCLKDIV是在FLL模块作用下分频为1、2、4、6、8、16或32的DCOCLK频率。ACLK可软件选择为个人外设模块的信号。ACLK/n是ACLK被分为1,2,4,6,8,16,32,并且可以用一个引脚外部输出。

l MCLK:系统主时钟。MCLK可软件选择来自XT1CLK、REFOCLK、VLOCLK、DCOCLK、DCOCLKDIV和XT2CLK(如果有)的信号。MCLK可分频为1,2,4,6,8,16或32。MCLK主要用于CPU与系统.

l SMCLK:子系统时钟。SMCLK可软件选择来自XT1CLK、REFOCLK、VLOCLK、DCOCLK、DCOCLKDIV和XT2CLK(如果有)的信号。SMCLK可分频为1,2,4,6,8,16或32。SMCLK可软件选择为个人外设模块。

时钟配置如下:

void clk_init()
{WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  P5SEL |= 0x0C;                            // Port select XT2
  P7SEL |= 0x03;                            // Port select XT1
  UCSCTL6 &= ~(XT1OFF + XT2OFF);            // Set XT1 & XT2 On
  UCSCTL6 |= XCAP_3;                        // Internal load cap
  // Loop until XT1,XT2 & DCO stabilizes
  do
  {
 UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);// Clear XT2,XT1,DCO fault flags
    SFRIFG1 &= ~OFIFG;                      // Clear fault flags
  }while (SFRIFG1&OFIFG);                   // Test oscillator fault flag
  UCSCTL6 &= ~XT2DRIVE0;                    // Decrease XT2 Drive according to
                                          // expected frequency
  UCSCTL4 |=SELA__DCOCLK + SELM__XT2CLK + SELA__XT1CLK  ;               // Select SMCLK, ACLK source and DCO source
}

你可能感兴趣的:(c)