S.D.Lu的MSP430入门学习笔记(4):时钟选择(2)VLO、LFXT1和XT2

合集下载

MSP430学习总结

MSP430学习总结

MSP430学习总结前言这次主要看的资料是MSP430F425型号的,与MSP430F169有点区别,但由于MSP430单片机采用模块化结构,在不同型号的单片机中,同一种模块的使用方法和寄存器都是相同的。

下面会对它们的功能和区别加以说明。

一、MSP430单片机的特点1、我觉得MSP430最大的特点就是超低功耗,430之所以能够在低功耗的条件下运行,主要是由于引入了“时钟系统”的概念,和采用模块化结构。

让CPU可以间歇性的工作,节省功耗。

在MSP430单片机中,通过时钟配置可以产生3种时钟:MCLK:主时钟,MCLK是专门为CPU运行提供的时钟,MCLK配置的越高,CPU执行的速度就越快。

一旦关闭MCLKE,CPU 就停止工作,所以在超低功耗中通过间接开启MCLK的方式降低功耗。

SMCLK:子系统时钟,为单片机内部某些高速设备提供时钟,并且SMCLK是独立于MCLK的,关闭MCLK让CPU停止工作,子系统SMCLK开启,仍然可以使外设继续工作。

ACLK:活动时钟;ACLK一般是由32.768KHz晶振直接产生的低频时钟,在单片机运行时一般不关闭,和定时器使用间接唤醒CPU。

时钟系统对于3种时钟不同程度的关闭,就可以进入不同的低功耗模式(低功耗在下面讨论)。

2、MSP430单片机采用模块化结构,每一种模块都具有独立而完整的结构,这样就可以单独开启或者关闭某些模块,只需要激活某些使用的模块,以节省电力。

3、MSP430单片机的内核是16位RISC处理器,其运算能力和速度都具有一定的优势。

MSP430还有其它的一些优势在这里就不一一列举了。

二、MSP430单片机的内部资源1、I/O口寄存器PxIN: Px口输入寄存器PxOUT: Px口输出寄存器PxDIR : Px口方向寄存器 0=输入 1=输出PxSET: Px口第二功能选择寄存器 0=普通I/O 1=第二功能使用总结:以上的4个寄存器是所有I/O都具有的,在使用I/O 口之前首先要设置PxDIR,对于要使用第二功能的还要设置PxSET下面介绍的是430中P1,P2口引发中断需要设置的寄存器(MSP430单片机只有P1、P2口能引发中断)PxIE : Px口中断允许寄存器 0=不允许 1=允许PxIES : Px口中断沿选择寄存器 0=上升沿 1=下降沿PxIFG : Px口中断标志位寄存器 0=中断条件不成立1=中断条件曾经成立(说明:无论中断是否被允许,也不论是否正在执行中断服务程序,只要I/O满足中断条件,PxIFG的相应位就会置1,只能通过软件清除,这个可以用来判断哪一位I/O发生了中断,也不会漏掉每一次中断。

MSP430时钟系统详解

MSP430时钟系统详解

2
while(1) { P1OUT = 0x40; _delay_cycles(100); P1OUT = 0; _delay_cycles(5000); } }
// 开启 LED // 关闭 LED
2、CPU 运行在晶振(32768Hz)时钟下: 时钟下: 晶体频率为 32768 赫兹,约 3 倍的 VLO。如果我们在前面的代码中使用晶振,指示灯应闪 烁大约每秒一次。 你知道为什么 32768 赫兹是一个标准?这是因为这个数字是 2 的 15 次方, 因此很容易用简单的数字计数电路,以每秒一次获得率 ——手表和其他时间时基。认识到 ACLK 来自外部晶振时钟。 #include <msp430g2231.h> void main(void) { WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗定时器 P1DIR = 0x41; // P1.0 和 P1.6 配置输出 P1OUT = 0x01; // 开启 P1.0 BCSCTL3 |= LFXT1S_0; // LFXT1 = 32768Hz 晶振 while(IFG1 & OFIFG) { IFG1 &= ~OFIFG; // 清除 OSCFault 标志 _delay_cycles(100000); // 为可见的标志延时 } P1OUT = 0; // 关闭 P1 __bis_SR_register(SCG1 + SCG0); // 关闭 DCO BCSCTL2 |= SELM_3 + DIVM_3; // MCLK = 32768/8 while(1) { P1OUT = 0x40; // 开启 LED _delay_cycles(100); P1OUT = 0; / / 关闭 LED _delay_cycles(5000); } } 3、CPU 运行在晶振(32768Hz)和 DCO 时钟下: 时钟下: 最慢的频率,我们可以运行 DCO 约在 1MHz(这也是默认速度) 。因此,我们将开始切换 MCLK 到 DCO 下。在大多数系统中,你会希望 ACLK 上运行的 VLO 或 32768 赫兹晶振。 由于 ACLK 在我们目前的代码是在晶体上运行,我们会打开 DCO 计算。

