码迷,mamicode.com
首页 > 其他好文 > 详细

MSP430G2ET时钟系统

时间:2020-09-17 23:10:25      阅读:26      评论:0      收藏:0      [点我收藏+]

标签:参数   简单   标签   loading   之一   bcs   时钟   寄存器   http   

时钟系统

概述

  MSP430G2系列单片机主打低功耗,但同时需要满足其他外设的时钟需求,因此内部有多个时钟源可供使用者选择,若要实现低功耗,便可选择低频率,如需要满足高速的外设,便可选择高频率。

时钟源

  MSP430G2553共有三大时钟源,三大时钟信号。

  时钟源:内部低频时钟源LFXT1 、内部数字控制RC振荡器DCO、外部低频振荡器(需要焊上晶振)

  时钟信号:主时钟MCLK;辅助时钟ACLK;子系统时钟SMCLK

  时钟源和时钟信号、外设关系如图所示:

技术图片
  从图中可以看出,所有的时钟均来自时钟源,时钟源经过分频提供时钟信号,时钟信号位CPU、外设提供时钟。

时钟配置

  时钟配置主要有两种寄存器完成,即DCOCTL--DCO控制寄存器、BCSCTLx-基本时钟控制寄存器x。
  DCO(数字控制振荡器)控制寄存器
技术图片
  DCO.0-DCO.2:定义 8 种频率之一, 可以分段调节 DCOCLK频率,相邻两种频率相差10% ,而频率由注入直流发生器的电流定义;

  MOD.0-MOD.4:定义在 32 个 DCO 周期中插入的 Fdco+1 周期个数, 而在下的 DCO周期中为 Fdco 周期,控制改换 DCO和 DCO+1 选择的两种频率。如果 DCO常数为 7,表示已经选择最高频率,此时不能利用 MOD.0-MOD.4 进行频率调整。

  DCO频率与标签

频率 1MHZ 8MHZ 12MHZ 16MHZ
语句 CALBC1_1MHZ CALDCO_1MHZ CALBC1_8MHZ CALDCO_8MHZ CALBC1_12MHZ CALDCO_12MHZ CALBC1_16MHZ CALDCO_16MHZ

  DCO配置

DCOCTL = 0; // 选择最低 DCOx 和 MODx 设置
BCSCTL1=CALBC1_1MHZ; // 为 1MHZ BCSCTL1 校准数据
DCOCTL=CALDCO_1MHZ; // 为 1MHZ DCOCTL 校准数据,这两句同时使用就使 DCO 设置为 1MHZ
CALBC1_1MHZ==0xFF ; // 校准常数抹去
__bis_SR_register(SCG1 + SCG0) ; // 不用 DCO
Set_DCO(DELTA_1MHZ) ; // 设置 DCO 和获得常量
//BCSCTL1 基本时钟系统控制寄存器 1
//DCOCTL DCO 时钟频率控制寄存器
//CALBC1_1MHZ 这是为 1MHZ BCSCTL1 校准数据时所采用的标签
//CALDCO_1MHZ 这是为 1MHZ DCOCTL 校准数据时所采用的标签

  DCO控制寄存器的作用是设置DCO相关参数;BCSCTLx-基本时钟控制寄存器共有三个;
  BCSCTL2-基本时钟控制寄存器2
技术图片

SELM.1 SELM.0 选择 MCLK 时钟源

  0 时钟源为 DCOCLK(默认)

  1 时钟源为 DCOCLK

  2 时钟源为 LFXT1CLK (对于 MSP430F11/12X ) , 时钟源为 XT2CLK(对于 MSP430F13/14/15/16X )
  3 时钟源为 LFTXTICLK

  DIVM.1 DIVM.0 选择 MCLK 分频

  0 1 分频(默认)

  1 2 分频2 4 分频

  3 8 分频

SELS 选择 SMCLK 时钟源

  0 时钟源为 DCOCLK(默认)

  1 时钟源为 LFXT1CLK (对于 MSP430F11/12X ) , 时钟源为 XT2CLK(对于 MSP430F13/14/15/16X )

DIVS.1 DIVS.0 选择
分频。
  0 1 分频

  1 2 分频

  2 4 分频

  4 8 分频

DCOR 选择 DCO 电阻

  0 内部电阻

  1 外部电阻

PUC 信号之后, DCOCLK 被自动选择 MCLK 时钟信号,根据需要, MCLK 的时钟源可以另外设置为 LFXT1 或者 XT2

设置顺序如下:

  [1] 复位 OscOff

  [2] 清除 OFIFG

  [3] 延时等待至少 50us

  [4] 再次检查 OFIFG,如果仍然置位,则重复 [3] 、 [4] 步骤,直到 OFIFG=0 为止。

  标签对应关系
技术图片
  配置语句

BCSCTL2|=SELM_0+DIVM_0; // 选择 DCOCLK 为 MCLK 的时钟源并且对 MCLK
的时钟源进行 1/1 分频
BCSCTL2|=DIVS_0; // 对 SMCLK 的时钟源进行 1/1 分频
//BCSCTL2 基本时钟系统控制寄存器 2
//SELM_0 BCSCTL2 的第 6、 7 位,对 MCLK 的时钟源进行选择
//DIVM_0 BCSCTL2 的第 4、 5 位,对 MCLK 的时钟源进行分频
//DIVS_0 BCSCTL2 的第 1、 2 位,对 SMCLK 的时钟源进行分频

  辅助时钟就不在此陈述。

  
  总的来说,MSP430G2553的时钟系统较为简单,需要注意寄存器的使用。

MSP430G2ET时钟系统

标签:参数   简单   标签   loading   之一   bcs   时钟   寄存器   http   

原文地址:https://www.cnblogs.com/yblBlog/p/13657422.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!