浅谈msp430f5529入门(1)——时钟模块DCO

发布者:theta18最新更新时间:2019-10-21 来源: eefocus关键字:msp430f5529  时钟模块  DCO 手机看文章 扫描二维码
随时随地手机看文章

刚开始摸索430F55系列,我也是菜鸟一名,折腾了两天它的时钟系统,总算自认为有点眉目。想到入门不易,趁热把我的一些体会分享一下。菜鸟才疏学浅,如有不妥之处,请务必指出。


DCO


5系列中比149多了个FLL——锁频环,初学者对着他确实有点头疼。另外,还有一个名为DCOCLKDIV的时钟源,它只是由DCOCLK分频而得,但请谨记:


        ·PUC后MCLK和SMCLK的默认时钟源并不是DCOCLK,而是DCOCLKDIV!频率是DCOCLK的二分之一!


        ·DCOCLKDIV的分频值为D,由FLLD所确定,PUC后D默认为2,所以DCOCLKDIV的频率是DCOCLK的二分之一。


如果把锁频环关闭不用的话,这样的DCO和1xx系列的几乎没有区别,只要配置好DCO,MOD,和DCORSEL就行了。


这里主要说一下这个FLL:


        ·PUC后FLL默认为工作


        ·置位SR中的SCG0或SCG1和将其禁止。


FLL的主要作用是稳定DCO,利用它硬件可以自动地配置DCO和MOD,使得DCO比以往更加稳定,也就是说DCO和MOD都不用我们用户去操心,即使你配置了它,FLL也会去改变它。那么,这里出现了一个需要注意的问题!:


        ·使用FLL时还需配置DCORSEL!


根据DCO目标值的范围来配置DCORSEL,若目标值超出DCORSEL所规定的范围,那你所得到的fDCO将不会是所计算的值。详细每个值对应范围请参阅datasheet。


        ·FLL具有它的时钟FLLREFCLK,默认为TX1LF提供,TX1失效自动转为REFCLK。


        ·TX1一般外接32768Hz晶振,所以TX1LF模式的频率为32768Hz。


        ·REFOCLK为低频修正内部参考振荡器,典型值为32768Hz。


        ·PUC后,TX1默认是关闭的,也就是说FLLREFCLK是由REFOCLK提供,但不论哪个提供,频率都为32768Hz。


接下来介绍fdco的计算式子,在user guide里面有给出:


        ·fDCOCLK= D × (N + 1) × (fFLLREFCLK÷ n)

        ·fDCOCLKDIV= (N + 1) × (fFLLREFCLK÷ n)


其中:


        ·D为DCOCLK分频为DCOCLKDIV的分频数,由FFLD确定,可取1,2,4,8,16,32,默认值为2。


        ·N由FLLN确定,值取1-1023,最小值为1,如果写0会被置位1,默认值为31。


        ·n为FLLREFCLK的分频值,游FLLREFDIV确定,可取1,2,4,8,12,16.默认值为1。


        ·fFLLREFCLK默认由REFOCLK提供,除非打开了TX1,但值都为32768Hz。


这样,我们就能计算出PUC后,fDCOCLKDIV的值为1,048,576Hz。所以MCLK和SMCLK的默认频率为1MHz,但应注意的是:fDCOCLK的值是这个值得两倍!也就是说PUC后DCOCLK的频率为2MHz。


所以,对于设置DCO频率,使用FLL的确会方便和稳定很多,根据目标值频率通过公式反推,一般fFLLREFCLK就是32768,n为1,D为2,这些值取默认值就好,那么我们只要计算出N,只要N的值落在了1023之内,它就符合范围,而且一般都不会超出的。那么只要设置好DCORSL和FLLN,我们就可以得到想好的DCO频率了。但一定要记住:


·MCLK和SMCLK的默认时钟源是fDCOCLKDIV!是(N + 1) × (fFLLREFCLK÷ n)!


根据以上两条公式,我将DCOCLK和DCOCLKDIV的关系理解为,fFLLREFCLK,N,n,这三个值确定了DCOCLKDIV,而DCOCLK则是在DCOCLKDIV的基础上乘上了D,是DCOCLKDIV确定了DCOCLK。


