搜档网
当前位置:搜档网 › MSP430时钟MCLK SMCLK ACLK

MSP430时钟MCLK SMCLK ACLK

MSP430时钟MCLK SMCLK ACLK
MSP430时钟MCLK SMCLK ACLK

摘要:

本文详细讲述了如何查看MSP430G2231MCLK、SMCLK、ACLK默认时钟频率,最后给出FLASH时序控制发生器频率设置例子。

注:本文是基于开发板MSP-EXP430G2 LaunchPad,其MCU型号是MSP430G2231。

一、MCLK、SMCLK、ACLK默认时钟频率

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如下:

1.FCTL2 = FWKEY + FSSEL_2 + FN1; /*FN1=0x0002,此时是3分频*/

FWKEY、FSSEL_2、FNx在io430G2231.h定义,如下:

1.#define FWKEY (0xA500u)/* Flash key for write */

2.

3.#define FSSEL_0 (0x0000u)/* Flash clock select: 0 - ACLK */

4.#define FSSEL_1 (0x0040u)/* Flash clock select: 1 - MCLK */

5.#define FSSEL_2 (0x0080u)/* Flash clock select: 2 - SMCLK */

6.#define FSSEL_3 (0x00C0u)/* Flash clock select: 3 - SMCLK */

7.

8./* Divide Flash clock by 1 to 64 using FN0 to FN5 according to: */

9./* 32*FN5 + 16*FN4 + 8*FN3 + 4*FN2 + 2*FN1 + FN0 + 1 */

10.enum

11.{

12. FN0 = 0x0001,

13. FN1 = 0x0002,

14. FN2 = 0x0004,

15. FN3 = 0x0008,

16. FN4 = 0x0010,

17. FN5 = 0x0020,

18. FSSEL0 = 0x0040,

19. FSSEL1 = 0x0080

20.};

参考资料:

[1] 用户指南《MSP430x2xx Family User's Guide.pdf》

[2] 数据手册《slas694i.pdf》

[3] 文档《MSP430系列十六位超低功耗单片机教学实验系统实验教程》

MSP430时钟配置

MSP430 频率(时钟)配置 MSP430时钟: 1、在MSP430单片机中一共有四个时钟源: (1)LFXT1CLK,为低速/高速晶振源,通常接32.768kHz晶振 (2)XT2CLK,可选高频振荡器,外接标准高速晶振,通常是接8Mhz,也可以接400kHz~16Mhz; (3)DCOCLK,数控振荡器,为内部时钟,由RC震荡回路构成,受温度和电压的影响较大;若外部不接稳定的晶振电路,直接由内部时钟工作,则会因环境变化而导致性能不稳定。(4)VLOCLK,内部低频振荡器,12kHz标准振荡器。(要得到标准的12k则必须外接32768等晶振) 2、在MSP430单片机内部一共有三个时钟系统: (1)ACLK:辅助时钟,通常由LFXT1CLK或VLOCLK作为时钟源,可以通过软件控制更改时钟的分频系数; (2)MCLK:主时钟,为系统内核提供时钟,它可以通过软件从四个时钟源选择或者从四个时钟源分频后选择为主时钟; (3)SMCLK:子时钟,也是可以由软件选择时钟源。 3、MSP430的时钟设置包括3个寄存器,DCOCTL、BCSCTL1、BCSCTL2、BCSCTL3 MOD0~MOD4: Modulation Bit,频率的微调。 一般不需要DCO的场合保持默认初始值就行了。 XT5V: 1. DIVA0~DIVA1:选择ACLK的分频系数。DIVA=0,1,2,3,ACLK的分频系数分别是1,2,4,8; XTS: 选择LFXT1工作在低频晶体模式(XTS=0)还是高频晶体模式(XTS=1)。 XT2OFF: 控制XT2振荡器的开启(XT2OFF=0)与关闭(XT2OFF=1)。 正常情况下把XT2OFF复位就可以了. DCOR: 0,选择内部电阻;1,选择外部电阻 DIVS0~DIVS1: DIVS=0,1,2,3对应SMCLK的分频因子为1,2,4,8 SELS: 选择SMCLK的时钟源, 0:DCOCLK; 1:XT2CLK/LFXTCLK. DIVM0~1: 选择MCLK的分频因子, DIVM=0,1,2,3对应分频因子为1,2,4,8. SELM0~1: 选择MCLK的时钟源, 0,1:DCOCLK, 2:XT2CLK, 3:LFXT1CLK 我用的时候一般都把SMCLK与MCLK的时钟源选择为XT2。 其它: 1. LFXT1: 一次有效的PUC信号将使OSCOFF复位,允许LFXT1工作,如果LFXT1信号没有用作SMCLK或MCLK,可软件置OSCOFF关闭LFXT1.

msp430F 5438时钟配置为25M时

