MSP430G2553学习笔记04-时钟系统
MSP430G2553手记[寄存器详解]
![MSP430G2553手记[寄存器详解]](https://img.taocdn.com/s3/m/fc9ee1f6c8d376eeaeaa31b3.png)
ADC10CTL0; ADC10 Control Register 0SREF_x :基准电压ADC10SHT_x :采样时间(4,8,16,64)ADC10SR :设置采样频率REFOUT :参考输出REFBUST :0:连续参考信号1:采样和转换时候有参考MSC :多次采样REF2_5V :1_5或者2_5REFON :参考电压设置ADC10ON :开ADADC10IE :开中断ADC10IFG :中断标志ENC :转换使能ADC10SC :开始转换ADC10CTL1; ADC10 Control Register 1INCH_x :通道选择SHS_x :ADC10DF :0:二进制数据1:补码数据ISSH :1:翻转信号ADC10DIV_x :分频1-8ADC10SSEL_x :时钟选择ADC10OSC:ACLK:MCLK:SMCLKCONSEQ_x :转换模式ADC10BUSY :忙检测ADC10AE0, Analog (Input) Enable Control Register 0模拟启用0ADC10AE0_x :X模拟输入引脚使能ADC10MEM, Conversion-Memory Register, Binary Format内存ADC10DTC0, Data Transfer Control Register 0(8) ADC 数据传.控制寄存器1ADC10TB :0:一个传输模块1:两个传输模块(bit3)ADC10CT :0:有数据采集是停止1:数据传输继续,除非ADC10CT清除或者ADC10SA在写ADC10B1 :0:模块2失败1:模块1失败ADC10FETCH :为1ADC10DTC1, Data Transfer Control Register 1(8) ADC 数据传.控制寄存器1定义采样次数:00H-FFH 次,最高16次;ADC10SA, Start Address Register for Data TransferTACTL, Timer_A Control Register (bit15---bit10 unused)TASSEL_x : bit9--bit8 时钟源选择:TACLK ,ACLK,SMCLK,INCLKID_x :bit7--bit6 设置分频1/2/4/8MC_x :bit5--bit4 设置工作模式stop,up,continuous,up/downTACLR :bit2 置位计数器TAR清零TAIE :bit1 定时器A1中断使能TAIFG :bit0 定时器中断标志TAR, Timer_A Register计数器TARTACCRx, Timer_A Capture/Compare Register x比较/捕获模式寄存器。
MSP430系统时钟与低功耗讲义

低频振荡器VLO
内部集成了一个低频振荡器VLO,值是12kHz,频率受温度和 供电电压影响(范围4kHz~20kHz)。 一般用于对频率精度要求不高的场合。
MSP430系统时钟与低功耗
MSP430G2553引脚图
MSP430系统时钟与低功耗
举例
例1:将MSP430G2553的时钟设置为MCLK和SMCLK,且均为8MHz ,ACLK设为32.768kHz。(芯片外接32.768kHz手表晶振) DCOCTL=CALDCO_8MHZ; BCSCTL1=CALBC1_8MHZ;
void main(void) {
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗定时器
GPIO_Init();
//初始化GPIO
_enable_interrupts();
//等同_EINT,使能总中断
while(1)
{
__delay_cycles(1000000); //与CPU时钟相关的长延时
例4:将MSP430G2553的时钟设置:MCLK为4MHZ,SMCLK为2MHZ, ACLK设为32.768kHz.(芯片外接32.768kHz手表晶振) DCOCTL=CALDCO_8MHZ; BCSCTL1=CALBC1_8MHZ; BCSCTL2|=DIVM_1+DIVS_2;
MSP430系统时钟与低功耗
MSP430系统时钟与低功耗
P1OUT ^= BIT0;
//LED亮灭状态改变
P1OUT ^= BIT6;
//LED亮灭状态改变
}
}
MSP430系统时钟与低功耗
void GPIO_Init()
电设工作小结之 MSP430G2553学习笔记―2

电设工作小结之 MSP430G2553学习笔记―2电设工作小结之-msp430g2553学习笔记―2电设工作小结之――msp430g2553学习笔记――2接通一篇:(四),adc101,adc10就是十位的ad,在g2553上加a0~a7八个可以外接的ad地下通道,a10收到片上的温度传感器上,其他的地下通道都直奔在内部的vcc或gnd上。
因为就是10为的ad所以计算公式如下:2,adc参考电压的选择:adc的参考电压可以为:由adc掌控寄存器0adc10ctl0掌控。
但是必须提升adc的精度的话,尽量不要用内部的参照电压,最出色外接一个比较稳定的电压做为参照电压,因为内部的产生的参照电压不是特别平衡或精度不是特别的高。
比如我在采用时碰到的情况如下:vref设为2.5v但实际的值大概为2.475v,选择vccvss作为参考,用电压表测得大概为3.58v还是不小的偏差的。
另外,在有可能的情况下,尽量使用很大的vr+和vr-,以增大纹波对取样结果的影响。
3,adc10的取样方式存有:单通道单次取样,单通道多次取样,多通道单次取样,多通道多次取样。
4,dtc:因为adc10只有一个采样结果存储寄存器adc10mem,所以除了在单通道单次采样的模式下,其他的三个模式都必须使用dct,否则转换结果会不停地被新的结果给覆盖。
dtc是转换结果传送控制,也就是转换结果可以不用cpu的干预,就可以自动地存储在指定的存储空间内。
使用这种方式转换速度快,访问方便,适用于高速采样模式中。
dtc的使用可以从下面的例子中很容易看明白:#include#include\uchars1[]={\uchars2[]={\voidadc_init(){adc10ctl1=conseq_3+inch_1;//2通道多次转换,最大转换通道为a1adc10ctl0=adc10sht_2+msc+adc10on+adc10ie;//adc10on,interruptenabl参照电压选默认值vcc和vss//采样保持时间为16xadc10clks,adc内核开,中断使能msc多次转换选择开//如果msc置位,则第一次开始转换时需要触发源触发一次,以后的转换会自动进行中断使能//采用dtc时,当一个块传输完结,产生中断//数据传送控制寄存器0adc10dtc0设置为默认模式:单传送块模式,单块传送完停止adc10dtc1=0x04;//数据传送控制寄存器14conversions定义在每块的传送数目一共采样4次所以单块传送4次//以后就暂停了传输因为就是两地下通道的,所以就是每个地下通道取样数据传输2次adc10ae0|=bit0+bit1;//p1.0p1.1adcoptionselect使能模拟输入脚a0a1//不晓得为什么,当p10p11都悬空时,取样值相同,用电压表测得悬空电压相同,但是当都接通取样源的时候,//取样就是相同的}voidmain(void){uintadc_sample[8]={0};//存储adc序列取样结果wdtctl=wdtpw+wdthold;bcsctl1=calbc1_12mhz;//设定cpu时钟dco频率为12mhzdcoctl=caldco_12mhz;p2dir|=bit3+bit4;//液晶的两条线init_lcd();adc_init();wr_string(0,0,s1);wr_string(0,3,s2);for(;;){adc10ctl0&=~enc;//adc不使能够其实这句话可以放到紧接着cpu唤起之后的,因为cpu唤起了,表明我们想的//转换数据传送完成了,如果adc继续转换,那么转换结果也不再传输,是无用的。
G2553时钟设置

时钟操作模式时钟源:1、ACLK:系统辅助时钟,来自 LFXT1CLK 为32768HZ。
2、MCLK:系统主时钟,有以下5种选择:1、32768HZ,来自ACLK。
2、1MHZ: BCSCTL1 = CALBC1_1MHZ;DCOCTL = CALDCO_1MHZ;3、8MHZ: BCSCTL1 = CALBC1_8MHZ;DCOCTL = CALDCO_8MHZ;4、12MHZ: BCSCTL1 = CALBC1_12MHZ;DCOCTL = CALDCO_12MHZ;5、16MHZ: BCSCTL1 = CALBC1_16MHZ;DCOCTL = CALDCO_16MHZ;3、SMCLK:子系统时钟,一般为16MHZ。
MSP430具有一种运行模式及5种可利用软件来选择的低功耗操作模式。
一个中断事件能够将器件从任一低功耗模式唤醒、处理请求、并在接收到来自中断程序的返回信号时恢复至低功耗模式。
以下6种操作模式可利用软件来配置:•激活模式(AM)–所有时钟处于激活状态•低功耗模式0 (LPM0)–CPU被禁用–ACLK和SMCLK仍然有效,MCLK被禁用•低功耗模式1 (LPM1)–CPU被禁用–ACLK和SMCLK仍然有效,MCLK被禁用–如果DCO不是在激活模式下被使用,则DCO的dc生成器被禁用•低功耗模式2 (LPM2)–CPU被禁用–MCLK和SMCLK被禁用–DCO的dc生成器保持启用–ACLK保持激活•低功耗模式3 (LPM3)–CPU被禁用–MCLK和SMCLK被禁用–DCO的dc生成器保持启用–ACLK保持激活•低功耗模式 4(LPM4)–CPU被禁用–ACLK被禁用–MCLK和SMCLK被禁用–DCO的dc生成器保持启用–晶体振荡器被停止时钟结构图CPU。
MSP430系统实时时钟RTC学习日志

MSP430系统实时时钟RTC学习日志读取实时时钟:1、RTCRDY 为0 时,不能取读取实时时钟RT0PS 源于ACLK,为了实时时钟日历的正确的运行,ACLK 必须是32768Hz。
(易出错)定时:一、每小时闹一次:每一小时的15 分钟闹一次:1、将RTCAMIN 设置成15;2、设置RTCAMIN 的AE 位和清除闹钟寄存器的其它所有AE 位3、AF 会在:00:14:59 到00:15:00、01:14:59 到01:15:00、02:14:59 到02:15:00 等等时刻被置位。
二、在每天04:00:00 时刻闹:1、RTCAHOUR 位置位成4;2、设置RTCHOUR 的AE 位和复位闹钟寄存器的所有其它AE 位3、AF 就会在03:59:59 到04:00:00 时刻被置位。
三、在每天06:30:00 时刻闹:1、将RTCAHOUR 设置成6,将RTCAMIN 设置成30。
2、设置RTCAHOUR 和RTCAMIN 的AE 位,即可使能闹钟3、AF 位将会在每一个06:29:59 到06:30:00 的过渡时刻被置位四、在每周二06:30:00 时刻闹:1、RTCADOW 位设置成2,RTCAHOUR 设置成6,RTCAMIN 将要被设置成30。
2、设置RTCADOW、RTCAHOUR 和RTCAMIN 的AE 位,闹钟即被使能。
3、AF 位将会在RTCDOW 位从1 到2 的过渡后和06:29:59 到06:30:00 的过渡时刻被置位。
五、在每月第五天的06:30:00 时刻闹:1、RTCADAY 位将要设置成5,RTCAHOUR 位将要被设置成6,RTCAMIN 位将要被设置成30。
2、设置RTCADAY 位、RTCAHOUR 位和RTCAMIN 位的AE 位,闹钟即被使能。
3、AF 位将要在06:29:59 到06:30:00 的过渡时刻和RTCADAY 等于5 的时刻被置位。
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 计算。
MSP430G2553学习笔记(数据手册)

MSP430G2553学习笔记(数据手册)MSP430G2553性能参数(DIP—20) 工作电压范围:1.8~3。
6V。
5种低功耗模式。
16位的RISC结构,62。
5ns指令周期.超低功耗:运行模式—230µA;待机模式—0.5µA;关闭模式—0.1µA;可以在不到1µs的时间里超快速地从待机模式唤醒.基本时钟模块配置:具有四种校准频率并高达16MHz的内部频率;内部超低功耗LF振荡器;32。
768KHz晶体;外部数字时钟源。
两个16 位Timer_A,分别具有三个捕获/比较寄存器。
用于模拟信号比较功能或者斜率模数(A/D)转换的片载比较器。
带内部基准、采样与保持以及自动扫描功能的10位200—ksps 模数(A/D)转换器。
16KB闪存,512B的RAM。
16个I/O口。
注意:MSP430G2553无P3口!MSP430G2553的时钟基本时钟系统的寄存器DCOCTL—DCO控制寄存器DCOxDCO频率选择控制1MODxDCO频率校正选择,通常令MODx=0注意:在MSP430G2553上电复位后,默认RSEL=7,DCO=3,通过数据手册查得DCO频率大概在0.8~1。
5MHz之间。
BCSCTL1—基本时钟控制寄存器1XT2OFF不用管,因为MSP430G2553内部没有XT2提供的HF时钟XTS不用管,默认复位后的0值即可DIV Ax设置ACLK的分频数00 /101 /210 /411 /8RSELxDCO频率选择控制2BCSCTL2-基本时钟控制寄存器2SELMxMCLK的选择控制位00 DCOCLK01 DCOCLK10 LFXT1CLK或者VLOCLK11 LFXT1CLK或者VLOCLK DIVMx设置MCLK的分频数00 /101 /210 /411 /8SELSSMCLK的选择控制位0 DCOCLK1 LFXT1CLK或者VLOCLK DIVSx设置SMCLK的分频数00 /101 /210 /411 /8DCORDCO直流发生电阻选择,此位一般设00 内部电阻1 外部电阻BCSCTL3—基本时钟控制寄存器3XT2Sx不用管LFXT1Sx00 LFXT1选为32。
基本时钟模块_MSP430G2553

基本时钟模块_MSP430G2553G2xxx系列DCO校准数据(校正寄存器)1MHz:CALBC1_1MHZCALDCO_1MHZ8MHz:CALBC1_8MHZCALDCO_8MHZ12MHz:CALBC1_12MHZCALDCO_12MHZ16MHz:CALBC1_16MHZCALDCO_16MHZ例:设置DCO频率为1MHzif(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 0DCOx MODxrw-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无效不可用。
2、BCSCTL1:基本时钟系统控制寄存器17 6 5 4 3 2 1 0 XT2OFF XTS(1)(2)DIVAx RSELxrw-(1) rw-(0) rw-(0) rw-(0) rw-0 rw-1 rw-1 rw-1 XT2OFF:第二晶振XT2(可选高频晶振)关闭控制位。
msp430 学习笔记 - 系统时钟

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
MSP430G2553手册解读

MSP430G2XX外设
• 欠压复位
– 可在上电和断电期间提供正确的复位信号 – 功耗包含于MCU最低功耗时(LPM4)所消耗电流之中
• 串行通信
– 支持 I2C 和 SPI 的 USI – 支持 I2C、SPI 以及 UART 的 USCI
• Comparator_A+
– – – – 可设定反相和同相输入 可选的 RC 输出滤波器 可直接输出至 Timer_A2 捕获输入 具有中断能力
LaunchPad 开发板上各部分介绍
USB 仿真器接口
片上仿真器模块 6针 eZ430 连接器 外置晶体接口 芯片引出脚 MSP430器件和插座
P1.3 按钮
LED和跳线 P1.0 & P1.6
电源连接器 复位按钮
MSP430系列功能框图
MSP430G2XX 无Port3
低压、 电源复 位保护
VLO Min. Puls Filter ACLK Peripherals
32768Hz
OSC_Fault
辅助时钟
MCLK CPU
主系统时钟
16MHz Biblioteka CO SMCLK Peripherals
子系统时钟
上电后: MCLK 和 SMCLK 由DCOCLK 提 供(约1.1 MHz) ACLK 由 LFXT1CLK 提供(LF 模式,6pF内部负载电容)
• 。此外,其还可提供板上Flash 仿真工具, 以直接连接至PC 轻松进行编程、调试和评 估。 • MSP-EXP430G2 采用IAR Embedded Workbench 集成开发环境(IDE) 或Code Composer Studio (CCS)编写、下载和调试 应用。 • 可提供板上Flash 仿真工具,以直接连接至 PC 轻松进行编程、调试和评估。
我的TLC2543学习笔记——基于msp430g2553单片机

我的TLC2543学习笔记——基于msp430g2553单⽚机还是贴不了图⽚我的TLC2543学习笔记Created on: 2012-9-8Author: zhang bin学习笔记for msp430g2553redesigned by zhang bin2012-09-08versions:12_09_01All Rights ReservedTLC2543具有4线制串⾏接⼝,分别为⽚选端(CS),串⾏时钟输⼊端(I/O CLOCK),串⾏数据输⼊端(DATA IN)和串⾏数据输出端(DATA OUT)(转换结束脚EOC可以不接)。
它可以直接与SPI器件进⾏连接,不需要其他外部逻辑。
同时,它还在⾼达4MHz的串⾏速率下与主机进⾏通信。
TLC2543的特点及引脚TLC2543是TI的12 bit串⾏A/D转换器,11个模拟输⼊通道。
使⽤开关电容逐次逼近技术完成,A/D转换过程.由于是串⾏输⼊结构,能够MCU的I/O资源.其特点有:1)12 bit分辨率A/D转换器;2)在⼯作温度范围内10us转换时间;3)11个模拟输⼊通道;4)3路内置⾃测试⽅式;5)采样率为66 kb/s;6)线性误差+1LSB(max);7)有转换结束(EOC)输出;8)具有单、双极性输出;9)可编程的MSB或LSB前导;10)可编程的输出数据长度.��� 12-Bit-Resolution A/D Converter��� 10-µs Conversion Time Over OperatingTemperature��� 11 Analog Input Channels��� 3 Built-In Self-Test Modes��� Inherent Sample-and-Hold Function��� Linearity Error . . . ±1 LSB Max��� On-Chip System Clock��� End-of-Conversion Output��� Unipolar or Bipolar Output Operation(Signed Binary With Respect to 1/2 theApplied Voltage Reference)��� Programmable MSB or LSB First��� Programmable Power Down��� Programmable Output Data Length��� CMOS Technology��� Application Report Available我⽤的tlc2543是直插的,引脚图如下:各引脚的详细说明如下:引脚号名称I/O说明1~9,11,12AIN0~AIN10I模拟量输⼊端。
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分频作为其信号源。
MSP430编程(一)—— 时钟配置

