MSP430系列单片机原理与应用.ppt_第1页
MSP430系列单片机原理与应用.ppt_第2页
MSP430系列单片机原理与应用.ppt_第3页
MSP430系列单片机原理与应用.ppt_第4页
MSP430系列单片机原理与应用.ppt_第5页
已阅读5页,还剩206页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MSP430系列单片机原理与应用,赵来定2010.06,参考书: 1. 谢兴红等著,MSP430单片机基础与实践 北京航空航天大学出版社,2008 2. 沈建华等著,MSP430系列16位超低功耗单片机原理与应用 清华大学出版社,2005,一. MSP430单片机简介 二. MSP430F149单片机结构 三. MSP430单片机片内外围模块及应用,一. MSP430单片机简介,1. MSP430系列单片机历史,MSP430系列是一个16位的、具有精简指令集的、超低功耗的混合型单片机,在1996年问世,由于它具有极低的功耗、丰富的片内外设和方便灵活的开发手段,已成为

2、众多单片机系列中一颗耀眼的新星。回忆MSP430系列单片机的发展过程,可以看出有这样三个阶段: 开始阶段从1996年推出MSP430系列开始到2000年初,这个阶段首先推出有33X、32X、 3 1 X等几个系列,而后于2000年初又推出了l l X、l l X1系列。 MSP430的33X、32X、31X等系列具有LCD驱动模块,对提高系统的集成度较有利。每一系列有ROM型(C)、OTP型(P)、和 EPROM型(E)等芯片。EPROM型的价格昂贵,运行环境温度范围窄,主要用于样机升发。这也表明了这几个系列的升发模式,即:用户可以用EPROM型开发样机;用OTP型进行小批量生产;而ROM型适

3、应大批量生产的产品。,2000年推出了1l X1 lX l系列。这个系列采用20脚封装,内存容量、片上功能和IO引脚数比较少,但是价格比较低廉。 这个时期的MSP430已经显露出了它的特低功耗等的一系列技术特点,但也有不尽如人意之处。它的许多重要特性,如:片内串行通信接口、硬件乘法器、足够的IO引脚等,只有33X系列才具备。33X系列价格较高,比较适合于较为复杂的应用系统。当用户设计需要更多考虑成本时,33X并不一定是最适合的。而片内高精度AD转换器又只有32X系列才有。,寻找突破,引入Flash技术随着Flash技术的迅速发展, TI公司也将这一技术引入 MSP430系列中。在2000年7月

4、推出Fl 3XF1 4X系列,在200 1年7月到2002年又相 继推出F41X、 F43X、 F44X这些全部是Flash型单片机。 F4 1 X单片机是目前应用比较广的单片机,它有48个IO口, 96段LCD驱动。 F43X、F44X系列是在13X、14X的基础上,增加了液晶驱动器,将驱动LCD的段数由3XX系列的最多120段增加到160段。并且相应地调整了显示存储器在存储区内的地址,为以后的发展拓展了空间。,MSP430系列由于具有Flash存储器,在系统设计、开发调试及实际应用上都表现出较明显的优点。这是TI公司推出具有Flash型存储器及JTAG边界扫描技术的廉价开发工具MSPFET

5、430X110,将国际上先进的JTAG技术和Flash在线编程技术引入MSP430。 这种以Flash技术与FET开发工具组合的开发方式,具有方便、廉价、实用等优点,给用户提供了一个较为理想的样机开发方式。 另外,2001年TI公司又公布了BOOTSTRAP技术,利用它可在烧断熔丝以后只要几根线就可更改并运行内部的程序。这为系统软件的升级提供了又一方便的手段。 BOOTSTRAP具有很高的保密性,口令可达到32个字节的长度。,蓬勃发展阶段在前一阶段,引进新技术和内部进行调整之后,为MSP430的功能扩展打下了良好的基础。于是TI公司在2002年底和2003年期间又陆续推出了F15X和 F16X

6、系列的产品。 在这一新的系列中,有了两个方面的发展。一是从存储器方面来说,将RAM容量大大增加,如F1 6 l 1的RAM容量增加到了l0KB。这样一来,希望将实时操作系统(RTOS)引入MSP430的,就不会因RAM不够而发愁了。二是从外围模块来说,增加了I 2 C、DMA、DAC 12和SVS等模块。 在2003年中,TI公司还推出了专门用于电量计量的MSP430FE42X和用于水表、气表、热表上的具有无磁传感模块的MSP430FW42X单片机。我们相信由于MSP430的开放性的基本架构和新技术的应用,新的MSP430的产品品种必将会不断出现。,MSP430系列单片机的迅速发展和应用范围的

7、不断扩大,主要取决于以下的特点。 a. 强大的处理能力: MSP430系列单片机是一个16位的单 片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式(7种源操作数寻址、4种目的操作数寻址)、简洁的27条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令;有较高的处理速度,在8MHz晶体驱动下指令周期为125 ns。这些特点保证了可编制出高效率的源程序。,2、MSP430单片机的特点,b. 在运算速度方面,MSP430系列单片机能在8MHz晶体的驱动下,实现125ns的指令周期。16位的数据宽度、125ns的指令周期以及多功能的硬件乘法器(

8、能实现乘加)相配合,能实现数字信号处理的某些算法(如FFT等)。 c. MSP430系列单片机的中断源较多,并且可以任意嵌套,使用时灵活方便。当系统处于省电的备用状态时,用中断请求将它唤醒只用6us。,d. 超低功耗 MSP430单片机之所以有超低的功耗,是因为其在降低芯片的电源电压及灵活而可控的运行时钟方面都有其独到之处。 首先,MSP430系列单片机的电源电压采用的是1.83.6V电压。因而可使其在lMHz的时钟条件下运行时,芯片的电流会在200400uA左右,时钟关断模式的最低功耗只有01uA。 其次,独特的时钟系统设计。在MSP430系列中有两个不同的系统时钟系统:基本时钟系统和锁频环

9、(FLL和FLL+)时钟系统或DCO数字振荡器时钟系统。有的使用一个晶体振荡器(32768Hz),有的使用两个晶体振荡器)。由系统时钟系统产生CPJ和各功能所需的时钟。并且这些时钟可以在指令的控制下,打开和关闭,从而实现对总体功耗的控制。 由于系统运行时打开的功能模块不同,即采用不同的工作模式,芯片的功耗有着显著的不同。在系统中共有一种活动模式(AM)和五种低功耗模式(LPMOLPM4)。在等待方式下,耗电为0.7uA,在节电方式下,最低可达0.1uA。,e. 系统工作稳定 上电复位后,首先由DCOCLK启动CPU,以保证程序从正确的位置开始执行,保证晶体振荡器有足够的起振及稳定时间。然后软件

10、可设置适当的寄存器的控制位来确定最后的系统时钟频率。如果晶体振荡器在用做CPU时钟MCLK时发生故障,DCO会自动启动,以保证系统正常工作;如果程序跑飞,可用看门狗将其复位。,f. 丰富的片上外围模块 MSP430系列单片机的各成员都集成了较丰富的片内外设。它们分别是看门狗(WDT)、模拟比较器A、定时器A (TimerA)、定时器B (TimerB)、串口0、 1(USART0、1)、硬件乘法器、液晶驱动器、l 0位l 2位ADC、I 2 C、总线直接数据存取(DMA)、端口0(P0)、端口16(P1P6)、基本定时器(Bas i c Timer)等的一些外围模块的不同组合。其中,看门狗可以

11、使程序失控时迅速复位;模拟比较器进行模拟电压的比较,配合定时器,可设计出AD转换器:16位定时器(Timer_A和Timer_B)具有捕获比较功能,大量的捕获比较寄存器,可用于事件计数、时序发生、PWM等;有的器件更具有可实现异步、同步及多址访问串行通信接U可方便的实现多机通信等应用:具有较多的IO端口,最多达6*8条IO口线: PO、 P1、 P2端口能够接收外部上升沿或下降沿的中断输入; 1214位硬件AD转换器有较高的转换速率,最高可达200kbps,能够满足大多数数据采集应用:能直接驱动液晶多达160段:实现两路的12位DA转换;硬件I 2 C串行总线接口实现存储器串行扩展;以及为了增

12、加数据传输速度,而采用直接数据传输(DMA)模块。MSP430系列单片机的这些片内外设为系统的单片解决方案提供了极大的方便。,g. 方便高效的开发环境 目前MSP430系列有OPT型、FLASH型和ROM型三种类型的器件,这些器件的开发手段不同。对于OPT型和ROM型的器件是使用仿真器开发成功之后在烧写或掩膜芯片;对于FLASH型则有十分方便的开发调试环境,因为器件片内有JTAG调试接口,还有可电擦写的FLASH存储器,因此采用先下载程序到FLASH内,再在器件内通过软件控制程序的运行,由JTAG接口读取片内信息供设计者调试使用的方法进行开发。这种方式只需要一台PC机和一个JTAG调试器,而不