关于XT1LF和REFOCLK,虽说它们两个都是32768Hz,不过如果PUC后不处理XT1,而让ACLK和FLLREFCLK的时钟源自动转为REFOCLK,那么XT1LFOFFG(XT1晶振失效标志位(低频模式))将会一直被置位,而OFIFG也跟着一直置位。


所以,解决办法无非是两种:


1.操作简单的方法,重新配置ACLK和FLLREFCLK的时钟源,一般就是将它们的源取为REFOCLK。只需两行代码:


   UCSCTL3 |= SELREF_2;                      // Set DCO FLL reference = REFO

  UCSCTL4 |= SELA_2;                        // Set ACLK = REFO


2.打开XT1LF,只要将XT1成功起振,并成功取为时钟源,TX1LFOFFG便不会被置位。因为ACLK和FLLREFCLK的时钟源默认就是XT1LF,所以我们只需(1)将XIN和XOUT的I/O口选为XIN和XOUT模式,使得晶振接通,(2)再将XT1OFF置0,打开晶体振荡器,(3)配置XCAP,选择好电容,一般TX1是32768Hz的话,电容取12pf,不过这个是默认值,所以可以不配置。


  P5SEL |= BIT4+BIT5;                       // Port select XT1

  UCSCTL6 &= ~(XT1OFF);                     // XT1 On

  UCSCTL6 |= XCAP_3;                        // Internal load cap


我测试过这两种方法,第一种获得的时钟频率,无论是ACLK还是MCLK和SMCLK,与目标值有约百分之零点几到一点几的误差,而且频率有波动。而第二种使用了外部晶振,频率非常接近目标值,ACLK只相差了0.5Hz,而且非常稳定,几乎没有波动。


所以,我推荐在不考虑功耗和要求精确的情况下,尽量使用XT1LF。


参照TI提供的例程,在设置DCORSEL和FLLN前,需要暂时禁止FLL,即将SR中的SCG0置位,然后再配置UCSCTL1和UCSCTL2,配置好后再将SCG0置0,如下:


  __bis_SR_register(SCG0);                // Disable the FLL control loop

UCSCTL1 = DCORSEL_5;                    // Select DCO range 16MHz operation

UCSCTL2 |= 249;                         // Set DCO Multiplier for 8MHz

// (N + 1) * FLLRef = Fdco

// (249 + 1) * 32768 = 8MHz

__bic_SR_register(SCG0);                // Enable the FLL control loop


关于msp430f5529时钟模块的DCO的分享就到这里。感谢阅读,若有疑问或错误,请留言指出。


关键字:msp430f5529  时钟模块  DCO 引用地址:浅谈msp430f5529入门(1)——时钟模块DCO

上一篇:MSP430FF529实现跑马灯(中断方法)
下一篇:MSP430F5529之捕获模式下的HCSR04超声测距(粗略)

推荐阅读最新更新时间:2024-11-13 21:50

