疯狂的大柚柚带你玩转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. C语言面试题-这些简单的你能很快的写出来吗?
  2. WinDBG工具简介(.net大会中张银奎先生介绍)
  3. 【MM模块】ASAP 项目实施方法简介
  4. Vue注意事项及用得较多的属性归纳
  5. 第九节:深究并行编程Parallel类中的三大方法 (For、ForEach、Invoke)和几大编程模型(SPM、APM、EAP、TAP)
  6. Go语言操作MySQL的基础知识
  7. linux 生成随机数 命令,Linux生成随机数的多种方法
  8. Arp Scan和局域网隐身
  9. 开放下载!2021 解锁 Serverless 从入门到实战大“橙”就
  10. android jni示例_Android动画示例
  11. c++进阶(十八)stack容器和queue容器
  12. E-day0003:generate
  13. IP Multicast: MSDP RPF检测详细规则(转)
  14. 比google earth还好的实景地图
  15. 动态正则化权重系数_PARALLEL LADDER ALGORITHMS BASED ON A PRIORI ERRORS OF PREDICTION AND SIMULATION...
  16. Excel怎么转换成PDF?这两种转换方法看到就是赚到
  17. Batch Normalization :深度网络中的BN层
  18. 长治南垂驾校科目二经验总结
  19. Latex自定义文档纸张大小
  20. 人人都来写算法 之 插入排序

热门文章

  1. 一个让人类窒息的AI工具,或许未来人工智能真的能代替人类!
  2. linux CentOS
  3. 大厂挑完、中厂捡漏、小厂最现实,想拿高薪offer,刚毕业的我这样曲线救国
  4. 计算机cad模板大小,CAD如何设置尺寸标注样式
  5. 配置 Java 开发环境
  6. 南昌大学matlab实验2,南昌大学MATLAB与控制系统仿真实验报告-资源下载人人文库网...
  7. 如何判断对方列表里是不是好友_对方QQ是否把我删了不确定是否还在他的好友列表里...
  8. UltraISOPE 9.6.2.3059简体中文注册版/单文件版+软碟通
  9. 增长黑客系列—如何精细化渠道效果投放
  10. Linux杀不死木马,杀不死进程,自启动进程