Msp430学习笔记

Msp430学习笔记

Msp430学习笔记一、简介图1 基本结构图2 pin designation结论:1.基本每个管脚都可以复用2.外围功能模块丰富端口介绍(32 I/O pins)1.端口P1和P2具有输入、输出、中断和外部模块功能。

这些功能可以通过各自的7个控制寄存器的设置来实现。

(1)PxDIR 输入输出方向寄存器rw(2)PxIN 输入寄存器r(3)PxOUT 输出寄存器r(4)PxIFG 中断标志寄存器r(5)PxIES 中断触发沿选择寄存器rw(6)PxIE 中断使能寄存器rw(7)PxSEL 功能选择寄存器rw2.其他端口:四个控制寄存器(除去中断相关)看看例程二、时钟部分1.时钟寄存器设置SCFQCTL 系统时钟控制寄存器(倍频,反馈后默认是31,31+1=32)SCFI0 系统时钟频率调整器0(锁频环反馈中的分频(实质最终是倍频))SCFI1 系统时钟频率调整器1(自动控制调整,无需软件设置)FLL_CTL0 FLL+控制器0 (反馈中是否分频、选择LFXT1晶振的有效电容)FLL_CTL1 FLL+控制器1 (振荡器控制、时钟源对应的振荡器的选择,默认情况下:振荡器打开,MCLK选择DCOCLK,SMCLK选择DCOCLK)图时钟模块2.工作模式:One Active Mode、Five Power Saving ModesMSP430是一个特别强调低功耗的单片机系列,尤其适用于采用电池供电的长时间工作场合。

系统根据应用和节能使用不同的时钟信号,这样可以合理利用系统的电源,实现整个系统的超低功耗。

中断是MSP430微处理器的一大特色。

有效地利用中断可以简化程序,并且提高执行效率和系统稳定性。

几乎所有的msp430系统单片机的每个外围模块都能产生中断,为MSP430针对事件(外围模块产生的中断)进行的编程打下基础。

MSP430在没有事件发生时处于低功耗模式,事件发生时通过中断唤醒CPU,时间处理完毕后CPU再次进入低功耗模式,由于CPU运算速度和推出低功耗的速度很快,所以在应用中,CPU大部分时间都处于低功耗状态,使得系统的整体功耗极大地降低。

MSP430初学者教程(最详细)

MSP430初学者教程(最详细)

如何学习MSP430单片机学习就是迎接挑战、解决困难的过程,没有挑战,就没有人生的乐趣。

下面以MSP430系列单片机为例,解释一下学习单片机的过程。

(1)获取资料购买有关书籍,并到杭州利尔达公司网站和TI网站获取资料,例如,在网上可以找到FET 使用指导、MSP430 F1xx系列、F4xx系列的使用说明和具体单片机芯片的数据说明,可以找到仿真器FET的电路图、实验板电路图、芯片封装知识等大量的实际应用参考电路,当然有些资料是英文的,看懂英文资料是个挑战,学会4、6级英语就是为看资料的。

英语难学,但是看资料容易,只要下决心,看完一本资料,就可以看懂所有的相关资料。

(2)购买仿真器FET和实验电路板如果经济条件不错,可以直接购买。

(3)自制仿真器FET和实验电路板自制仿真器FET,首先要到网上找到FET电路图,然后就可以使用画电路板软件画电路图和电路板图,这又是个挑战。

FET电路非常简单,但要把它制作出来还是需要下一番工夫的,找一本有关书,然后练习画原理图,画完原理图后,就学习认识元件封装,再购买元件,这时就可以画电路板图了,一旦画好,将形成的PCB文件交给电路板制作公司,10天后,就可以得到电路板,焊上元件和电缆,等实验电路板做好后,就可以与实验电路板一起调试了。

自制实验电路板,需要单片机芯片内部工作原理的知识、封装知识,清楚的知道每一个引脚的功能,还需要数码管、按钮、排电阻、三端稳压器、二极管、散热器、电解电容、普通电容、电阻、钮子开关等元件的知识,对于初学者,可以做一个只有3个数码管、8个按钮、8个发光二极管的简单实验板,这样的实验板,虽然简单,但足可以帮助初学者入门单片机。

自制实验电路板与自制FET一样,首先画电路图,然后买元件,再画电路板。

由于MSP430系列芯片是扁平封装,焊接起来有一定难度,这好象是个挑战,但实际上很简单,方法如下:首先在焊盘上涂上松香水,在松香水未干的情况下,将芯片放在焊盘上,注意芯片第一引脚的位置,并使引脚与焊盘对齐,将擦干净的电烙铁(不能有任何焊锡)接触引脚,引脚只要一热,焊盘上的焊锡就自动将引脚焊住了,千万注意电烙铁上不能有焊锡,焊接时最好配备一个放大镜。

430学习1

430学习1

MSP430学习笔记之二:时钟模块MSP430系列单片机基础时钟主要是由低频晶体振荡器,高频晶体振荡器,数字控制振荡器(DCO),锁频环(FLL)及FLL+等模块构成。

由于430系列单片机中的型号不同,而时钟模块也将有所不同。

虽然不同型号的单片机的时基模块有所不同,但这些模块产生出来的结果是相同的.在MSP430F13、14中是有TX2振荡器的,而MSP430F11X,F11X1中是用LFXT1CLK 来代替XT2CLK时钟信号的.在时钟模块中有3个(对于F13,F14)时钟信号源(或2个时钟信号源,对于F11X、F11X1):1-LFXT1CLK: 低频/高频时钟源.由外接晶体振荡器,而无需外接两个振荡电容器.较常使用的晶体振荡器是32768HZ。

2-XT2CLK: 高频时钟源.由外接晶体振荡器。

需要外接两个振荡电容器,较常用的晶体振荡器是8MHZ。

3-DCOCLK: 数字可控制的RC振荡器。

1-ACLK: 辅助时钟信号.由图所示,ACLK是从FLXT1CLK信号由1/2/4/8分频器分频后所得到的.由BCSCTL1寄存器设置DIVA相应为来决定分频因子.ACLK可用于提供CPU外围功能模块作时钟信号使用.2-MCLK: 主时钟信号.由图所示,MCLK是由3个时钟源所提供的。

他们分别是LFXT1CLK,XT2CLK(F13、F14,如果是F11,F11X1则由LFXT1CLK代替),DCO时钟源信号提供.MCLK主要用于MCU和相关系统模块作时钟使用。

同样可设置相关寄存器来决定分频因子及相关的设置。

3-SMCLK: 子系统时钟,SMCLK是由2个时钟源信号所提供.他们分别是XT2CLK(F13、F14)和DCO,如果是F11、F11X1则由LFXT1CLK代替TX2CLK。

同样可设置相关寄存器来决定分频因子及相关的设置。

MSP430X1X1系列产品中,其中XT1时钟源引脚接法有如3种应用。

F13、14的XT1相同。

MSP430学习笔记

MSP430学习笔记

一,MSP430G2553单片机的各个功能模块(一),IO口模块,1,我们所用的MSP430G2553有两组IO口,P1和P2。

2,IO口的寄存器有:方向选择寄存器PxDIR,输出寄存器PxOUT,输入寄存器PxIN,IO口内部上拉或下拉电阻使能寄存器PxREN,IO口功能选择寄存器PxSEL和PxSEL2,IO口中断使能寄存器PxIE,中断沿选择寄存器PxIES,IO口中断标志寄存器PxIFG。

3,所有的IO都带有中断,其中所有的P1口公用一个中断向量,所有的P2口公用一个中断向量。

所以在使用中断时,当进入中断后,还要判断到底是哪一个IO口产生的中断,判断方法可以是判断各个IO口的电平。

4,中断标志PxIFG需要软件清除,也可以用软件置位,从而用软件触发一个中断。

注意:在设置PxIESx时根据PxINx有可能会引起相应的PxIFGx置位(具体的情况见用户指南),所以在初始化完IO口中断以后,正式使用IO中断前要先将对应的PxIFGx清零。

程序如下:void IO_interrupt_init()//IO中断初始化函数{P1REN|=BIT4+BIT5+BIT6+BIT7;//pullup内部上拉电阻使能//使用中断时,使能内部的上拉电阻这样当该脚悬空是,电平不会跳变,防止悬空时电平跳变不停的触发中断P1OUT=BIT4+BIT5+BIT6+BIT7;//当引脚上的上拉或下拉电阻使能时,PxOUT选择是上拉还是下来//0:下拉,1:上拉P1IE|=BIT4+BIT5+BIT6+BIT7;//interrupt enabled P13中断使能P1IES|=BIT4+BIT5+BIT6+BIT7;//Hi/lo edge下降沿中断//P1IES&=~BIT3;//上升沿触发中断P1IFG&=~(BIT4+BIT5+BIT6+BIT7);//中断标志位清零}5,PxOUT:如果引脚选择了内部的上拉或下拉电阻使能,则PxOUT设定电阻是上拉还是下拉,0:下拉,1:上拉6,当IO口不用时,最好不要设为输入,且为浮动状态(这是IO口的默认状态),因为当输入为浮动时,输入电压有可能会在VIL和VIH之间,这样会产生击穿电流。