MSP430F5529火箭板 --->基于定时器A的LED灯闪烁实验
实验内容:上电点亮MSP430F5529 Launch Pad 上板载的红色LED,同时使用定时器让绿色LED闪烁 实验准备: 1、硬件:MSP430F5529 Launch Pad 2、软件:Code Composer Studio集成开发工具(CCS) 3、CCS的使用安装方法可参考 《Windows环境Code Composer Studio 下载和使用教程》 文章链接: link 4、本次实验使用到的物理层的分析可参考文章: link 一、定时器——Timer_A   在进入正题之前,我们先来了解一下MSP430F5529的定时器,本次实验我们使用Timer_A定时器,这里需要注意的是MSP430F5529一共有
[单片机]
<font color='red'>MSP430F5529</font>火箭板 --->基于定时器A的LED灯闪烁实验
MSP430F5529的IO口管脚的中断学习笔记
非常简单的一个程序,在F5529的开发板上用按键的IO中断控制LED的亮灭: #include int main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer P1DIR |= BIT0; //将LED1对应的IO口P1.0设置为输出 P1OUT &= ~BIT0; //初始化该灯设置为灭 P1DIR &= ~BIT7; //将按键1对应的IO口P1.7设置为输入 P1IFG &= ~BIT7; //初始化清空中断标志位 P1IE |= BIT7; //P1.7中断使能 P1IES |= BIT7; //
[单片机]
MSP430F5529 (一)通用I/O口的设置-2
这一部分讲外部中断。 看介绍再加弄懂程序才是王道 外部中断是MSP430优先级最低的中断而且是可屏蔽中断。用起来比较简单。   1.2.7  简单的端口中断(外部中断)                      P1、P2的所有端口都具有中断能力,可以通过寄存器PxIFG,PxIE和PxIES来配置。其他端口则需参照具体的引脚说明书。所有的P1中断标志是最优先的(相比其它引脚的外部中断),其中P1IFG.0又最优。                      PXIV中断向量寄存器:只有P1IV和P2IV。最高优先级使能中断在P1IV寄存器中产生一个序号,这个数字会被程序计数器识别或者加入其中,然后自动的执行合适的中断服务程序。关闭P
[单片机]
MSP430F5529学习入门
  为想学MSP430单片机的初学者,或者,你是刚转到电子硬件嵌入式开发,如果你的电子基础课程已经完成,想尽快掌握MSP430单片机,又纠结于怎样尽快闯入MSP430学习过程的问题,现总结整理出新手开始学习MSP430的一些问题,和学习中有关注意事项和方法。 供有心学习MSP430单片机的童鞋参考吧。   当然,闯入MSP430学习,你需要有一些单片机的理论基础,和比较强的C语言功底,学习MSP430单片机最好的方法是文武并进:“文”指学好片内模块的资源知识;“武”则指动手能能力。基础知识+动手实操,是一个非常有效的学习方法。文武并进必能学有所成。   进入各个电子产品公司的网站,招聘里面嵌入式占据了大半工程师职位。 广义
[单片机]
利用MSP430F5529定时器捕获功能,实现信号周期或频率的测量
// 这个程序利用TIMER A0生成1KHz的方波,从引脚P1.3输出,送到引脚P7.4, // 再利用TIMER B0测量周期。为测试方便,引脚P1.0输出32KHz的ACLK, // 引脚P2.2输出12MHz的SMCLK. // ACLK = LFXT1 = 32kHz; SMCLK = MCLK = 12MHz // // MSP430F5529 // ------------------------- // /|| XT1IN|- // | | | 32kHz // --|RST XT1OUT|- //
[单片机]
单片机MSP430入门--理论③--时钟模块-DCO和BCS寄存器
上期大概给大家汇总介绍了,MSP430时钟模块的3个晶振和3个主要时钟信号,要知道时钟是单片机的脉搏,如果时钟没设置好,单片机将无法工作 本期将重点介绍下,在MSP430环境下的时钟寄存器BCSCTL1,BCSCTL2,以及他们的设置方法 1.0 DCOCTL,DCO寄存控制器 DCO0-DCO2(BIT5-7):定义了8种频率,而频率由直流发生器的不同电流来定义 MOD0-MOD4(BIT0-4):频率的微调 1.1 DCO的调节: ①设置BCSCTL2的DCOR的bit来选择是1为外部电阻还是0为内部电阻,以确定一个基准频率,默认为0
[单片机]
单片机MSP430入门--理论③--<font color='red'>时钟</font><font color='red'>模块</font>-<font color='red'>DCO</font>和BCS寄存器
浅谈MSP430F5529时钟
记得某位网友曾经说过,学习任何一款单片机,首先要学的是它的时钟。的确如此,时钟是如此的重要,在不知道系统时钟的情况,感觉做什么事都是迷迷糊糊的。 之前学过51,它的时钟很简单,就一个外部晶振。然后学了430的G2553,它的时钟就有点麻烦了,时钟源多(两个外部晶振,一个内部超低功耗低频振荡器,一个内部调整低频参考振荡器),内部还有锁频环,而且出来的时钟还能被分频。原因是TI主打低功耗,必须得有各种频率来满足设计需要,毕竟,频率越低,功耗越低。 现在的,430的F5529,跟G2553比起来也就需要配置的时钟相关的寄存器是其3倍而已 还有个PMM(电源管理模块)的配置 新增的PMM是干嘛的呢?还是那句话,TI主打超低
[单片机]
浅谈<font color='red'>MSP430F5529</font><font color='red'>时钟</font>
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved