msp430f5529学习笔记(2)时钟系统
写在前~本章将会详细的讲解msp430f5529单片机的时钟系统及其使用方法。如有不妥的地方欢迎各位大佬斧正!!!
目录
什么是时钟系统和时钟源
MSP430f5529时钟源和时钟系统介绍
产生时钟信号的时钟源:
时钟配置
什么是时钟系统和时钟源
在单片机中,单片机每开始一个周期的工作就需要一个节拍来告诉它,这就相当于我们的心脏每跳动一次,血液被泵到身体各处一次一样。那么单片机的时钟就是单片机工作所需要的节拍,单片机的取指令、译指令等工作都需要以这样的时钟周期为最小周期。
而实际上这样一个时钟就是一个方波信号,在每一个上升沿或者下降沿会迫使单片机工作一次。产生这样有规律的方波信号的源头就叫做时钟源(振荡器),因此单片机工作的快慢就和这个时钟源的频率有关系,频率越高,单片机完成一次工作的时间就越短,频率越低,单片机完成一次工作的时间就越长。但并不意味着可以无脑的选择最高频率,对很多不需要大量处理,只是控制的情况,为了增加可靠性,降低编程难度,降低功耗,往往选用低频的的时钟源,单片机是数字逻辑电路,频率越高,逻辑门变化越快,运算速度越快,功耗就会增大。(这里消耗电量最大的是逻辑门的通断)因此要根据用户手册和实际情况去选择合适的时钟源。
MSP430f5529时钟源和时钟系统介绍
MSP430f5529 以低功耗为主推功能,其实现低功耗一方面就是动态的去配置相应的时钟以降低功耗,通过UCS单元产生三路信号:
MCLK(Master clock)主时钟,供CPU使用。MCLK配置的越高,cpu的执行速度就越快,功耗就越高。注意:一旦关闭MCLK,CPU也将停止工作。因此在超低功耗系统中可以通过间歇启用MCLK的方法降低系统功耗。MCLK也可经分频后给CPU使用。
SMCLK (Subsystem master clock)子系统时钟,供高速外设使用。
ACLK( Auxiliary clock )辅助时钟,供低速外设使用。
通过这样的设计,不同的部分就可以根据自己的时钟来工作,不需要的时候可以将空闲的时钟源关闭,进入低功耗模式。根据时钟不同程度上的关闭,分为7种低功耗模式。
三个时钟相互独立,关闭任何一种时钟不影响其余时钟工作。可通过对三种时钟不同的关闭方式来实现不同的休眠模式(即当关闭某时钟后其相应的外设也将停止工作)。
产生时钟信号的时钟源:
- XT1CLK 外部低频率或高频率振荡源,32.768Khz(LF模式)或4-32Mhz(HF模式);
- XT2CLK 外部高频振荡源,4-32Mhz;
- VLOCLK 内部低耗低频振荡源,典型为10KHZ,精度一般;
- REFOCLK 内部低频参照源,典型值32.768KHZ,常被用作锁相环FLL的基准频率,精度很高,不使用时不消耗电源,其设置往往要参考LPM模式的的设置;
- DCOCLK内部数字控制振荡源,通过内部FLL单元稳定而来,并不算是一个通过振荡产生时钟的源。
当我们给板子上电时,ACLK =REFOCLK = 32.768Khz;FLLREFCLK = REFOCLK = 32.768K;DCOCLK默认为2.097152MHZ,FLL默认2分频,所以MCLK和SMCLK的频率都为1.048576MHZ。
MSP430f5529 开发板支持将系统时钟在引脚上复用输出,MCLK输出复用P7.7脚,SMCLK输出复用P2.2脚,ACLK复用P1.0脚,实验板上只引出P1.0和P2.2,而P7.7未被引出。这样方便了我们通过测量的方式去检测时钟系统的配置情况。
时钟配置
接下来我们通过代码来配置这三个时钟:
#include <msp430.h> void main(void){WDTCTL = WDTPW | WDTHOLD; // 关闭看门狗P1DIR |= BIT0; //P1.0配置为输出P1SEL |= BIT0; //P1.0输出ACLKP2DIR |= BIT2; //P2.2配置为输出P2SEL |= BIT2; //P2.2输出SMCLKwhile(1);}
运行上面的代码,可在P1.0和P2.2引脚通过示波器检测到子系统时钟和辅助系统时钟的频率。
UCSCTL4 |= SELA_1; //配置ACLK = VCOCLK =9.21Khz
UCSCTL4 |= SELA_2; //配置ACLK = REFOCLK = 32.86Khz
UCSCTL4 |= SELA_3; //配置ACLK = DCOCLK = 2.11Mhz
UCSCTL4 |= SELA_4; //配置ACLK = DCOCLKDIV = 1.06Mhz
使用以上代码可配置内部时钟源。
修改时钟源,配置ACLK = 32.768Khz,MCLK = SMCLK = DCOCLKDIV=1.05M;
#include <msp430.h>void main(void)
{WDTCTL = WDTPW | WDTHOLD; // 关闭看门狗P1DIR |= BIT0; //配置P1.0为输出P1SEL |= BIT0; //P1.0输出ACLKP2DIR |= BIT2; // 配置P2.2为输出P2SEL |= BIT2; //P2.2输出SMCLKP5SEL |= BIT4+BIT5; //P5.4和P5.5选择XT1晶振功能UCSCTL3 |= SELREF_0; //设置FLL参考时钟源为XT1do{UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);//清除XT2,XT1,DCO故障失效标志位SFRIFG1 &= ~OFIFG; //清除晶振故障失效中断标志位}while(SFRIFG1&OFIFG); //晶振故障失效中断标志位UCSCTL6 &= ~XT1DRIVE_0; //减少XT1驱动能力UCSCTL4 |= SELA_0; //ACLK = XT1CLKwhile(1);
}
使用以上代码可配置外部中断源。
msp430f5529学习笔记(2)时钟系统相关推荐
- STM32F103学习笔记四 时钟系统
STM32F103学习笔记四 时钟系统 本文简述了自己学习时钟系统的一些框架,参照风水月 1. 单片机中时钟系统的理解 1.1 概述 时钟是单片机的脉搏,是单片机的驱动源 用任何一个外设都必须打开相应 ...
- 【C51单片机学习笔记--DS1302时钟芯片蜂鸣器I2C总线AT24C02存储器】
C51单片机学习笔记–DS1302时钟芯片&&蜂鸣器&&I2C总线&&AT24C02存储器 文章目录 一.DS1302时钟芯片介绍 二.DS1302时钟 ...
- MSP430F5529学习笔记(5)——按键切换灯的亮灭
MSP430F5529学习笔记(4)--按键点灯: 目录 官方示例代码 内容解析 BIT0的含义 ^=解析 按键消抖 增加的宏定义 问题 解决办法 官方示例代码 官方视频教程里面的代码如下,我做了些许 ...
- 单片机课程学习的数字时钟系统模块化设计研究
摘要:随着人们生活环境的不断改善和美化,人们希望通过在生活中得到更多的乐趣,来满足我们日益增长的精神需求.单片机课程学习的数字时钟系统模块化设计研究能够给人们的生活带来丰富多彩的滋味,低廉的造价以及控 ...
- c语言计算时钟的夹角不用if,C语言学习笔记——计算时钟的夹角
C语言学习笔记--计算时钟的夹角 题目内容: 钟面上的时针和分针之间的夹角总是在 0 -180之间 ( 包括 0 和180 ) .举例来说,在十二点的时候两针之间的夹角为 0 ,而在六点的时候夹角为1 ...
- Linux学习笔记之——Linux系统内部相关介绍
Linux学习笔记之--Linux系统内部相关介绍 摘要:主要记录一些比较有用的能够帮助理解和使用Linux的知识.比如一些相关概念.没兴趣的看看就好.知道有这么个东西.注意事项.和一些常用目录的作用 ...
- oracle如何往dg加盘_学习笔记:Oracle DG系统 主备库中表空间和数据文件增加删除等管...
天萃荷净 Oracle Data Guard表空间和数据文件管理汇总 汇总日常工作中操作,在Oracle DG结构系统中,如何删除备库表空间和数据文件,如何管理主库与备库之间的文件系统,详见文章内容. ...
- MSP430F5529学习笔记(2)——点亮LED
TI官方MSP430F5529开发板原理图和中文开发手册:MSP430F5529学习笔记(1)--环境配置 目录 原理图和中文开发手册获取方法 点亮LED1 分析电路图 写程序,点亮LED1 1,首先 ...
- PhysX学习笔记2 -cloth系统3d模型的导入
PhysX学习笔记2 -cloth系统3d模型的导入 PhysX的cloth的demo中,3d模型是用.obj格式. 环境:win2000, PhysX安装包: PhysX_6.11.01_Syste ...
最新文章
- linux删除指定创建时间文件(文件夹)脚本
- 【C语言】06-基本数据类型
- 华为鸿蒙系统2019年秋季上市,华为鸿蒙系统秋季上市?或许真的要提前了,最快可能下个月发布...
- r语言各形状编号_R语言入门第八讲:编码分类变量(factor)
- 怎么ping虚拟计算机,虚拟机和主机如何互ping,以及虚拟机网络配置遇到的那些坑...
- Codeforces Round #392(div 2) 758D (贪心)
- 把SAP云平台上创建的API proxy添加到API product里去
- Spring Security 教程
- mysql 水平分表
- vue3新增Teleport组件
- Windows下Tuxedo的安装与配置-无数据库
- tomcat构建及session保持
- Anaconda-Navigator无法打开
- Kali系列之网卡地址配置
- 移远 M26 GSM模组(2G通信模组)AT指令测试 TCP 通信过程
- 【海码学院】web前端基础入门JavaScript之JavaScript起源和基础语法学习笔记
- 转Genymetion
- NAS论文笔记:代理模型篇:NSGA Net V2: Evolutionary Multi-Objective Surrogate-Assisted Neural Architecture Sear
- 终于连熊也可以代表了!
- 哪些人适合转行学习IT技术呢