MSP430单片机的时钟系统
- 格式:ppt
- 大小:1016.00 KB
- 文档页数:43
msp430f5419/38学习笔记之时钟系统(2011-11-30 10:41:30)分类: msp430标签:msp430f541xmsp430f543xucs时钟系统注:msp5419/38中,如果你使用SMCLK做TIMER_A的时钟,那么进入低功耗3或低功耗4是不会把SMCLK关掉的,这点5系列和其他系列的不一样。
UCS模块是一个低成本超低功耗系统,通过选择使用3个内部时钟信号,用户可以得到性能和功耗的最佳平衡点。
UCS可以由软件配置其工作模式,如配置成:不需要任何外部器件、使用1或 2个外部晶振等。
一、时钟系统UCS模块具有5个时钟源:XT1CLK:低频/高频振荡器,既可以与低频 32768HZ钟振、标准晶振、外部振荡器,又可以与外部4M-32MHZ时钟源一起使用,XT1CLK可以作为FLL模块内部的参考时钟。
有些芯片XT1CLK只允许使用外部的低频晶振,具体可参考数据手册;XT2CLK:可选高频振荡器,可与标准晶振,振荡器或者 4MHZ~32MHZ外部时钟源一起使用;VLOCLK:内部低功耗、低频振荡器,频率典型值为10KHZ;REFOCLK:内部低频振荡器,典型值为 32768HZ,可作为 FLL基准时钟源;DCOCLK:可以通过 FLL来稳定的内部数字控制振荡器(DCO);DCOCLK经过 FLL分频后可得DCOCLKDIV。
UCS模块可以提供3种时钟信号:ACLK:辅时钟;MCLK:系统主时钟;SMCLK:子系统主时钟。
二、UCS操作PUC之后,UCS的默认配置模式如下:XT1CLK 选择LF模式下的XT1作为时钟源,ACLK 选择 XT1CLK 作为时钟源;MCLK 选择DCOCLKDIV作为时钟源;SMCLK 选择DCOCLKDIV作为时钟源;FLL操作使能,FLL基准时钟(FLLREFCLK)选择XT1CLK;XIN 和 XOUT作普通IO 口使用,禁止了 XT1 功能,直到 I/O 口重新配置为 XT1 模式;如果有 XT2IN 和XT2OUT,则一并配置为普通 IO 口,禁止 XT2 功能。
MSP430的时钟设置MSP430大部分都有三时钟脉冲可供运行时选择,这三个时钟是,1)辅助时钟ACLK;2)系统主时钟MCLK;3)子系统时钟SMCLK。
这三种时钟脉冲的选择主要靠下面三个控制寄存器来完成,这三个控制寄存器是1)控制寄存器DCOCT其存储单元地址是56h;2) 基本始终控制寄存器1,BCSCTL1,地址57h;3) 基本始终控制寄存器2,BCSCTL2,地址58h。
下面对这三个寄存器的控制的软件状态状态进行介绍。
1)控制寄存器DCOCTLDCO2;DCO1;DCO0这三位共八个状态,控制时钟脉冲的8个频段。
000~111对应0~7;频率由低到高8个频段。
MOD.4~MOD.0这5为共32种状态,定义在32个周期中插入插入其他频率。
DCO2=0x80;DCO1=0x40;DCO0=0x20;MOD4=0x10;MOD3=0x08;MOD2=0x04;MOD1=0x02;MOD0=0x01其中TX2OFF为0,开启TX2振荡器,为1关闭;XTS=0开启低频模式,1开启高频模式;DIVA1和DIVA0控制分频模式0 0 不分频0 1 2分频1 0 4分频1 1 8分频TX5V一般设置为0RSEL2~RSEL0三位决定八个频段的不同频率,这样,RSEL2~RSEL0和DCO2~DCO0共可实现8*8=64个不同的频率。
由于430没有位操作,所以定义了每一位状态对应的名称:TX2OFF=0x80TXS=0x40DIVA1=0x20DIVA0=0x10TX5V=0x08RSEL2=0x04RSEL1=0x02RSEL0=0x01也就是每位所在的位置为1,其余位为0,这样,要对某一位操作,就可通过运算,在不改变其他位的情况下,对某一位进行置1或清0(如何做后面讲)。
SELM.1- SELM.0DIVM.1- DIVM.0SELS时钟源选择DIVS.1-DIVS.0 DCOR0 0 默认DCOCLK0 0默认MCLK=DCOCLK00 默认SMCLK=MCLK选择电阻0 1选择DCOCLK0 1 2分频选择SMCLK01 MCLK 2分频内电阻1 0 选择XT2CLK1 0 4分频默认选择DCOCLK10 MCLK 4分频或外电阻1 1 选择LFXTICLK1 18分频11 MCLK 8分频SELM1=0x80;SELM0=0x40;DIVM1=0x20;DIVM0=0x10;SELS=0x08;DIVS1=0x04;DIVS0=0x02;DCOR=0x01;下面看如何让在保证其他位不变的情况下给某一位清0或置1.例1要给BCSCTL2的bit3清0。
第一节时钟与休眠模式3.1.1 时钟系统简介MSP430G2系列单片机的时钟系统需要支持系统低功耗运行的需要。
通过对三个内部时钟信号的运用,用户可很容易的选择功耗最低,效率最高的系统时钟方案。
在软件的控制下,MSP430G2系列单片机运行时可以不接外接晶振,也可接一只外接电阻或者接一到两只外接晶振,也可以外接频率发生器,如图3.1.1所示为G2系列的时钟系统。
图3.1.1 时钟模块组成框图基本时钟模块包括二至四个时钟源:◆LFXT1CLK:外接低频或高频振荡器,如手表晶振,频率发生器,外部时钟源(400kHz 至16MHz).◆XT2CLK:外接高频晶振,范围在400kHz至16MHz◆DCOCLK:内部时钟震荡◆VLOCLK:内部低频低功耗晶振,标准频率是12kHz三种时钟信号可被CPU和外设所使用:◆ACLK:辅助时钟,ACLK可被软件配置成从LFXT1CLK或VLOCLK输入震荡ACLK可以被1,2,4,8分频。
ACLK可以被选用作为外围模块的时钟输入。
◆MCLK:主时钟,主时钟可以从LFXT1CLK或VLOCLK,XT2CLK或DCOCLK输入MCLK用在CPU系统之中。
◆SMCLK:辅助主时钟。
SMCLK可被选择从LFXT1CLK,VLOCLK,XT2CLK或DCOCLK输入。
SMCLK可以被1,2,4,8分频。
SMCLK可被选用为外围模块的时钟。
如图3.1.1所示为G2系列的时钟系统。
需要说明的是并非每一款G2系列的单片机都具有如上的时钟系统,以下做详细说明:MSP430G22x0:无LFXT1,无XT2,不支持ROSCMSP430G21x1,MSP430G2xx2,MSP430G2xx3:LFXT1不支持HF模式,无XT2,不支持ROSC。
MSP430x21x2:无XT23.1.2 时钟系统的操作在一个PUC信号之后,MCLK和SMCLK开始从DCO(大约在1.1MHz),ACLK从LFXT1CLK (内部电容为6pF)获取时钟。
MSP430单片机的时钟周期和机器周期与指令周期之间的关系解析时钟简介:时钟周期也称为振荡周期:定义为时钟脉冲的倒数(时钟周期就是直接供内部CPU使用的晶振的倒数,例如12M的晶振,它的时钟周期就是1/12us),是计算机中的最基本的、最小的时间单位。
在一个时钟周期内,CPU仅完成一个最基本的动作。
时钟脉冲是计算机的基本工作脉冲,控制着计算机的工作节奏。
时钟频率越高,工作速度就越快。
机器周期:在计算机中,常把一条指令的执行过程划分为若干个阶段,每一个阶段完成一项工作。
每一项工作称为一个基本操作,完成一个基本操作所需要的时间称为机器周期。
8051系列单片机的一个机器周期由6个S周期(状态周期)组成。
一个S周期=2个时钟周期,所以8051单片机的一个机器周期=6个状态周期=12个时钟周期。
指令周期:执行一条指令所需要的时间,一般由若干个机器周期组成。
指令不同,所需的机器周期也不同。
MSP430单片机上电后,如果不对时钟系统进行设置,默认800 kHz的DCOCLK为MCLK和SMCLK 的时钟源,LFXTl接32768 Hz晶体,工作在低频模式(XTS=O)作为ACLK的时钟源。
CPU的指令周期由MCLK决定,所以默认的指令周期就是1/800 kHz=“1”.25μs。
要得到lμs的指令周期需要调整DCO频率,即MCLK=1 MHz,只需进行如下设置:BCSCTLl=XT20FF+RSEL2;//关闭XT2振荡器,设定DCO频率为1 MHz。
DCOCTL=DCO2//使得单指令周期为lμsMSP430的时钟周期(振荡周期)、机器周期、指令周期之间的关系在430中,一个时钟周期= MCLK晶振的倒数。
如果MCLK是8M,则一个时钟周期为1/8us;一个机器周期= 一个时钟周期,即430每个动作都能完成一个基本操作;一个指令周期= 1~6个机器周期,具体根据具体指令而定。
另:指令长度,只是一个存储单位与时间没有必然关系。
基于MSP430单片机的电子时钟设计说明
一、需求分析
本设计的目标是基于MSP430单片机来设计一款电子时钟。
电子时钟
可以用来显示当前的时间,比如时、分、秒;同时还具有闹钟功能,即可
以设置每天一些时刻提醒用户,提醒用户做件事情。
设计时,要注意以下
几个方面:
1、时间流逝的准确性:电子时钟的核心功能是准确显示当前的时间,即时针、分针、秒针在正确地流逝;同时也要考虑时间的准确性,用户可
以设置任意时间,时钟计时要按照设置的时间进行计时。
2、系统稳定性:电子时钟的系统稳定性极其重要,不能因为短暂的
停电等扰动,导致系统失去稳定,时间乱跳。
3、外观设计:在外观设计方面,电子时钟要求具有精美、简约的外观,而且要求清晰显示时间内容,用户可以视觉上感受时间的运行,同时
操作简单,操作界面友好;同时,为了满足用户的要求,要能够设置闹钟,并且有红色指示灯和蜂鸣器来提醒。
二、设计要求
1、MSP430单片机:采用MSP430F169作为主控制器,芯片的16位CPU具有较强的数据处理能力,可以有效调整时间性能,满足电子时钟计
时要求。
2、时间及闹钟设置:采用4×4键盘模块作为时间及闹钟设置。
MSP430时钟设置及应用总结*******************基于MSP430F1612************************** 在MSP430单片机中,一个时钟周期= MCLK晶振的倒数。
如果MCLK是8MHz,则一个时钟周期为1/8us。
一个机器周期= 一个时钟周期,即430每个动作都能完成一个基本操作。
一个指令周期= 1~6个机器周期,具体根据具体指令而定。
另外,指令长度只是一个存储单位,与时间没有必然的关系。
MSP430单片机的时钟模块主要包括:三个时钟:辅助时钟ACLK 、主时钟MCLK 、子系统时钟SMCLK三个振荡器:低频时钟源LFXT1 、高频时钟源XT2 、数字控制RC振荡器DCO而MSP430单片机工作所需时钟就是由这些振荡器振荡后经处理产生的。
(1)ACLK:是LFXT1CLK信号经1/2/4/8分频后得到的,主要用作低速外围的时钟(2)MCLK:是LFXT1CLK,XT2CLK,DCOCLK的三者之一决定,由软件选择,然后经1/2/4/8分频后得到,主要用于CPU和系统(3)SMCLK:可由LFXT1CLK和DCOCLK,或者XT2CLK与DCOCLK决定,然后经1/2/4/8分频后得到,主要用于高速外围模块MSP430的时钟模块由DCOCTL,BCSCTL1,BCSCTL2,IE1,IFG1这五个寄存器来确定,具体的功能如下所示:DCOCTL:控制DCO振荡器BCSCTL1:控制XT2,LFXT1,DCO振荡,并控制ACLK的分频情况BCSCTL2:设置三个时钟源分别选择什么振荡器我们在程序里对寄存器的设置,也就是对三个振荡器进行设置,时钟振荡器设置好了,还要对时钟模块进行设置,也就是让三个时钟模块MCLK SMCLK ACLK选择相应的时钟振荡器以得到不同频率的时钟。
PUC信号后,系统选择内部电阻以实现频率的输出。
RSELx = 4 与DCOx = 3,开始时使DCO有一个适中的频率。
基于MSP430单片机的实时时钟设计基于MSP430单片机的实时时钟设计是一个简单而有趣的项目,可以将当前的时间以数码管的形式显示出来。
本文将介绍如何使用MSP430单片机和数码管来实现实时时钟,包括时钟芯片、显示部分的接线和编程等方面。
首先,我们需要准备的材料和工具有:1. MSP430单片机开发板(例如MSP-EXP430G2 LaunchPad)2.DS1302实时时钟芯片3.4位共阳数码管(例如TM1640)4.杜邦线若干5.面包板6.12MHz晶振7.调试器和编程软件(例如MSP-FET430UIF和MSP430-GCC)接下来,我们开始进行实时时钟的设计。
1.硬件连接:a.将MSP430单片机开发板连接到计算机,并打开编程软件。
b.将DS1302实时时钟芯片插入面包板,并根据其引脚定义连接到MSP430单片机的端口。
c.将4位共阳数码管插入面包板,并根据其引脚定义连接到MSP430单片机的端口。
2.编程设计:a.在编程软件中创建一个新的项目,选择MSP430单片机的适当型号,并设置时钟频率为12MHz。
b.导入DS1302和TM1640的相关库文件,并进行必要的初始化设置。
c.配置MSP430单片机的端口,使其与DS1302和TM1640的引脚连接匹配。
d.编写程序代码,实现实时时钟的功能,包括获取当前时间、将时间转换为数码管的显示格式以及控制数码管进行显示。
3.调试和测试:a.将MSP430单片机从计算机中断开,并将其与电源连接,确保其正常运行。
b.观察数码管是否正确显示当前时间,包括小时、分钟和秒数。
c.如果有错误或不完善的地方,重新调试和修改程序代码,直到实时时钟正常工作。
通过上述步骤,我们可以成功地设计一个基于MSP430单片机的实时时钟(数码管显示)。
这个项目可以作为学习和实践嵌入式系统和单片机编程的绝佳机会,同时也可以作为一个有用和有趣的作品展示给别人。
这个设计还可以进一步扩展和改进,例如添加日期显示功能、设置闹钟功能等。
基于MSP430单片机的电子时钟设计电子时钟是一种使用数字显示时钟时间的设备,它通常基于单片机这样的微控制器。
本文将介绍基于MSP430单片机的电子时钟设计。
首先,我们需要确定设计的目标和功能。
电子时钟主要有如下的功能:1.显示时间:时、分、秒2.显示日期:年、月、日3.设置时间和日期4.声控灯光:根据环境光线亮度调节屏幕亮度5.闹钟功能:设定闹钟时间并响铃提醒6.温度显示:显示当前室内温度接下来,我们将逐步设计和实现这些功能。
1.选择硬件平台MSP430是一款基于16位RISC架构的低功耗单片机,它被广泛应用于嵌入式系统的开发。
我们选择MSP430单片机作为我们的硬件平台。
具体型号可以根据自己的需求进行选择。
2.硬件设计电子时钟设计中的硬件包括MSP430单片机、显示模块、温度传感器、声音传感器、时钟电路等。
通过合适的接口将这些模块连接起来。
3.软件设计电子时钟的软件设计包括两个部分:主控程序和外围设备的驱动程序。
我们将使用C语言进行编程。
主控程序主要包括以下几个功能模块:-时钟模块:通过MSP430单片机的定时器模块实现时钟的计时和显示。
-温度模块:通过温度传感器获取当前室内温度,并将其显示在屏幕上。
-日期和时间模块:通过设置模块实现对日期和时间的设置和显示功能。
-声控灯光模块:通过声音传感器检测环境光线亮度,并自动调节屏幕亮度。
-闹钟模块:设置闹钟时间并在指定的时间响铃提醒。
外围设备的驱动程序主要是对显示模块、温度传感器和声音传感器的驱动和接口设计。
4.软硬件调试和测试5.系统封装和优化完成软硬件调试测试后,我们可以将所有的电子设备安装在一起,并进行系统封装。
在封装过程中,我们需要确保电子设备的连接稳定和正确,并保持良好的通风和散热。
在封装完成后,我们还可以对系统进行一些优化,例如增加使用者友好的界面、优化显示效果等。
综上所述,基于MSP430单片机的电子时钟设计涉及硬件和软件两个方面。
通过合理的硬件连接和编写高效的控制程序,我们可以实现时钟的显示、日期和时间的设置、闹钟功能、温度显示等功能。
MSP430单片机的时钟结构是其一大特点,像配置IO口一样,对MSP430单片机的时钟配置同样由很多的寄存器来完成。
我们引入官方的一张图片来描述MSP430单片机的时钟结构:让Cloud为大家解释一下这张图,MCLK是MSP430单片机的主系统时钟,用作CPU的时钟源,它由两个入口可选择,一个是来自上面的选择器,还有一个来自下面的DCO。
DCO翻译过来就是数字控制的RC振荡器,也就是一个可以通过编程来调节其震荡频率的RC振荡器,范围是0-16MHz。
MCLK上面是ACLK,用于外围慢速设备的时钟,MCLK下面是SMCLK,也叫子系统时钟,用于外围快速设备的时钟。
图片中蓝色的文字向我们说明了当MSP430上电后主系统时钟和子系统时钟都是由这个DCO来提供的,默认为1.1MHz (可以通过进一步修改来改变频率)。
而ACLK默认由外部的晶振来提供(LFXT1其实就是我们电路板上可焊接的32.768KHz的晶振,至于为什么是32768大家可以百度,这里并不关心)。
上面还有一个叫做VLO的超低功耗/低频振荡器,用户也可以通过设置来使用它。
一、和以往一样,我们先了解一下MSP430的时钟相关寄存器:1、DCOCTL:DCO控制寄存器这个寄存器用来定义DCO的频率;2、BCSCTL1:基本时钟系统控制寄存器1这个寄存器可以控制XT2的开启关闭,LFXT1的工作模式,ACLK的分频系数,还有DCO振荡器的内部电阻阻值(可以用以调节频率);3、BCSCTL2:基本时钟系统控制寄存器2这个寄存器用来定义MCLK、SMCLK的时钟来源和分频系数,另外还可以定义DCO 的电阻来自内部还是外部;4、BCSCTL3:基本时钟系统控制寄存器3这个寄存器用来定义LFXT1和XT2的工作模式还有外部晶振的负载电容以及LFXT1和XT2振荡器的错误标志(注意:由于G系列单片机没有XT2所以大家不必关心XT2)。
另外还有两个是中断寄存器,但是也和时钟配置相关,在这里我们也拿出几位来学习,在下面的详细说明中就不再加入这两个寄存器的说明了:5、IE1:中断使能寄存器1这个寄存器中第1位OFIE(晶振故障中断使能寄存器)用来允许或禁止晶体故障中断0-禁止中断1-使能中断6、IFG1:中断标志寄存器1这个寄存器中第1位OFIFG(晶振故障中断标志寄存器)用来指示是否有晶振故障的中断产生0-没有发生中断1-有中断事件发生二、下面详细说明每个寄存器的相关配置:1、DCOCTL寄存器配置:DCOCTL DCO控制寄存器76543210 DCO.2DCO.1DCO.0MOD.4MOD.3MOD.2MOD.1MOD.0·7~5-DCO:用来定义DCO的8中不同频率,相邻两种频率相差10%·4~0-MOD:定义在32个DCO周期中插入的Fdco+1周期个数,而在下的DCO周期中为Fdco周期,控制改换DCO和DCO+1选择的两种频率。