查看: 763|回复: 0

罗列TI msp430单片机时钟的作用

[复制链接]

该用户从未签到

发表于 2020-11-17 14:57:42 | 显示全部楼层 |阅读模式
分享到:

时钟模块是MSP430系列单片机不可缺少的模块,时钟模块可以使单片机实现不同的低功耗应用,不同的器件具有不同的时钟模块,一般来说,MSP430的时钟模块主要由高速晶体、低速晶体和DCO等器件通过MSP430时钟模块产生三个不同的时钟供不同的模块使用,产生的时钟为:辅助时钟(ACLK)、主系统时钟(MCLK)和子系统时钟(SMCLK)。由于时钟模块产生三个不同的时钟信号,这样可以利用不同的时钟从而达到低功耗的目的。一般来说,系统的功耗和系统的工作频率成正比关系,这样可以在低功耗应用情况下选用低速晶振。如果系统对运算要求比较高,则可以选用高速晶振产生较高的主系统时钟提供给CPU,以满足运算要求。如果对系统的实时性要求比较高,则可以采用ACLK时钟。总的来说,应该根据不同的应用来选择适当的时钟。
   
   MSP430x1xx基础时钟模块有三个时钟输入源:
   LFXT1CLK      低频时钟源
   XT2CLK        高频时钟源
   DCOCLK        数字控制RC振荡器
    基础时钟模块可提供三种时钟信号:
    ACLK 辅助时钟:ACLK是LFXT1CLK信号经1、2、4、8分频后得到的。ACLK可由软件选作各个外围模块的时钟信号,一般用于低速外设。
    MCLK 系统主时钟:MCLK可由软件选择来自LFXT1CLK、XT2CLK、DCOCLK三者之一,然后经1、2、4、8分频得到。MCLK主要用于CPU和系统。
    SMCLK 子系统时钟:可由软件选择来自LFXT1CLK和DCOCLK,或者XT2CLK和DCOCLK(由具体器件决定),然后经1、2、4、8分频得到。SMCLK主要用于高速外围模块。
   
    通过设置时钟模块的寄存器(主要有DCOCTL、BCSCTL1、BCSCTL2)选择相应的时钟源和时钟频率,选择好之后,相应的模块就会利用选择的相应时钟。例如CPU和系统利用MCLK,按键利用ACLK等。


补充:
时钟就像是单片机的脉搏,没有时钟单片机是无法工作的,还有其他一些模块也是需要时钟如Timer_A.

上边是430时钟模块的框图,从上面可以看出

三个时钟输出:

   辅助时钟ACLK(Auxillary Clock):由软件选择来自VLOCK、LFXT1CLK之一经过1,2,4,8分频之后得到,为外围模块提供时钟源。

   主系统时钟MCLK(Main System Clock):由软件选择来自VLOCK、LFXT1CLK和DCOCLK之一经过1,2,4,8分频之后得到,为CPU和系统提供时钟。

   子系统时钟SMCLK(Sub System Clock):和MCLK一样由软件选择来自VLOCK、LFXT1CLK和DCOCLK之一经过1,2,4,8分频之后得到,为外围各个模块提供时钟。

四个时钟源:

   VLOCLK:片内超低功耗12KHz的内部振荡器。

  XT2CLK:G2553是没有XT2CLK这个模块的。

  DCOCLK:片内可数字控制的振荡器DCOCLK,在软件的调节下该时钟的输出范围为0.6MHz到26MHz。

  LFXT1CLK:由外部时钟源提供的LFXT1CLK时钟源,也即LanuchPad开发板上未焊接的时钟电路,在这里我们可以焊接一个32.768KHz的低频时钟晶体由G2553的  XIN引脚输入。

他们几个的关系可以由下图表示:


在这三个时钟源的独立工作或是在三个时钟源相互协调配合(是可以通过软件配置的)下为2553系统提供了系统时钟ACLK、MCLK和SMCLK。ALCK、MCLK、SMCLK是和CPU或者外设连接起来的,而LFXT1CLK、XT2CLK、DCOCLK、VLOCLK这四个又是和ALCK、MCLK、SMCLK连接起来的,也就是说LFXT1CLK、XT2CLK、DCOCLK、VLOCLK是通过ALCK、MCLK、SMCLK和外设连接起来的。


上电后,系统默认使用的主系统时钟MCLK和子系统时钟SMCLK是同为DCOCLK产生的1MHz时钟,而辅助时钟ACLK则为内部VLOCLK产生的12KHz时钟。

G2553上电后时钟的初始状态我们可以用Grace来查看:



可以看出MCLK和SMCLK都是DCOCLK产生的1MHz的时钟,ACLK则是VLOCLK产生的12KHz的时钟。


DCO时钟:

DCO时钟源产生的频率可以通过DCOCTL寄存器来设置寄存器来设定,通过设定DCOCTL中的高三位(其名字为DCOx),BCSCTL1基本时钟控制寄存器低四位(其名字为RSELx)就可以控制DCO振荡器产生100K~20M不等的时钟频率。设定时应尽量居中,以保持稳定。


1. DCOCTL, DCO Control Register


DCOx DCO频率选择寄存器,通过该位设置DCO的频率。

MODx 模式选择位。

2. BCSCTL1, Basic Clock System Control Register 1


XT2OFF       G2553该位无效,详细请参阅官方技术文档。

XTS             LFXT1,模式选择位

0 低频模式。

1 高频模式。

DIVAx             分频寄存器,分频后给ACLK提供时钟

00 /1。

01 /2。

10 /4。

11 /8。

RSELx             DCO频率选择寄存器,通过该位设置DCO频率。

3. BCSCTL2, Basic Clock System Control Register 2


SELMx             MCLK时钟源选择

00 DCOCLK。

01 DCOCLK,与00效果一样。

10 G系列单片机该位无效。

11 低频外部时钟。

DIVMx             时钟源分频寄存器,选择时钟源后经过该位分频后提供给MCLK

00        /1。

01        /2。

10        /4。

11        /8。

SELS             SMCLK时钟源选择寄存器

0 DCOCLK。

1 外部晶振。

DIVSx             时钟源分频寄存器,选择时钟源后经过该位分频后提供给SMCLK

00 /1。

01        /2。

10        /4。

11        /8。

DCOR             该位保留。

4. BCSCTL3, Basic Clock System Control Register 3


XT2Sx             G系列单片机该位无效

LFXT1Sx       对G系列单片机,当BCSCTL1寄存器中XTS = 0时,该位的设置才有效

00 外部接的是32768HZ的晶振。

01 保留位。

10 选择超低频外部时钟(VLOCLK)

11 数字外部时钟源。

XCAPx             振荡器电容选择寄存器,当XTS=0时该位有效,假如XTS = 1 或者LFXT1Sx =11,                XCAPx应该设置为00

00 ~1pF。

01 ~6pF。

10 ~10pF。

11 ~12.5pF。

XT2OF             对G系列单片机该位无效

LFXT1OF       LGXT1晶体振荡器故障状态寄存器

0 没有故障。

1 有故障。

5. IE1, Interrupt Enable Register 1中断使能寄存器


OFIE             晶体振荡器故障使能寄存器

0 禁止中断

1 使能中断

MSP430G22x0不支持该位。

6. IFG1, Interrupt Flag Register 1


OFIFG               晶体振荡器故障标志寄存器

0 没有发生中断。

1 有中断事件发生。

MSP430G22x0不支持该位。

有一些模块的时钟是有自己特有的时钟源的,如Timer_A:


Timer_A的时钟选择有四种:TACLK、ACLK、SMCLK和INCLK。Timer_A是不能选择MCLK作为时钟源的。而INCLK和TACLK是Timer_A特有的时钟源。


回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条



手机版|小黑屋|与非网

GMT+8, 2024-11-22 03:52 , Processed in 0.113217 second(s), 15 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.