msp430内部上拉是多大上的ACLK,MCLK,S...

[E课堂]MSP430:MCLK、SMCLK、ACLK默认时钟频率
一、MCLK、SMCLK、ACLK默认时钟频率
本文引用地址:.cn/article/297.htm 1.1 POR与PUC
POR指Power-On Reset,即上电复位(硬件),PUC指Power-Up Clear,即上电清除(软件复位),这是MSP430两种分离的复位信号。POR总会引起PUC,关于POR与PUC的触发条件见用户指南,如下:
图1 POR与PUC触发条件
1.2 默认时钟频率
有两种方法(甚至更多)可以得知MCLK、SMCLK、ACLK默认的时钟频率。
(1)通过用户指南描述
查阅用户指南可得到系统复位后,时钟信号MCLK、SMCLK、ACLK的时钟源分别是DCOCLK(数控震荡器)、DCOCLK、LFXT1CLK(低速晶体震荡器)。如下:
图2 复位后默认时钟频率
(2)通过寄存器初始值判定
用户指南会给出每个寄存器的初始值,通过分析初始值各位的含义,并对照数据手机,也可得到其默认频率。定位到用户指南基本时钟模块(Basic Clock Model),其寄存器描述如下:
结合图5分析,可知RSELx为7(BCSCTL1低3位),DCOx为3,MODx为0,再对照图4可知系统复位后MCLK和SMCLK的频率在0.8MHz~1.5MHz,即819.2KHz~1536KHz。再结合图3基本时钟系统控制寄存器2(BCSCTL2),可知MCLK默认时钟源是DCOCLK,SMCLK默认时钟源也是DCOCLK。BCSCTL2示意图如下:
图3 BCSCTL2示意图
1.2.1 MCLK和SMCLK时钟频率
在数据手册可以找到DCO频率表(搜索关键词DCOCLK可快速找到),如下:
图4 DCO时钟频率
由上图可知,系统复位后MCLK和SMCLK的频率在0.8MHz~1.5MHz,即819.2KHz~1536KHz。系统启动后,可以调整RSELx(基本时钟系统控制寄存器1BCSCTL1前3位)、DCOx(DCO控制器DCOCTL前5位)、MODx(DCO控制器DCOCTL后3位)的值得到合适的频率,示意图如下[3]:
图5 DCOCTL和BCSCTL1示意图
注:图5跟用户指南有一定出入,MSP430G2231的BCSCTL1位0~4都是RSELx,但因是中文比较直观,就没换了。
1.2.2 ACLK时钟频率
同理,可以从数据手册查得ACLK时钟源LFXT1CLK时钟频率如下:
图6 LFXT1时钟频率
由上图可知,系统复位后ACLK的频率典型值是32768Hz,即32KHz。
二、应用举例
2.1 FLASH时钟设置
FLASH擦除、写入是由时序发生器控制的,所以擦除、写入之前需要设定合适的时钟频率(查看用户指南可知,频率必须在257KHz~476KHz),而时钟频率由选择哪种时钟源FSSELx及分频系数FNx决定(在FLASH控制寄存器2),FCL2示意图如下(FCL2默认值是0x9642,即只读、MCLK、3分频):
图7 FCL2示意图
假设选择默认MCLK作为FLASH时序发生器,默认MCLK时钟频率典型值是1.1MHz,即1126.4KHz,需要3分频(375.5KHz,此时FN1为1)或者4分频(281.6KHz,此时FN1、FN0为1)才能符合257KHz~476KHz。通过设置FN0~FN5可以将时钟分频1~64,即32*FN5 + 16*FN4 + 8*FN3 + 4*FN2 + 2*FN1 + FN0 + 1。(此处FNx是指第x位,与下文不同)如果选择3分频,设置FCTL2如下:
FCTL2 = FWKEY + FSSEL_2 + FN1; /*FN1=0x0002,此时是3分频*/
FWKEY、FSSEL_2、FNx在io430G2231.h定义,如下:
#define FWKEY (0xA500u) /* Flash key for write */
#define FSSEL_0 (0x0000u) /* Flash clock select: 0 - ACLK */
#define FSSEL_1 (0x0040u) /* Flash clock select: 1 - MCLK */
#define FSSEL_2 (0x0080u) /* Flash clock select: 2 - SMCLK */
#define FSSEL_3 (0x00C0u) /* Flash clock select: 3 - SMCLK */
/* Divide Flash clock by 1 to 64 using FN0 to FN5 according to: */
/* 32*FN5 + 16*FN4 + 8*FN3 + 4*FN2 + 2*FN1 + FN0 + 1 */
FN0 = 0x0001,
FN1 = 0x0002,
FN2 = 0x0004,
FN3 = 0x0008,
FN4 = 0x0010,
FN5 = 0x0020,
FSSEL0 = 0x0040,
FSSEL1 = 0x0080
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
今日搜狐热点[转载]MSP430&系统时钟&ACLK、MCLK、SMCLK
msp430的时钟
 MSP430基础时钟模块包含以下3个时钟输入源。
一、4个时钟振荡源
&&&1、LFXT1CLK:&&外部晶振或时钟1&低频时钟源&低频模式:32768Hz&高频模式:(400KHz-16MHz)
&&&2、XT2CLK:&&&&外部晶振或时钟2&高频时钟源(400KHz-16MHz)
&&&3、DCOCLK:&&&&内部数字RC振荡器,复位值1.1MHz
&&&4、VLOCLK:&&&&内部低功耗振荡器&12KHz
&&&注:MSP430x20xx:&LFXT1&不支持&HF&模式,&XT2&不支持,&ROSC&不支持.
&& (1)LFXT1CLK
低频时钟源:由LFXT1振荡器产生(如图2所示)。通过软件将状态寄存器中OSCOff复位后,LFXT1开始工作,即系统采用低频工作。如果LFXT1CLK没有用作SMCLK或MCLK信号,则可以用软件将OSCOff置位,禁止LFXT1工作。
&& (2)XT2CLK高频时钟源:由XT2振荡器产生。它产生时钟信号XT2CLK,其工作特性与LFXT1振荡器工作在高频模式时类似。可简单地通过软件设置XT2振荡器是否工作,当XT2CLK没有用作SMCLK或MCLK信号时,关闭XT2,选择其他时钟源。
&& 3)DCOCLK
数字控制RC振荡器。由集成在时钟模块中的DCO振荡器产生。DCO振荡器是一个RC振荡器,频率可以通过软件调节,其控制逻辑如图3所示。当振荡器LFXT1、XT2被禁止或失效时,DCO振荡器被自动选作MCLK的时钟源。因此由振荡器失效引起的系统中断请求可以得到响应,甚至在CPU关闭的情况下也能得到处理。
由基础时钟模块可以提供系统所需的3种时钟信号,即:ACLK、MCLK、SMCLK。其中辅助时钟ACLK是LFXT1CLK信号经1、2、4、8分频后得到的。ACLK可由软件选作各个外围模块的时钟信号,一般用于低速外设;系统主时钟MCLK可由软件选择来自LFXT1CLK、XT2CLK、DCOCLK三者之一,然后经1、2、4、8分频得到。MCLK主要用于CPU和系统。子系统时钟SMCLK可由软件选择来自LFXT1CLK和DCOCLK,或者XT2CLK和DCOCLK,然后经1、2、4、8分频得到,主要用于高速外设模块。
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

参考资料

 

随机推荐