疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)

(七)系统时钟的介绍

MSP430G2553 系列单片机的时钟系统,包括2-4个时钟源,可以为外设和CPU提供3个系统时钟。

注意:LFX1不支持HF模式,无XT2,不支持ROSC

系统时钟
  1. ACLK:辅助时钟
    ACLK可以被软件配置从LFXT1CLK或VLOCLK输入震荡ACLK可以被1,2,4,8分频,以及可以被选用作为外围模块的时钟输入。

  2. MCLK:主时钟
    主时钟可以从LFXT1CLK或VLOCLK,XT2CLK或DCOCLK输入MCLK用在CPU系统中。

  3. SMCLK:辅助主时钟
    SMCLK可以被选择从LFXT1CLK,VLOCLK,XT2CLK或DCOCLK输入。SMCLK可以被1,2,4,8分频。SMCLK可以被选用为外围模块的时钟。

系统时钟控制寄存器

MSP430共提供了三种时钟信号,ACLK,MCLK,SMCLK.

  • ACLK主要使用在一些速度不高的外设,以实现低功耗。

  • SMCLK可从DCO或外部引入主要满足高速外设的使用。

  • MCLK主要向CPU提供时钟。

注意:一般情况下MCLK频率最高,ACLK频率最低

众所周知,任何外设均需要时钟且寄存器是由D触发器构成的,但前仍需要有时钟输入。

由于430拥有低功耗模式因此当需要运行一个时钟的时候,其余时钟自动设置为Disable,所以在耗能部分就会大幅度减少。

注意:在具体应用过程中需要先配置时钟再配置GPIO。

这样做是因为寄存器是由D触发器构成的,当开启时钟后触发器值才能被改写。

在430中用户可以更好的选择功耗,它对每个外置的时钟都设置了开关,使用者可以精确的控制,并且关闭所不用的设备,因此达到节能。

例1:
CPU is disabled
ACLK and SMCLK remain active,
MCLK is disabled
Low-power mode 1(LPM1)
根据MSP430G2553手册可知

控制寄存器:DCOCTL,BCSCTL1,BCSCTL2,BCSCTL3

Register Short Form Register Type Address Initial State
DCO control registe DCOCTL Rend/write 056h 060h with PUC
Baisic clock system control 1 BCSCTL1 Read/write 057h 087h with POR
Basic clock systom control 2 BCSCTL2 Read/write 058h Roset with PUC
Basic clock systom control 3 BCSCTL3 Read/write 053h 005h with PUC
SER interrupt enable registor 1 IET Read/write 000h Reset with PUC
SFR interrupt flng register 1 IFG1 Read/write 002h Reset with PUC
DCOCTL


调制器将fDCO和fDCO+1进行混频,产生一个在fDCO和fDCO+1之间的频率。调制器在32个DCOCLK周期内,对FDCO和fDCO+1进行混频,当MODx=0时 调制器关闭。

  • DCOx:DCO频率选择 这些位可以由RSELx决定的八个离散的DCO频率中选择。
  • MODx:调制系数 这个系数决定在32个周期中的fDCO+1占多少,fDCO占多少。
BCSCTL1

  • XT20FF:0 XT2 开启
    1 XT2如果不被用作MCLK和SMCLK则关闭
  • XTS: 0 低频模式
    1高频模式
  • DIVAx: ACLK分频控制
    00/1
    01/2
    10/4
    11/8 RSE
  • Lx: DCO频率范围选择,RSELx=0时频率最低,当DCOR=1时RSEL3被忽略
BCSCTL2

  • SELMx:MCLK频率选择
    00 DCOCLK
    01 DCOCLK
    10 XT2如果出现在片上则是XT2CLK,当XT2不出现在片上则选择LFXT1CLK或者VLOCLK
    11 LFXT1CLK或VLOCLK

  • DIVM: MCLK分频
    00/1
    01/2
    10/4
    11/8

  • SELS: SMCLK频率选择
    0 DCOCLK
    1 片上若有XT2则选择XT2CLK,若没有XT2则选择VLOCLK或XT2

  • DIVSx:SMCLK的分频
    00/1
    01/2
    10/4
    11/8

  • DCOR:DCO震荡电阻选择
    0 内部电阻
    1外部电阻

BCSCTL3

  • XT2Sx:XT2范围选择
    00 0.4~1MHz 晶振或振荡器
    01 1~3MHz晶振或振荡器
    10 3~16MHz晶振或振荡器
    11 外部0.4~16MHz振荡器

  • XCAPx:内部电容选择
    00~1pF
    01~6pF
    10~10pF
    11~12.5pF

  • XT2OF:XT2错误标识位
    0 无错误
    1 有错误

  • LFXT1OF:LFXT1错误
    0 无错误
    1 有错误

  • LFXT1SX: 低频时钟选择和LFXT1范围选择。
    当XTS=0时这些位在LFXT1和VLO之选择
    当XTS=1时选择LFXT1的频率范围

  • XTS=0时
    00 LFXT1的32768Hz晶振
    01 保留
    10VLOCLK(仅在MSP430F21x1中有)
    11外部数字时钟源

  • XTS=1时
    00 0.4MHz~1MHz晶振或振荡器
    01 1MHz~3MHz晶或振荡器
    10 3~16MHz晶振或振荡器
    11 0.4~16MHz振荡器

例2:
#include
"msp430g2553.h"
void main(void)
{WDTCTL = WDTPW + WDTHOLD;P1DIR |= BIT0 + BIT6;while(1){P1OUT ^= BIT0 + BIT6;__delay_cycles(100000);}
}

