msp430入门学习15--时钟

发布者:RadiantExplorer最新更新时间:2022-01-10 来源: eefocus关键字:msp430  入门学习  时钟 手机看文章 扫描二维码
随时随地手机看文章

MSP430的时钟系统本来是单片机的重点,但是现存的教材中,很少有专门的章节讨论的,大多只是对官方文档的翻译,因此做此文。


一、单片机的时钟我把它分为三个层次,硬件底层,应用抽象层,应用层,分别说明:

  硬件底层:  1、LFXT1,也就是低频时钟电路

         2、XT2,也就是高频时钟电路

           3、DCO振荡器,也就是单片机内部的RC振荡器

  为什么这么设置:0、ti的msp430单片机为了尽可能减小用户使用的难度,降低电路设计的难度,自带了震荡电路便于使用,也就是说无需像51单片机那样最小系统中必须要一个晶振,简化为最小系统只要有供电就基本开始开始干活了;


  1、DCO作为RC振荡器,主要通过对RSELx的配置实现频段的选择,而后通过DCOx实现频率的粗调,通过MODx的混频实现振荡频率的细调,通过DCOR实现配置电阻的内外选择,

  2、DCO振荡器却不够精确,但是有比没有强很多的,主要就是在单片机工作中外接的时钟电路出了问题,可以及时用内部的振荡器电路,相当于对时钟电路做了个备份,单路更可靠;

  3、为了解决DCO不够精确的问题,就允许用户外接时钟,引入了XT1震荡电路可以在800k~8MHz间的晶振,

    1)为了监测外接晶振有问题,设置了中断标志:OFIFG位,当外接晶振有问题时,及时启用DCO;

    2)为了省电设置了SCG0位,置位时,允许用户关闭DCO;

    3)为了更进一步省电,设置了SCG1位,置位时,允许用户关闭CPU,这样当只用外设时,允许用户关闭CPU

    4)为了进一步省电,将外设分为高速和低速外设,低速外设的晶振可以设置为32.768KHz,因此XT1可以在低频模式下,为了区分高频和低频的时钟晶振,将XT1标明为LFXT1,可以通过设置XTS为设置LFXT1工作在高频模式下

    5)后来引入了XT2振荡电路,自然要加上2了,因为在原来XT1的基础上加的,只不过我们现在都习惯将XT1称为LFXT1,XT2主要用于高频晶振,XT2OFF置位时,不使用XT2振荡器;复位时才打开XT2振荡器  

  应用抽象层:LFXT1CLK、SMCLK和MCLK

  4、LFXT1相关的寄存器位:

    1)OSCOFF置位时,关闭LFXT1时钟电路

    2)XTS置位时,LFXT1在高频模式,XTS复位时,LFXT1在低频模式

    3)DIVAx有两位,

        00时  分频系数为1,

        01时  分频系数为2

        10时  分频系数为4

        11时  分频系数为8

  5、SMCLK相关的寄存器位:

    1)SELS选择SMCLK的时钟源,

    SELS置位时,SMCLK选择的时钟源为外接振荡器,

      当XT2振荡器存在时优先用XT2振荡器;  

      当XT2振荡器不存在时,就用LFXT1振荡器;

    SELS复位时,SMCLK选择的时钟源为DCO振荡器

    2)DIVSx有两位,配置SMCLK的分频系数        

        00时  分频系数为1,

        01时  分频系数为2

        10时  分频系数为4

        11时  分频系数为8 

  5、MCLK相关的寄存器位:

    1)SELMx有两位,选择MCLK的时钟源

        00时  选择DCO振荡器为时钟源,

        01时  选择DCO振荡器为时钟源,

        10时  选择XT2振荡器,如果XT2振荡器不在时,选择LFXT1振荡器为时钟源,

        11时  选择LFXT1振荡器为时钟源,

    2)DIVMx有两位,配置MCLK的分频系数        

        00时  分频系数为1,

        01时  分频系数为2

        10时  分频系数为4

        11时  分频系数为8

   6、DCO相关的寄存器位:

               图一 振荡频率示意图

       1)RSELx有三位,选择DCO振荡器的输出频段

        000时  如图一所示的RSEL=0的频段,

        001时  如图一所示的RSEL=1的频段,

        010时  如图一所示的RSEL=2的频段,

        011时  如图一所示的RSEL=3的频段,

        100时  如图一所示的RSEL=4的频段,

        101时  如图一所示的RSEL=5的频段,

        110时  如图一所示的RSEL=6的频段,

        111时  如图一所示的RSEL=7的频段,

      2)DCOx有三位,细分DCO的频率点        

        000时  如图一所示的DCO=0的频段,

        001时  如图一所示的DCO=1的频段,

        010时  如图一所示的DCO=2的频段,

        011时  如图一所示的DCO=3的频段,

        100时  如图一所示的DCO=4的频段,

        101时  如图一所示的DCO=5的频段,

        110时  如图一所示的DCO=6的频段,

        111时  如图一所示的DCO=7的频段,

      3)MODx有五位,进一步配置混频系数,公式为:
        t = (32 - MODx)*  tDCO  + MODx  *  tDCO+1

        公式说明:t表示混频后振荡信号的周期;

             MODx就是MODx五位寄存器中对应的10进制数值;

               tDCO就是混频中的低频信号的周期;

               tDCO+1就是混频中的高频信号的周期;


 1 #include

 2 

 3 int main(void)

 4 {

 5     WDTCTL = WDTPW | WDTHOLD;                   //关闭看门狗

 6     //DCOCTL |= MOD4 + DCO1 + DCO0;             //设置混频系数为16 fDCO=810Kzh,860KHz,890KHz

 7     BCSCTL1 |= RSEL2;                           //设置频段为RSEL=4

 8     DCOCTL |= MOD4;                             //设置混频系统为16

 9     DCOCTL |= DCO1 + DCO0;                      //设置DCO的频率点为3  fDCO=816.32kHz

10     //DCOCTL |= DCO2;                           //设置DCO的频率点为4  fDCO=1.24MHz

11     

12     P5DIR |= 0x70;                              //打开时钟输出接口,选择为输出

13     P5SEL |= 0x70;                              //打开时钟输出接口,选择为第二功能

14 

15         while (1)

16         {

17         }

18 }


例如在上述代码:

当没有混频时,将第8行注释,DCOx=3, RSELx=4时,DCO的频率fDCO=816.32kHz

当没有混频时,将第8行注释,第9行用第10行代替,DCOx=4, RSELx=4时,DCO的频率fDCO=1.24MHz

当有混频时,DCOx=3, RSELx=4时,DCO的混频后的频率fDCO=810kHz、860kHz、890kHz等,可见的确混频了。


MODx=16, 

3)DCOR配置DCO是否使用外置电阻,置位时使用外部电阻,复位时使用内部电阻,使用外部电阻时可以提高振荡器的输出频率,减少DCO振荡器受温度影响的情况,但是不能超过振荡器的振荡频率的最大值。


msp430的时钟设置说明:


 1 #include

 2 

 3 int main(void)

 4 {

 5     WDTCTL = WDTPW + WDTHOLD;                 //停止看门狗

 6 

 7     BCSCTL1 &= ~XT2OFF;                       //开启XT2高频振荡器

 8     unsigned char i;

 9 //    do{

10 //        IFG1 &= ~OFIFG;

11 //        for (i = 0; i < 0xFF; i++)

12 //        {

13 //            ;

14 //        }

15 //    }while ((IFG1 & OFIFG) != 0);

16     while ((IFG1 & OFIFG) != 0)               //从87-94行代码和80-86行代码是一样的,主要是个人更喜欢while的逻辑

17     {               18         IFG1 &= ~OFIFG;                       //清除XT2振荡错误标志

19         for (i = 0; i < 0xFF; i++)

20         {

21             ;                                 //延时一段时间

22         }

23     }

24     IFG1 &= ~OFIFG;                           //经过长时间等待,当晶振起振成功后,再次清除振荡错误标志

25 

26     BCSCTL2 |= SELM1;

27     BCSCTL2 |= DIVM0 + DIVM1;

28     P5DIR |= 0x70;                            //打开时钟输出接口,选择为输出

29     P5SEL |= 0x70;                            //打开时钟输出接口,选择为第二功能

30 

31     while (1)

32     {

33     }

34 }


程序非常简单,说明如下:

一、设置ACLK,没有代码,主要使用寄存器相应位的默认值:

  XTS=0,使用LFXT1的低频模式,DIVAx=0,不分频,因此ACLK的波形为:fACKL=32KHz

二、设置SMCLK,没有代码,主要使用寄存器相应位的默认值:

  SELS=0,默认时钟源为DCO振荡器

  DIVx=0默认不分频

  在PUC或POR后,

    RSELx=4,选择频段为4

    DCOx=3,选择频率点为3

    MODx=0,默认不混频,也就是用低频

    DCOR=0,默认使用内部电阻,因此fDCO=810KHz

三、设置MCLK,使用时钟源为XT2高频时钟,主要使用寄存器相应位为:

  XT2OFF=0,打开XT2振荡器

  SELMx=2,选择XT2时钟源,将时钟源由DCO切换到外部晶振时,必须确定清除了振荡错误标志位,具体就是必须使用9~15行货16~23行的代码,最后加上第24行的代码,进行再次清除振荡器振荡错误标记;

  DIVMx=3,将MCLK8分频

  在PUC或POR后,

    RSELx=4,选择频段为4

    DCOx=3,选择频率点为3

    MODx=0,默认不混频,也就是用低频

    SELMx=0,选择时钟源为DCO振荡器,或者OFIFG--振荡错误标志存在时也选择为DCO振荡器

    DIVMx=0,MCLK不分频

  好了,终于写完了。


关键字:msp430  入门学习  时钟 引用地址:msp430入门学习15--时钟

上一篇:msp430入门学习04
下一篇:MSP430F5529 单片机 Memory game 记忆游戏 OLED实验

推荐阅读最新更新时间:2024-11-08 10:55

基于MSP430F169的光伏并网发电模拟装置的设计
引言 目前,煤炭、石油等能源正走向枯竭,且环境污染问题也日益严重,新能源和可再生能源的利用已经成为世界各国的燃眉之急。作为一种无污染的可再生能源,太阳能越来越受到人们的青睐。太阳能光伏并网发电产业迅速发展对人们提出的可持续发展有重大的意义。本设计利用锁相环倍频、比较器过零触发和MSP430F169单片机DA产生与输入信号同频同相且幅值可控的正弦波,作为DA-AC电路的输入参考信号,其中DA-AC电路采用D类功放中自激反馈模型,利用负反馈的自激振荡产生正弦波脉宽调制(SPWM)波,通过硬件之间的配合,实现了逆变电压输出及最大功率、同频同相的跟踪。 装置方案的选用 DC-AC逆变方案:采用D类功放中自振荡式模型的逆变拓扑,利用负反
[单片机]
基于<font color='red'>MSP430</font>F169的光伏并网发电模拟装置的设计
stm8s时钟源切换
STM8单片机的时钟源非常丰富,芯片内部既有16MHZ的高速RC振荡器,也有128KHZ的低速RC振荡器,外部还可以接一个高速的晶体振荡器。在系统运行过程中,可以根据需要,自由地切换。单片机复位后,首先采用的是内部的高速RC振荡器,且分频系数为8,因此CPU的上电运行的时钟频率为2MHZ。 切换时钟源,主要涉及到的寄存器有:主时钟切换寄存器CLK_SWR和切换控制寄存器CLK_SWCR。 主时钟切换寄存器的复位值为0xe1,表示切换到内部的高速RC振荡器上。当往该寄存器写入0xb4时,表示切换到外部的高速晶体振荡器上。 在实际切换过程中,应该先将切换控制寄存器中的SWEN(第1位)设置成1,然后设置CLK_SWCR的值,最后要判
[单片机]
德州仪器推出支持超低噪声底限及附加抖动的时钟缓冲器
2012 年 4 月 1 日,北京讯 日前,德州仪器 (TI) 宣布推出 2 款最新通用时钟缓冲器系列,进一步壮大其高性能时钟缓冲器产品阵营。CDCLVC1310 LVCMOS 时钟缓冲器可在晶振模式下实现 –169 dBc/Hz 的业界领先相位噪声底限。LMK00101/05 支持高灵活输出电压电平配置,可对该系列实现有力补充。LMK00301/04/06/08 差分端系列支持 51 飞秒 (fs) 超低附加抖动。 为了响应当前通信系统向更高数据速率的发展,满足严格的系统抖动预算要求,这些器件提供了最低抖动、偏移以及内建信号级转换器。上述最新产品系列支持网络与数据通信、医疗影像、测量测试以及雷达等应用。下载产品说明书与 IB
[模拟电子]
MSP430F1121内置比较器设计高精度A/D变换器
Σ-ΔA/D技术具有高分辨率、高线性度和低成本的特点。本文基于TI公司的MSP430F1121单片机,介绍了采用内置比较器和外围电路构成类似于∑-△的高精度A/D实现方案,适合用于对温度、压力和电压等缓慢变化信号的采集应用。 在各种A/D转换器中,最常用是逐次逼近法(SAR)A/D,该类器件具有转换时间固定且快速的特点,但难以显著提高分辨率;积分型A/D 有较强的抗干扰能力,但转换时间较长;过采样Σ-ΔA/D由于其高分辨率,高线性度及低成本的特点,正得到越来越多的应用。根据这些特点,本文以TI公司的MSP430F1121单片机实现了一种类似于Σ-ΔA/D技术的高精度转换器方案。 MSP430F1121是16位RISC结构的
[单片机]
用<font color='red'>MSP430</font>F1121内置比较器设计高精度A/D变换器
低功耗模式下微控制器时钟配置应用
在微控制器的低功耗应用中,对时钟的设置是很重要的一个方面。不同类型的微控制器在低功耗模式下对时钟的配置也各有不同。飞思卡尔公司推出的增强型8位微控制器HCS08系列具有很强的低功耗性能。其中,HCS08系列里的MC9S08QG8在同类产品的基础上对低功耗应用下的时钟又有了进一步的改进。 1 MC9S08QG8及其内部时钟模块介绍 微控制器MC9S08QG8是飞思卡尔公司新推出的一款8位增强型微控制器。它是小封装、低功耗的产品,但这并不意味着它是 低端 的产品;相反,它是一个高度集成的、功能丰富的、适用于各种应用的低价位单片机。MC9S08QG8采用高性能、低功耗的HCS08内核,具有很高的集成度,还包括更长的电池寿命(即使工
[单片机]
低功耗模式下微控制器<font color='red'>时钟</font>配置应用
STM32入门学习笔记之RTC实验(下)
(2)创建rtc.c文件并输入以下代码。 #include rtc.h /*************************************************** Name :RTC_Init Fuction :RTC初始化 Parameter :None Return :None ***************************************************/ void RTC_Init() { if( BKP- DR1!=0x5050 ) { RCC- APB1ENR |= 1 28 ; //使能PWR时钟
[单片机]
使用德州仪器MSP430FR2633构建电容式触摸接口
MSP430FR2633是一款低功耗微控制器,带有多个GPIO和电容触摸引脚。本篇文章创建了一个四按钮和带有LED和触觉反馈的四环滑动电容式触摸电路。 在本文中,我们将介绍电路的功能、连接方式和硬件。我还将分享制作定制电路板的复杂性,这对于那些使用DipTrace的人或任何想要更好地理解Gerber文件生成方式的人都有帮助。 让我们开始吧。 关于电路 该设计围绕三个集成电路构建:德州仪器MSP430FR2633IDA是中央微控制器;Silicon Labs CP2102N提供USB到串行接口;德州仪器DRV2605L提供触觉反馈。 上面显示的是控制接口的两个版本。右侧的设计用于说明焊盘设计和布局,但由于对控制IC
[单片机]
使用德州仪器<font color='red'>MSP430</font>FR2633构建电容式触摸接口
秉火429笔记之八 RCC时钟
1. RCC 作用概述 RCC :reset clock control 复位和时钟控制器。 设置系统时钟SYSCLK、设置AHB分频因子(决定HCLK等于多少)、设置APB2分频因子(决定PCLK2等于多少)、设置APB1分频因子(决定PCLK1等于多少)、设置各个外设的分频因子;控制AHB、APB2和APB1这三条总线时钟的开启、控制每个外设的时钟的开启。对于SYSCLK、HCLK、PCLK2、PCLK1这四个时钟的配置一般是:HCLK = SYSCLK=PLLCLK = 180M,PCLK1=HCLK/2 = 90M,PCLK1=HCLK/4 = 45M。如果需要使用USB,HCLK=168M为宜。 2. RCC框图
[单片机]
秉火429笔记之八 RCC<font color='red'>时钟</font>

推荐帖子

FAN103 5-7W调试进程
今天在调试一款FAN103外置MOS电路;7*1WLED隔离驱动原边反馈方案;先调节空载电压,7*3.6=25.2V;带上LED负载后,灯闪;马上断电;初步断定是空载电压大的情况下,带载后电流比较大;但是由于电流调整端,可能电阻太大,限制的电流值偏小,同时是电压调节和电流调节相差悬殊导致的(个人意见);于是将电流限制调大,但是还是频闪;不知为何?将输出负载加大到30V还是不行;灯闪;可能是IC保护了,才不断的关断(时间长到一定程度),导通;所以灯闪?
czf0408 LED专区
运放电路分析
哪位大侠帮我分析下,这个运放构成的反馈电路,两个二极管的作用是什么?U3-2脚接两个输入是什么作用?谢谢大家啦 运放电路分析关注,等待高手来分析看上去像是个消除基线漂移的电路。两个二极管分别对积分后得到的正负极性电平导通,叠加到输入上···············把图好好画画,然后写出传输函数吧。比较有难度了能具体说说吗?这个电路我仿真过了,输入是正弦波,输出也是正弦波,只是幅度小啦!回复板凳huayuliang的帖子前级是反相放大,但反馈之余兼作整流输出,有
194027lm 模拟电子
接ups后,部分设备不工作的问题
家里有一台ups,刚换的电池,打算搭配鱼缸用来无间断供氧。接市电时一切正常,但ups供电时2个制氧机都不工作,景观灯却正常工作。求解是什么原因?制氧机功率不大,就6w左右。接ups后,部分设备不工作的问题电压不够吧制氧机要求的供电多大电压多大功率如果UPS的功率和电压都满足,剩下的就是波形问题了。廉价UPS输出的不是正弦波而是方波,具有大量谐波成分。这类廉价UPS是设计用于驱动采用开关电源的设备,非开关电源类设备就需要分析谐波的影响的了,尤其是直接驱动铁芯、磁芯类元件时尤
hn200918 模拟与混合信号
缅 怀一位模拟技术伟人
BobPease(1940.8.22-----2011.6.18)http://en.wikipedia.org/wiki/Bob_Pease,他生.前致力于模拟电路设计,他的去.世是我们模拟技术界的巨大损失。他学识渊博,经验丰富。他深入浅出的解释,让许多工程师更深刻地理解了他们的电路。让我们“缅.怀Bob”:http://www.ti.com/ww/en/bobpease/index.html更多信息请下载原文:中文英文缅怀一位模拟技术伟人楼主如果发几篇他的
德州仪器 模拟与混合信号
DSP28335 ECAP模块配置问题
大家好,我在使用CAP模块时遇到了一些问题。看了ti的几个eCAP例程,对其中的配置还是有一些疑问,例程里基本都要用到中断,然后eCAP1模块的CAP1-4都要用到,然后算频率之类的等等。而我想实现的功能是:比如EPwm1A输出一个50Hz的方波,将该方波送入ECAP1口检测。检测上升沿时强制EPwm1B置高,检测下降沿时强制EPwm1B置低(其实就是检测电网电压过零点产生50Hz的方波去驱动一个逆变桥)。然后我看了eCAP模块在捕获事件发生时会将ECFLG寄存器中对应的状态位CEVT
ele_pjb DSP 与 ARM 处理器
七千字讲完19种电压转换的电路设计方法
标准三端线性稳压器的压差通常是2.0-3.0V。要把5V可靠地转换为3.3V,就不能使用它们。压差为几百个毫伏的低压降(LowDropout,LDO)稳压器,是此类应用的理想选择。图1-1是基本LDO系统的框图,标注了相应的电流。从图中可以看出,LDO由四个主要部分组成:技巧1:使用LDO稳压器,从5V电源向3.3V系统供电标准三端线性稳压器的压差通常是2.0-3.0V。要把5V可靠地转换为3.3V,就不能使用它们。压差为几百个毫伏的低压降(LowD
木犯001号 电源技术
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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