13、需要仿真器和编程器。开发语言有汇编语言和C语言。 MSP430单片机目前主要以FLASH型为主。 h. 适应工业级运行环境 MSP430系列器件均为工业级的,运行环境温度为一40+85摄氏度,所设计的产品适合用于工业环境下。,我国的多数读者对89C 5 1系列的单片机是很熟悉的,为了加深对MSP430系列单片机的认识,我们不妨将两者进行一下比较。 首先,89C 51单片机是8位单片机。其指令是采用的被称为“CISC”的复杂指令集,共具有111条指令。而MSP430单片机是16位的单片机,采用了精简指令集(RISC)结构,只有简洁的27条指令,大量的指令则是模拟指令,众多的寄存器以及片内数据存储

14、器都可参加多种运算。这些内核指令均为单周期指令,功能强,运行的速度快。,3、MSP430系列与89C5l系列的比较,再者,89C 5 1系列单片机由于其内部总线是8位的,其内部功能模块基本上都是8位的虽然经过各种努力其内部功能模块有了显著增加,但是受其结构本身的限制很大,尤其模拟功能部件的增加更显困难。MSP430系列其基本架构是16位的,同时在其内部的数据总线经过转换还存在8位的总线,在加上本身就是混合型的结构,因而对它这样的开放型的架构来说,无论扩展8位的功能模块,还是16位的功能模块,即使扩展模数转换或数模转换这类的功能模块也是很方便的。这也就是为什么MSP430系列产品和其中功能部件迅

15、速增加的原因。,最后,就是在开发工具上面。对于89C51来说,由于它是最早进入中国的单片机,人们对它在熟悉不过了,再加上我国各方人士的努力,创造了不少适合我们使用的开发工具。但是如何实现在线编程还是一个很大的问题。对于MSP430系列而言,由于引进了Flash型程序存储器和JTAG技术,不仅使丌发工具变得简便,而且价格也相对低廉,并且还可以实现在线编程。,其次,89C 5l单片机本身的电源电压是5伏,有两种低功耗方式:待机方式和掉电方式。正常情况下消耗的电流为24mA,在掉电状态下,其耗电电流仍为3mA;即使在掉电方式下,电源电压可以下降到2V,但是为了保存内部RAM中的数据,还需要提供约50

16、uA的电流。而MSP430系列单片机在低功耗方而的优越之处,则是89C5l系列不可比拟的。正因为如此, MSP430更适合应用于使用电池供电的仪器、仪表类产品中。,4. MSP430系列单片机命名规则,端口较容易损坏。 外部输入中断优先级顺序不能编程。 不能采用过多的浮点运算(所有处理器的特点)。,5、MSP430单片机的其它特点,二. MSP430F149单片机结构,MSP430X14X系列,MSP430 CPU的16个寄存器,状态寄存器SR /R2/常数发生器1,状态标志 : 控制标志 C :进位标志 GIE :中断标志位 Z :零标志 CPUOFF :CPU控制位 N :负标志 OscO

17、FF:晶振控制位 V :溢出标志 SCG0,SCG1:时钟控制位,MSP430存储器结构和地址空间,MSP430的低功耗模式,MSP430的低功耗模式,MSP430的低功耗模式,系统响应中断的过程,硬件自动中断服务 执行中断处理子程序 执行RETI指令(中断返回),PC入栈 SR入栈 中断向量赋给PC GIT、CPUOFF、OSCOFF和SCG1清除 IFG标志位清除(单源中断标志),SR出栈(恢复原来的标志) PC出栈,三. MSP430单片机片内外围模块,1. MSP430时钟模块 2. MSP430的端口 3. 定时器 4. USART模块 5. FLASH存储器模块 6. A/D及D/

18、A 7. 比较器A 8. SPI 9. I2C 10. MSP430液晶驱动模块 11. DMA控制器,1. MSP430时钟模块,高速晶体振荡器 低速晶体振荡器 数字控制振荡器DCO 锁频环FLL以及锁频环增强版本FLL+,MSP430X1XX时钟模块,时钟输入源: LFXT1CLK 低频时钟源 XT2CLK 高频时钟源 DCOCL 数字控制RC振荡器,时钟输出信号 ACLK 辅助时钟 MCLK主系统时钟 SMCLK子系统时钟,慢速外设,CPU和 系统,快速外设,振荡器控制逻辑,LFXT1 振荡器控制 逻辑,XT2振荡器控制逻辑,DCO振荡器 控制逻辑,DCO频率的调节,DCO频率的调节,D

19、CO频率的调节,时钟模块寄存器1-DCOCTL,时钟模块寄存器2-BCSCTL1,时钟模块寄存器3-BCSCTL2,时钟模块寄存器4-IE1,时钟模块寄存器5-IFG1,基础时钟模块工作方式和相关寄存器设置,例1设MCLK = XT2, SMCLK = DCOCLK,将MCLK由P5.4输出。(MSP430X14X中引脚P5.4和MCLK复用)。 实现上述功能的程序如下: #include void main(void) unsigned int i; WDTCTL = WDTPW + WDTHOLD; / 停止看门狗 P5DIR |= 0 x10; / P5.4 输出 P5SEL |= 0

