MSP430F169——CLOCK

2023-11-25 16:10
文章标签 clock msp430f169

本文主要是介绍MSP430F169——CLOCK,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MSP430F169——CLOCK

时钟在单片机上十分重要,尤其是以低功耗盛名的TI MSP430系列单片机上,更显得尤为重要,何出此言?我们知道,频率越低,功耗越低,在满足各种设计需要的情况下,我们尽可能将单片机工作频率降低,此时单片机的功耗也就随之降低。MSP430系列单片机之所以有如此低的功耗,正是因为其有一个强大的时钟系统!

那么在430f169这款单片机上,我们该如何去学习它的时钟系统呢?

接下来,我将带领大家学习这个时钟系统,让大家对msp430f169的时钟系统有一定了解。

  • 时钟系统模块设计要求:
    高频率:用于系统硬件需求和外部事件的快速反应
    低频率:用于降低电流消耗
    稳定的频率:以满足定时应用,如实时时钟RTC
    低成本:用于时钟精度要求不高的场景
  • MSP430F169单片机时钟系统概述:来自MSP430F169单片机用户手册的时钟系统原理图

一、三种时钟信号源

1.低频LFXT1CLK(32.768KHz)

可以使用标准晶振,振荡器或者外部时钟源输入4MHz~32MHz。XT1CLK可以作为内部FLL模块的参考时钟。

低频晶振(32.768KHz)经过XIN和XOUT引脚直接连接到单片机,不需要其他外部器件(内部有12pF的负载电容)。此时LFXT1振荡器工作于低频模式(XTS=0)。

如果单片机外接高速品体振荡器或谐振器时,0SCOFF=0可使LFXT1振荡器工作于高频模式(XTS=1)。此时高速品体振荡器或谐振器经过XIN和XOUT引脚连接,并且需要外接电容,电容的大小根据晶体振荡器或谐振器的特性来选择。

如果LFXT1CLK信号没有用作SMCLK或MCIK信号,可用软件将OSCOFF=1以禁止LFXT1工作,从而减少单片机耗电。

BCSCTL1:
XTS(BIT6)——LFXT1高/低速模式选择。0:LFXT1工作在低速晶振模式(默认);1:LFXT1工作在高速晶振模式。

2.高频XT2CLK(8MHz)

可以使用标准晶振,振荡器或者外部时钟源输入4MHz~32MHz。

XT2振荡器产生XT2CLK时钟信号,它的工作特性与LFXT1振荡器工作在高频模式时类似。如果XT2CLK没有用作MCLK和SMCLK时钟信号,可用控制位XT2OFF禁止XT2振荡器。
BCSCTL1:
XT2OFF(BIT7)——XT2高速晶振控制。0:XT2高速晶振开;1:XT2高速晶振关。

3.内部振荡器DCOCLK(1MHz)

通过FLL模块来稳定。

当振荡器失效时,DCO会被自动选为MCLK的时钟源。

DCO振荡器的频率可通过软件对DCOx. MODx和RSEL.x位的设置来调整。当DCOCLK信号没有用作SMCLK和MCLK时钟信号时,可以用控制位SCGO禁止直流发生器。

在PUC信号之后,DCOCLK被自动选作MCLK时钟信号,根据需要,MCLK的时钟源可以另外设置为LFXT1或者XT2。设置顺序如下:
(1)让OSCOFF=1;
(2)让OFIFG=0;
(3)延时等待至少50ps;
(4)再次检查OFIFG,如果OFIFG=1,重复(3) ,(4)步骤,直到OFIFG=0为止。

DCOCTL:
DCOx(BIT7、BIT6、BIT5)——DCO频率选择,选择8种频率,可分段调节DCOCLK频率。该频率选择是建立在RSELx选定的频段上。DCOx、RSELx与内部时钟的关系如图:在这里插入图片描述
MODx(BIT4、BIT3、BIT2、BIT1、BIT0)——DAC调制器设定。控制切换DCOx和DCOx+1选择的两种频率,来微调DCO的输出频率。如果DCOx常数是7,表示已经选择最高频率,此时MODx失效,不能用来进行频率调整。
BCSCTL1:
RSELx(BIT2、BIT1、BIT0)——DCO振荡器的频段选择,该3位控制某个内部电阻以决定标称频率。0:选择最低的标称频率…7:选择最高的标称频率。
BCSCTL2:
DCOR(BIT0)——选择DCO振荡电阻。0:内部电阻;1:外部电阻。

二、三种时钟源

1.ACLK 辅助时钟

ACLK 是LFXT1CLK经1、2、4、8分频后得到的。可作为各个外围模块的时钟信号,一般用于低速外设。
BCSCTL1:
DIVAx(BIT5、BIT4)——ACLK分频选择,分频选择关系如下图:
在这里插入图片描述
宏定义:DIVA_0(1分频/不分频)、DIVA_1(2分频)、DIVA_2(4分频)、DIVA_3(8分频)

2.MCLK 系统主时钟

