一、时钟源

MSP430的Basic Clock Module+支持的时钟源有:

  • DCOCLK:内部数字控制振荡器,Internal digitally contrlled oscillator。所有MSP430芯片都有。
    MSP430G2553的DCO支持的最大频率一般为16MHz,且保存了1MHz、8MHz、12MHz、16MHz四个频率的校正信息。
  • VLOCLK:内部超低功耗、低频振荡器,Internal very low power, low frequency oscillator,典型频率12kHz。所有MSP430芯片都有。使用方便,但精准性不是太高。
    MSP430G2553的VLO频率在4kHz到20kHz之间,且受温度、供电电压影响较大。
  • LFXT1CLK:低频/高频晶体振荡器,Low-frequency/high-frequency oscillator。可以是32.768kHz的晶体或外部时钟(LF模式时),或者是400kHz到16MHz的晶体/晶振/外部时钟源(HF模式时)。不是所有MSP430芯片都支持。
    MSP430G2553支持的低频晶体(LFXT1)的典型频率是32.768kHz,且不支持HF模式。
  • XT2CLK:高频振荡器,high-frequency oscillator,频率范围最多支持400kHz到16MHz,可以是晶体/晶振/外部时钟源。不是所有的MSP430芯片都支持。
    MSP430G2553不支持XT2。

二、时钟信号

MSP430的Basic Clock Module+包含了三个时钟信号:

  • MCLK:主时钟,Master clock。可以从以上四个时钟源中选择其一作为MCLK来源,并支持1/2/4/8分频。用于CPU和系统。
  • SMCLK:子主时钟,Sub-main clock,可以从以上四个时钟源中选择其一作为SMCLK来源,并支持1/2/4/8分频。用于特定的外设。
  • ACLK:辅助时钟,Auxiliary clock,可选择LFXT1CLK或VLOCLK作为ACLK来源,并支持1/2/4/8分频。用于特定的外设,特别是低功耗待机时。

典型的时钟系统框图如下图:

留意只有DCO和VLO是所有MSP430的标配,其他的要看具体型号:

三、DCO频率设置

调整DCO频率可以通过修改BCSCTL1寄存器中的RESELx位段、DCOCTL寄存器的DCOx、MODx位段来实现。如,若要设置DCO频率为1MHz左右,通过查数据手册中“DCO Frequency”表可得0.8MHz~1.5MHz频率对应设置参数为(7,3),即RSELx=7, DCOx=3, MODx=0。但这样做误差很大。

BCSCTL1 &= ~BIT3;  // set to DCO(7,3)
BCSCTL1 |= BIT0 + BIT1 + BIT2;
DCOCTL &= ~BIT7;
DCOCTL |= BIT5 + BIT6;

更好的方法是直接将BCSCTL1和DCOCTL寄存器设置成已校准好的值。

BCSCTL1 = CALBC1_1MHZ;
DCOCTL = CALDCO_1MHZ;

这样做的频率误差如下图所示。

四、ACLK时钟源设置

ACLK时钟来源由BCSCTL3寄存器中的LFXT1Sx位段设置,可以切换为LFXT1、VLOCLK或外部时钟源;由BCSCTL1寄存器中的DIVAx位段设置分频比。当设置为LFXT1时,还需要根据板子情况设置effective capacitance。

如设置ACLK来源为VLOCLK、四分频:

BCSCTL3 |= LFXT1S_2; //VLO mode
BCSCTL1 |= DIVA_2; //ACLK divided by 4

设置ACLK来源为LFXT1、八分频:

BCSCTL3 |= LFXT1S_0; //32k crystal selected
BCSCTL3 |= XCAP_2; //~8.5pF effective capacitance (for G2553)
BCSCTL1 |= DIVA_3; //ACLK divided by 8

