疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)-----(七)系统时钟的介绍
疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)
(七)系统时钟的介绍
MSP430G2553 系列单片机的时钟系统,包括2-4个时钟源,可以为外设和CPU提供3个系统时钟。
注意:LFX1不支持HF模式,无XT2,不支持ROSC
系统时钟
ACLK:辅助时钟
ACLK可以被软件配置从LFXT1CLK或VLOCLK输入震荡ACLK可以被1,2,4,8分频,以及可以被选用作为外围模块的时钟输入。MCLK:主时钟
主时钟可以从LFXT1CLK或VLOCLK,XT2CLK或DCOCLK输入MCLK用在CPU系统中。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或VLOCLKDIVM: MCLK分频
00/1
01/2
10/4
11/8SELS: SMCLK频率选择
0 DCOCLK
1 片上若有XT2则选择XT2CLK,若没有XT2则选择VLOCLK或XT2DIVSx:SMCLK的分频
00/1
01/2
10/4
11/8DCOR: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.5pFXT2OF: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(基础篇)-----(七)系统时钟的介绍相关推荐
- java玩转区块链-基础篇-账户
java玩转区块链-基础篇--账户 java环境配置 基础概念 账户 maven包引用 创建账户代码 代码解释 (1) (2) (3) (4) 可以不让搞,但是不允许你不会 java环境配置 jdk版 ...
- java玩转区块链-基础篇-solidity语法-基础类型
java玩转区块链-基础篇-solidity语法-基础类型 java环境配置 代码准备 maven 完整solidity 执行步骤 基础类型 布尔类型 类型标识: 字面常量值: 运算符: 短路规则: ...
- 独立艺术家大谷spizher带你玩转PaddleGAN
一个曾被 "卷积网络之父"Yann LeCun(杨立昆)誉为「过去十年计算机科学领域最有趣的想法之一」,是近年来火遍全网,AI 研究者最为关注的深度学习算法方向之一,GAN--生成 ...
- 江涛带你玩0.96-OLED之实战stm32的RTC时钟(上)
目录 1.前言 2.准备工作 3.关于OLED驱动,模拟SPI和硬件SPI 4.关于SPI和IIC的驱动的异同点 5.开始驱动OLED,使用STM32-CubeMX生成代码 6.显示函数 7.改造显示 ...
- 一篇文章带你玩转C语言基础语法5:条件判断 if else 语句与分支 。(千字总结)
我的个人主页:☆光之梦☆的博客_CSDN博客-C语言基础语法(超详细)领域博主 欢迎各位
- 一篇文章带你玩转C语言基础语法。2:数据类型。千字总结
我的个人主页:☆光之梦☆的博客_CSDN博客-C语言基础语法(超详细)领域博主 欢迎各位
- 玩转RAW格——基础篇
一.什么是RAW文件? RAW文件主要是一种记录了数码相机传感器的原始信息,同时伴随着一些由相机所产生的一些元数据(metadata,诸如IS0的设置.快门速度.光圈值.白平衡等)的文件.不同的相机制 ...
- 【博学谷学习记录】超强总结,用心分享丨大数据超神之路(五):Hadooop基础篇
文章目录 前言 1.编译源码 1.1 官网下载编译后的包 1.2 手动编译 1.2.1 安装编译相关的依赖 1.2.2 手动安装cmake3.13.5 1.2.3 手动安装snappy1.1.3 1. ...
- C#插件开发之带控件的插件开发(基础篇)
1.实现功能介绍 插件中存在控件,运行程序时将控件添加到主程序的容器panel中,可执行插件中设定的控件功能. 2.文件架构 3.创建插件接口 namespace PluginFramework {p ...
最新文章
- 关于ognl+struts-tag与el+jstl互相代替,以及el和jstl的学习笔记
- JAVA NIO 内存泄露
- python 引用(import)文件夹下的py文件的方法
- 微信小程序之设置不同的顶部导航栏名称
- 卖家工具箱源码_我的测试和代码分析工具箱
- MYSQL jdbc autoReconnect
- arm平台下linux c语言编程,简单分析针对ARM平台的C语言程序的编译问题
- 通讯录_你有多久没翻过通讯录了?
- 华为java安全编程规范考试答案
- 从Q_Learning看强化学习
- 此计算机怎样连接未识别的网络连接,电脑插入网线后显示“未识别网络”怎么办?...
- 怎样在PLSQL Developer14(64bit)当中找到汉化版本?
- JavaScript-空位补零
- 07年中国企业500强名单
- 程序yuan开发-windows小工具:gif截图-LICEcap、文件查找-Everything、远程软件-TeamView、视频播放-PotPlayer、markdown编辑-Typora、
- 微信看一看内容来源哪里?看一看推荐规则是什么?怎么赚钱?
- FPGA核心优点有哪些?FPGA可以取代DSP?
- PS美工教程:制作真实水面倒影效果详细步骤
- 计算二叉树的最大高度
- 给伸手党的福利:Python新手入门引导
热门文章
- 华为HG8245光猫破解之旅
- 2017第三十三届湖北(武汉)国际先进医疗仪器设备展览会会刊(参展商名录)
- 数值分析实验报告 matlab,数值分析matlab实验报告..doc
- html图片要上下居中显示,CSS图片垂直居中最简单的方法推荐
- 【每日蓝桥】52、一七年省赛Java组真题“K倍区间”
- 索纳塔进入wince系统_索航导航一体机如何进wince系统?|KBS车友会
- 最新传智播客P2P金融项目网络借贷平台开发
- 耶鲁大学教授:研究生做科研的 11 条 “军规“
- 局部载入html后 主页面变了,html局部刷新_Jquery.load载入页面实现局部刷新的代码...
- STM32F7普通定时器的使用(定时+中断+PWM)