MSP430编程(一)——时钟配置geweilin 2010.03.13笔者认为这篇文章只适合msp430的初学者,如果你已经熟悉430编程,那么这篇文章对你的用途不大。
msp430的时钟非常灵活,这篇文章将以msp430x1xx为例主要介绍器件的基本时钟模块(Basic Clock Module,以下称:时基模块)及其配置方法(以下所述均是针对msp430x1xx系列,其它系列读者可以参考相应的User’s guide)。
(一) 时基模块简介msp430的时基模块支持低功耗和超低功耗。
使用3个内部时钟信号,用户可以在性能和低功耗之间找到最佳的平衡点。
这个时基模块可以被配置为不使用任何外部元件、使用一个电阻、使用一个或两个晶体振荡器或陶瓷振荡器,所有这些完全可有软件控制。
时基模块包括2个或3个时钟源:□ LFXT1CLK: 低频/高频振荡器,既可以使用低频的32768HZ的手表晶体,也可以使用450KHZ- 8MHZ的标准的晶体振荡器或者陶瓷振荡器。
□ XT2CLK: 可选的高频振荡器,可以使用标准的晶体振荡器或者陶瓷振荡器,也可以使用450KHZ- 8MHZ 的外部时钟源。
□ DCOCLK: 内部RC型数控振荡器。
可以从时基模块获得3个时钟信号:□ ACLK: 辅助时钟,ACLK由LFXT1CLK时钟源经过1、2、4或者8分频得到,他可由软件选择配置到某个特定的外设上。
□ MCLK: 系统主时钟,MCLK可由软件选择LFXT1CLK、XT2CLK(如果可用的话)、或者DCOCLK作为时钟源,经过1、2、4或者8分频后得到,它被用来供CPU和系统使用。
□ SMCLK: 系统子时钟,SMCLK可由软件选择LFXT1CLK、XT2CLK(如果有的话)、或者DCOCLK作为时钟源,经过1、2、4或者8分频后得到,他可由软件选择供某个外设使用。
时基模块的框图如图1所示:注意:对于msp430x11x和msp430x12xx系列的单片机没有XT2振荡器,而是由LFXT1CLK代替XT2CLK。
事无巨细——MSP430学习之时钟

