msp430f5529时钟源

***************************************************************还有一个模块时钟源:MODOSC,产生MODCLK时钟源信号,一般只为闪存控制模块和ADC12模块提供服务。

该模块不被使用时自动关闭,任何模块对该时钟源提出使用要求时,MODOSC无需被使能即可响应该请求。430F5529中MODCLK为5MHZ。

***************************************************************

MSP430F5529有多个时钟源,而且很多模块其时钟源都是可以自由选择的。此外,由于一般情况下,系统功耗是和工作频率成正比的,因此有些时候通过选择较低频率的时钟源,在满足正常工作条件下,是可以有效降低功耗的。虽然函数库HAL_UCS.c/h,有完整的各个控制函数,但我觉得对于这一章还是对寄存器直接操作比较简单,因为函数太短、太多了。

3.1统一时钟系统(UCS)的简介

Unified Clock System,UCS。合理的配置时钟,可以达到平衡系统且降低功耗的目的。

       MSPF5529时钟系统包含5个时钟源:

LFXT1 外部低频振荡源,32.768KHZ,可以用作FLL的参照源;

XT2 外部高频振荡源,4MHZ;

VLO Internal very low内部低耗低频振荡源,典型为10KHZ,精度一般;

REFO 内部低频参照源,32.768KHZ,常被用作锁相环FLL的基准频率,精度很高,不使用时不消耗电源,其设置往往要参考LPM模式的的设置;