20、x10; / P5.4 用作MCLK输出 BCSCTL1 ,例:,void clock_set(void) IFG2=0; IFG1=0; _DINT(); _BIC_SR(OSCOFF); BCSCTL1 ,MSP430F4XX系列时钟模块,FLL+模块应用举例,例1 设:ACLK = LFXT1 = 32768Hz, 令MCLK = SMCLK = DCOCLK = (n+1) ACLK,并将MCLK和ACLK分别通过P1.1和P1.5输出。 程序代码如下 #include msp430 x44x.h void main(void) WDTCTL = WDTPW + WDTHOLD; /

21、停止看门狗 SCFI0 |= FN_2; /设置锁相环频率调整范围 FLL_CTL0 = XCAP18PF; /设置锁相环频率控制寄存器 SCFQCTL = 74; / (74+1) 32768 = 2.45Mhz P1DIR = 0 x22; / P1.1 内部DCO 2.45Mhz,P1.1- MCLK = 2.45Mhz,P1.5- ACLK = 32khz,低功耗,使用内部时钟发生器(DCO)无需外接任何元件 选择外接晶体或陶瓷谐振器,可以获得最低频率和功耗 采用外部时钟信号源 瞬间响应特性,为了充分利用CPU低功耗性能,可以让CPU工作于突发状态。 在通常情况下,根据需要使用软件将C

22、PU设定到某一种低功耗工作模式下, 在需要时使用中断将CPU从休眠状态中唤醒,完成工作之后又可以进入相应的休眠状态。,例:系统初始化完毕之后工作于低功耗模式0,中断事件触发到活动模式,中断处理结束后进入到低功耗模式3。 ;主程序 .;初始化操作开始 ; ;初始化完毕 BIS #GIE+CPUOFF,SR ; 主程序中设置低功耗模式0 ;.; 程序在这里停止 ; ;中断子程序 ;中断处理开始 ;中断处理结束 BIS #GIE+CPUOFF+SCG1+SCG0,0(SP);设置SR为低功耗模式3 RETI;中断返回 ;系统进入低功耗模式3。 ,低功耗0转变为低功耗3,;主程序 .;初始化操作开始

23、; ;初始化完毕 BIS #GIE+CPUOFF,SR ; 主程序中设置低功耗模式0 L1 操作1 L2 操作2 ; ;中断子程序 ;中断处理开始 ;中断处理结束 BIC # CPUOFF,0(SP) ;设置SR为活动模式 RETI;中断返回,系统进入活动模式。,低功耗到活动状态转换,低功耗原则,一般的低功耗原则: 设计外设时的常规原则:,最大化LPM3的时间,用32KHz晶振作为ACLK时钟,DCO用于CPU激活后的突发短暂运行 用接口模块代替软件驱动功能。 用中断控制程序运行 用可计算的分支代替标志位测试产生的分支 用快速查表代替冗长的软件计算 在冗长的软件计算中使用单周期的CPU寄存器

24、避免频繁的子程序和函数调用 尽可能直接用电池供电,将不用的输入端连接到VSS JTAG端口TMS、TCK和TDI不要连接到VSS CMOS输入端不能有浮空节点,将所有输入端接适当的电平 不论对于内核还是对于各外围模块,选择尽可能低的运行频率,如果不影响功能应设计自 动关机,2. MSP430的端口,类型丰富 功能丰富 寄存器丰富,P1,P2, P3,P4,P5,P6, S和COM,I/O 中断能力 其他片内外设功能 驱动液晶,P1与P2各有7个寄存器 P3、P4、P5、P6有四个寄存器,不能使用不存在的资源 ,使用端口的时候要和具体的器件相关,*/ #include /*/ void main

25、(void) unsigned long tmp; WDTCTL = WDTHOLD + WDTPW; /关闭看门狗 P5OUT = 0 x02; /设置P5.1输出为1 while(1) /循环 P5DIR = 0 x02; / 使能P5.1为输出 P5OUT = 0 x02; / 对输出置反 for(tmp=0; tmp67500; tmp+); / 延时 ,端口数据输出特性,低电平输出特性,高电平输出特性,3. 定时器,看门狗定时器 基本定时器 定时器A 定时器B,看门狗定时器,写:5AH 读:69H,WDTCNT不能直接通过软件存取,必须通过看门狗定时器的控制寄存器WDTCTL来控制,