概述:本实验的目的是了解用于执行对MSP430 Value Line设备的初始化过程的步骤。
在这个练习中,您将编写初始化代码,并运行该设备使用各种时钟资源。
1、写初始化代码2、运行CPU的MCLK的来源方式:VLO 、32768晶体、DCO3、主体程序部分4、观察LED闪光灯速度MSP430时钟:1、在MSP430单片机中一共有三个时钟源:一个LFXT1CLK,为低速/高速晶振源,通常接32.768khz,也可以接(400khz~8Mhz);一个为XT2CLK,外接标准高速晶振,通常是接8Mhz,也可以接(400khz~8Mhz);还有一个叫DCOCLK,为内部晶振,有RC震荡回路构成。
2、在MSP430单片机内部一共有三个时钟系统:一个为ACLK,通常由LFXT1CLK作为时钟源,可以通过软件控制改时钟的分频系数树;一个为MCLK(Main CLK)一听就知道是主时钟单元,为系统内核提供时钟,它可以通过软件从三个时钟源选择;还有一个为SMCLK,称作辅助主时钟,也是可以由软件选择时钟源。
Basic Clock Module Registers(基础时钟寄存器)DCO control register DCOCTLBasic clock system control 1 BCSCTL1Basic clock system control 2 BCSCTL2Basic clock system control 3 BCSCTL3SFR interrupt enable register 1 IE1SFR interrupt flag register 1 IFG13、MSP430的时钟设置包括3个寄存器,DCOCTL、BCSCTL1、BCSCTL2、BCSCTL3DCOCTL,DCO控制寄存器,地址为56H,初始值为60HDCO0~DCO2: DCO Select Bit,定义了8种频率之一,而频率由注入直流发生器的电流定义。
MSP430G2553学习笔记

第一版MSP430G2553学习笔记Created on: 2012-8-18Author: zhang bin学习笔记for msp430g2553redesigned by zhang bin2012-08-18versions:12_08_01一,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之间,这样会产生击穿电流。
MSP430G2553寄存器资料讲解

MSP430G2553 学习笔记常用赋值运算符:清除:&=~ , 置位:|= , 测试:&= , 取反:A=看门狗模块:WDT (看门狗)IS1,IS0选择看门狗定时器的定时输出, T 是WDTCNT 的输入时钟源周期0 T x 2(15) 1 T x 2(13) 2 T x 2(9) 3T x 2(6)SSEL选择WDTCNT 的时钟源 0 SMCLK 1ACLKIS0、IS1、SSEL 可确定 WDT 定时时间, WDT 只能定时8种和时钟源相关的时间CNTCL当该位为1时,清除WDTCNT TMSEL工作模式选择看门狗模式1定时器模式NMI选择RST/NMI 引脚功能,在 PUC 后被复位0 RST/NMI引脚为复位端NMIES 选择中断的边沿触发方式0 上升沿触发NMI中断1 下降沿触发NMI中断HOLD 停止看门狗定时器工作,降低功耗0 WDT功能激活1 时钟禁止输入,计数停止WDT (看门狗)配置语句WDTCTL=WDTPW+WDTHOLD ;// 将 WDTPW+WDTHOLD 赋值给 WDTCTL,关闭看门狗定时器控制寄存器( Stop watchdogtimer)IE1 |= WDTIE ;// 使能 WDT 中断WDTCTL = WDT_ADL Y_1000 ;//WDT 1 s / 4 间隔计时器WDTCTL = WDTPW + WDTHOLD + WDTNMI + WDTNMIES ;//WDTCTL 由高8位口令和低8位控制命令组成,要写入操作 WDT的控制命令,出于安全原因必须先正确写入高字节看门狗口令。
口令为5AH,如果口令写错将导致系统复位。
读 WDTCTL时不需要口令。
这个控制寄存器还可以用于设置NMI引脚功能。
WDT 看门狗定时器(Watch Dog Timer),这是16位增计数器,由MSP430所选定的时钟电路产生的固定周期时钟信号对计数器进行加法计数。
CC430学习笔记----(四)时钟系统