这段程序采用430上电后默认的DCO频率,假设是1MHz的话,则延时100000个DCO提供的MCLK大概是0.1s左右。
下面一段程序,将DCOx设置为1,RSELx设置为1,通过数据手册查得DCO频率大概在0.06~0.14MHz之间,所以明显MCLK要慢得多了,因此LED闪烁时间延长。

#include
"msp430g2553.h"
void main(void)
{WDTCTL = WDTPW + WDTHOLD;DCOCTL |= DCO0;DCOCTL &=~(DCO1 + DCO2);BCSCTL1 |= RSEL0;BCSCTL1 &=~ (RSEL1 + RSEL2 + RSEL3);P1DIR |= BIT0 + BIT6;while(1){P1OUT ^= BIT0 + BIT6;__delay_cycles(100000);}
}

例2出自:https://blog.csdn.net/hongkangwl/article/details/16971399

疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)-----(七)系统时钟的介绍相关推荐

  1. java玩转区块链-基础篇-账户

    java玩转区块链-基础篇--账户 java环境配置 基础概念 账户 maven包引用 创建账户代码 代码解释 (1) (2) (3) (4) 可以不让搞,但是不允许你不会 java环境配置 jdk版 ...

  2. java玩转区块链-基础篇-solidity语法-基础类型

    java玩转区块链-基础篇-solidity语法-基础类型 java环境配置 代码准备 maven 完整solidity 执行步骤 基础类型 布尔类型 类型标识: 字面常量值: 运算符: 短路规则: ...

  3. 独立艺术家大谷spizher带你玩转PaddleGAN

    一个曾被 "卷积网络之父"Yann LeCun(杨立昆)誉为「过去十年计算机科学领域最有趣的想法之一」,是近年来火遍全网,AI 研究者最为关注的深度学习算法方向之一,GAN--生成 ...

  4. 江涛带你玩0.96-OLED之实战stm32的RTC时钟(上)

    目录 1.前言 2.准备工作 3.关于OLED驱动,模拟SPI和硬件SPI 4.关于SPI和IIC的驱动的异同点 5.开始驱动OLED,使用STM32-CubeMX生成代码 6.显示函数 7.改造显示 ...

  5. 一篇文章带你玩转C语言基础语法5:条件判断 if else 语句与分支 。(千字总结)

    我的个人主页:☆光之梦☆的博客_CSDN博客-C语言基础语法(超详细)领域博主 欢迎各位

  6. 一篇文章带你玩转C语言基础语法。2:数据类型。千字总结

    我的个人主页:☆光之梦☆的博客_CSDN博客-C语言基础语法(超详细)领域博主 欢迎各位

  7. 玩转RAW格——基础篇

    一.什么是RAW文件? RAW文件主要是一种记录了数码相机传感器的原始信息,同时伴随着一些由相机所产生的一些元数据(metadata,诸如IS0的设置.快门速度.光圈值.白平衡等)的文件.不同的相机制 ...

  8. 【博学谷学习记录】超强总结,用心分享丨大数据超神之路(五):Hadooop基础篇

    文章目录 前言 1.编译源码 1.1 官网下载编译后的包 1.2 手动编译 1.2.1 安装编译相关的依赖 1.2.2 手动安装cmake3.13.5 1.2.3 手动安装snappy1.1.3 1. ...

  9. C#插件开发之带控件的插件开发(基础篇)

    1.实现功能介绍 插件中存在控件,运行程序时将控件添加到主程序的容器panel中,可执行插件中设定的控件功能. 2.文件架构 3.创建插件接口 namespace PluginFramework {p ...

最新文章

  1. 关于ognl+struts-tag与el+jstl互相代替,以及el和jstl的学习笔记
  2. JAVA NIO 内存泄露
  3. python 引用(import)文件夹下的py文件的方法
  4. 微信小程序之设置不同的顶部导航栏名称
  5. 卖家工具箱源码_我的测试和代码分析工具箱
  6. MYSQL jdbc autoReconnect
  7. arm平台下linux c语言编程,简单分析针对ARM平台的C语言程序的编译问题
  8. 通讯录_你有多久没翻过通讯录了?
  9. 华为java安全编程规范考试答案
  10. 从Q_Learning看强化学习
  11. 此计算机怎样连接未识别的网络连接,电脑插入网线后显示“未识别网络”怎么办?...
  12. 怎样在PLSQL Developer14(64bit)当中找到汉化版本?
  13. JavaScript-空位补零
  14. 07年中国企业500强名单
  15. 程序yuan开发-windows小工具:gif截图-LICEcap、文件查找-Everything、远程软件-TeamView、视频播放-PotPlayer、markdown编辑-Typora、
  16. 微信看一看内容来源哪里?看一看推荐规则是什么?怎么赚钱?
  17. FPGA核心优点有哪些?FPGA可以取代DSP?
  18. PS美工教程:制作真实水面倒影效果详细步骤
  19. 计算二叉树的最大高度
  20. 给伸手党的福利:Python新手入门引导

热门文章

  1. 华为HG8245光猫破解之旅
  2. 2017第三十三届湖北(武汉)国际先进医疗仪器设备展览会会刊(参展商名录)
  3. 数值分析实验报告 matlab,数值分析matlab实验报告..doc
  4. html图片要上下居中显示,CSS图片垂直居中最简单的方法推荐
  5. 【每日蓝桥】52、一七年省赛Java组真题“K倍区间”
  6. 索纳塔进入wince系统_索航导航一体机如何进wince系统?|KBS车友会
  7. 最新传智播客P2P金融项目网络借贷平台开发
  8. 耶鲁大学教授:研究生做科研的 11 条 “军规“
  9. 局部载入html后 主页面变了,html局部刷新_Jquery.load载入页面实现局部刷新的代码...
  10. STM32F7普通定时器的使用(定时+中断+PWM)