MSP430单片机应用笔记

MSP430单片机应用笔记

MSP430单片机硬件知识(1)MSP430单片机是TI 公司1996年开始推向市场的超低功耗微处理器,另外他还集成了很多模块功能,从而使得用一片MSP430 芯片可以完成多片芯片才能完成的功能,大大缩小了产品的体积与成本。

如今,MSP430单片机已经用于各个领域,尤其是仪器仪表、监测、医疗器械以及汽车电子等领域。

下面来说一下它的主要特点:(1)低电源电压范围,1.8~3.6V 。

(2)超低功耗,拥有5种低功耗模式(以后会详细介绍)。

(3)灵活的时钟使用模式。

(4)高速的运算能力,16位RISC 架构,125ns 指令周期。

(5)丰富的功能模块,这些功能模块包括:A :多通道10-14位AD 转换器;B :双路12位DA 转换器;C :比较器;D :液晶驱动器;E :电源电压检测;F :串行口USART(UART/SPI );G :硬件乘法器;H :看门狗定时器,多个16位、8位定时器(可进行捕获,比较,PWM 输出);I :DMA 控制器。

(6)FLASH 存储器,不需要额外的高电压就在运行种由程序控制写擦欧哦和段的擦除;(7)MSP430芯片上包括JTAG 接口,仿真调试通过一个简单的JTAG 接口转换器就可以方便的实现如设置断点、单步执行、读写寄存器等调试;(8)快速灵活的变成方式,可通过JTAG 和BSL 两种方式向CPU 内装在程序。

关于他的内存器结构,在匠人的博客里已有详细的介绍,大家去看就是了。

在这里我主要说说MSP430单片机的复位吧。

MSP430的复位信号有2种:上电复位信号(POR )、上电清除信号(PUC )。

还有能够触发POR 和PUC 的信号:5种来在看门狗,1种来自复位管脚,1种来自写FLASH 键值出现错误所产生的信号。

POR 信号只在2种情况下发生:(1)微处理上电;(2)RST/NMI 管脚上产生低电平时系统复位。

PUC 信号产生的条件:(1)POR 信号产生;(2)看门狗有效时,看门狗定时器溢出;(3)写看门狗定时器安全键值出现错误;(4)写FLASH 存储器安全键值出现错误。

MSP430单片机定时器学习笔记

MSP430单片机定时器学习笔记

MSP430单片机定时器学习笔记
msp430 定时器学习笔记
_BIS_SR(LPM2_bits + GIE) //进入LPM3 低功耗模式和开总中断允许
中断
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A(void)
{
}
TACTL timerA 控制寄存器
TAR timerA 计数器
CCTL0 捕获/比较控制寄存器0
CCRO 捕获/比寄存器0(具有最高中断优先级别,单独使用一个中断向量) CCTL1 捕获/比较寄存器1
CCR1 捕获/比较寄存器1
CCTL2 捕获/比较寄存器2
CCR2 捕获/比较寄存器2
TAIV 中断向量寄存器
其中,定时器,CCR2,CCR1 三者共用一个中断向量
TimerA 输出模式:
输出模式0 输出模式:输出信号OUTx 由每个捕获/比较模块的控制寄存器CCTLx 中的OUTx 位定义,并在写入该寄存器后立即更新。

最终位OUTx 直通。

输出模式1 置位模式:输出信号在TAR 等于CCRx 时置位,并保持置位到。

MSP430单片机系统时钟选择实验-改变LED灯闪烁频

MSP430单片机系统时钟选择实验-改变LED灯闪烁频
选择外部8m高频晶振作为mclk此时闪烁频率较快unsignedint循环do3按照iarmsp430项目编译与jtag仿真调试所讲述方法进行项目编译与jtag调试运行即可看到程序运行效果
MSP430单片机实践篇---MSP430单片机系统时钟选择实验-改变LED灯闪烁频率
一、学习要点:在上一节基础上改变MSP430单片机系统时钟,观察LED灯的闪烁频率。
#include<msp430x13x.h>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;//停止看门狗
P1DIR |= 0x20;//设P1.5为输出口
/ห้องสมุดไป่ตู้ BCSCTL1= 0x80;//分频电阻选择为0(此时闪烁频率较慢)
// BCSCTL1= 0x87;//分频电阻选择为7(此时闪烁频率较快)
//
//
//硬件电路:MSP430F135核心实验板-I型
//硬件连接:
//
//调试器:MSP430FET全系列JTAG仿真器
//调试软件:IAR Embedded Workbench Version:3.41A编译
//******************************************************************************
(2)将如下程序拷贝粘贴到main.c文件中。
//*******************************************************************************
// D13x Demo -在上一节基础上改变系统时钟,观察LED灯的闪烁频率