CC430学习笔记----(四)时钟系统网友juring作品大家都知道,单片机工作离不开时钟,在我们熟悉的51单片机里面,就是外部那个11.0592M 或者12M的晶振给单片机的CPU和片上外设提供时钟节拍。
430也是一样,但是430的时钟系统比51要先进和复杂很多。
51的时钟源只有一个,来自外部晶振,直接提供给内部工作;而430的时钟是一个专门的模块,至少有3个可选时钟源(CC430有5个),这些基本的时钟源不直接提供给CPU和外设使用,而是经过一些数据选择器和分频器,得到3个有用的时钟信号。
430的CPU和片上外设可以根据需要,选择这3个时钟信号中合适的时钟。
430的低功耗跟它的时钟系统有很大关系。
CC430的时钟模块叫UCS(Unified Clock System),模块示意图:CC430中一共有5个时钟源:XT1CLK、VLOCLK、REFOCLK、DCOCLK、XT2CLKXT1CLK:这是一个低频时钟源,由外部提供,一般是外接32.768kHz的手表晶振,无需外加电容。
VLOCLK:这是一个集成在片上时钟源,低频低功耗,频率典型值是10kHz。
REFOCLK:这也是一个片上时钟源,频率典型值32.768kHz。
DCOCLK:这是一个片上的DCO数控振荡器,可以用片上FLL锁定。
XT2CLK:这是一个高频时钟源,由外部提供,用来给CC430的RF 模块提供时钟,一般是外接26MHz晶体振荡器。
其中,片上时钟VLOCLK、REFOCLK不是很精确稳定,会受到温度和电压的影响。
一般对精度和稳定性要求不高的应用可以选择片上时钟。
DCOCLK因为有FLL的锁定,所以可以提供非常稳定的时钟。
DCOCLK分频之后的时钟DCOCLKDIV一般提供给MCLK和SMCLK。
经过时钟系统出来一般有3个时钟信号:ACLK、MCLK、SMCLK ACLK: 辅助时钟(Auxillary Clock)ACLK可由软件选择作为各个外围模块的时钟信号,一般用于低速外设。
分解MSP430G2553的时钟系统