DCO Internal digitally-controlled内部数字控制振荡源,一般通过FLL来设置;(很有用,很重要,之后会详细讲

 

通常使用3种时钟信号,它们都来自于上述5个信号源:

ACLK Auxiliary clock辅助时钟,其时钟源可由软件控制从XT1、REFOC、VLO、DCO、DCOCLKDIV、XT2里面选取。其中DCOCLKDIV是由DCO经1、2、4、8、16或者32分频得到。注意,ACLK同样可以再次被1、2、4、8、16或者32分频。

MCLK Master clock主时钟,其特性与ACLK一模一样。

SMCLK Subsystem master clock子系统时钟,其特性与ACLK一模一样。

3.2 UCS的操作说明

                   开机上电时默认的时钟情况为(必须记清楚!!!!):

ACLKXT1(无效时,低频模式切换为REFO,其他情况切换为DCO)

MCLKDCOCLKDIV

SMCLKDCOCLKDIV

                   此外,FLL的参照源默认XT1;

如果连接XT1和XT2的引脚不进行PXSEL的设置,那么这两个时钟源都是无效的;

REFOCLK、VLOCLK、DCOCLK默认状态下是可用的;

系统稳定后,DCOCLK默认为2.097152MHZFLL默认2分频,则MCLKSMCLK的频率都为1.048576MHZ。(实验三会提到如何计算)

 

                            另外,系统复位、系统工作模式LPM的选择都会对UCS有一定影响,这里限制太多,具体可参考TI官方资料UCS部分。LPM以及系统复位下章将会讲到。

关于操作说明的简单总结:(下面基本都是废话,了解即可)

VLO的选择是最简单的,不需要顾及其它情况;

REFO的选用,需要参考不同的工作模式,有多种限制;

XT1和XT2特点相同。使用的时候,不仅要配置与其相连的引脚,还要配置电容,还要注意其本身工作在低频还是高频模式。而且,在不同工作模式下也有不同的要求;

DCO作为数控振荡器,其频率的调节不仅可以通过自身设定,也可以通过FLL锁相环设定;

FLL锁相环,是变换频率的灵活选择。它既可以设置基准频率,也可以选择分频数,还可以被直接关闭来实现降低功耗等目的;

UCS系统带有时钟信号错误保护机制;

对有严格时序要求的地方,要选择精度高的时钟源,并且做好FLL和DCO部分的调制设置;

不同模式下(有些时钟源是禁止的)的时钟控制图:(只需用到的时候注意一下即可,查表)

3.3 UCS寄存器控制操作

                   共有10组16位读写寄存器,为UCSCTL0-UCSCTL9。同样支持字和字节操作,即UCSCTL0包括UCSCTL0_H和UCSCTL0_L。

注:凡是标记“Reserved”的位,如果没有特意声明,则读回时都按0处理。

UCSCTL0:

DCO  DCO频拍选择。选择DCO的频拍并在FLL运行期间(因MOD位的变化)自动调整。。DCO 的5个控制位把由DCORSELx选择的DCO频率分为32等份,间隔大约8% 。

MOD调制位计数器。选择调制类型,所有的MOD位在FLL运行期间自动调整,无需用户干预。

UCSCTL1:

         

       DCORSELDCO频率范围选择

DISMOD调制器禁止使能位。0—使能调制器;1—禁止调制器。

UCSCTL2:

FLLD预分频器(即fDCO分频)。000-1分频,001-2分频,010-4分频,

011-8分频,100-16分频,101-32分频,

110以及111都是备用的,默认为32分频。

FLLN倍频系数。设置倍频值N,N必须大于0,如果FLLN=0,则N被自动设置为1。

UCSCTL3:

      

      SELREFFLL参考时钟选择。

                          000-XT1,001-待用,默认为XT1,010-REFO,

101-XT2,其余均为待用,默认为REFO。

FLLREFDIVFLL参考时钟分频器。000-1分频,001-2分频,010-4分频,

011-8分频,100-12分频,101-16分频,

110以及111都是备用的,默认为16分频。

UCSCTL4:

SELAACLK时钟源选择。

000-XT1,001-VLO,010-REFO,011-DCO,

100-DCOCLKDIV,101 -XT2有效时为XT2,否则为DCOCLKDIV

110 、111保留以备后来使用。当XT2有效时默认为XT2CLK,否则默认

为DCOCLKDIV

SELSSMCLK时钟源选择。设置同SELA

SELMMCLK时钟源选择。设置同SELA

UCSCTL5:

DIVPAACLK外部有效输出分频000-1分频,001-2分频,010-4分频,

011-8分频,100-16分频,101-32分频,

110以及111都是备用的,默认为32分频。

      DIVAACLK时钟源分频,设置同DIVPA

DIVSSMCLK时钟源分频,设置同DIVPA

      DIVMMCLK时钟源分频,设置同DIVPA

       UCSCTL6:

XT2DRIVEXT2振荡器电流驱动能力调整

00 最低电流消耗。XT2振荡器工作在4MHz到8MHz …

XT2BYPASSXT2旁路选择          0-XT2来源于内部时钟(使用外部晶振)

1-XT2来源于外部引脚输入(旁路模式)

XT2OFF关闭XT2振荡器

0 -当XT2引脚被设置为XT2功能且没有被设置位旁路模式时,XT2被打开;

1 -当XT2没有被用作时钟源以及没有用作FLL参考时钟时,XT2被关闭。

XTSXT1工作模式选择

0-低频模式(XCAP定义XIN和XOUT引脚间的电容)

1-高频模式(XCAP位没有被使用)

XCAP振荡器负载电容选择

SMCLKOFFSMCLK关闭控制位  0-SMCLK开           1-SMCLK关闭

XT1OFF同XT2OFF

     UCSCTL7:

XT2OFFGXT2出错时置位,同时OFFIFG也会置位,需要软件清零。

XT1HFOFFG高频工作模式下XT1出错时置位,同时OFFIFG也会置位,需要软件清零。

XT1LFOFFG低频工作模式下XT1出错时置位,同时OFFIFG也会置位,需要软件清零。

DCOOFFGDCO出错时置位,但当DCO=1或31时,也会置位,同时OFFIFG也会置位,需要软件清零。

         实验一:将MCLKSMCLK配置为REFOCLKVLOCLK(需要示波器测量)

/* REFOCLK和VLOCLK是芯片默认提供的,只要芯片正常工作,这两个时钟就会正常工作,因此,该时钟配置非常简单,只需要修改UCSCTL4,将SELS和SELM配置为对应的选项VLOCLK或者REFOCLK即可*/

#include 

void main(void){

WDTCTL = WDTPW+WDTHOLD;

P1SEL |= BIT0;//声明有特殊功能,将不被用作普通I/O

P1DIR |= BIT0;//ACLK输出端,用来测量ACLK频率,外接频率计测

P2SEL |= BIT2;P2DIR |= BIT2;//SMCLK输出端

P7SEL |= BIT7;P7DIR |= BIT7;//MCLK用输出端

//UCSCTL4 = UCSCTL4&(~(SELS_7|SELM_7))|SELS_1|SELM_1; //将SMCLK和MCLK配置为VLOCLK

UCSCTL4 = UCSCTL4&(~(SELS_7|SELM_7))|SELS_2|SELM_2; //将SMCLK和MCLK配置为REFOCLK

/* UCSCTL4&(~(SELS_7|SELM_7))这一语句相当于先把SELS和SELM清零*/

while(1);

}

时间: 2024-08-08 09:41:56

msp430f5529时钟源的相关文章

MSP430F5529时钟系统深究

1.为什么要进行时钟管理? 时钟系统是一个数字器件的命脉,对于普通的51单片机来说,它的时钟来源只有外部晶振,然后每12个振荡周期完成一个基本操作,所以也叫做12T单片机,但对于当前高级一点的单片机来说,比如MSP430F5529有5个时钟来源,经过UCS(Unified Clock System,通用时钟系统)模块之后,产生MCLK(Master Clock),SMCLK(Subsystem master clock ),ACLK(Auxiliary clock)三个时钟:对于更高端的单片机,

linux 时钟源初步分析linux kernel 时钟框架详细介绍

初步概念: 看datasheet的关于时钟与定时器的部分, FCLK供给cpu, HCLK供给AHB总线设备(存储器控制器,中断控制器.LCD控制器.DMA.USB主机控制器等), PCLK供给APB总线上的设备(watchdog.IIS.i2c. pwm.定时器.ADC.uart.gpio.rtc.spi) 上电时 fclk的时钟等于外部时钟fin, 然后等待LOCKTIME后, 依照MPLLCON寄存器的设置,倍频到高频. UPLLCON专用于USB同于MPLLCON. 关于分频: CLKD

STM32普通定时器(TIM2-7)的时钟源

STM32普通定时器(TIM2-7)的时钟源

Linux时间子系统之一:clock source(时钟源)【转】

转自:http://blog.csdn.net/droidphone/article/details/7975694 clock source用于为linux内核提供一个时间基线,如果你用linux的date命令获取当前时间,内核会读取当前的clock source,转换并返回合适的时间单位给用户空间.在硬件层,它通常实现为一个由固定时钟频率驱动的计数器,计数器只能单调地增加,直到溢出为止.时钟源是内核计时的基础,系统启动时,内核通过硬件RTC获得当前时间,在这以后,在大多数情况下,内核通过选定

stm8时钟源

下面4种时钟源可用做主时钟: 1-24MHz高速外部晶体振荡器(HSE) 最大24MHz高速外部时钟信号(HSE user-ext) 16MHz高速内部RC振荡器(HSI) 128KHz低速内部RC(LSI) 各个时钟源可单独打开或关闭,从而优化功耗. (一)HSE 高速外部时钟信号可由下面两个时钟源产生: HSE外部晶体/陶瓷谐振器 HSE用户外部有源时钟 (图14:STM8 HSE时钟源) 为了最大限度减小输出失真和减小启动的稳定时间,谐振器和负载电容应尽可能得靠近振荡器引脚.负载电容值应根

[每天一个Linux小技巧] 查看时钟源精度

$ dmesg | grep clock [0.000000] OMAP clocksource: GPTIMER1 at 24000000 Hz [0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms 这里的精度是41ns [每天一个Linux小技巧] 查看时钟源精度

Qt仿Android带特效的数字时钟源码分析(滑动,翻页,旋转效果)

这个数字时钟的源码可以在Qt Demo中找到,风格是仿Android的,不过该Demo中含有三种动画效果(鉴于本人未曾用过Android的系统,因此不知道Android的数字时钟是否也含有这三种效果),其分别为滑动.翻页和旋转. 由于本人的Qt Creator输入中文后显示的都是乱码,因而在此只能使用英文进行注释,后期如果有时间再进行中文的相关整理.可能有些地方理解并不是很正确.希望大家多多指正! 以下为源码: [cpp] view plaincopy #include <QtCore> #i

Javascript 电子时钟源码

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head>     <meta h

max10之pll时钟源切换

问题3:PLL切换功能中,多次切换可能造成PLL锁不定 从现象看clkbadx信号是不影响的,但locked信号一定是有影响的. 原文地址:https://www.cnblogs.com/zhongguo135/p/9120997.html