msp430 学习笔记 - 系统时钟

msp430 学习笔记 - 系统时钟
#endif
2.2. VLO 设置
使用超低功耗低频振荡器 VLO 可以很大程度地降低系统功耗, 下面的例子是设置 ACLK 为 VLO, MCLK 为 VLO 的 8 分频:
#include <msp430g2553.h>
3
msp430 学习笔记 - 系统时钟
//1延时 //#define CPU_F ((double)16000000) //cpu frequency16000000 #define CPU_F ((double)1630) //cpu frequency1630 //CPU 的实际 MCLK 大约为 13.05/8=1.63KHz #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0)) #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
6 SELM.0
5 DIVM.1
4 DIVM.0
3 SELS
2 DIVS.1
1 DIVS.0
0 DCOR
• SELM.0,SELM.1 选择 MCLK 时钟源。 • 0 : 时钟源为 DCOLCK (默认时钟源); • 1 : 时钟源为 DCOCLK ; • 2 : 时钟源为 LFXTlCLK ( 对于 MSP430F11/12X ), 时钟源为 XT2CLK ( 对于 MSP430F13/14/15/16X );
• XT2CLK 高频时钟源 ---- 存在于X13X、X14X、X15X、X16X、X43X、X44X等
• DCOCLK ( Digitally Controlled Oscillator ) 内部数字控制 RC 振荡器, 频率在0~16MHz

MSP430单片机系统时钟选择实验-改变LED灯闪烁频