MSP430F5438外接25M晶振。 void initClock(void) { // 初始化P7.0(#13)和P7.1(#14)为复用功能, XT1 外部时钟晶体接线 GPIO_setAsPeripheralModuleFunctionInputPin( GPIO_PORT_P7 , GPIO_PIN0 | GPIO_PIN1 ); // 启动XT1 //Initializes the XT1 crystal oscillator with no timeout //In case of failure, code hangs here. //For time-out instead of code hang use UCS_LFXT1StartWithTimeout() UCS_LFXT1Start( UCS_XT1_DRIVE0 , UCS_XCAP_3); // DCO参考时钟选择XT1,选择了默认参数 //UCS_clockSignalInit( UCS_FLLREF, UCS_XT1CLK_SELECT , UCS_CLOCK_DIVIDER_1 ); // 初始化P5.2(#89)和P5.3(#90)为复用功能, XT2 外部时钟晶体接线 GPIO_setAsPeripheralModuleFunctionInputPin( GPIO_PORT_P5 , GPIO_PIN2 | GPIO_PIN3 ); // 启动XT2 UCS_XT2Start( UCS_XT2DRIVE_24MHZ_32MHZ ); // DCO参考时钟选择XT1,选择了默认参数 //UCS_clockSignalInit( UCS_FLLREF, UCS_XT1CLK_SELECT , UCS_CLOCK_DIVIDER_1 ); // ACLK参考时钟源选择REFO, 32768Hz //UCS_clockSignalInit(UCS_ACLK, UCS_REFOCLK_SELECT,UCS_CLOCK_DIVIDER_1); // DCO参考时钟源选择REFO,32768Hz //UCS_clockSignalInit(UCS_FLLREF, UCS_REFOCLK_SELECT , UCS_CLOCK_DIVIDER_1); // DCO时钟16MHz, used as MCLK and SMCLK frequency // 该函数第1个参数为系统工作频率16384KHz/1024=16MHz,第2个参数为工作频率/DCO参考频率=16*1024*1024/32768=512 #define FRQ_DIV 1 //UCS_initFLLSettle(16384/FRQ_DIV , 512/FRQ_DIV); //! Initializes the XT2 crystal oscillator, which supports crystal frequencies //! between 4 MHz and 32 MHz, depending on the selected drive strength. Loops

关于(单片机)msp430的时钟资料

msp430f5419/38学习笔记之时钟系统 (2011-11-30 10:41:30) 分类: msp430 标签: msp430f541x msp430f543x ucs 时钟系统注:msp5419/38中,如果你使用SMCLK做TIMER_A的时钟,那么进入低功耗3或低功耗4是不会把SMCLK关掉的,这点5系列和其他系列的不一样。 UCS模块是一个低成本超低功耗系统,通过选择使用3个内部时钟信号,用户可以得到性能和功耗的 最佳平衡点。UCS可以由软件配置其工作模式,如配置成:不需要任何外部器件、使用1或 2个外部晶振等。

一、时钟系统 UCS模块具有5个时钟源: XT1CLK:低频/高频振荡器,既可以与低频 32768HZ钟振、标准晶振、外部振荡器,又可以与外部4M-32MHZ时钟源一起使用,XT1CLK可以作为FLL模块内部的参考时钟。有些芯片XT1CLK只允许使用外部的低频晶振,具体可参考数据手册; XT2CLK:可选高频振荡器,可与标准晶振,振荡器或者 4MHZ~32MHZ外部时钟源一起使用; VLOCLK:内部低功耗、低频振荡器,频率典型值为10KHZ; REFOCLK:内部低频振荡器,典型值为 32768HZ,可作为 FLL基准时钟源;

DCOCLK:可以通过 FLL来稳定的内部数字控制振荡器(DCO);DCOCLK经过 FLL分频后可得DCOCLKDIV。 UCS模块可以提供3种时钟信号: ACLK:辅时钟; MCLK:系统主时钟; SMCLK:子系统主时钟。 二、UCS操作 PUC之后,UCS的默认配置模式如下: XT1CLK 选择LF模式下的XT1作为时钟源,ACLK 选择 XT1CLK 作为时钟源; MCLK 选择DCOCLKDIV作为时钟源; SMCLK 选择DCOCLKDIV作为时钟源; FLL操作使能,FLL基准时钟(FLLREFCLK)选择XT1CLK; XIN 和 XOUT作普通IO 口使用,禁止了 XT1 功能,直到 I/O 口重新配置为 XT1 模式; 如果有 XT2IN 和XT2OUT,则一并配置为普通 IO 口,禁止 XT2 功能。 如上所述: 默认状态下:XIN/XOUT(P7.0/1)、XT2IN/XT2OUT(P5.2/3) 为普通 IO口,振荡功能禁止;FLL基准源、ACLK时钟源是 XT1CLK,晶振失效逻辑控制位作用下均切换到 REFOCLK,ACLK = 32768Hz;默认下FLL倍频为:31(FLLN值),DCOCLKDIV=(32+1)*32768 =1.047856MHz;默认下分频值 D=2(FLLD值),DCOCLK = 2*DCOCLKDIV = 2.097152MHz。 默认选择了使用 XT1的 FLL操作,为了启用 XT1功能,必须将与 XT1引脚对应的 PSEL置位。当 XT1CLK 使用 32768Hz 晶振时,由于XT1不会立即稳定,失效逻辑控制位会立即选择 REFOCLK 作为 ACLK 时钟源。一旦晶体振荡稳定后,由于 FLL的作用,MCLK 和SMCLK 都将稳定在 1.047586MHz,Fdco稳定在 2.097152MHz。

MSP430系列MCU的动态时钟配置分析

MSP430系列MCU的动态时钟配置分析时间:2012-06-01 18:49:18 来源: https://www.sodocs.net/doc/3514733131.html, 本文结合MSP430系列微处理器,详细论述了通过控制改变MCU的时钟频率来降低功耗的设计方法。 1 功耗产生的原因 在CMOS电路中,功耗损失主要包括静态功耗损失和动态功耗损失两部分。其中静态功耗主要是由反偏PN结的漏电流和晶体管的亚阈值电流引起的,其最主要的形式就是漏电损失。其实CMOS电路理论上不会有静电功耗损失,因为从供应电源到地面没有直接的路径,但实际上晶体管总会有漏电电流的出现,从而出现漏电损失。在0.18μm工艺水平之下,其在功耗中所占比重大约为5%~10%,一般可以忽略(但是随着工艺的提高,供电电压的降低,又使其所占比重逐渐上升)。这样,在CMOS电路中,动态功耗就成了这个系统功耗的主要组成部分,约占整体功耗的90%以上。定量地分析电路的动态功耗,可用以下公式表示: 其中:C为负载电容;VDD为电源电压;?琢为翻转几率,即每个时钟周期中发生的充放电周期个数;fCLK为时钟频率。从这个公式可以看到如何降低动态功耗从而降低整个CMOS 电路的功耗。即可以减小翻转的负载电容,降低电源电压,减小节点的翻转几率,或者降低时钟频率。本文将主要围绕如何动态降低时钟频率实现低功耗设计。 2 动态时钟低功耗管理原理 MCU系统设计是个很复杂的过程,在一些条件下可能会用到整个系统的所有硬件资源,但是在一些应用中可能只需要其中很少的一部分硬件资源;在某些应用中可能需要很高的时钟频率,而在其他应用中却可以工作在很低的工作频率中。例如:当任务量很大时,MCU满负荷工作,则需要较高的时钟频率,功耗较大;当任务量很小时,MCU负荷较轻,所需时钟频率较低,功耗就可以相应降低。动态配置系统的时钟频率就是以不牺牲系统的性能为前提,动态地管理系统的工作频率来降低MCU的功耗。

MSP430 定时器A课件

上次Cloud和大家一起学习完了MSP430的时钟配置,这一篇,我们来学习MSP430 单片机的TimerA(定时/计数器A)。MSP430单片机的TimerA具有非常强大的功能,相关的寄存器配置也相当复杂,Cloud花了好久才逐步理清学习思路,尤其是学习数据手册的相关描述。在这里Cloud提醒大家,虽然现在网上有中文汉化版的数据手册,但Cloud阅读英文原版后对比发现还是英文原版对器件特性描述得更加清楚,而中文汉化版的省略掉了一些内容。好吧,扯远了。下面进入正题: 一、MSP430的Timer结构 首先让我们通过官方描述来初步了解一下MSP430单片机的Timer资源: 定时器A是一个16位的定时/计数器。定时器A支持多重捕获/比较,PWM输出和内部定时。定时器还有扩展中断功能,中断可以由定时器溢出产生或由捕获/比较寄存器产生。 定时器A的特性包括: ·四种运行模式的异步16位定时/计数器 ·可选择配置的时钟源 ·可配置的PWM输出 ·异步输入和输出锁存 ·对所有TA中断快速响应的中断向量寄存器 MSP430G2553单片机共有两个TimerA,分别是Timer0A和Timer1A。 OK,零零总总说了这么多,大家一定带有很多的疑惑,比如什么叫“捕获/比较”等,这里Cloud先不作解释,会用才是王道。我们呢先找来定时器A的结构图给大家初步了解一下定时器A的结构: 我们先从上面部分开始解释。中间红色的是一个16位的TimerA,TAR,这其实就是MSP430单片机内部的一个定时计数器了,类似于51中的TH0和TL0的合体。既然可以拿来计时,那么肯定可以有时钟信号输入,让我们最左边黄色的框,是一个选择器,由上面的TASSEL来选择TACLK、ACLK、SMCLK、INCLK的其中一种时钟。上次我们已经学习过ACLK和SMCLK,也知道如何配置这两个时钟了(这也是为什么先学习时钟的原因),另外两个是外部时钟源,其中TACLK可以由P1.0输入。跟在时钟源后面的是一个分频器,由ID来控制,将时钟源的时钟信号1、2、4、8分频后作为定时/计数器的时钟源。TAR右边的蓝色框代表TimerA在计数模式下由MC来控制TAR的四种计数方式。同时我们还注意到TAR的左下方有一个TACLAR连接至TAR的Clear端,显然是清零作用的,数据手册还告诉我们置位TACLAR,不但会清零TAR的计数值还会清除时钟分频信息。TACLAR 一旦置1,会自动归零,所以可以当做是TimerA的复位按钮。

MSP430时钟配置及ad模块等学习笔记

MSP430收集资料笔记 问: 个刚从51转到msp430这块的学生,我想知道,分频其实到底可以干什么,具体什么时候才会需要我们去分频? 能举些详细的例子告诉我分频什么时候改用,什么时候不该用吗?不需要代码,例子就好 答: 51也要分频啊,一个系统CPU(中央处理单元)的频率最高的,其他的外设都是低速的,都要通过主时钟分频产生低速的时钟来工作;比如8Mhz的单片机是说CPU的时钟是工作在8mhz,但gpio、串口,定时器等它们的工作频率很低的,这个时钟就需要分频来产生;当你想要改变一个外设的工作频率时就需要重新设置分频系数,比如串口波特率,定时时间,IIC时钟,spi时钟等等; 问: MSP430单片机的定时器,看门狗等东西的时钟来源于于各个时钟 (SMCLK,ACLK,MCLK,DCO等)有什么区别呢?还有这些问什么要分频呢,不分频好像程序也可以写啊! 有这三种时钟我也知道,我只是想知道。我是想知道这些时钟给外设使用的时候到底到底选择哪个,为什么要选择这个? 答: 不知道楼主用的是那个型号!我用的149,就用这个给你说吧!msp430F149 不分频具体的根据系统需要决定,楼主应该是初学吧!有些问题你不必深究,慢慢的在学习和使用中你就明白了,刚开始你知道怎么用就可以了! CTRL_C+CTRL_V,就算是抄别人的,也自己敲一遍,加深理解,加深印象!

话有说回来,学编程本来就是这么个过程,一看二抄三写四调试!我就是这么过来的,网上资源很多,多看看别人是怎么学的,怎么做的! || || 信号源---分频输出---------》时钟----------------》输出信号源----------外围模块|| (DCO)//************不设置即被MCLK默认***********************// || (LFXTI)→MCLK==→信号源分频输出=→信号源供给外围模块,CPU || (LFXT2) 1)MCLK系统主时钟。除了CPU运算使用此时钟以外,外围模块也可以使用。MCLK可以选择任何一个振荡器所产生的时钟信号并进行1、2、4、8分频作为其信号源。 (2)SMCLK系统子时钟。供外围模块使用。并在使用前可以通过各模块的寄存器实现分频。SMCLK可以选择任何一个振荡器所产生的时钟信号并进行1、2、4、8分频作为其信号源。 ||(DCO)//************不设置即被MCLK默认***********************// ||(LFXTI)→信号源分频输出=→SMCLK==→信号源供给外围模块 ||(LFXT2) (3)ACLK辅助时钟。供外围模块使用。并在使用前可以通过各模块的寄存器实现分频。但ACLK只能由LFXT1进行1、2、4、8分频作为信号源。 PUC复位后,MCLK和SMCLK的信号源为DCO,DCO的振荡频率默认为800KHZ。ACLK的信号源为LFXT1。 || ||LFXI1=→信号源分频====》ACLK========→外围模块 MCLK,SMCLK ||PUC复位===|=======》 DCO=800KHZ |ACLK | |LFXTI

基于MSP430时钟程序(详细版)

//**************************************** /*基于msp430写的简易时钟程序,1602显示,可实现时间初始值设定,按键调整时间,时分秒走时等。 因为初学430,故而写个时钟熟悉一下各个模块,年月日等只用了静态数组显示,下次再用时钟芯片写个正式版,与大家分享,共同学习! */ //******************************************* #include #include "lcd1602.h" #include "key.h" #define uint unsigned int #define uchar unsigned char uchar miaoflag=1; uchar fenflag=0; uchar shiflag=0; unsigned char table0[]="DYS-2013-08-03"; //*****************定时器A初始化************************** void Timer_A_init() { TACTL=TASSEL0+TACLR;//设置定时器A控制寄存器,TASSEL0为选择辅助时钟aclk //TACLR为清除定时器A计数器 CCTL0=CCIE; //设置捕获/比较控制寄存器;CCIE使能捕获比较中断 CCR0=16384*2; //设置捕获/比较寄存器,初始值为16384,对于32768hz的频率来说,即为0.5s; TACTL |=MC0; //使记计模式为增模式; _EINT(); //使能中断,这是一个c编译器所支持的内部过程; } //***********************设定初始时间****************************

msp430基本时钟结构中文

Chapter5 ZHCU032I–December2004–Revised January2012 基本时钟模块+ 基本时钟模块+为MSP430x2xx系列提供了时钟。本章阐述了MSP430x2xx器件系列的基本时钟模块+的操作。 Topic Page 5.1基本时钟模块+介绍 (272) 5.2基本时钟模块+的操作 (274) 5.3基本时钟模块+寄存器 (280)

基本时钟模块+介绍https://www.sodocs.net/doc/3514733131.html, 5.1基本时钟模块+介绍 基本时钟模块+支持低系统成本和超低功耗。采用三种内部时钟信号,用户可以选择性能和低功耗的最佳平衡。为了实现无任何外部元件操作,可在全软件控制下,用一个外部电阻、一个或两个外部晶振、或用振荡器来配置基本时钟模块+。 基本时钟模块+有2个,3个或4个时钟源: ?LFXT1CLK:低频/高频振荡器可以与低频时钟晶振或外接32768Hz时钟源,或与标准晶振、振荡器,外部400KHz~16MHz的外部时钟源一起使用。 ?XT2CLK:可以与标准晶振、振荡器,或外部400KHz~16MHz的外部时钟源一起使用的可供选择的高频振荡器。 ?DCOCLK:内部数控振荡器(DCO)。 ?VLOCLK:内部超低功耗、12KHz典型频率的低频振荡器。 基本时钟模块+可提供的三种时钟信号: ?ACLK:辅助时钟。ACLK是由软件选择来作为LFXT1CLK或VLOCLK。ACLK经1,2,4,8分频后得到。ACLK可由软件选作各个外围模块。 ?MCLK:主机时钟。MCLK由软件选择作LFXT1CLK,VLOCLK,XT2CLK(如果片上提供),或DCOCLK。MCLK由1,2,4,8分频得到。MCLK用于CPU和系统。 ?SMCLK:系统子时钟。SMCLK由软件选作LFXT1CLK,VLOCLK,XT2CLK(如果片上提供),或DCOCLK。SMCLK由1,2,4,8分频得到。SMCLK可由软件选作各个外围模块。 MSP430F2xx器件中的基本时钟模块+的方框图如图5-1所示。 MSP430AFE2xx器件中的基本时钟模块+的方框图如图5-2所示。 272基本时钟模块+ZHCU032I–December2004–Revised January2012

MSP430的时钟问题

单片机上电后,如果不对时钟系统进行设置,默认800kHz的DCOCLK为MCLK和SMCLK 的时钟源,LFXTl接32768Hz晶体,工作在低频模式(XTS=O)作为ACLK的时钟源。CPU 的指令周期由MCLK决定,所以默认的指令周期就是1/800kHz="1".25μs。要得到lμs 的指令周期需要调整DCO频率,即MCLK=1MHz,只需进行如下设置: BCSCTLl=XT20FF+RSEL2; //关闭XT2振荡器,设定DCO频率为1MHz DCOCTL=DCO2 //使得单指令周期为lμs MSP430的时钟周期(振荡周期)、机器周期、指令周期之间的关系 通用知识 时钟周期也称为振荡周期:定义为时钟脉冲的倒数(时钟周期就是直接供内部CPU使用的晶振的倒数,例如12M的晶振,它的时钟周期就是1/12us),是计算机中的最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。时钟脉冲是计算机的基本工作脉冲,控制着计算机的工作节奏。时钟频率越高,工作速度就越快。 机器周期:在计算机中,常把一条指令的执行过程划分为若干个阶段,每一个阶段完成一项工作。每一项工作称为一个基本操作,完成一个基本操作所需要的时间称为机器周期。8051系列单片机的一个机器周期由6个S周期(状态周期)组成。一个S周期=2个时钟周期,所以8051单片机的一个机器周期=6个状态周期=12个时钟周期。 指令周期:执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期也不同。 专用知识: 在430中,一个时钟周期=MCLK晶振的倒数。如果MCLK是8M,则一个时钟周期为1/8us; 一个机器周期=一个时钟周期,即430每个动作都能完成一个基本操作; 一个指令周期=1~6个机器周期,具体根据具体指令而定。 另:指令长度,只是一个存储单位与时间没有必然关系。 MSP430根据型号的不同最多可以选择使用3个振荡器。我们可以根据需要选择合适的振荡频率,并可以在不需要时随时关闭振荡器,以节省功耗。这3个振荡器分别为:(1)DCO数控RC振荡器。它在芯片内部,不用时可以关闭。DCO的振荡频率会受周围环境温度和MSP430工作电压的影响,且同一型号的芯片所产生的频率也不相同。但DCO 的调节功能可以改善它的性能,他的调节分为以下3步:a:选择BCSCTL1.RSELx确定时钟的标称频率;b:选择DCOCTL.DCOx在标称频率基础上分段粗调;c:选择DCOCTL.MODx 的值进行细调。

MSP430的系统时钟

通用知识 时钟周期也称为振荡周期:定义为时钟脉冲的倒数(时钟周期就是直接供内部CPU使用的晶振的倒数,例如12M的晶振,它的时钟周期就是1/12us),是计算机中的最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。时钟脉冲是计算机的基本工作脉冲,控制着计算机的工作节奏。时钟频率越高,工作速度就越快。 机器周期:在计算机中,常把一条指令的执行过程划分为若干个阶段,每一个阶段完成一项工作。每一项工作称为一个基本操作,完成一个基本操作所需要的时间称为机器周期。8051系列单片机的一个机器周期由6个S周期(状态周期)组成。一个S周期=2个时钟周期,所以8051单片机的一个机器周期=6个状态周期=12个时钟周期。 指令周期:执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期也不同。 专用知识: 在430中,一个时钟周期= MCLK晶振的倒数。如果MCLK是8M,则一个时钟周期为1/8us; 一个机器周期=一个时钟周期,即430每个动作都能完成一个基本操作; 一个指令周期= 1~6个机器周期,具体根据具体指令而定。 另:指令长度,只是一个存储单位,与时间没有必然关系。

MSP430根据型号的不同最多可以选择使用3个振荡器。我们可以根据需要选择合适的振荡频率,并可以在不需要时随时关闭振荡器,以节省功耗。这3个振荡器分别为: (1)DCO 数控RC振荡器。它在芯片内部,不用时可以关闭。DCO的振荡频率会受周围环境温度和MSP430工作电压的影响,且同一型号的芯片所产生的频率也不相同。但DCO的调节功能可以改善它的性能,他的调节分为以下3个步骤 a:选择BCSCTL1.RSELx确定时钟的标称频率; b:选择DCOCTL.DCOx在标称频率基础上分段粗调; c:选择DCOCTL.MODx的值进行细调。 (2)LFXT1 接低频振荡器。典型为接32768HZ的时钟振荡器,此时振荡器不需要接负载电容。也可以接450KHZ~8MHZ的标准晶体振荡器,此时需要接负载电容。 (3)XT2 接450KHZ~8MHZ的标准晶体振荡器。此时需要接负载电容,不用时可以关闭。 低频振荡器主要用来降低能量消耗,如使用电池供电的系统,高频振荡器用来对事件做出快速反应或者供CPU进行大量运算。当然高端430还有锁频环(FLL)及FLL+等模块,但是初步不用考虑那么多。MSP430的3种时钟信号:MCLK系统主时钟;SMCLK系统子时 钟;ACLK辅助时钟。

MSP430 时钟的初始化和GPIO

MSP430 时钟的初始化和GPIO 一.概述: 本实验的目的是了解用于执行对MSP430 Value Line设备的初始化过程的步骤。在这个练习中,您将编写初始化代码,并运行该设备使用各种时钟资源。 1、写初始化代码 2、运行CPU的MCLK的来源方式:VLO 、32768晶体、DCO 3、主体程序部分 4、观察LED闪光灯速度 MSP430时钟: 1、在MSP430单片机中一共有三个或四个时钟源: (1)LFXT1CLK,为低速/高速晶振源,通常接32.768kHz,也可以接(400kHz~16Mhz); (2)XT2CLK,可选高频振荡器,外接标准高速晶振,通常是接8Mhz,也可以接(400kHz~16Mhz); (3)DCOCLK,数控振荡器,为内部晶振,由RC震荡回路构成; (4)VLOCLK,内部低频振荡器,12kHz标准振荡器。 2、在MSP430单片机内部一共有三个时钟系统: (1)ACLK,Auxiliary Clock,辅助时钟,通常由LFXT1CLK或VLOCLK作为时钟源,可以通过软件控制更改时钟的分频系数; (2)MCLK,Master Clock,系统主时钟单元,为系统内核提供时钟,它可以通过软件从四个时钟源选择; (3)SMCLK,Sub-Main Clock,系统子时钟,也是可以由软件选择时钟源。Basic Clock Module Registers(基础时钟寄存器) DCO control register DCOCTL Basic clock system control 1 BCSCTL1 Basic clock system control 2 BCSCTL2 Basic clock system control 3 BCSCTL3 SFR interrupt enable register 1 IE1 SFR interrupt flag register 1 IFG1 3、MSP430的时钟设置包括3个寄存器,DCOCTL、BCSCTL1、BCSCTL2、BCSCTL3

基本时钟模块_MSP430G2553

G2xxx系列DCO校准数据(校正寄存器) 1MHz: CALBC1_1MHZ CALDCO_1MHZ 8MHz: CALBC1_8MHZ CALDCO_8MHZ 12MHz: CALBC1_12MHZ CALDCO_12MHZ 16MHz: CALBC1_16MHZ CALDCO_16MHZ 例:设置DCO频率为1MHz if(CALBC1_1MHZ==0xFF || CALDCO_1MHZ==0xFF) while(1);//校准数据是否被擦除,若是则CPU挂起。 BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ; 基本时钟模块寄存器 寄存器缩写形式类型初始状态DCO控制寄存器DCOCTL 读/写0x60(PUC) 基本时钟系统控制器1 BCSCTL1 读/写0x87(POR) 基本时钟系统控制器2 BCSCTL2 读/写由PUC复位 基本时钟系统控制器3 BCSCTL3 读/写0x05(PUC) 中断使能寄存器(特殊功能寄存器)IE1 读/写由PUC复位 中断标致寄存器(特殊功能寄存器)IFG1 读/写由PUC复位 说明:DCO的频率可以通过软件设定DCOx、MODx、RSELx相应位来调整,DCO频率是通过将f DCO和f DCO+1混频得到。 1、DCOCTL:DCO控制寄存器 7 6 5 4 3 2 1 0 DCOx MODx rw-0 rw-1 rw-1 rw-0 rw-0 rw-0 rw-0 rw-0 DCOx:DCO频率范围选择位,这些位可以用来在由RESLx设置决定的8个离散的频率范围中选择哪一个。 MODx:调制系数选择位,这些位用来决定在32个DCO时钟周期中f DCO+1占多少个,f DCO 占多少个。注意:当MODx=0时调制器关闭,DCOx=7时,由于此时没有下一个更高的频率范围f DCO+1可用,因此MODx无效不可用。

MSP430单片机的时钟周期和机器周期与指令周期之间的关系解析

MSP430单片机的时钟周期和机器周期与指令周期之间的关系解析时钟简介: 时钟周期也称为振荡周期:定义为时钟脉冲的倒数(时钟周期就是直接供内部CPU使用的晶振的倒数,例如12M的晶振,它的时钟周期就是1/12us),是计算机中的最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。时钟脉冲是计算机的基本工作脉冲,控制着计算机的工作节奏。时钟频率越高,工作速度就越快。机器周期:在计算机中,常把一条指令的执行过程划分为若干个阶段,每一个阶段完成一项工作。每一项工作称为一个基本操作,完成一个基本操作所需要的时间称为机器周期。8051系列单片机的一个机器周期由6个S周期(状态周期)组成。一个S周期=2个时钟周期,所以8051单片机的一个机器周期=6个状态周期=12个时钟周期。指令周期:执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期也不同。 MSP430 单片机上电后,如果不对时钟系统进行设置,默认800 kHz的DCOCLK为MCLK和SMCLK 的时钟源,LFXTl接32768 Hz晶体,工作在低频模式(XTS=O)作为ACLK的时钟源。CPU的指令周期由MCLK决定,所以默认的指令周期就是1/800 kHz=“1”.25μs。要得到lμs的指令周期需要调整DCO频率,即MCLK=1 MHz,只需进行如下设置:BCSCTLl=XT20FF+RSEL2;//关闭XT2振荡器,设定DCO频率为1 MHz。 DCOCTL=DCO2//使得单指令周期为lμs MSP430的时钟周期(振荡周期)、机器周期、指令周期之间的关系 在430中,一个时钟周期= MCLK晶振的倒数。如果MCLK是8M,则一个时钟周期为1/8us;一个机器周期= 一个时钟周期,即430每个动作都能完成一个基本操作;一个指令周期= 1~6个机器周期,具体根据具体指令而定。另:指令长度,只是一个存储单位与时间没有必然关系。MSP430根据型号的不同最多可以选择使用3个振荡器。我们可以根据需要选择合适的振荡频率,并可以在不需要时随时关闭振荡器,以节省功耗。这3个振荡器分别为:

MSP4302:时钟系统

MSP430时钟设置及应用总结 ********************************基于MSP430F1612****************************** 在MSP430单片机中,一个时钟周期= MCLK晶振的倒数。如果MCLK是8MHz,则一个时钟周期为1/8us。 一个机器周期= 一个时钟周期,即430每个动作都能完成一个基本操作。 一个指令周期= 1~6个机器周期,具体根据具体指令而定。 另外,指令长度只是一个存储单位,与时间没有必然的关系。 MSP430单片机的时钟模块主要包括: 三个时钟:辅助时钟ACLK 、主时钟MCLK 、子系统时钟SMCLK 三个振荡器:低频时钟源LFXT1 、高频时钟源XT2 、数字控制RC振荡器DCO 而MSP430单片机工作所需时钟就是由这些振荡器振荡后经处理产生的。 (1)ACLK:是LFXT1CLK信号经1/2/4/8分频后得到的,主要用作低速外围的时钟 (2)MCLK:是LFXT1CLK,XT2CLK,DCOCLK的三者之一决定,由软件选择,然后经1/2/4/8分频后得到,主要用于CPU和系统 (3)SMCLK:可由LFXT1CLK和DCOCLK,或者XT2CLK与DCOCLK决定,然后经1/2/4/8分频后得到,主要用于高速外围模块 MSP430的时钟模块由DCOCTL,BCSCTL1,BCSCTL2,IE1,IFG1这五个寄存器来确定,具体的功能如下所示: DCOCTL:控制DCO振荡器 BCSCTL1:控制XT2,LFXT1,DCO振荡,并控制ACLK的分频情况 BCSCTL2:设置三个时钟源分别选择什么振荡器 我们在程序里对寄存器的设置,也就是对三个振荡器进行设置,时钟振荡器设置好了,还要对时钟模块进行设置,也就是让三个时钟模块MCLK SMCLK ACLK选择相应的时钟振荡器以得到不同频率的时钟。 PUC信号后,系统选择内部电阻以实现频率的输出。RSELx = 4 与DCOx = 3,开始时使DCO有一个适中的频率。MCLK与SMCLK的时钟信号全部来自DCO,约为800KHz(芯片手册)。PUC信号后将LFXT1设置到LF模式(XTS=0),并且关断HF模式(XTS=1)与关断XT2振荡器。 (1)DCOCTL:DCO控制寄存器,地址为56H,初始值为60H // 7 6 5 4 3 2 1 0 // DCO2 DCO1 DCO0 MOD4 MOD3 MOD2 MOD1 MOD0 // // DCO0~DCO2:DCO Select Bit,定义了8种频率之一,而频率由注入直流发生器的电流定义// MOD0~MOD4:Modulation Bit,频率的微调 // // DCO的设置:通过设置DCOCTL和BCSCTL1,设置DCO的频率 // (1)DCO的调节: 设置DCOR比特来选择是外部电阻还是内部电阻,以确定一个基准频率 通过BCSCTL1寄存器的RSELx来进行分频,确定时钟频率; 通过DCOCTL寄存器中DCOx在标称频率基础上分段粗调,选择频率; 通过DCOCTL寄存器中MODx的值对频率进行细调,选择DCOx 与DCOx+1 之间的频率

msp430设置基本时钟系统

msp430设置基本时钟系统 时钟信号概述 通过这些基本的时钟模块,我们可以得到3个有用的时钟信号: [1] ACLK辅助时钟(Auxillary Clock) ACLK是LFXT1CLK时钟源经1、2、4、8分频后得到的。ACLK可由软件选择作为各个外围模块的时钟信号,一般用于低速外设。 [2] MCLK主系统时钟(Main System Clock) MCLK可由软件选择来自LFXT1CLK、XT2CLK、DCOCLK三者之一,然后经1、2、4、8分频。 MCLK通常用于CPU运行,程序的执行和其他使用到高速时钟的模块。 [3] SMCLK子系统时钟(Sub System Clock) SMCLK可由软件选择来自XT2CLK或DCOCLK,然后经1、2 、4、8分频。 SMCLK通常用于高速外围模块。 实验目的 设置基本时钟系统 实验要求 熟练掌握对MSP430基本时钟系统的操作和时钟资源的分

配。 实验内容 [1] 了解MSP430F169的时钟资源。 了解3个时钟源,低频震荡器XT1,高频震荡器XT2,数控震荡器DCO。 了解3个系统时钟通道ACLK,MCLK,SMCLK。 ACLK的时钟源只能来自XT1。 MCLK的时钟源能来自XT1,XT2,DCO。 SMCLK的时钟源能来自XT2,DCO。 [2] 启动震荡器 了解震荡器失效标志的含义。 XT1和DCO震荡器上电即启动。 XT2震荡器需要操作XT2OFF 方能启动 掌握如何查询失效标志和处理震荡器失效问题 [3] 分配时钟资源 上电复位后默认XT2关,ACLK来自XT1,MCLK和SMCLK 都来自DCO。 掌握通过对寄存器的操作分配时钟信号: 设置ACLK来自XT1,MCLK来自XT2,SMCLK来自XT2。各个时钟通道的分频自定。 [4] 时钟信号的输出 时钟信号可以由P5.6、P5.5、P5.4输出。

MSP430时钟设置程序

MSP430时钟设置程序 1/ void main (void) { unsigned int i; WDTCL = WDTPW+WDTHOLD; //停止看门狗 P5DIR = 0x10; //设置P5.4输出 P5SEL = 0x10; //设置P5.4口为外围模块用作MCLK信号输出 BCSCTL1 &= ~XT2OFF; //使TX2有效,TX2上电时默认为关闭的. do { IFG1 &= ~OFIFG; //清振荡器失效标志 for(i= 0xff; i>;0; i--); //延时,待稳定. } while ((IFG1 & OFIFG)!=0); //若振荡器失效标志有效BCSCTL2 |= SELM1; //使MCLK = XT2 for(;;); } 2/

#include ; void main(void) { unsigned int i; WDTCTL = WDTPW + WDTHOLD; //停止看门狗 BCSCTL1 |= XTS; //设置时基寄存器1,使ACLK = LFXT1 = HF XTAL,也就是高频模式. P2DIR|= 0x01; //设置P2.0方向寄存器为输出 P2SEL |= 0x01; //设置P2.0口为外围模块用作ACLK信号输出 P1DIR |= 0x02; //设置P1.1方向寄存器为输 do { IFG1 &= ~OFIFG; //清振荡器失效标志 for (i = 0xFF; i >; 0; i--); //延时,待稳定 } while ((IFG1 & OFIFG)); //若振荡器失效标志有效? BCSCTL2 |= SELM_3;//设置时基寄存器2,使主时钟信号MCLK = LFXT1 (可靠的) for (;;) //无穷循环 {

MSP430的时钟周期(振荡周期)、机器周期、指令周期之间的关系

MSP430的时钟周期(振荡周期)、机器周期、指令周期之间的关系 通用知识 时钟周期也称为振荡周期:定义为时钟脉冲的倒数(时钟周期就是直接供内部CPU使用的晶振的倒数,例如12M的晶振,它的时钟周期就是1/12us),是计算机中的最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。时钟脉冲是计算机的基本工作脉冲,控制着计算机的工作节奏。时钟频率越高,工作速度就越快。 机器周期:在计算机中,常把一条指令的执行过程划分为若干个阶段,每一个阶段完成一项工作。每一项工作称为一个基本操作,完成一个基本操作所需要的时间称为机器周期。8051系列单片机的一个机器周期由6个S周期(状态周期)组成。一个S周期=2个时钟周期,所以8051单片机的一个机器周期=6个状态周期=12个时钟周期。 指令周期:执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期也不同。 专用知识: 在430中,一个时钟周期= MCLK晶振的倒数。如果MCLK是8M,则一个时钟周期为1/8us; 一个机器周期=一个时钟周期,即430每个动作都能完成一个基本操作; 一个指令周期= 1~6个机器周期,具体根据具体指令而定。 另:指令长度,只是一个存储单位与时间没有必然关系。

MSP430根据型号的不同最多可以选择使用3个振荡器。我们可以根据需要选择合适的振荡频率,并可以在不需要时随时关闭振荡器,以节省功耗。这3个振荡器分别为: (1)DCO 数控RC振荡器。它在芯片内部,不用时可以关闭。DCO的振荡频率会受周围环境温度和MSP430工作电压的影响,且同一型号的芯片所产生的频率也不相同。但DCO的调节功能可以改善它的性能,他的调节分为以下3步:a:选择BCSCTL1.RSELx确定时钟的标称频率;b:选择DCOCTL.DCOx在标称频率基础上分段粗调;c:选择DCOCTL.MODx的值进行细调。 (2)LFXT1 接低频振荡器。典型为接32768HZ的时钟振荡器,此时振荡器不需要接负载电容。也可以接450KHZ~8MHZ的标准晶体振荡器,此时需要接负载电容。 (3)XT2 接450KHZ~8MHZ的标准晶体振荡器。此时需要接负载电容,不用时可以关闭。 低频振荡器主要用来降低能量消耗,如使用电池供电的系统,高频振荡器用来对事件做出快速反应或者供CPU进行大量运算。当然高端430还有锁频环(FLL)及FLL+等模块,但是初步不用考虑那么多。 MSP430的3种时钟信号:MCLK系统主时钟;SMCLK系统子时钟;ACLK辅助时钟。 (1)MCLK系统主时钟。除了CPU运算使用此时钟以外,外围模块也可以使用。MCLK可以选择任何一个振荡器所产生的时钟信号并进行1、2、4、8分频作为其信号源。 (2)SMCLK系统子时钟。供外围模块使用。并在使用前可以通过各模块的寄存器实现分频。SMCLK可以选择任何一个振荡器所产生的时钟信号并进行1、2、4、8分频作为其信号源。

MSP430的时钟系统

MSP430的时钟系统 引言:MSP430的教科书通读了一遍,只是对其有一个整 体的朦胧感.于是昨天开始准备编些程序试下自己的水平.可对着空荡荡的代码区硬是一个字都写不下去.涉及到细节问题,基本就是无从下手.现把一些细节问题整理在这个专栏里面,以备后面查证.同时觉得自己欠缺的还是一个对总体框架的把握,看来是要多读一些东西了. 正文:MSP430根据型号的不同最多可以选择使用3个振荡器。我们可以根据需要选择合适的振荡频率,并可以在不需要时随时关闭振荡器,以节省功耗。这3个振荡器分别为: (1)DCO 数控RC振荡器。它在芯片内部,不用时可以关闭。DCO的振荡频率会受周围环境温度和MSP430工作电压的影响,且同一型号的芯片所产生的频率也不相同。但DCO 的调节功能可以改善它的性能,他的调节分为以下3步:a:选择BCSCTL1.RSELx确定时钟的标称频率;b:选择DCOCTL.DCOx在标称频率基础上分段粗调;c:选择DCOCTL.MODx的值进行细调。(2)LFXT1 接低频振荡器。典型为接32768HZ的时钟振荡器,直接连接在XIN与XOUT 之间,此时振荡器不需要接负载电容。也可以接

450KHZ~8MHZ的标准晶体振荡器,此时需要接负载电 容.LXFT1产生的频率信号为ACLK.低速时钟需要上百毫秒的建立时间才能稳定下来.(3)XT2 接450KHZ~8MHZ的标准晶体振荡器。外部标准晶体振荡器接在XT2IN和 XT2OUT之间,此时需要接负载电容,不用时可以关闭。 低频振荡器主要用来降低能量消耗,如使用电池供电的系统,高频振荡器用来对事件做出快速反应或者供CPU进行大量运算。MSP430的3种时钟信号:MCLK系统主时钟;SMCLK系统子时钟;ACLK辅助时钟。(1)MCLK系统主时钟。除了CPU运算使用此时钟以外,外围模块也可以使用。MCLK可以选择任何一个振荡器所产生的时钟信号并进行1、2、4、8分频作为其信号源。(2)SMCLK系统子时钟。供外围模块使用。并在使用前可以通过各模块的寄存器实现分频。SMCLK可以XT2CLK或者DCOCLK振荡器所产生的时钟信号并进行1、2、4、8分频作为其信号源。(3)ACLK 辅助时钟。供外围模块使用。并在使用前可以通过各模块的寄存器实现分频。但ACLK只能由LFXT1进行1、2、4、8分频作为信号源。可以作为后台时钟用来唤醒 CPU.(4)ACLK/N, ACK缓冲输出,他可以有ACL.1.2.4.8分频获得,且只能为外部所用. PUC复位后,MCLK和SMCLK的信号源为DCO,DCO的振荡频率为800KHZ。ACLK的信号源为LFXT1。MSP430内部含有晶体振

相关主题