分解MSP430G2553的时钟系统
MSP430G2553系统时钟和振荡器
时钟系统由基本时钟模块提供支持,此时钟模块支持一个32768Hz手表晶体振荡器、一个内部超低功耗低频振荡器和一个内部数字控制振荡器(DCO)。
基本时钟模块专为同时满足低系统成本及低功耗要求而设计。
内部DCO提供了一个快速接通时钟源并可在不到1µs的时间里实现稳定。
基本时钟模块提供了以下时钟信号:
辅助时钟(ACLK),此时钟由一个32768Hz手表晶振或内部LF振荡器提供信号源。
主时钟(MCLK),CPU所采用的系统时钟。
系统子时钟(SMCLK),外设模块所采用的子系统时钟。
用于校准DCO输出频率的DCO设定值存储于信息内存的A段中。
主DCO特性
MSP430G2553时钟
1,MSP430G2553能做到超低功耗,合理的时钟模块是功不可没的。
但是功能强大的时钟模块设置起来也相对复杂一些。
2,MSP430G2553的时钟源有:
(1),外接低频晶振LFXT1CLK:低频模式接手表晶体32768Hz,高频模式450KHz~8MHz;
(2),外接高速晶振XT2CLK:8MHz;
(3),内部数字控制振荡器DCO:是一个可控的RC振荡器,频率在。
msp单片机时钟