MSP430单片机系统时钟选择实验-改变LED灯闪烁频
//调试软件:IAR Embedded Workbench Version:3.41A编译
//******************************************************************************
#include<msp430x13x.h>
void main(void)
// /|\| XIN|-
// | | |
// --|RST XOUT|-
// | |
// | P1.5|-->LED
//
//时间:2007年10月
//
//
//硬件电路:MSP430F135核心实验板-I型
Байду номын сангаас//硬件连接:
//
//调试器:MSP430FET全系列JTAG仿真器
{
WDTCTL = WDTPW + WDTHOLD;//停止看门狗
P1DIR |= 0x20;//设P1.5为输出口
// BCSCTL1= 0x80;//分频电阻选择为0(此时闪烁频率较慢)
// BCSCTL1= 0x87;//分频电阻选择为7(此时闪烁频率较快)
// BCSCTL2= 0xc0;//选择外部32768低频晶振作为MCLK(此时闪烁频率极慢)
// D13x Demo -在上一节基础上改变系统时钟,观察LED灯的闪烁频率
//
//描述:通过改变系统时钟,来改变闪烁频率;通过P1异或来取反P1.5;软件循环延时
// ACLK= n/a, MCLK= SMCLK= default DCO ~ 800k
//
// MSP430F13x
// -----------------

MSP430学习笔记

MSP430学习笔记

图和下方CCR2的框图是一样的。此处省略不写。在CCR中, 左上角为一个捕获源选择寄存器。可以从CCI2A、CCI2B、 GND或者VCC选择捕获源,选择捕获源后有一个选择捕获模 式寄存器Capture Mode,然后过来有一个捕获溢出状态寄 存器COV,SCS同步/异步捕获模式选择位,然后连接到捕获 比较寄存器。下方为模式选择寄存器,具体设置可以查看相 应的寄存器设置。 这里仅是大概介绍一下Timer0的寄存器,具体的设置使用还 看参考相应的寄存器并结合例程慢慢学习理解。
//以下为参考处理程序,不使用的端口应当删除其对于中断源的判断。 if((P1IFG&BIT0) == BIT0) { P2OUT&=~BIT0; //处理P1IN.0中断 P1IFG &= ~BIT0; //清除中断标志 //以下填充用户代码 } else if((P1IFG&BIT1) ==BIT1) { P2OUT&=~BIT1; //处理P1IN.1中断 P1IFG &= ~BIT1; //清除中断标志 //以下填充用户代码 } else if((P1IFG&BIT2) ==BIT2) { P2OUT&=~BIT2; //处理P1IN.2中断 P1IFG &= ~BIT2; //清除中断标志 //以下填充用户代码 } else if((P1IFG&BIT3) ==BIT3) { //处理P1IN.3中断 P1IFG &= ~BIT3; //清除中断标志 //以下填充用户代码 } else if((P1IFG&BIT4) ==BIT4) { P2OUT&=~BIT4; //处理P1IN.4中断 P1IFG &= ~BIT4; //清除中断标志 //以下填充用户代码 } else if((P1IFG&BIT5) ==BIT5) { //处理P1IN.5中断 P1IFG &= ~BIT5; //清除中断标志 //以下填充用户代码 } else if((P1IFG&BIT6) ==BIT6) { //处理P1IN.6中断 P1IFG &= ~BIT6; //清除中断标志 //以下填充用户代码

msp430时钟配置

msp430时钟配置

近期要参加电子设计大赛,我们的微处理器选择了msp430(高性能不说,关键很多系列的芯片可到TI官网免费申请到),本人负责软件,之前并没有深入接触过msp430系列的单片机,但还稍稍有点51的底子,现将本人学习430的一点小心得与大家分享~********************************基于MSP430F169******************************在MSP430单片机中,一个时钟周期 = MCLK晶振的倒数。

如果MCLK是8MHz,则一个时钟周期为1/8us。

MSP430单片机的时钟模块主要包括:三个时钟:辅助时钟ACLK 、主时钟MCLK 、子系统时钟SMCLK三个振荡器:低频时钟源LFXT1 (一般外接32768HZ的手表晶振)、高频时钟源XT2(一般外接8MHZ晶振)、数字控制RC振荡器(系统默认是800KHZ)而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这五个寄存器来确定,具体的功能如下所示:(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,频率的微调(2)BCSCTL1(ACLK): Basic Clock System Control 1,地址为58H,初始值为84H// 7 6 5 4 3 2 1 0// XT2OFF XTS DIVA1 DIVA0 XT5V RSEL2 RSEL1 RSEL0//// RSEL2~RSEL0: 选择某个内部电阻以决定标称频率(0最低,7最高)// XT5V: 1,该比特未用,必须选择复位// DIVA0~DIVA1: 选择ACLK的分频系数。

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

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

关于(单⽚机)msp430的时钟资料msp430f5419/38学习笔记之时钟系统(2011-11-30 10:41:30)分类: msp430标签:msp430f541xmsp430f543xucs时钟系统注: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 功能。

MSP430教程9:MSP430单片机时钟模块

MSP430教程9:MSP430单片机时钟模块

MSP430的时钟模块由低速晶体振荡器LFXT1、高速晶体振荡器XT2(MSP430 X11X,MSP430X12X没有)、数字控制振荡器DCO、琐相环FLL(MSP430X16X以上包括)和增强型琐相环FLL+等部件组成。

MSP430X1XX基本时钟模块有三个时钟输入源LFXT1CLK(低速32768Hz,高速4 50Hz到8MHz)、XT2CLK(450Hz到8MHz)、DCOCLK,提供以下三种时钟信号1.ACLK辅助时钟:由LFXT1CLK信号经1、2、4、8分频后得到,可以由软件选作各个外围模块的时钟信号,一般用于低速外设。

2.MCLK系统主时钟:MCLK可由软件选择来自LFXT1CLK、XT2CLK、DCOCLK三者之一,然后经1、2、4、8分频得到,MCLK主要用于CPU和系统。

3.SMCLK子系统时钟:可由软件选自LFXT1CLK和DCOCLK(MSP430X11X、MSP 430X12X系列,因其不含XT2),或XT2CLK和DCOCLK,然后经1、2、4、8分频得到。

SMCLK主要用于高速外围模块。

系统频率与系统的工作电压密切相关(MSP430工作电压1.8V~3.6V,编程电压2.7V~3.6V),所以不同的工作电压,需要选择不同的系统时钟。

当两个外部振荡器失效时,DCO振荡器会自动被选作MCLK的时钟源。

PUC信号之后,DCOCL K被自动选作MCLK和SMCLK的时钟信号,LFXT1CLK被选作ACLK的时钟信号,根据需要MCLK和SMCLK的时钟源可以另外设置。

控制时钟模块的三个寄存器为DCO控制寄存器DCOCTL、基本时钟系统控制寄存器1BCSCTL1、基本时钟控制寄存器2BCSCTL21.DCOCTL7 6 5 4 3 2 1 0 DCO2 DCO1 DCO0 MOD4 MOD3 MOD2 MOD1 MOD0DCO.0~DCO.2 定义8种频率之一(DCO=0~DCO=8),可分段调节DCOCLK 频率,相领两种频率相差10%。

MSP430 时钟

MSP430 时钟

MSP430单片机的时钟结构是其一大特点,像配置IO口一样,对MSP430单片机的时钟配置同样由很多的寄存器来完成。

我们引入官方的一张图片来描述MSP430单片机的时钟结构:让Cloud为大家解释一下这张图,MCLK是MSP430单片机的主系统时钟,用作CPU的时钟源,它由两个入口可选择,一个是来自上面的选择器,还有一个来自下面的DCO。

DCO翻译过来就是数字控制的RC振荡器,也就是一个可以通过编程来调节其震荡频率的RC振荡器,范围是0-16MHz。

MCLK上面是ACLK,用于外围慢速设备的时钟,MCLK下面是SMCLK,也叫子系统时钟,用于外围快速设备的时钟。

图片中蓝色的文字向我们说明了当MSP430上电后主系统时钟和子系统时钟都是由这个DCO来提供的,默认为1.1MHz (可以通过进一步修改来改变频率)。

而ACLK默认由外部的晶振来提供(LFXT1其实就是我们电路板上可焊接的32.768KHz的晶振,至于为什么是32768大家可以百度,这里并不关心)。

上面还有一个叫做VLO的超低功耗/低频振荡器,用户也可以通过设置来使用它。

一、和以往一样,我们先了解一下MSP430的时钟相关寄存器:1、DCOCTL:DCO控制寄存器这个寄存器用来定义DCO的频率;2、BCSCTL1:基本时钟系统控制寄存器1这个寄存器可以控制XT2的开启关闭,LFXT1的工作模式,ACLK的分频系数,还有DCO振荡器的内部电阻阻值(可以用以调节频率);3、BCSCTL2:基本时钟系统控制寄存器2这个寄存器用来定义MCLK、SMCLK的时钟来源和分频系数,另外还可以定义DCO 的电阻来自内部还是外部;4、BCSCTL3:基本时钟系统控制寄存器3这个寄存器用来定义LFXT1和XT2的工作模式还有外部晶振的负载电容以及LFXT1和XT2振荡器的错误标志(注意:由于G系列单片机没有XT2所以大家不必关心XT2)。

另外还有两个是中断寄存器,但是也和时钟配置相关,在这里我们也拿出几位来学习,在下面的详细说明中就不再加入这两个寄存器的说明了:5、IE1:中断使能寄存器1这个寄存器中第1位OFIE(晶振故障中断使能寄存器)用来允许或禁止晶体故障中断0-禁止中断1-使能中断6、IFG1:中断标志寄存器1这个寄存器中第1位OFIFG(晶振故障中断标志寄存器)用来指示是否有晶振故障的中断产生0-没有发生中断1-有中断事件发生二、下面详细说明每个寄存器的相关配置:1、DCOCTL寄存器配置:DCOCTL DCO控制寄存器76543210 DCO.2DCO.1DCO.0MOD.4MOD.3MOD.2MOD.1MOD.0·7~5-DCO:用来定义DCO的8中不同频率,相邻两种频率相差10%·4~0-MOD:定义在32个DCO周期中插入的Fdco+1周期个数,而在下的DCO周期中为Fdco周期,控制改换DCO和DCO+1选择的两种频率。

S.D.Lu的MSP430入门学习笔记(4):时钟选择(2)VLO、LFXT1和XT2

S.D.Lu的MSP430入门学习笔记(4):时钟选择(2)VLO、LFXT1和XT2

S.D.Lu的MSP430入门学习笔记(4):时钟选择(2)VLO、LFXT1和XT2MSP430最多可提供4种时钟源:DCO、VLO、LFXT1和XT2,有些器件不包含XT2或LFXT1。

VLO是一个内部超低功耗、低频率振荡器,上图中的时钟源1,其频率为12KHz。

其使用方法请参考TI官方例程“msp430g2xx2_1_vlo.c”,在此不作赘述。

LFXT1是外部时钟源,它有LF和HF两种模式,分别支持外部低频和高频时钟。

XT2是外部高频时钟源,支持0.4~16MHz高频时钟。

(注:G2xx2系列没有XT2,G2xx2系列LFXT1不支持HF模式。

)MSP430的主时钟、子时钟和辅助时钟,可以分别通过相应的寄存器控制位选择4种时钟源中的一种作为其来源。

之后还可以通过分频器分频,得到想要的时钟频率。

主时钟是CPU运行的时钟源,子时钟和辅助时钟是各个片内外设的时钟源。

在MSP430系统中,有时为了降低功耗会关闭CPU和一些外设,同时要求一些外设继续工作。

和时钟模块相关的寄存器只有6个,时钟配置的过程就是设置这些寄存器。

具体各寄存器的各个位的功能请查看《MSP430x2xx系列用户指南》(中文版)第五章。

时钟的切换一次PUC之后,基本时钟模块将DCOCLK用于MCLK。

如果需要将MCLK时钟源改为LFXT1或XT2。

把MCLK的源从DCO时钟转换成晶振时钟(LFXT1CLK 或XT2CLK)的顺序是:1. 打开晶体振荡器并选择合适的模式2. 清零OFIFG标志3. 等待至少50uS4. 测试OFIFG,并重复2至4的步骤,直到OFIFG保持被清零。

作者:S.D.Lu深圳2014-3-25。

S.D.Lu的MSP430入门学习笔记(2):GPIO

S.D.Lu的MSP430入门学习笔记(2):GPIO

本实验所用的硬件是TI的MSP-EXP430G2 LaunchPad 试验板。

原理图如下。

软件在一篇的基础上进行修改。

将main函数改为如下内容:编译完成后,点击下载调试按钮,将代码下载到实验板上。

P1.0和P1.6上的LED轮流点亮和熄灭。

代码解释:9~11行,对IO端口进行设置时,用到了BITx。

这是头文件中定义的,用于位操作的宏定义,比较方便的操作各个IO端口。

因为MSP430的IO是双向的,所以在使用之前需设置其方向。

15行,定义了一个变量i,在IAR环境下允许用户在程序段中间定义变量。

17行,将P1.0和P1.6的输出和(BIT0 + BIT6)进行异或,其结果相当于将P1.0和P1.6输出进行取反。

GPIO的一般操作如果不涉及片内外设,对GPIO的操作只涉及4个寄存器:PxDIR、PxOUT、PxIN、PxREN。

PxDIR用于设置GPIO的方向,PxOUT用于设置输出值,PxIN用于读取输入值。

PxREN用于GPIO内置的上拉/下拉电阻。

当PxREN.bit=1,上拉/下拉电阻被使能,PxOUT.bit=0为下拉,=1为上拉。

具体如何操作,可参考TI官方例程“msp430g2xx2_P1_01.c”、“msp430g2xx2_P1_03.c”两个程序运行的结果都是:P1.0的输出跟随P1.4的输入电平变化。

对于不使用的IO应避免设置成悬空输入。

P1、P2口的中断MSP430的P1、P2口每一个引脚都有中断的功能,P1的所有引脚的中断共用一个中断向量,P2口与P1口类似。

P1、P2口中断功能相关的寄存器有3个,PxIFG、PxIE和PxIES。

PxIFG是中断标志寄存器,用于指示哪一个IO上产生了中断。

PxIE是中断使能寄存器,PxIES 是中断边沿选择寄存器。

各个寄存器取值所对应的功能请参考《用户指南》。

P1、P2口中断功能的使用可参考TI官方例程“msp430g2xx2_P1_02.c”、“msp430g2xx2_P1_04.c”,这两个例程分别是在TI官方例程“msp430g2xx2_P1_01.c”、“msp430g2xx2_P1_03.c”基础上修改的,将IO输入识别功能用中断功能来实现。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

S.D.Lu的MSP430入门学习笔记(4):
时钟选择(2)VLO、LFXT1和XT2
MSP430最多可提供4种时钟源:DCO、VLO、LFXT1和XT2,有些器件不包含XT2或LFXT1。

VLO是一个内部超低功耗、低频率振荡器,上图中的时钟源1,其频率为12KHz。

其使用方法请参考TI官方例程“msp430g2xx2_1_vlo.c”,在此不作赘述。

LFXT1是外部时钟源,它有LF和HF两种模式,分别支持外部低频和高频时钟。

XT2是外部高频时钟源,支持0.4~16MHz高频时钟。

(注:G2xx2系列没有XT2,G2xx2系列LFXT1不支持HF模式。


MSP430的主时钟、子时钟和辅助时钟,可以分别通过相应的寄存器控制位选择4种时钟源中的一种作为其来源。

之后还可以通过分频器分频,得到想要的时钟频率。

主时钟是CPU运行的时钟源,子时钟和辅助时钟是各个片内外设的时钟源。

在MSP430系统中,有时为了降低功耗会关闭CPU和一些外设,同时要求一些外设继续工作。

和时钟模块相关的寄存器只有6个,时钟配置的过程就是设置这些寄存器。

具体各寄存器的各个位的功能请查看《MSP430x2xx系列用户指南》(中文版)第五章。

时钟的切换
一次PUC之后,基本时钟模块将DCOCLK用于MCLK。

如果需要将MCLK时钟源改为LFXT1或XT2。

把MCLK的源从DCO时钟转换成晶振时钟(LFXT1CLK 或XT2CLK)的顺序是:
1. 打开晶体振荡器并选择合适的模式
2. 清零OFIFG标志
3. 等待至少50uS
4. 测试OFIFG,并重复2至4的步骤,直到OFIFG保持被清零。

作者:S.D.Lu
深圳
2014-3-25。

相关文档
最新文档