MSP430 G2553 基本时钟模块+ (Basic Clock Module+)的更多相关文章

  1. LPC2478时钟模块详解

    时钟框图如上图,系统时钟来源分别是内部4M的RC振荡器和外置晶振,RTC模块在某些情况下也可以作为主时钟,经过系统时钟选择s\de时钟需要经过PLL倍频(或者不倍频),处理过的PLL输出USB时钟分频 ...

  2. SynergyS7G2RTC时钟模块的使用

    RTC功能描述 RTC时钟模块是Synergy芯片的一个时间外设,主要用于日期时间的存储和控制,有别于一般MCU中的Timer,RTC时钟有两种计时模式,日期模式和二进制计时模式,其中日期模式的时间可 ...

  3. msp430学习笔记-时钟及延时函数

    引用:http://blog.chinaunix.net/uid-24343357-id-3271380.html MCLK默认时钟源是DCOCLK,SMCLK默认时钟源也是DCOCLK,DCOCLK ...

  4. 通过Anuglar Material串串学客户端开发 - NodeJS模块机制之Module.Exports

    module.exports 前文讲到在Angular Material的第二个编译文件docs/gulpfile.js中却看到了一个奇怪的东西module.exports那么module.expor ...

  5. 人体时钟hone hone clock

    摘要:一个由日本人设计的有意思的Flash时钟:人体时钟 hone hone clock .安装很简单,直接js导入即可,包括两种样式:透明背景和白色背景. 很可爱的一个设计,实现后效果如下: 使用方 ...

  6. (译)Node.js的模块-exports和module.exports

    原文标题:Node.js Module – exports vs module.exports 原文链接:http://www.hacksparrow.com/node-js-exports-vs-m ...

  7. 基于STM8的IIC协议--实例篇--时钟模块(DS3231)读取

    1. 综述 由上篇博客可知道IIC协议如何用代码实现,本篇博客就不涉及协议内容,只讲解如何使用. 本次的实验传感为:DS3231(时钟模块),对于时钟模块的具体信息我也就不多介绍,大家可以自行度娘,具 ...

  8. 「雕爷学编程」Arduino动手做(29)——DS1302时钟模块

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...

  9. Arduino 时钟模块(clock module) DS1306

    http://www.pjrc.com/teensy/td_libs_DS1307RTC.html 下载相关的库程序 连接: DS1306: 1.接3.3V 2.SDA接A4 3.SCL接A5 读取: ...

随机推荐

  1. HDU 1710 Binary Tree Traversals(树的建立,前序中序后序)

    Binary Tree Traversals Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/O ...

  2. linux下,一个运行中的程序,究竟占用了多少内存

    linux下,一个运行中的程序,究竟占用了多少内存 1. 在linux下,查看一个运行中的程序, 占用了多少内存, 一般的命令有 (1). ps aux: 其中  VSZ(或VSS)列 表示,程序占用 ...

  3. for循环以及作业要求

    continue表示结束当前循环的意思: for i in range(0,10): if i <3: print("loop ",i) else : continue pr ...

  4. 如何制作行政区划矢量图(shp格式)

    详细图文ArcGIS10.2破解版教程地址:http://jingyan.baidu.com/article/e73e26c0cb5c1324adb6a791.html 有时候想要一张shp格式的地方 ...

  5. Some index files failed to download. They have …… or old ones used instead

    问题: 平台:Ubuntu12.04 W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/precise/universe/bin ...

  6. solr搜索之搜索精度问题我已经尽力了!!!

    solr搞了好久了,没啥进展,没啥大的突破,但是我真的尽力了! solr7可能是把默认搜索方式去掉了,如下: 在solr7里找了半天以及各种查资料也没发现这个默认搜索方式,后来想,可能是被edisma ...

  7. leetcode303

    public class NumArray { List<int> list = new List<int>(); public NumArray(int[] nums) { ...

  8. Spring Boot 异步调用

    添加一个类ThreadPoolConfig.java package com.cjcx.inter.framework.config; import org.springframework.conte ...

  9. Apache Hadoop 集群安装文档

    简介: Apache Hadoop 集群安装文档 软件:jdk-8u111-linux-x64.rpm.hadoop-2.8.0.tar.gz http://www.apache.org/dyn/cl ...

  10. 【独家】阿里天池IJCAI17大赛第四名方案全解析(附代码)

    [独家]阿里天池IJCAI17大赛第四名方案全解析(附代码) https://mp.weixin.qq.com/s?__biz=MzAxMzA2MDYxMw==&mid=2651560625& ...