MSP430时钟配置及ad模块等学习笔记
计算机硬件技术基础MSP430_复习知识点
计算机硬件技术基础MSP430_复习知识点第⼀章基本原理1.冯诺依曼计算机:⼯作原理为存储程序+程序控制,结构为输⼊设备,存储器,运算器,控制器,输出设备2.基本概念【Bit:位】【Byte:字节,8个⼆进制位】【word:字,CPU内部数据处理基本单位,⼆进制位数和内部寄存器,运算装置,总线宽度⼀致】3.CPU,存储器,输⼊输出设备,输⼊输出设备通过I/O接⼝和系统连接,各个部位通过总线链接。
4.总线分为:地址总线(AB),数据总线(DB),控制总线(CB)。
地址总线宽度,决定CPU寻址能⼒,能够使⽤多⼤的内存或I/O端⼝。
数据总线的宽度决定⼀次最多传送数据的宽度。
5.存储单元:存储信息的基本单元。
存储单元内容:存储的数据。
存储单元地址:每个单元有唯⼀的编制,译码后可以得到相应的选通信号。
6.读操作:发出地址信号选中存储单元,发出读控制信号,将存储单元的内容通过数据总线传⼊CPU中。
写操作:CPU发出地址信号,选中相应的存储单元;CPU发出存储器写控制信号;将写的内容通过数据总线写⼊选中存储单元中。
7.定址原则:任何操作对象都有确定的地址,译码电路将地址信号实现定制功能。
8.微机的⼯作过程:取指令,将指令取出到CPU并且进⾏译码。
执⾏指令,由控制电路发出执⾏指令所需要的信号,控制CPU执⾏响应操作。
第⼆章数字的表⽰运算9.N进制到⼗进制:略。
⼗进制到N进制:整数部分为除n取余,商零为⽌,先低后⾼。
⼩数部分为乘2取整,到零为⽌,先⾼后低。
10.⼆进制数和⼗六进制数的运算:算术运算,进位和借位都存储在标志寄存器中。
11.⽆符号数:所有各位都表⽰数值⼤⼩,最⾼位⽆符号意义。
⽤于处理全部是正数的场合。
12.带符号数:⽤补码来表⽰带符号数。
求补运算:按位取反,最低位+1,相当于(0-该数)补码:正数的补码:全部为数字位(最⾼位是0)。
负数的补码:对该数正数进⾏求补运算(最⾼位为1)。
补码真值计算:最⾼位为0,等于⼆进制的数值。
关于(单片机)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单片机深入学习笔记
复位1.POR信号只在两种情况下产生:➢微处理器上电。
➢RST/NMI管脚被设置为复位功能,在此管脚上产生低电平时系统复位。
2.PUC信号产生的条件为:➢POR信号产生。
➢看门狗有效时,看门狗定时器溢出。
➢写看门狗定时器安全健值出现错误。
➢写FLASH存储器安全键值出现错误。
3.POR信号的出现会导致系统复位,并产生PUC信号。
而PUC信号不会引起POR信号的产生。
系统复位后(POR之后)的状态为:➢RST/MIN管脚功能被设置为复位功能。
➢所有I/O管脚被设置为输入。
➢外围模块被初始化,其寄存器值为相关手册上注明的默认值。
➢状态寄存器(SR)复位。
➢看门狗激活,进入工作模式。
➢程序计数器(PC)载入0xFFFE(0xFFFE为复位中断向量)处的地址,微处理器从此地址开始执行程序。
4.典型的复位电路有以下3种:(1)由于MSP430具有上电复位功能,因此,上电后只要保持RST/NMI(设置为复位功能)为高电平即可。
通常的做法为,在RST/NMI管脚接100kΩ的上拉电阻,如图1-5(a)所示。
(2)除了在RST/NMI管脚接100kΩ的上拉电阻外,还可以再接0.1μF的电容,电容的另一端接地,可以使复位更加可靠。
如图1-5(b)所示。
(3)由于MSP430具有极低的功耗,如果系统断电后立即上电,则系统中电容所存储的电荷来不及释放,此时系统电压不会下降到最低复位电压以下,因而MSP430不会产生上电复位,同时RST/NMI管脚上也没有足够低的电平使MSP430复位。
这样,系统断电后立即上电,MSP430并没有被复位。
为了解决这个问题,可增加一个二极管,这样断电后储存在复位电容中的电荷就可以通过二极管释放,从而加速电容的放电。
二极管的型号可取1N4008。
如图1-5(c)所示。
系统时钟振荡器:1.DCO 数控RC振荡器,位于芯片内部。
不用时可以关闭2.LFXT1 可以接低频振荡器,典型的如32.768kHz的钟表振荡器,此时振荡器不需要接负载电容。
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系统实时时钟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的时钟设置
MSP430的时钟设置MSP430大部分都有三时钟脉冲可供运行时选择,这三个时钟是,1)辅助时钟ACLK;2)系统主时钟MCLK;3)子系统时钟SMCLK。
这三种时钟脉冲的选择主要靠下面三个控制寄存器来完成,这三个控制寄存器是1)控制寄存器DCOCT其存储单元地址是56h;2) 基本始终控制寄存器1,BCSCTL1,地址57h;3) 基本始终控制寄存器2,BCSCTL2,地址58h。
下面对这三个寄存器的控制的软件状态状态进行介绍。
1)控制寄存器DCOCTLDCO2;DCO1;DCO0这三位共八个状态,控制时钟脉冲的8个频段。
000~111对应0~7;频率由低到高8个频段。
MOD.4~MOD.0这5为共32种状态,定义在32个周期中插入插入其他频率。
DCO2=0x80;DCO1=0x40;DCO0=0x20;MOD4=0x10;MOD3=0x08;MOD2=0x04;MOD1=0x02;MOD0=0x01其中TX2OFF为0,开启TX2振荡器,为1关闭;XTS=0开启低频模式,1开启高频模式;DIVA1和DIVA0控制分频模式0 0 不分频0 1 2分频1 0 4分频1 1 8分频TX5V一般设置为0RSEL2~RSEL0三位决定八个频段的不同频率,这样,RSEL2~RSEL0和DCO2~DCO0共可实现8*8=64个不同的频率。
由于430没有位操作,所以定义了每一位状态对应的名称:TX2OFF=0x80TXS=0x40DIVA1=0x20DIVA0=0x10TX5V=0x08RSEL2=0x04RSEL1=0x02RSEL0=0x01也就是每位所在的位置为1,其余位为0,这样,要对某一位操作,就可通过运算,在不改变其他位的情况下,对某一位进行置1或清0(如何做后面讲)。
SELM.1- SELM.0DIVM.1- DIVM.0SELS时钟源选择DIVS.1-DIVS.0 DCOR0 0 默认DCOCLK0 0默认MCLK=DCOCLK00 默认SMCLK=MCLK选择电阻0 1选择DCOCLK0 1 2分频选择SMCLK01 MCLK 2分频内电阻1 0 选择XT2CLK1 0 4分频默认选择DCOCLK10 MCLK 4分频或外电阻1 1 选择LFXTICLK1 18分频11 MCLK 8分频SELM1=0x80;SELM0=0x40;DIVM1=0x20;DIVM0=0x10;SELS=0x08;DIVS1=0x04;DIVS0=0x02;DCOR=0x01;下面看如何让在保证其他位不变的情况下给某一位清0或置1.例1要给BCSCTL2的bit3清0。
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大部分时间都处于低功耗状态,使得系统的整体功耗极大地降低。
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.768KHz晶振01 保留10 VLOCLK11 外部数字时钟源XCAPxLFXT1晶振谐振电容选择00 1pF01 6pF10 10pF11 12.5pFmsp430g2553.h中基本时钟系统的内容/************************************************************* Basic Clock Module************************************************************/#define __MSP430_HAS_BC2__ /* Definition to show that Module is available */SFR_8BIT(DCOCTL); /* DCO Clock Frequency Control */SFR_8BIT(BCSCTL1); /* Basic Clock System Control 1 */SFR_8BIT(BCSCTL2); /* Basic Clock System Control 2 */SFR_8BIT(BCSCTL3); /* Basic Clock System Control 3 */#define MOD0 (0x01) /* Modulation Bit 0 */#define MOD1 (0x02) /* Modulation Bit 1 */#define MOD2 (0x04) /* Modulation Bit 2 */#define MOD3 (0x08) /* Modulation Bit 3 */#define MOD4 (0x10) /* Modulation Bit 4 */#define DCO0 (0x20) /* DCO Select Bit 0 */#define DCO1 (0x40) /* DCO Select Bit 1 */#define DCO2 (0x80) /* DCO Select Bit 2 */#define RSEL0 (0x01) /* Range Select Bit 0 */#define RSEL1 (0x02) /* Range Select Bit 1 */#define RSEL2 (0x04) /* Range Select Bit 2 */#define RSEL3 (0x08) /* Range Select Bit 3 */#define DIVA0 (0x10) /* ACLK Divider 0 */#define DIVA1 (0x20) /* ACLK Divider 1 */#define XTS (0x40) /* LFXTCLK 0:Low Freq. / 1: High Freq. */ #define XT2OFF (0x80) /* Enable XT2CLK */#define DIVA_0 (0x00) /* ACLK Divider 0: /1 */#define DIVA_1 (0x10) /* ACLK Divider 1: /2 */#define DIVA_2 (0x20) /* ACLK Divider 2: /4 */#define DIVA_3 (0x30) /* ACLK Divider 3: /8 */#define DIVS0 (0x02) /* SMCLK Divider 0 */#define DIVS1 (0x04) /* SMCLK Divider 1 */#define SELS (0x08) /* SMCLK Source Select 0:DCOCLK /1:XT2CLK/LFXTCLK */#define DIVM0 (0x10) /* MCLK Divider 0 */#define DIVM1 (0x20) /* MCLK Divider 1 */#define SELM0 (0x40) /* MCLK Source Select 0 */#define SELM1 (0x80) /* MCLK Source Select 1 */#define DIVS_0 (0x00) /* SMCLK Divider 0: /1 */#define DIVS_1 (0x02) /* SMCLK Divider 1: /2 */#define DIVS_2 (0x04) /* SMCLK Divider 2: /4 */#define DIVS_3 (0x06) /* SMCLK Divider 3: /8 */#define DIVM_0 (0x00) /* MCLK Divider 0: /1 */#define DIVM_1 (0x10) /* MCLK Divider 1: /2 */#define DIVM_2 (0x20) /* MCLK Divider 2: /4 */#define DIVM_3 (0x30) /* MCLK Divider 3: /8 */#define SELM_0 (0x00) /* MCLK Source Select 0: DCOCLK */#define SELM_1 (0x40) /* MCLK Source Select 1: DCOCLK */#define SELM_2 (0x80) /* MCLK Source Select 2: XT2CLK/LFXTCLK */#define SELM_3 (0xC0) /* MCLK Source Select 3: LFXTCLK */#define LFXT1OF (0x01) /* Low/high Frequency Oscillator Fault Flag */#define XT2OF (0x02) /* High frequency oscillator 2 fault flag */#define XCAP0 (0x04) /* XIN/XOUT Cap 0 */#define XCAP1 (0x08) /* XIN/XOUT Cap 1 */#define LFXT1S0 (0x10) /* Mode 0 for LFXT1 (XTS = 0) */#define LFXT1S1 (0x20) /* Mode 1 for LFXT1 (XTS = 0) */#define XT2S0 (0x40) /* Mode 0 for XT2 */#define XT2S1 (0x80) /* Mode 1 for XT2 */#define XCAP_0 (0x00) /* XIN/XOUT Cap : 0 pF */#define XCAP_1 (0x04) /* XIN/XOUT Cap : 6 pF */#define XCAP_2 (0x08) /* XIN/XOUT Cap : 10 pF */#define XCAP_3 (0x0C) /* XIN/XOUT Cap : 12.5 pF */#define LFXT1S_0 (0x00) /* Mode 0 for LFXT1 : Normal operation */ #define LFXT1S_1 (0x10) /* Mode 1 for LFXT1 : Reserved */#define LFXT1S_2 (0x20) /* Mode 2 for LFXT1 : VLO */#define LFXT1S_3 (0x30) /* Mode 3 for LFXT1 : Digital input signal */#define XT2S_0 (0x00) /* Mode 0 for XT2 : 0.4 - 1 MHz */#define XT2S_1 (0x40) /* Mode 1 for XT2 : 1 - 4 MHz */#define XT2S_2 (0x80) /* Mode 2 for XT2 : 2 - 16 MHz */#define XT2S_3 (0xC0) /* Mode 3 for XT2 : Digital input signal */基本时钟系统例程(DCO)MSP430G2553在上电之后默认CPU执行程序的时钟MCLK来自于DCO时钟。
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、BCSCTL3MOD0~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,8SELS: 选择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。
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 定时器学习笔记
_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定时器AD模块以及其他笔记
定时器A用到CCR0定时器A的中断可由定时器溢出引起,也可由捕获/比较器模块产生。
每个捕获/比较模块可以独立编程,由捕获/比较外部信号产生中断。
定时器A使用两个中断向量,一个单独分配给捕获/比较寄存器CCR0;另一个作为共用中断向量用于定时器和其他的捕获/比较寄存器。
捕获/比较寄存器CCR0中断向量具有最高优先级,因为CCR0主要用来定义定时器的工作模式,而这是定时器A其他功能的基础,需要最快速的服务。
开启定时器应该在修改定时器工作频率之前。
CCR1,CCR2和定时器共用另一个中断向量,属于多源中断。
由向量中断寄存器TAIV决定由哪个中断标志来触发中断。
中断标志产生数据表:中断优先级中断源缩写 TAIV 的内容最高捕获/比较器1 CCIFG1 2捕获/比较器2 CCIFG2 4定时器溢出 TAIFG 10最低没有中断将挂起 0PxDIR输入/输出方向寄存器0:I/O引脚切换成输入模式 PxIN1:I/O引脚切换成输出模式 PxOUTPxIE中断使能寄存器0:禁止该中断 1:允许该中断PxIES中断触发沿选择寄存器如果允许Px口的某个引脚中断,还需要定义该引脚的中断触发沿。
0:上升沿使相应标志置位 1:下降沿使相应标志置位PxSEL功能选择寄存器0:选择引脚为I/O端口 1:选择引脚为外围模块功能上电复位信号:POR(power-on reset)上电清除复位信号:PUC(power-up clear)POR信号的产生总会产生PUC信号,但是PUC信号的发生不一定会产生POR信号。
脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。
TACTL是最为主要的控制寄存器,它决定了TA的输入时钟信号、TA的工作模式、TA的开启与停止、中断的申请等工作。
msp430 学习笔记 - 定时器
// 停止看门狗WDT // 设置P1.0口方向为输出。 // 时钟源选择为SMCLK,选择计数模式,定时器中断开
_BIS_SR(LPM0_bits + GIE); }
//进入低功耗模式LPM0和开中断
// Timer_A3 中断向量(TAIV)处理 #pragma vector=TIMERA1_VECTOR __interrupt void Timer_A(void) {
2. 定时器相关寄存器 ................................................................................................................... 2 2.1. TACTL .......................................................................................................................... 3 2.2. TAR ............................................................................................................................. 4 2.3. TACCRx ....................................................................................................................... 4 2.4. TACCTLx ...................................................................................................................... 5 2.5. TAIV ............................................................................................................................ 6
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
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编程(一)——时钟配置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(高性能不说,关键很多系列的芯片可到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教程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%。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 定时器的捕获比较单元,怎么有3对TA0,TA1,TA2管脚,外加一个TA0 答:
都是TA捕获模式的输出口,可用作PWM输出.TA0输出不能调整占空比.TA1、TA2输出占空比分别对应CCTL1/CCR0和CCTL2/CCR0.(置位/复位模式及复位/置位模式,这两种模式PWM控制最常用)
AD的辅助参考电压和参考电压有什么区别?
没有区别,一个大小叫法不同
ad转换时的参考电压是内部T行网络的标准电压,参考电压可以认为是你的最高上限电压(不超过电源电压),当信号电压较低时,可以降低参考你的参考电压,在计算实际电压时,就需要将参考电压考虑进去。
参考电压的稳定性对你的系统性能有很大的影响。
外接了参考电源就不能设置为内部参考,否则短路。
你在题目中提到的AD外部电压的来源主要就是从引脚的VCC上的3.3V 接到芯片引脚VEREF上,0电平接V- 就可以了430芯片里面集成了AD转换器所以不用外接
参考电压比如说AD会把参考电压当成0,比参考电压高是正输出。
A VDD AVSS是什么意思呀疑问录入
00
A VDD 在这里的解释一般为:A代表模拟VDD代表数字供电这个A VDD一般在声卡部分A VSS 在这里的解释一般为:A代表模拟VSS代表接地VSS这个一般在桥的脚位里出现的比较多
Vref参考电压比如说AD会把参考电压当成0,比参考电压高是正输出。
Vr+,Vr-: AD模块最大,最小值参考电压当输入大于最大值,AD输出0xfff,小于最小值时,输出为0x0000。