26、看门狗定时器,启、停控制,看门狗模式 定时器模式,看门狗定时器,看门狗定时器,看门狗定时器,看门狗定时器,看门狗定时器应用举例,# include void main(void) WDTCTL = WDT_MDLY_32; / 定时周期为32ms IE1 |= WDTIE; / 使能WDT中断 P1DIR |= 0 x01; / P1.0输出 _EINT(); / 系统中断允许 for (;) _BIS_SR(CPUOFF); / 进入 LPM0 _NOP(); / 看门狗中断服务子程序 #pragma vector= WDT_VECTOR _interrupt void watchdog_t

27、imer (void) P1OUT = 0 x01; / P1.0取反 ,中断允许WDTIE位于IE1.0,初始状态为复位,两种中断,两个级别,两种处理,/* * * 文件名称: * main_c.c * 文件说明: * 程序用于对看门狗的两种工作模式进行测试 * 当setWDT(0)时,程序测试看门狗的看门狗模式 * 当setWDT(1)时,程序测试看门狗的定时器模式,*/ #include /* * 设置看门狗的两种模式 * 在系统加电后,默认的子系统频率是1M,设置WDT延迟为250ms * 那么系统执行0 x1ffff 条指令后系统如果没有重新设置WDT, * WDT将导致系统复位 *

28、/,void setWDT(int mode) unsigned int tmp; if(mode=1) / 定时器模式 WDTCTL = WDT_ADLY_250; / 250ms中断间隔 IE1 |= WDTIE; / 使能 WDT 中断 P5DIR |= 0 x02; / P5.1 output mode _EINT(); / 开中断 else if(mode=0) /看门狗模式 WDTCTL = WDT_ARST_250; /设置看门狗时间间隔为250ms /在系统加电后,默认子系统时钟频率是1M for(tmp=0 x7fff;tmp0;tmp-);/延迟 P5DIR |= 0 x0

29、2; /P5.1 output mode P5OUT |= 0 x02; /light LED4 for(tmp=0 x7fff;tmp0;tmp-); /延迟, 执行一次tmp-至少要用2个指令 ,/* * 函数说明: * WDT中断函数 * */ #pragma vector = WDT_VECTOR _interrupt void WDT_Interrupt(void) P5OUT = 0 x02; /* * main()函数 */ void main(void) setWDT(0); /设置程序运行在看门狗模式 ,基本定时器,基本定时器,定时器A结构,定时器A功能模块,计数器部分:输入

30、的时钟源具有4种选择,所选定的时钟源又可以1、2、4或8分频作为计数频率,Timer_A可以通过选择4种工作模式灵活的完成定时/计数功能 捕获/比较器:用于捕获事件发生的时间或产生时间间隔,捕获比较功能的引入主要是为了提高I/O 端口处理事务的能力和速度。不同的MSP430单片机,Timer_A模块中所含有的捕获/比较器的数量不一样,每个捕获/比较器的结构完全相同,输入和输出都决定于各自所带的控制寄存器的控制字,捕获/比较器相互之间工作完全独立。 输出单元:具有可选的8种输出模式,用于产生用户需要的输出信号。支持PWM,全部关于定时器及其操作的控制位都包含在定时器控制寄存器TACTL中,TAR

31、 16位计数器 该单元就是执行计数的单元,是计数器的主体,Timer_A有多个捕获/比较模块,每个模块都有自己的控制字CCTLx,CCRx 捕获/比较寄存器 在捕获/比较模块中,可读可写。,TAIV保存中断向量,定时器计数模式,停止模式,停止模式用于定时器暂停,并不发生复位,所有寄存器现行的内容在停止模式结束后都可用。当定时器暂停后重新计数时,计数器将从暂停时的值开始以暂停前的计数方向计数。例如,停止模式前,Timer_A工作于增/减计数模式并且处于下降计数方向,停止模式后,Timer_仍然工作于增/减计数模式,从暂停前的状态开始继续沿着下降方向开始计数。如果不能这样,则可通过TACTL中的C

32、LR控制位来清除定时器的方向记忆特性。,增计数模式,捕获/比较寄存器CCR0用作Timer_A增计数模式的周期寄存器,因为CCR0为16位寄存器,所以该模式适用于定时周期小于65 536的连续计数情况。计数器TAR可以增计数到CCR0的值,当计数值与CCR0的值相等(或定时器值大于CCR0的值)时,定时器复位并从0开始重新计数。,增计数模式的 计数过程,增计数模式的中断标志位设置,改变CCR0值重置计数周期增计数方式,新周期大于 旧周期的响应,新周期小于 旧周期的响应,连续计数模式,在需要65 536个时钟周期的定时应用场合常用连续计数模式。定时器从当前值计数到0FFFFH后,又从0开始重新计

