msp430学习经验总结
MSP430初学者(最详细)建议
如何学习MSP430单片机
学习就是迎接挑战、解决困难的过程,没有挑战,就没有人生的乐趣。
下面以MSP430系列单片机为例,解释一下学习单片机的过程。
(1)获取资料
购买有关书籍,并到杭州利尔达公司网站和TI网站获取资料,例如,在网上可以找到FET 使用指导、MSP430 F1xx系列、F4xx系列的使用说明和具体单片机芯片的数据说明,可以找到仿真器FET的电路图、实验板电路图、芯片封装知识等大量的实际应用参考电路,当然有些资料是英文的,看懂英文资料是个挑战,学会4、6级英语就是为看资料的。
英语难学,但是看资料容易,只要下决心,看完一本资料,就可以看懂所有的相关资料。
(2)购买仿真器FET和实验电路板
如果经济条件不错,可以直接购买。
(3)自制仿真器FET和实验电路板
自制仿真器FET,首先要到网上找到FET电路图,然后就可以使用画电路板软件画电路图和电路板图,这又是个挑战。
FET电路非常简单,但要把它制作出来还是需要下一番工夫的,找一本有关书,然后练习画原理图,画完原理图后,就学习认识元件封装,再购买元件,这时就可以画电路板图了,一旦画好,将形成的PCB文件交给电路板制作公司,10天后,就可以得到电路板,焊上元件和电缆,等实验电路板做好后,就可以与实验电路板一起调试了。
MSP430F167学习心得
MSP430XXXX datasheet(430单片机类似,一F167为例)阅读心得1.供电:1.8V to 3.6V2.功耗:Active mode 330uA at 1Mhz,2.2vStandby Mode 1.1uAOff Mode 0.2uA3.32KB+256B Flash memory(放程序,掉电不丢失,相当于ROM), 1KB RAM4.外设(IO,串口,AD,DA,定时器。
):通过数据地址控制总线跟CPU相连5.DMA controller :可以在两个存储器里移动数据而不需要CPU控制(提高单片机的吞吐量,另外还可以在CPU休眠状态下移动数据从而节省功耗)6.Digital I/O:6个8位端口I/O,每位都可以独立编程控制(输入输出中断)任意组合,P1,P2每位都能选择上升或下降沿中断,读写都通过指令7.WDT(watchdog timer 看门狗):首要功能是当出现软件问题(死循环)时让系统复位,当不需要看门狗时可以用来产生定时中断8.硬件乘法(hardware multiplier):运算结果可以直接在相应的寄存器中获得,不需要提供额外的时钟ART0(Universal Synchronous Asynchronous Receiver Transmitter,通用同步异步收发机):SPISPI(Serial Peripheral Interfa,同步串行外设接口) ,UART(Universal Asynchronous Receiver/Transmitter,通用非同步收发传输器),IIC(Inter-Integrated Circuit,集成电路总线,同步)ART1:铜USART0类似,只有MSP430F16X/161X有11.Timer_A3: Timer_A3是一个具有3路捕捉/比较寄存器的16位定时/计数器。
Timer_A3可以支持多个捕捉/比较,PWM输出以及定时,另外还具有中断能力,中断可能是由捕捉比较寄存器计数溢出。
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的钟表振荡器,此时振荡器不需要接负载电容。
430单片机个人总结
430单片机个人总结一 时钟部分(msp430f149单片机)1、关于XT2图12、关于XT1图2 3、关于MCLKPUC 信号之后,MCLK 来源于DCO 时钟信号(可以不设置,系统PUC 之后会有一个默认值),如果要设置MCLK 来源于XT1或者XT2,步骤如下:1、打开需要的晶体振荡器;(作为MCLK 的时钟源,而不是默认的DCO )2、清除OFIFG 标志位;XT2Sx=11、XT2OFF=0时,XT2来源于外部时钟信号,也就是可以直接在XT2IN 管脚上施加一个时钟信号,而不需要在XT2IN 和XT2OUT 上加时钟源 当在XIN 和XOUT 两端加低频晶振时,晶振之间可以不加电容,而通过单片机内部给其配置电容 当在XIN 和XOUT 两端加高频晶振时,晶振之间需要配置电容当LFXT1Sx=11、OSCOFF=0时,XIN 和XOUT 之间可以不加晶振,只需在XIN 管脚上施加一个时钟信号既可3、延时50us;4、测试OFIFG标志位。
若OFIFG=0,说明设置成功;若OFIFG=1,设置未成功,重复2~3步骤;程序如下BCSCTL1 &=~XT2OFF; // XT2 is ondo{IFG1 &=~OFIFG; // clear OSCFault flagfor(i=255;i>0;i--); // time for flag to set}while((IFG1 & OFIFG));BCSCTL2 |=SELM_2+DIVM_3; //f(mclk)=f(XT2)/8;二IO口部分(msp430f149单片机)430单片机的IO口都是复用的,除了做普通IO口用外,还可以作为片内外设用,图3所示为msp430g2553单片机的P1.6、P1.7管脚说明,可以发现P1.6管脚除了作为普通的IO 之外,还可以作为TA0.1、TCLK等用,那么应该如何选择这些管脚的功能呢?1、给寄存器PxSEL(图4)赋值,确定管脚是作为IO用,还是作为片内外设用,当PxSEL=0时,用作IO,当PxSEL=1时,用作片内外设;2、给寄存器PxDIR(图5)赋值,确定管脚的输出方向(作为IO时,用来设置是input还是output;作为片内外设时,用来设置是输出的片内外设还是输入的片内外设,如P1.6管脚用作片内外设时,TA0.1是输出,CA6是输入),当PxDIR=0时,用作输入,当PxDIR=1时,用作输出;图3图4三中断函数标准中断函数的格式为;#pragam vector=中断向量__interrupt void ISR(void){用户程序;}四低功耗模式进入低功耗程序模式为(以进入低功耗LPM0模式为例):_EINT();LPM0;以上两句程序等价为:_BIS_SR(LPM0_bits + GIE);那么退出低功耗程序为:LPM0_EXIT;五Flash操作(msp430f149单片机)Flash被划分成main memory和information memory,两者没有太大区别,只是两者的容量和物理地址不同。
msp430学习的深度解析和总结
msp430学习的深度解析和总结一、MSP430开发环境建立1.安装IAR dor msp430 软件,软件带USB仿真器的驱动。
2.插入USB仿真器,驱动选择安装目录的/drivers/TIUSBFET3.建立一个工程,选择"option"选项,设置a、选择器件,在"General"项的"Target"标签选择目标器件b、选择输出仿真,在"Linker"项里的"Output"标签,选择输出"Debug information for C-SPY",以输出调试信息用于仿真。
c、若选择"Other",Output下拉框选择"zax-m"即可以输出hex文件用以烧录,注意,此时仿真不了。
d、选择"Debugger"项的"Setup"标签,"Driver"下拉框选择"FET Debugger"e、选择"FET Debugger"项的"Setup"标签,"Connection"下拉框选择"Texas Instrument USB-I"4.仿真器的接口,从左到右分别为" GND,RST,TEST,VCC"二、IO口数字输入/输出端口有下列特性:每个输入/输出位都可以独立编程。
允许任意组合输入、输出。
P1 和P2 所有8 个位都可以分别设置为中断。
可以独立操作输入和输出数据寄存器。
可以分别设置上拉或下拉电阻。
在介绍这四个I/O口时提到了一个“上拉电阻”那么上拉电阻又是一个什么东东呢?他起什么作用呢?都说了是电阻那当然就是一个电阻啦,当作为输入时,上拉电阻将其电位拉高,若输入为低电平则可提供电流源;所以如果P0口如果作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。
个人学习总结:MSP430_TimerA
【8种输出模式】 OUTMOD_0:立即,直接输出OUT位 OUTMOD_1:CCRx置位;CCR0保持(all) OUTMOD_2:CCRx翻转;CCR0复位(all) OUTMOD_3:CCRx置位;CCR0复位 OUTMOD_4:CCRx翻转;CCR0保持(all) OUTMOD_5:CCRx复位;CCR0保持(all) OUTMOD_6:CCRx翻转;CCR0置位 OUTMOD_7:CCRx复位;CCR0置位 输出单元只工作于比较模式,捕获时不会产生输出。 输出单元0不能输出2,3,6,7模式 输出是自动而独立的,和中断使能、中断标志都无关。 产生TA中断的原则:只要计数归零就产生TA中断
SCS
捕获与 定时器同步
SCCI
锁定的 捕获信号
未使用
CAP
捕获/比较 选择位
捕获方式
捕获信号输入源
7.rw-(0) OUTMOD2
6.rw-(0) OUTMOD1 输出模式选择
5.rw-0 OUTMOD0
4.rw-(0)
3.rw-(0)
2.rw-(0)
1.rw-(0)
0.rw-(0)
CCIE
中断使能
ID1
ID0
MC1
MC0
未使用
TACLR
TAIE
TAIFG
选择分频因子
选择计数方式
TAR复位清零 TA中断使能 TA中断标志
【计数时钟源】 TASSEL_0:TACLK外部引脚P1.0/TACLK(12脚)信号 TASSEL_1:ACLK内部辅助时钟 TASSEL_2:SMCLK内部子系统时钟 TASSEL_3:INCLK外部P2.1/TAINCLK(21脚)时钟 【TIMER_A的再次分频】 ID_0:1分频 ID_1:2分频 ID_2:4分频 ID_3:8分频 【计数模式】 MC_0:暂停计数,计数停止,但内容不清零,将继续计数。 MC_1:0~CCR0增计数,到达CCR0后归零,重新计数。先CCR0中断,后TA中断。 MC_2:0~FFFFH连续计数,到达TAR最大值后归零,重新计数。归零时产生TA中断。 MC_3:0~CCR0~0增减计数,到达CCR0后开始减1(产生CCR0中断),减至0时重新 计数,并产生TA中断。 【TACLR置位】 1:TAR清零 2:ID1,ID0复位 3:计数方向为增方向( 比如正由CCR0~0减计数,TACLR后会变为从0~CCR0方向增计数) 产生TA中断的原则: 只要计数归零就产生TA中断
我学MSP430G2553的心得之一
我学MSP430G2553的心得之一学习MSP430G2553,已有7天有余。
个人觉着:低功耗是其最大亮点。
为此可谓是处心积虑。
因而中断/低功耗模式在430的应用中便显得千娇百媚,楚楚动人!这里,先跟大伙看下这个中断的情况。
#include#include”in430.h”intmain(void){WDTCTL=WDTPW+WDTHOLD;//禁止看门狗计数P1DIR=BIT0+BIT1;//P1.01设置为输出,P1.4/5是输入P1OUT=BIT0+BIT1+BIT4+BIT5;//P1.01为高,P.4/5上拉P1REN=BIT4+BIT5;//P1.4上拉使能P1IE=BIT4+BIT5;//P1.4开中断P1IES=BIT4+BIT5;//中断沿选择__enable_interrupt();//开总中断while(1);//没事做} #pragmavector=PORT1_VECTOR__interruptvoidPORT1()//P1口中断服务程序{unsignedinti=0;unsignedcharPushKey=0;PushKey=P1IFG&(BIT4+BIT5);//读取是哪个键按下for(i=0;iif(!(P1IN&PushKey))//没有按下,则为抖动,标志清零P1IFG=0;if((P1IN&PushKey))//判断是否有键按下{for(i=0;iif((P1IN&PushKey)) {if((PushKey&BIT4))P1OUT–BIT0;if((PushKey&BIT5))P1OUT–BIT1;}P1IFG&=~(BIT4+BIT5);}}这个程序,最出彩的地方在于while(1);这个等待的语句。
中断没发生前,程序在停这儿等待,就相当于CPU一直停在儿没事做歇着,也许是在等待戈多。
一旦中断条件发生,在这里是按键,它便好像逮着什么似的,便进入中断,去执行中断程序中的代码。
msp430 学习经验总结
电子工程师之家标题: msp430 学习经验总结作者: morphine 时间: 2012-12-28 14:56标题: msp430 学习经验总结msp430 学习经验总结:一.MSP430开发环境建立1.安装IAR dor msp430 软件,软件带USB仿真器的驱动。
2.插入USB仿真器,驱动选择安装目录的/drivers/TIUSBFET3.建立一个工程,选择"option"选项,设置a、选择器件,在"General"项的"Target"标签选择目标器件b、选择输出仿真,在"Linker"项里的"Output"标签,选择输出"Debug information for C-SPY",以输出调试信息用于仿真。
c、若选择"Other",Output下拉框选择"zax-m"即可以输出hex文件用以烧录,注意,此时仿真不了。
d、选择"Debugger"项的"Setup"标签,"Driver"下拉框选择"FET Debugger"e、选择"FET Debugger"项的"Setup"标签,"Connection"下拉框选择"Texas Instrument USB-I"4.仿真器的接口,从左到右分别为 " GND,RST,TEST,VCC"二.IO口数字输入/输出端口有下列特性:每个输入/输出位都可以独立编程。
允许任意组合输入、输出。
P1 和 P2 所有 8 个位都可以分别设置为中断。
可以独立操作输入和输出数据寄存器。
可以分别设置上拉或下拉电阻。
在介绍这四个I/O口时提到了一个“上拉电阻”那么上拉电阻又是一个什么东东呢?他起什么作用呢?都说了是电阻那当然就是一个电阻啦,当作为输入时,上拉电阻将其电位拉高,若输入为低电平则可提供电流源;所以如果P0口如果作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。
430定时器学习心得(含五篇)
430定时器学习心得(含五篇)第一篇:430定时器学习心得Msp430单片机一共有5种类型的定时器。
看门狗定时器(WDT)、基本定时器(Basic Timer1)、8位定时器/计数器(8-bitTimer/Counter)、定时器A(Timer_A)和定时器B (Timer_B)。
但是这些模块不是所有msp430型号都具有的功能。
1、看门狗定时器(WDT)学过电子的人可能都知道,看门狗的主要功能就是当程序发生故障时能使受控系统重新启动。
msp430中它是一个16位的定时器,有看门狗和定时器两种模式。
2、基本定时器(Basic Timer1)基本定时器是msp430x3xx和msp430F4xx系列器件中的模块,通常向其他外围提供低频控制信号。
它可以只两个8位定时器,也可以是一个16位定时器。
3、8位定时器/计数器(8-bit Timer/Counter)如其名字所示,它是8位的定时器,主要应用在支持串行通信或数据交换,脉冲计数或累加以及定时器使用。
4、16位定时器A和B定时器A在所有msp430系列单片机中都有,而定时器B在msp430f13x/14x和msp430f43x/44x等器件中出现,基本的结构和定时器A是相同的,由于本人最先熟悉并应用的是定时器A所以在这里就主要谈一下自己对定时器A的了解和应用。
定时器A是16位定时器,有4种工作模式,时钟源可选,一般都会有3个可配置输入端的比较/捕获寄存器,并且有8种输出模式。
通过8种输出模式很容易实现PWM波。
定时器A的硬件电路大致可分为2类功能模块:一:计数器TAR计数器TAR是主体,它是一个开启和关闭的定时器,如果开启它就是一直在循环计数,只会有一个溢出中断,也就是当计数由0xffff到0时会产生一个中断TAIFG。
二:比较/捕获寄存器CCRX如何实现定时功能呢?这就要靠三个比较/捕获寄存器了(以后用CCRx表示)。
当计数器TAR的计数值等于CCRx时(这就是捕获/比较中的比较的意思:比较TAR是否等于CCRx),CCRx单元会产生一个中断。
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单⽚机编程思想总结(⼀)
1.主函数main()中;只调⽤初始化函数和执⾏后台程序;
2.中断服务⼦程序函数中不要去写“实质性”的代码。
只调⽤事件检测函数,提⾼程序的可读性
3.WDT 可以作为节拍定时器在单⽚机编程中具有重要意义;定时扫描轮询⽅法可以解决⼤量CPU阻塞问题
4.事件函数对于理解程序意图⾮常重要;集中放置“事件检测/处理”⽽不是跟着满世界“乱蹦的”中断去找事件函数,是⼗分⾼效的。
5.全局变量的使⽤要⾮常谨慎,全局变量往往是联系各关键函数的纽带,因此集中放置全局变量也是增加程序可读性的常⽤做法。
6.除了读写寄存器(包括改写IO输出),数学和逻辑运算外,CPU⼲其他的事例如长延时,死循环类型的查询属于阻塞CPU的⾏为,应该坚决避免
7.当CPU确定⽆任务需要执⾏时,休眠是最佳选择,正确运⽤各种等级的休眠(可唤醒)可以极⼤地降低单⽚机的功耗;
8.事件类函数命名为“xxx_Event”;全局变量“xxx_Global”单列⽂件⼗分有必要。
msp430G2553个人总结
MSP430G2553个人总结说明:本手册是个人总结,内部并不完整,内部总结仅供参考。
详情请下载详细数据手册查看总结者:meiger(勿删)一混合信号微处理器:1)特性:*低电源电压范围:1.8—3.6V*运行模式:230Ua(1Mhz,2.2V)*待机模式:0.5Ua*关闭模式:0.1UA*5种节能模式*1UA超快时间从待机模式唤醒*基本时钟模块~具有四种校准频率并高到16Mhz的内部频率~ 内部超低功耗(lf)震荡器~32Khz晶振~外部数字时钟源*两个16位Timer_A,分别即有三个捕捉/比较器寄存器*多达24个支持触摸感的io引脚*通用串口通信接口(USCI)~(uart)~lrda~spi~i2C*用于模拟信号比较或斜列模拟(A/D)比较器*带内部基准、采样与保持的自动扫面的10位AD采样器*欠压检测器*无需外部编译的电压二:MSP430G25553设备有引导加载器(1个)、嵌入式仿真器模块(1个)、闪存)(16)、RAM(512)、Tomer_A(2*TA3)、COMP_A通道(8)、10通道ADC(8)USCI A0/B0(1 )、时钟(LF DOC VLO) 、I/O(24)三:引脚图四:功能图五:端子功能看引脚图,图上标的的比价清楚,表格的看上去是比较难记住的,看引脚如不叫明朗。
六:CPU属性丛約操作模式:有六种操模式,一个运行模式及五种低功耗内模。
一个中断事件能够将器件从任一低功耗模式唤醒、处理请求、并在接收到来自中断程序的返回信号时恢复至低功耗模式•激活模式(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 生成器保持启用–晶体振荡器被停止七:外间文件映射(寄存器说明寄存器名称)1)ADC10(仅限MSP4320G2X53)ADC数据传输起始地址ADC10SAADC内存ADC10MEMADC控制寄存器1 ADC10CTL1ADC控制寄存器0 ADC10CTL02)Timer1_A3捕捉/比较寄存器TA1CCR2捕捉/比较寄存器TA1CCR1捕捉/比较寄存器TA1CCR0Timer_A寄存器TA1R捕捉/比较控制TA1CCTL2捕捉/比较控制TA1CCTL1捕捉/比较控制TA1CCTL0Timer_A控制TA1CTLTimer_A中断矢量TA1IV3)Timer0_A3捕捉/比较寄存器TA0CCR2捕捉/比较寄存器TA0CCR1捕捉/比较寄存器TA0CCR0Timer_A寄存器TA0R捕捉/比较控制TA0CCTL2捕捉/比较控制TA0CCTL1捕捉/比较控制TA0CCTL0 Timer_A控制TA0CTLTimer_A中断矢量TA0IV4)闪存闪存控制3 FCTL3闪存控制2 FCTL2闪存控制1 FCTL15)看门狗定时器+看门狗定时器控制位WDTTCL 6)USCI_B0USCI_B0发送缓冲器UCB0TXBUF USCI_B0接收缓冲器UCB0RXBUF USCI_B0状态UCB0STATUSCI_B0 I2C中断启动UCB0CIEUSCI_B0位速控制1 UCB0BR1USCI_B0位速控制0 UCB0BR0USCI_B0控制1 UCB0CTL1USCI_B0控制0 UCB0CTL0USCI_B0 I2C从地址UCB0SAUSCI_B0 I2C自由地址UCB0SA 7)USCI_A0USCI_A0发送缓冲器UCA0TXBUF USCI_A0接收缓冲器UCA0RXBUF USCI_A0状态UCA0STATUSCI_A0 I2C中断启动UCA0CIEUSCI_A0位速控制1 UCA0BR1USCI_A0位速控制0 UCA0BR0USCI_A0控制1 UCA0CTL1USCI_A0控制0 UCA0CTL0USCI_A0 I2C从地址UCA0SAUSCI_A0 I2C自由地址UCA0SA 8)ADC10ADC模拟启动1 ADC10AE1ADC模拟启动0 ADC10AE0ADC数据传输控制寄存器1 ADC10DTC1 ADC数据传输控制寄存器0 ADC10DTC0 9)Comparator_A+Comparator_A+端口禁用CAPDComparator_A+控制1 CACTL2Comparator_A+控制0 CACTL1 10)基础时钟系统+基本时钟控制3 BCSCTL3基本时钟控制2 BCSCTL2基本时钟控制1 BCSCTL1DCO时钟频率控制DCOCTL 11)端口P2端口P2选择2 P2SEL2端口P2电阻器使能P2REN端口P2选择P2SEL端口P2中断启动P2IE端口P2中断边沿选择P2IES端口P2中断标志P2IFG端口P2方向P2DIR端口P2输出P2OUT端口P2输入P2IN12)端口P1端口P1择2 P1EL2端口P1阻器使能P1REN端口P1选择P1SEL端口P1断启动P1IE端口P1边沿选择P1IES端口P1断标志P1IFG端口P1向P1DIR端口P1出P1OUT端口P1入P1IN13)特殊功能SFR中断标志2 IFG2SFR中断标志1 IFG1SFR 中断启动2 IE2SFR 中断启动1 IE1八、寄存器控制说明1):Timer_01):TACTLBITS 15----10没有用到BITS 9—8 时钟选择TASSELx00TACLK01ACLK10 SMCLK11 INCLK 是特定于设备的,通常是分配给倒TBCLKIDxBITS 7---6 输入分频器。
电设工作小结之——MSP430G2553学习笔记—3
电设工作小结之——MSP430G2553学习笔记——3接上一篇继续:二,MSP430G2553的应用设计(一),频率计的设计1,频率计的实现方法有:测频法,测周法,等精度测频。
一般是低频用测周法较准,高频用测频法较准。
等精度测频是比较准的。
2,测周法:(1)可以使用定时器的输入捕获功能,捕获上升沿或下降沿,然后就可以计算出信号的周期,从而得出频率。
(2)也可以把待测信号接到IO上,然后用无限循环不停的查询电平的高低,从而得出信号的周期。
丁老师建议:以丁老师的经验,这种方法测量的精度比用捕获中断的精度要高,因为中断的进入和退出都要占用时间。
(3)但这种侧周法适用于低频信号频率的测量,对于高频信号精度不好。
3,测频法:(1)可以定时一定的时间,然后计算捕获脉冲的个数,从而得出周期。
(2)把待测信号接到IO脚上,然后用IO的中断功能在一定时间内记录脉冲数。
(3)设置Timer0_A的时钟为外接时钟TACLK,然后把待测信号接到该时钟上,把Timer0用作计数器,在一定时间内读取TAR寄存器,得出脉冲个数,从而得出频率。
(4)测频法,使用与测高频信号,对于低频信号误差较大。
4,等精度测频:(1)把Timer0_A工作于计数器模式,计数待测信号。
然后把Timer1_A的时钟设为ACLK,32768Hz的标准晶振,作为标准信号。
然后再外部输入一个控制闸门信号PWM(我觉得也可以用看门狗定时器工作在间隔定时器模式来控制),和待测信号一起通过D触发器控制计数的开始和结束。
这个外接的闸门信号可以用555振荡器产生一个周期可调的PWM,这个PWM 的周期不需要精确的控制,只有知道大概的范围就可,保证计数器不溢出即可,最终测的精度和它的周期没有绝对的关系。
(也可以在计数器溢出时,在溢出中断中记录溢出的次数,这样的话也可以,但是这样中断的进入和退出会对测量精度产生影响)(2) 如果Timer0_A用于其他用途的话,也可以接一个计数器,然后把计数值在输入给单片机(如小车上测速所采用的方法)。
MSP430F123使用经验
MSP430F123使用经验MSP430F123使用经验以前C51 ,S51, AVR,C8051 用的比较多,感觉还可以,由于工作原因要用TI 的单片机(MSP430 系列),初看资料发现TI 的单片机太不一样了。
跟51 一点都不兼容,完全是TI 自己的模具打造的产品。
无论以前做了多少的单片机,到TI 这里都要重新开始。
我用的主要是TI MSP430 系列的MSP430F123 ,MSP430F1232 这两款,下面简单说说学习过程中的要点:1) 软件环境,IAR Embedded Workbench 这个软件有很多版本,向下兼容。
TI 有免费试用版,不好用,一个月更新一次LICENSCE ,还经常装不上,还不如多花点时间找个破解版的用,简洁。
我就是花了一天的时间才下载到一个破解版。
真感谢那哥们,太帅了。
2)调试器FET430 不错的,与其他不一样的是它具有JTAG 接口,可以用FET 调试,这个还比较方便。
3)430 编程,这更有意思,最初想好好看看寄存器操作说明,好自己写程序。
这种方法简直太落伍了,进度还慢,最快捷的办法是将别的程序拿过来修改,对于硬件工程师程序可不是写出来的,而是改出来的。
4)具体操作时首先把430 时钟寄存器配置好,其它就清楚多了。
需要注意它的三个时钟源时钟源说明ACLK 辅助时钟是LFXT1CLK (低频时钟源) ,经过1.2.4.8 分频得到;主要用于低速外设MCLK 系统主时钟可软件选择时钟源来自LFXT1CLK (低频时钟源); XT2CLK (高频时钟源) ,DC0CLK(数字控制RC 振荡器)三者之一;主要用于。
我的msp430学习经验
我的msp430学习经验
1.首先你要知道msp430的存储器结构。
典型微处理器的结构有两种:冯。
诺依曼结构程序存储器和数据存储器统一编码;哈佛结构程序存储器和数据存
储器;msp430系列单片机属于前者,而常用的mcs51系列属于后者。
0-0xf特殊功能寄存器;0x10-0x1ff外围模块寄存器;0x200-?根据不同型号地
址从低向高扩展;0x1000-0x107f seg_b0x1080_0x10ff seg_a 供flash信息存储
剩下的从0xffff开始向下扩展,根据不同容量,例如149为60KB,0xffff-
0x1100
2.复位信号是MCU工作的起点,430的复位型号有两种:上电复位信号POR和上电清楚信号PUC。
POR信号只在上电和RST/NMI复位管脚被设置
为复位功能,且低电平时系统复位。
而PUC信号是POR信号产生,以及其
他如看门狗定时溢出、安全键值出现错误是产生。
但是,无论那种信号触发
的复位,都会使msp430在地址0xffff处读取复位中断向量,然后程序从中断向量所指的地址开始执行。
复位后的状态不写了,详见参考书,嘿嘿。
3.系统时钟是一个程序运行的指挥官,时序和中断也是整个程序的核心和
中轴线。
430最多有三个振荡器,DCO内部振荡器;LFXT1外接低频振荡器,常见的32768HZ,不用外接负载电容;也可接高频450KHZ-8M,需接负载电容;XT2接高频450KHZ-8M,加外接电容。
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单片机学习心得总结第一篇:MSP430单片机学习心得总结改变CCS字体方法:perferance>General>Apperance>Colors and Fonts >Basic>Text Font将c语言编译成汇编语言之后执行。
如果c语言结构不好,则编译后会出现编译成汇编后代码冗余,使得执行效率不高。
板子有可能与电脑连接出问题,可以拔下重插一次。
在单片机内部flash存储空间有剩余时,可以用于数据存储空间,并且可以使用单片机程序进行数据管理。
POR PUC是复位信号看门狗定时器溢出发生复位复位时设置如下:1.RAM堆栈的指针指到最顶端2.初始化看门狗3.初始化外设 GIE 是总中断具有欠压复位功能工作电流小于20UA 待机电流小于0.8UA 4个特殊功能寄存器 R0是PC指针 R1是堆栈指针 R2是状态寄存器 R3是常数发生器12个通用寄存器R4-R15 27条内核指令 24条仿真指令 7中地址模式无累加器三个时钟:ACLK辅助时钟:频率较低,低速外设MCLK是主时钟,CPU运行的时钟,高频 SMCLK是次主时钟,高速外设DCO是数字震荡控制器1M 8M 12M 16M共4个级别,可以通过内置数据进行设置内置VLO低频振荡器,频率为4-20khz。
所以可以通过DCO进行分频Timer_A频率可达系统振荡频率,用于定时器时,最小单位时间是20ns 2553的电阻有0~15共16中。
用RSEL选择。
RSEL与DCO配合,值越大频率越大。
LF是外接时钟USART支持UART、SPI 共2种通讯方式 USCI支持 UART、I2C、SPI 共3种通讯方式关于变量:static变量是对于局部变量而言,如果不定义成静态变量,则每次执行时都会被重新初始化,静态变量则不重新初始化。
全局变量和静态变量是存储在RAM中的。
extern是外部变量,即将一个文件中的变量在另一个文件中使用。
msp430单片机入门知识
PORT2_VECTOR (1 * 2u) /* 0xFFE2 P2 */ PORT1_VECTOR (4 * 2u) /* 0xFFE8 P1 */ TIMERA1_VECTOR (5 * 2u) /* 0xFFEA Timer A CCR1/2*/ TIMERA0_VECTOR (6 * 2u) /* 0xFFEC Timer A CCR0 */ USART0TX_VECTOR (8 * 2u) /* 0xFFF0 串口发送 */ USART0RX_VECTOR (9 * 2u) /* 0xFFF2 串口接收*/ WDT_VECTOR (10 * 2u) /* 0xFFF4 Watchdog Timer */ SD16_VECTOR (12 * 2u) /* 0xFFF8 16位ADC */ NMI_VECTOR (14 * 2u) /* 0xFFFC Non-maskable */ RESET_VECTOR (15 * 2u) /* 0xFFFE Reset */
20
中断的具体过程
1. 事先将中断服务程序入口地址装入中断 向量表。
2. 中断发生后,如果中断被允许(可屏蔽 中断),CPU将当前程序地址和CPU状 态寄存器SR压入堆栈。
3. 跳转到中断服务程序入口,备份寄存器 入堆栈。
4. 开始执行中断服务程序。 5. 退出中断前,恢复寄存器。CPU取回SR
寄存器,跳转回中断前主程序地址。
6
MSP430FE425A资源 1. 8M/s处理速度 2. 512RAM(数据)+16KB Flash(程序代码) 3. 内置Flash控制器,剩余Flash可存数据。 4. 内置时钟管理单元,可内部倍频 5. 3路同步采样、差分输入、32倍程控增益放大器的16位ADC 6. 温度传感器 7. 1.2V基准源和输出缓冲器 8. 128段LCD驱动器 9. 增强UART串口 10. 看门狗 11. BasicTimer定时器 12. 16位TimeA定时器,3路捕获和2路PWM 13. 内置BOR复位电路 14. 16个双向可中断IO口 15. 内置电能计量模块 16. 后缀带A的,比如FE425A带硬件乘法器
MSP430学习总结(含远程升级方案)
MSP430学习MSP430系列咩有自带IAP功能的特点,必须自行编写IAP程序来进行片内Flash的烧写,才能达到省级的目的。
系统构思:需要升级的二进制文件下载到相应的地址空间,然后让单片机系统自动执行IAP 升级。
MSP430F149是在片内flash中运行。
1.下载升级文件到相应的外扩flash中。
2.从片外flash中编写到片内flash中(从0x1100开始至0xffff)3.编写引导程序,讲程序拷贝到相应的RAM空间(0x0200)中,并将PC指向0x200。
用户指南:如何使用这些寄存器。
数据手册:看电气特性,引脚等等xcl文件。
该文件在安装目录的IAR Systems\Embedded Workbench 5.4 Evaluation\430\config中。
CTRL+K 快注释,屏蔽选中的代码;CTRL+SHIFT+K 取消快注释,取消屏蔽选中的代码;CTRL+SHITF+F 全局搜索,有可能是因为搜狗输入法占用了快捷键而不行!生成下载文本147与149空间对比4系列的可以直接驱动段氏的液晶,1系不可以。
硬件结构MSP:mix signal processor混合信号处理器。
MSP430F149:F表示储存器是flash,14代表ADC是12位,9代表储存容量60kDSP 或者ARM成本比较高,单片机也有自己的生存空间。
MSP430可以进行片内flash自编程。
三个时钟单元MCLK/ACK/SMCLK内部集成Hardware Multiplier硬件乘法器,运算会更快,51单片机则没有!所以做一次运算会花很多个时钟周期!四种低功耗模式!降低时钟,LPM0:active模式下,哪些模块需要打开,可以由用户确定!LPM1:MCLK(主系统时钟)关掉,CPU则停止工作,ACLK(辅助系统时钟)和SMCLK(子系统四中模式消耗的电流设置CPUOFF/SCG0/SCG1---进入不同的低功耗级别。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
msp430 学习经验总结
最近学习MSP430,把自己的一些经验分享下,这是我在网上发现的一篇很不错的文章,归纳得很好,简洁明了。
1.MSP430 开发环境建立
1.安装IAR dor msp430 软件,软件带USB 仿真器的驱动。
2.插入USB 仿真器,驱动选择安装目录的/drivers/TIUSBFET
3.建立一个工程,选择option 选项,设置
a、选择器件,在General 项的Target 标签选择目标器件
b、选择输出仿真,在Linker 项里的Output 标签,选择输出Debug information for C-SPY,以输出调试
信息用于仿真。
c、若选择Other,Output 下拉框选择zax-m 即可以输出hex 文件用以烧录,注意,此时仿真不了。
d、选择Debugger 项的Setup 标签,Driver 下拉框选择FET Debugger。