MSP430时钟源个人理解

时间:2026-05-08

CanolaFlower

MSP430时钟源理解

----CanolaFlower

一:

ACLK: 来源 FLXTCLK,通过配置BCSCTL1的寄存器DIVA ,决定把FLXTCLK分频多少得到ACLK. 如果程序中没有关于BCSCTL1的寄存器DIVA的配置,那么ACLK的值就是FLXTCLK的值,即单片机上XIN和XOUT这2个引脚接的晶振的频率。

比如下图中所示

现在XIN和XOUT这2个引脚接的晶振是32768HZ,那么,f_ ACLK=32768。

二:

MCLK:来源:由3个时钟源提供。他们分别是LFXT1CLK,XT2CLK(F13,F14;如果是F11,F11X1则由LFXT1CLK代替),DCO时钟源信号。

可见,MCLK到底是多少,如果程序中不注明,则就无法确定MCLK到底是多少。但是,MCLK是用于MCU和相关系统模块的时钟的,又不能不确定其数值。所以,在程序编写过程中,对它的数值确定就必须写出来了。

格式例子如下:

CanolaFlower

BCSCTL2 |= SELM_2+ DIVM_1;//确定MCLK 是XT2CLK经过2分频得到。

SELM_1 和DIVM_1和在其他地方定义了(在msp430x14x.h中),如下图

XT2CLK的数值是多少呢?它的数值是由单片机的XT2IN和XT2OUT这2个引脚所接晶振的频率决定的。例图如下

上图中XT2IN和XT2OUT接了个8M的晶振,那么XT2CLK 的频率就是8M.此时 MCLK 的频率就是4M了啊。

当然也可以写成

BCSCTL2 |= SELM_3+ DIVM_3;//确定MCLK 是LFXTCLK经过8分频得到。

自由选择的。

三:

SMCLK:来源:2个时钟信号:XT2LCK(F13,F14)和DCO.原理和MCLK大同小异。

四:

DCO

上面说到,XT1和XT2都是外部接晶振了,所以能产生频率,那DCO接哪了呢?

呵呵,DCO接到单片机内部的RC振荡电路上了,是MSP430单片机内部集成的。其频率根据芯片和温度不同而不同,其值不确定,也可以设置相关寄存器控制分频数。

CanolaFlower

时钟的来源和大小确定以后,如何在程序中使用呢?

比如,定时器B每隔2S中断一次。那么,可以如下写

TBCTL |= TBSSEL_1 + ID_3 + MC_1; //时钟源ACLK/8,增计数模式

TBCCR0 = 4096*2 - 1; //周期两秒

TBCCTL0 |= CCIE; //允许定时器B中断

解释:增计数模式为定时计数器增到CCR0的值,产生一个中断,然后再从0增到CCR0的值,再中断,如此往复。

时钟源为ACLK,此处接的32768HZ晶振。那么定时器B的频率就是32768/8。那么一个脉冲需要多长时间呢?

1/(32768/8),即8/32768秒。那么,增到CCR0的值4096*2,需要的时间就是4096*2*(8/32768),即(4096*2*8)/32768=2秒。

也就是说,经过每经过2秒执行一次中断。

从上面的例子可以知道怎么使用MCLK了吧。其实,单片机每个模块都有相应寄存器,用来设置这个模块选择那些时钟,经过多少分频得到多大的频率。就是这样简单的了。

MSP430时钟源个人理解.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:4.9 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:19元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219