33、数,计数器的 计数过程,标志位 设置,连续计数模式的典型应用,产生多个独立的时序信号:利用捕获比较寄存器捕获各种 其他外部事件发生的定时器数据,产生多个定时信号:通过中断处理程序在相应的比较寄存器CCRx上加上 一个时间差来实现。这个时间差是当前时刻(既相应的CCRx中的值) 到下一次中断发生时刻所经历的时间,增/减计数模式,需要对称波形的情况经常可以使用增/减计数模式,该模式下,定时器先增计数到CCR0的值,然后反向减计数到0。计数周期仍由CCR0定义,它是CCR0计数器数值的2倍。,计数器的 计数过程,标志位 设置,设:ACLK = TACLK = LFXT1 = 32768Hz, MCL

34、K = SMCLK = DCO = 32ACLK = 1.048576MHz,要求从P5.1输出一个方波。 示例程序代码如下: #include void main(void) WDTCTL = WDTPW + WDTHOLD; TACTL = TASSEL0 + TACLR; / ACLK, 清除 TAR CCTL0 = CCIE; CCR0 = 1000; /方波频率:32768/1000/2=16.384 P5DIR |= 0 x02; TACTL |= MC0; / Timer_a增计数模式 _EINT(); for (;) _BIS_SR(LPM3_bits); / 进入 LPM3

35、_NOP(); / Timer A0中断服务程序 #pragma vector= TIMERA0_VECTOR _interrupt void Timer_A (void) P5OUT = 0 x02; / 取反P5.1 ,CCTLx 捕获/比较控制寄存器,该寄存器在POR信号后全部复位,但在PUC信号后不受影响。,CAPTMOD10 选择捕获模式,CCIS10捕获模式下选择捕获事件输入源,SCS 选择捕获信号与定时时钟同步、异步关系,CAP 选择捕获模式还是比较模式,OUTMODx 选择输出模式,CCIEx 捕获/比较模块中断允许位,CCIx 捕获/比较模块的输入信号,COV 捕获溢出标志,

36、CCIFGx 捕获比较中断标志,OUT 输出信号,SCCIx 比较相等信号EQUx将选中的捕获比较输入信号CCIx ( CCIxA,CCIxB,Vcc和GND)进行锁存,然后可由SCCIx读出。,捕获/比较模块,捕获模式,当CCTLx中的CAPx=1,该模块工作在捕获模式。这时如果在选定的引脚上发生设定的脉冲触发沿(上升沿、下降沿或任意跳变),则TAR中的值将写入到CCRx中。 每个捕获比较寄存器能被软件用于时间标记。可用于各种目的 当捕获完成后,中断标志位CCIFGx 被置位。,测量软件程序所用时间 测量硬件事件之间的时间 测量系统频率,定时器A中断,CCR0中断,CCR1CCRx 和定时器

37、中断,输出单元,每个捕获/比较模块包含一个输出单元,用于产生输出信号,输出单元的结构,输出单元时序,输出模式,输出模式0 输出模式:输出信号 OUTx由每个捕获/比较模块的控制寄存器 CCTLx中的 OUTx位定义,并在写入该寄存器后立即更新。最终位 OUTx直通。 输出模式1 置位模式:输出信号在TAR等于 CCRx 时置位,并保持置位到定时器复位或选择另一种输出模式为止。 输出模式2 PWM翻转/复位模式:输出在TAR的值等于 CCRx 时翻转,当TAR的值等于CCR0时复位。 输出模式3 PWM置位/复位模式:输出在TAR的值等于 CCRx 时置位,当TAR的值等于CCR0时复位。,输出

38、模式,输出模式4 翻转模式:输出电平在TAR的值等于 CCRx 时翻转,输出周期是定时器周期的2倍。 输出模式5 复位模式:输出在TAR的值等于 CCRx 时复位,并保持低电平直到选择另一种输出模式。 输出模式6 PWM翻转/置位模式:输出电平在TAR的值等于 CCRx 时翻转,当TAR值等于CCR0时置位。 输出模式7 PWM复位/置位模式:输出电平在TAR的值等于 CCRx 时复位,当TAR的值等于CCR0时置位。,增计数模式输出实例,连续计数模式下的输出波形,增/减计数模式下的输出实例,TIMER_A应用实现异步串行通信,Timer_A具有实现异步串行通信的一些特征 捕获功能可以捕捉选定

39、输入引脚的状态的变化,它可以选择捕捉上升沿、下降沿、前后沿。如果捕捉到了相应的变化,则定时器计数值将被复制到捕获比较寄存器 CCRx 中,并会产生相应的中断。在串行通信中正是利用捕获功能的特点来捕捉起始位的信息。 比较功能是借助比较器不断地将 CCRx 中的设定值与定时器中的计数值相比较,当二者相等时就产生中断,并产生设定的输出,利用比较功能可以获得精确的时间间隔,利用该特性可以构造一个精确的波特率发生器,为串行通信提供时间基准。,能够自动检测起始位 可以硬件方式产生波特率,范围从75115200波特 硬件锁存接收和发送的数据 全双工方式,TIMER_A应用实现异步串行通信,TIMER_A应用