把MSP430G2553的系统时钟作为系统学习的一篇讲解可见他的重要性,那为什么要把时钟放到第一位呢?学过FPGA的朋友都能体会得到,如果把CPU的所有工作任务作为纵坐标(y轴),那么时钟就是他的横坐标(x轴)了,如下图1 时钟概念所示。
图 1 时钟概念也就是说时钟就是一个微机(小到8位的51单片机大到32位的S3C2440等)在时域上的一个衡量标准。
如果学过FPGA的朋友都很清楚,微机是以对输入的时钟源的脉冲计数的方式来确定时域参数的。
所以,MSP430单片机也一样,拿到他之后首先从时钟入手,一定要养成这种系统学习的好方法,否则再学一百款单片机也是感觉再学新的,做不到举一反三,事半功倍的效果。
如果能够把握这其中的通理,你会有所有的单片机都一样样的感觉,当然学起来也就游刃有余了。
废话不多说了,进入正题。
一、硬件Msp420g2553的系统时钟是由VLOCK、LFXT1CLK和DCOCLK组成,如下图2 系统时钟组成所示:图2 系统时钟组成即2553的系统时钟源有三个分别是片内超低功耗12KHz的内部振荡器;由外部时钟源提供的LFXT1CLK时钟源,也即LanuchPad开发板上未焊接的时钟电路,在这里我们可以焊接一个32.768KHz的低频时钟晶体由2553的XIN引脚输入;片内可数字控制的振荡器DCOCLK,在软件的调节下该时钟的输出范围为0.6MHz到26MHz。
在这三个时钟源的独立工作或是在三个时钟源相互协调配合(是可以通过软件配置的)下为2553系统提供了系统时钟ACLK、MCLK和SMCLK。
ACLK为辅助时钟,由软件选择来自VLOCK、LFXT1CLK之一经过1,2,4,8分频之后得到,为外围模块提供时钟源。
MCLK为主时钟,由软件选择来自VLOCK、LFXT1CLK和DCOCLK之一经过1,2,4,8分频之后得到,为CPU和系统提供时钟。
SMCLK为子系统时钟,由软件选择来自VLOCK、LFXT1CLK和DCOCLK之一经过1,2,4,8分频之后得到,为外围各个模块提供时钟。