MCLK可由LFXT1CLK、XT2CLK、DCOCLK三者其一经1、2、4、8分频后得到,常用于CPU运行、程序的执行和其他使用高速时钟的模块。
BCSCTL2:
SELMx(BIT7、BIT6)——选择MCLK时钟源,时钟选择关系如下图:
在这里插入图片描述
宏定义:SELM_0(DCOCLK默认)、SELM_1(DCOCLK)、SELM_2(XT2CLK)、SELM_3(LFXT1CLK)

DIVMx(BIT5、BIT4)——MCLK分频选择,分频选择关系如下图:
在这里插入图片描述
宏定义:DIVM_0(1分频/不分频)、DIVM_1(2分频)、DIVM_2(4分频)、DIVM_3(8分频)

3.SMCLK 子系统时钟

SMCLK可由XT2CLK、DCOCLK二者其一经1、2、4、8分频后得到,常用于高速外围模
块。
BCSCTL2:
SELSx(BIT3)——选择MCLK时钟源,时钟选择关系如下图:
在这里插入图片描述

DIVSx(BIT2、BIT1)——SMCLK分频选择,分频选择关系如下图:
在这里插入图片描述
宏定义:DIVS_0(1分频/不分频)、DIVS_1(2分频)、DIVS_2(4分频)、DIVS_3(8分频)

三、三种寄存器

1.DCO控制寄存器——DCOCTL

在这里插入图片描述

2.基本时钟系统控制寄存器1——BCSCTL1

在这里插入图片描述

3.基本时钟系统控制寄存器2——BCSCTL2

在这里插入图片描述

四、代码示例

#include  <msp430f169.h>
#include  "BoardConfig.h

这篇关于MSP430F169——CLOCK的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/424096

相关文章

Angle Between Hands of a Clock

Given two numbers, hour and minutes, return the smaller angle (in degrees) formed between the hour and the minute hand. Answers within 10-5 of the actual value will be accepted as correct. Example 1

翻译_Clock Domain Crossing Design

翻译_Clock Domain Crossing Design 原文标题及连接:Clock Domain Crossing (CDC) Design & Verification Techniques Using SystemVerilog. 作者:Clifford E. Cummings Sunburst Design, Inc. cliffc@sunburst-design.com

NYOJ--484 The Famous Clock

The Famous Clock 时间限制: 1000 ms  |  内存限制: 65535 KB 难度: 1 描述 Mr. B, Mr. G and Mr. M are now in Warsaw, Poland, for the 2012’s ACM-ICPC World Finals Contest. They’ve decided to take a 5 hours tr

Inna and Alarm Clock

Inna and Alarm Clock time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Inna loves sleeping very much, so she needs n ala

hdu5387(2015多校8)--Clock(模拟)

题目链接:点击打开链接 题目大意:给出一个时间,问在钟表上这个时间的时候,时针和分针的角度,时针和秒针的角度,分针和秒针的角度,如果不是整数以分数的形式输出。 如果按照最小的格来算,那么: 1s对于秒针来说走1格,分针走12/720格,时针走1/720格。 1m对于分针来说走一个,时针走60/720格。 1h对于时针来说走5格。 计算给出的时间中时针,分针,秒针走的格数,相减得到差,每

【c++】6.延时函数sleep()、usleep()、delay()和计算程序运行时间的函数clock()

延时函数delay(),sleep(),usleep() 推荐使用以下延迟: #include <unistd.h> // 在gcc编译器中,使用的头文件因gcc版本的不同而不同sleep(10); //程序挂起10s usleep(100); //程序挂起100us 可以参考:Linux的sleep()和usleep()的使用和区别: https://blog.csdn.net

Codeforces Round #229 (Div. 2) A. Inna and Alarm Clock

A. Inna and Alarm Clock time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Inna loves sleeping very much, so she needs n

Linux时间子系统2: clock_gettime的VDSO机制分析

在之前分析clock_gettime的文章中接触到了VDSO,本篇文章是对VDSO的学习总结,借鉴了很多前人的经验。    1. 什么是VDSO         vDSO:virtual DSO(Dynamic Shared Object),虚拟动态共享库,内核向用户态提供了一个虚拟的动态共享库。在 Linux 众多的系统调用中,有一部分存在以下特点: 系统调用本身很快,主要

Linux时间子系统(一):gettimeofday和clock_gettime实现分析

1. Linux用户态获取时间的函数 a. 秒级别的时间函数:time和stime time和stime函数的定义如下: #include <time.h>time_t time(time_t *t);int stime(time_t *t);         time函数返回了当前时间点到linux epoch的秒数(内核中timekeeper模块保存了这个值,timekeeper->x

s3c2440_Clock Timer

2440时钟模块能够产生3种时钟,分别为:FCLK、PCLK、HCLK。 FCLK:Frame Clock 帧时钟,供CPU使用。 HCLK:给AHB高性能总线上的设备使用:存储控制器、中断控制器、LCD控制器、DMA、DM9000和USB模块。 PCLK:给APB外围总线上的设备使用:ADC、UART、GPIO、RTC、看门狗、IIC、IIS、PWM定时器、MMC接口和SPI串行外设接口。