40、实现异步串行通信,Timer_A实现PWM,PWM信号示意,Timer_A产生PWM,Timer_A实现PWM举例,例:设ACLK = TACLK = LFXT1 = 32768, MCLK = SMCLK = DCOCLK = 32ACLK = 1.048576Mhz,利用Timer_A输出周期为512 /32768 = 15.625ms、占空比分别为75%和25%的PWM矩形波: #include void main(void) WDTCTL = WDTPW +WDTHOLD; FLL_CTL0 |= XCAP14PF; TACTL = TASSEL0 + TACLR; / ACLK, 清

41、除 TAR CCR0 = 512-1; / PWM周期 CCTL1 = OUTMOD_7; CCR1 = 384; /占空比 384/512=0.75 CCTL2 = OUTMOD_7; CCR2 = 128; /占空比128/512=0.25 P1DIR |= 0 x04; / P1.2 输出 P1SEL |= 0 x04; / P1.2 TA1 P2DIR |= 0 x01; / P2.0 输出 P2SEL |= 0 x01; / P2.0 TA2 TACTL |= MC0; / Timer_A 增计数模式 for (;) _BIS_SR(LPM3_bits); / 进入 LPM3 _NO

42、P(); ,PWM信号,调整PWM信号 占空比,PWM信号经滤波输出,TIMER_B,Timer_B和Timer_A共同的特征,4种工作模式 具有可选,可配置的计数器输入时钟源 有多个独立可配置捕获/比较模块 有多个具有8种输出模式的可配置输出单元 DMA使能 中断功能强大,中断可能源自于计数器的溢出,也可能源自于各捕获/比较模块上发生的捕获事件或比较事件。,Timer_B与Timer_A不同之处,Timer_B计数长度为8位,10位,12位和16位可编程,而Timer_A的计数长度固定为16位。 Timer_B中没有实现Timer_A中的SCCI寄存器位的功能。 Timer_B在比较模式下的

43、捕获/比较寄存器功能与Timer_A不同,增加了比较锁存器 有些型号芯片中的Timer_B输出实现了高阻输出 比较模式的原理稍有不同:在Timer_A中, CCRx寄存器中保存与TAR相比较的数据;而在Timer_B中, CCRx寄存器中保存的是要比较的数据,但并不直接与定时器TBR相比较,而是将 CCRx送到与之相对应的锁存器之后,由锁存器与定时器TBR相比较。从捕获/比较寄存器向比较锁存器传输数据的时机也是可以编程的,可以是在写入捕获/比较寄存器后立即传输,也可以是由一个定时事件来触发。 Timer_B支持多重的、同步的定时功能;多重的捕获/比较功能;多重的波形输出功能(比如PWM信号)。

44、而且,通过对比较数据的两级缓冲,可以实现多个PWM信号周期的同步更新,4. USART模块结构,4. USART模块结构,U AR T模块结构 异步,异步多机通信模式,When two devices communicate asynchronously, the idle-line format is used for the protocol. When three or more devices communicate, the USART supports the idle-line and address-bit multiprocessor communication format

45、s.,线路空闲多机模式,地址位多机模式,串行操作自动错误检测,FE 标志帧错误:当一个接收字符的停止位为0并被装入接收缓存,接收的为一个错误的帧,那么帧错标志被设置成1,即使在多停止位模式时也只检测第一个停止位。同样,丢失停止位意味着从起始位开始的同步特性被丧失,也是一个错误帧。在同步的4线模式时,因总线冲突使有效主机停止,并在STE引脚信号出现下降沿时使FE位设置为1 PE 奇偶校验错误:当接收字符中1的个数与它的校验位不相符,并被装入接收缓存时,发生校验错,设置PE为1 OE 溢出错误标志:当一个字符写入接收缓存URXBUF时,前一个字符还没有被读出,这时前一个字符因被覆盖而丢失,发生溢出

46、(同步与异步情况相同) BRK 打断检测标志:当发生一次打断同时URXEIE置位时,该位被设置为1,表示接收过程被打断过。RXD线路从丢失的第一个停止位开始连续出现至少10位低电平被识别为打断,波特率的产生,Note: Initializing or Re-Configuring the USART Module The required USART initialization/re-configuration process is: 1) Set SWRST (BIS.B #SWRST, UCTL0|=CHAR; / 8-bit 字符 UTCTL0=SSEL0+SSEL1; / UCLK=

47、SMCLK UBR00=0 xa0; / 在4MHz下进行 9600波特率通信 UBR10=0 x01; / 4000000/9600=416.67 UMCTL0=0 x5e; / 调整寄存器(0.67*8=5.4) UCTL0,5. FLASH存储器模块,编程可以使用位、字节和字操作 可以通过JTAG、BSL和ISP进行编程 1.83.6V工作电压,2.73.6V编程电压 数据保持时间从10年到100年不等 可编程次数从100到100,000次 60K空间编程时间5秒 保密熔丝烧断后不可恢复,不能再对JTAG进行任何访问。 FLASH编程/擦除时间由内部硬件控制,无需任何软件干预,FLASH

48、存储器模块 主要特点 编程可以使用位、字节和字操作 可以通过JTAG、BSL和ISP进行编程 1.83.6V工作电压,2.73.6V编程电压 数据保持时间从10年到100年不等 可编程次数从100到100,000次 60K空间编程时间5秒 保密熔丝烧断后不可恢复,不能再对JTAG进行任何访问。 FLASH编程/擦除时间由内部硬件控制,无需任何软件干预,部分容量的FLASH段与地址的对应关系,Programming Flash Memory via the Bootstrap loader (BSL),Every MSP430 flash device contains a bootstrap

49、loader. The BSL enables users to read or program the flash memory or RAM using a UART serial interface. Access to the MSP430 flash memory via the BSL is protected by a 256-bit, user-defined password.,Programming Flash Memory via a Custom Solution,Programming Flash Memory via a Custom Solution,The ab

50、ility of the MSP430 CPU to write to its own flash memory allows for in-system and external custom programming solutions as shown in Figure. The user can choose to provide data to the MSP430 through any means available (UART, SPI, etc.). User-developed software can receive the data and program the fl

51、ash memory. Since this type of solution is developed by the user, it can be completely customized to fit the application needs for programming , erasing, or updating the flash memory.,FLASH存储器的结构框图,FLASH存储器的主要功能部件,控制寄存器:控制FLASH存储器的檫除与写入 FLASH存储器阵列:存储体 地址数据锁存器:檫除与编程时执行锁存操作 编程电压发生器:产生编程电压 时序发生器:产生檫除与编

52、程所需所有时序控制信号,擦除操作,选择适当的时钟源和分频因子,为时序发生器提供正确时钟输入 如果Lock=1,则将它复位 监视BUSY标志位只有当BUSY=0时才可以执行下一步,否则一直监视BUSY。 如果擦除一段,则设置ERASE=1。 如果擦除多段,则设置MERAS=1 如果整个FLASH全擦除,则设置RASE=1同时MERAS=1。 对擦除的地址范围内任意位置作一次空写入,用以启动擦除操作。如果空写的地址在不能执行擦除操作的段地址范围内,则写入操作不起作用,Any erase is initiated by a dummy write into the address range to

53、be erased. The dummy write starts the flash timing generator and the erase operation. Figure shows the erase cycle timing. The BUSY bit is set immediately after the dummy write and remains set throughout the erase cycle. BUSY, MERAS, and ERASE are automatically cleared when the cycle completes. The

54、erase cycle timing is not dependent on the amount of flash memory present on a device. Erase cycle times are equivalent for all MSP430 devices.,FLASH编程操作,选择适当的时钟源以及合适的分频因子 如果Lock=1,将它复位 监视BUSY位,直到BUSY=0是才可进入下一步 如果写入单字或单字节,则将设置WRT=1 如果是块写或多字、多字节顺序写入,则将设置WRT=1,BLKWRT=1 将数据写入选定地址时启动时序发生器,在时序发生器的控制下完成整个

55、过程,单字或单字节写入周期,块写入周期,FLASH错误操作的处理,如果写入高字节口令码错误,则引发PUC信号:小心操作可以避免; 在对FLASH操作期间读FLASH内容,会引发ACCVFIG状态位的设置:小心操作可以避免 因为在对FLASH操作期间,需要较长的时间,如果这时看门狗定时器的数据将近尾声,则看门狗定时器溢出:建议用户程序在进行FLASH操作之前先停掉看门狗定时器,等操作结束之后再打开看门狗,所有的FLASH类型的MSP430器件的0段都包含有中断向量等重要的程序代码,如果对其进行擦除操作,将会引起严重的后果:建议用户程序在进行FLASH操作之前,先将该段的重要数据(或程序代码)保存到RAM中或写入到其他暂时未用的段中,等待该段操作完毕再还原那些数据(或程序代码);同时一定不要使正在执行的程序处在正要被擦除的段中;也不要在FLASH操作期

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论