第2章MSP430F5单片机硬件结构及原理_第1页
第2章MSP430F5单片机硬件结构及原理_第2页
第2章MSP430F5单片机硬件结构及原理_第3页
第2章MSP430F5单片机硬件结构及原理_第4页
第2章MSP430F5单片机硬件结构及原理_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

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

文档简介

1、1第第2 2章章 MSP430F5MSP430F5单片机单片机硬件结构及原理硬件结构及原理2本章内容本章内容n2.1 MSP430 5529结构概述结构概述 n2.2 MSP430单片机的中央处理器单片机的中央处理器n2.3 MSP430单片机的存储器结构单片机的存储器结构n2.4低功耗结构低功耗结构n2.5系统复位和初始化系统复位和初始化n2.6 中断系统中断系统n2.7系统控制(系统控制(SYS)模块)模块n2.8特殊功能寄存器(特殊功能寄存器(SFR)n2.9未使用引脚设置未使用引脚设置3MSP430X14X系列系列 4MSP430X14X系列系列 模拟电源输入:AVcc,AVss数字电

2、源输入:DVcc,DVss高频晶振:X2IN,X2OUT低频晶振:XIN,XOUT/TCLK模数转换电路基准电压输入:VeREF+,VREF+,VREF-/VeREF-JTAG编程接口:TDO/TDI,TDI,TMS,TCK,RST/NMI端口:P1.0P1.7;P2.0P2.7;P3.0P3.7;P4.0P4.7;P5.0P5.7;P6.0P6.7模数转换模拟信号输入通道:A0A7 与P6端口复用时钟输出端口:ACLK,SMCLK,MCLK 各有两个端口输出串口使用端口:定时器A使用端口:定时器B使用端口:5MSP430F15X/F16(1)X 系列系列6MSP430X41X系列系列 7MS

3、P430F43X系列系列 8MSP430F44X系列系列 MSP430F5529结构框图结构框图MSP430F5529引脚图引脚图MSP430F5529硬件资源简介硬件资源简介n1. 低供电压低供电压1.8 - 3.6V 。n2. 低功耗低功耗n- 单片机处于运行模式单片机处于运行模式200uA /MHZn- LPM3 RTC模式模式2.5uAn- LPM4 1.6uAn- LPM5 0.2uAn3. 从低功耗模式从低功耗模式3 唤醒少于唤醒少于5us。n4. 16 位精简指令集结构位精简指令集结构n- 可以扩展外部存储器可以扩展外部存储器n- 可以达到可以达到25MHZ 系统时钟。系统时钟。

4、n5. 灵活的电源管理系统(灵活的电源管理系统(PMM)n- 由由DVCC 在在LDO 作用下产生作用下产生Vcore 电源,供低电压模电源,供低电压模块使用。块使用。n- 提供提供DVCC,Vcore Supervision,Monitoering,以,以及及Brownout 监控。监控。n6. 一体化时钟系统一体化时钟系统n- 低功耗低功耗/低频率内部时钟源低频率内部时钟源VLOn- 低频率内部时钟源低频率内部时钟源REFOn- XT1 32768HZ 晶振晶振n- XT2 高频晶振可以达到高频晶振可以达到25MHZn7. 16 位位Timer0_A5 有有5 个捕获个捕获/比较寄存器。比

5、较寄存器。n8. 16 位位Timer1_A3 有有3 个捕获个捕获/比较寄存器。比较寄存器。n9. 16 位位Timer2_A3 有有3 个捕获个捕获/比较寄存器。比较寄存器。n10. 16 位位Timer_B7 有有7 个捕获个捕获/比较寄存器。比较寄存器。 n11. 2组组4个通用通信接口个通用通信接口n- 内部内部UART,支持自动波特率检测。,支持自动波特率检测。n- irDA 编码和解码。编码和解码。n- SPI 通信。通信。n- I2C 通信。通信。n12. 全速全速USB接口接口n- 内置内置USB物理接口。物理接口。n- 内置内置3.3V/1.8V USB 电源系统。电源系统

6、。n- 内置内置USB-PLL 。n- 8 个输入、个输入、8 个输出端点。个输出端点。n13. 12位模数转换位模数转换n- 内部参考电压。内部参考电压。n- 采样保持电路。采样保持电路。n- 12个外部通道,个外部通道,4个内部通道。个内部通道。(F5529/F5527/F5525/F5521)n- 8个外部通道,个外部通道,4个内部通道。个内部通道。(F5528/F5526/F5524/F5522)n- 自动扫描自动扫描n14. 比较器比较器B。n15. 硬件乘法器支持硬件乘法器支持32位操作数。位操作数。n16. 支持支持DMAn17. RTC 可以日历使用,也可以用作普通定时器。可以

7、日历使用,也可以用作普通定时器。 152.2 MSP430单单片机的中央处理器片机的中央处理器 5xx MSP430 CPUn适用于适用于C语言编译器语言编译器n存储地址存储地址范围增加到范围增加到1MBnCPU寄存器增加到寄存器增加到20位位n地址地址-字指令字指令(Address-word instructions)u直接20位CPU寄存器存取u原子(内存到内存)指令n指令指令兼容兼容前代前代CPUn循环计数优化循环计数优化n所有指令都允许使用延伸词所有指令都允许使用延伸词(extension word)u直接存取1MB地址空间u位、字节、词及地址-词数据u重复指令功能UCS 1718MS

8、P430CPU的主要特征的主要特征nRISC指令集,指令集,27条内核指令和条内核指令和7种寻址模式种寻址模式n寄存器资源丰富寄存器资源丰富n寄存器操作为单周期寄存器操作为单周期n20位地址总线,位地址总线,16位数据总线位数据总线n常数发生器常数发生器n直接的存储器到存储器访问直接的存储器到存储器访问n位、字和字节操作方式位、字和字节操作方式19MSP430 CPU的寄存器的寄存器 简写功能R0程序计数器PC,指示下一条将要执行的指令地址。R1堆栈指针SP,指向堆栈栈顶R2状态寄存器SR/常数发生器CG1R3常数发生器CG2R4通用寄存器R15通用寄存器20(1)程序计数器)程序计数器PC/

9、R0n程序计数器是程序计数器是MSP430 CPU中最核心的寄存器,中最核心的寄存器,指示出下一条即将执行的指令的地址。指示出下一条即将执行的指令的地址。n程序计数器程序计数器PC的内容总是偶数,指向偶字节地址的内容总是偶数,指向偶字节地址.n程序计数器程序计数器PC可以像其他寄存器一样用所有指令可以像其他寄存器一样用所有指令和所有寻址方式访问,但对程序存储器的访问必须和所有寻址方式访问,但对程序存储器的访问必须以字为单位,否则会清除高位字节。以字为单位,否则会清除高位字节。n程序计数器程序计数器PC的变化的轨迹决定程序的流程的变化的轨迹决定程序的流程.n程序计数器程序计数器PC的宽度决定了存

10、储器可以直接寻址的宽度决定了存储器可以直接寻址的范围。的范围。nMSP430的程序计数器是的程序计数器是20位的计数器,最多直位的计数器,最多直接寻址的存储空间高达接寻址的存储空间高达1MB。 21n举例:举例: nMOV #LABLE,PC ;跳转到地址跳转到地址LABLE开始执行开始执行nMOV LABLE,PC ;程序开始执行的地址为程序开始执行的地址为LABLE所在内存中的数所在内存中的数 nMOV R14,PC ;程序开始执行的地址为寄存器程序开始执行的地址为寄存器R14中的数中的数22(2)堆栈指针)堆栈指针SPn系统堆栈在系统调用子程序或进入中断服系统堆栈在系统调用子程序或进入中

11、断服务程序时,能够保护程序计数器务程序时,能够保护程序计数器PC.n然后将子程序的入口地址或者中断矢量地然后将子程序的入口地址或者中断矢量地址送程序计数器,执行子程序或中断服务址送程序计数器,执行子程序或中断服务程序。程序。n子程序或者中断服务程序执行完毕,遇到子程序或者中断服务程序执行完毕,遇到返回指令时,将堆栈的内容送到程序计数返回指令时,将堆栈的内容送到程序计数器中,程序流程又返回到原来的地方,继器中,程序流程又返回到原来的地方,继续执行续执行.n此外,堆栈可以在函数调用期间保存寄存此外,堆栈可以在函数调用期间保存寄存器变量、局域变量和参数等。器变量、局域变量和参数等。 23n堆栈指针堆

12、栈指针SP总是指向堆栈的顶部。系统在将数据总是指向堆栈的顶部。系统在将数据压入堆栈时,总是先将堆栈指针压入堆栈时,总是先将堆栈指针SP的值减的值减2,然,然后再将数据送到后再将数据送到SP所指的所指的RAM单元。将数据从单元。将数据从堆栈中弹出正好与压入过程相反;先将数据从堆栈中弹出正好与压入过程相反;先将数据从SP所指示的内存单元取出,再将所指示的内存单元取出,再将SP值加值加2。24n举例:举例:nMOV 2(SP), R6 ;将内存单元将内存单元I2中的数放到中的数放到R6中中nMOV R7, 0(SP) ;将将R7中的数放到栈顶所在单元中的数放到栈顶所在单元(I3)中中nPUSH #0

13、123h ;将将SP的值减的值减2,再将再将#0123h放到放到SP所指向的单元中。所指向的单元中。nPOP R8 ;将将SP所指向单元中的数所指向单元中的数(#0123h)放到放到R8中,再将中,再将SP的的值加值加2 25(3) 状态寄存器状态寄存器SR0C进位标志。当运算结果产生进位时置位,否则复位。1Z零标志。当运算结果为零时Z置位,否则Z复位。2N负标志。当运算结果为负时N置位,否则N复位。3GIE中断控制位。控制可屏蔽中断,当GIE置位CPU可响应可屏蔽中断,否则不响应可屏蔽中断。4CPUOff置位CPUOff位可使CPU进入关闭模式,可用所有允许的中断将CPU唤醒。C-Carry

14、 bit ;Z-Zero bit;N-Negative bit;GIE-General Interrupt Enable265OscOff置位OscOff位可使晶体振荡器处于停止状态,同时CPUOff也需置位。可用外部中断或者NMI唤醒。6SCG0SCG0置位关闭FLL,与SCG1一起控制系统时钟发生器的4种状态。7SCG1SCG1置位关闭DCO发生器,与SCG0一起控制系统时钟发生器的4种状态。8V溢出标志。当运算结果超出有符号数范围时置位。溢出情况如下:正数 + 正数 = 负数负数 + 负数 = 正数正数 - 负数 = 负数负数 - 正数 = 正数915保留未用。OscOff-Oscill

15、ator Off;SCG0-System Clock Generator;V-Overflow bit使用内部函数进行状态寄存器(SR)编程uIntrinsic Functions: _bic_SR_register(LPM3_bits);_bic_SR_register_on_exit(LPM3_bits);_bis_SR_register(LPM3_bits + GIE);_bis_SR_register_on_exit(unsigned short a);_get_SR_register(void);_get_SR_register_on_exit(void);_enable_inter

16、rupts( );_disable_interrupts( );uOther useful intrinsics:_no_operation();_delay_cycles(1000000);_bcd_add_short( short,short );_bcd_add_long( long,long );_even_in_range( );u请参阅“intrinsics.h”或者编译器文档28(4) 常数发生器常数发生器CG1和和CG2寄存器As常数说明R200-寄存器模式R201(0)绝对寻址模式R21000004H+4位处理R21100008H+8位处理R30000000H0字处理R301

17、00001H+1R31000002H+2位处理R3110FFFFH-1位处理29n举例:单操作数指令举例:单操作数指令nCLR dst ;将将dst单元清零单元清零n这不是内核指令,而是一条模拟指令,汇编器将这不是内核指令,而是一条模拟指令,汇编器将As=00,R3=0,用,用nMOV R3,dst n来模拟。来模拟。30(5)通用工作寄存器)通用工作寄存器R4R15n举例:举例:nMOV #1234H,R15 ;执行后执行后R15内容为内容为1234HnMOV.B #23H,R15 ;执行后执行后R15内容为内容为0023HnADD.B #34H,R15 ;执行后执行后R15内容为内容为00

18、57H312.3 MSP430单片机的存储器结构单片机的存储器结构 nMSP430系列的存储空间采用系列的存储空间采用“冯冯-诺依曼诺依曼”结结构,物理上完全分离的存储区域如构,物理上完全分离的存储区域如ROM/FLASH、RAM、外围模块、特殊功能寄存器、外围模块、特殊功能寄存器SFR等,被安等,被安排在同一地址空间,这样就可以使用一组地址、排在同一地址空间,这样就可以使用一组地址、数据总线、相同的指令对它们进行字节或字形式数据总线、相同的指令对它们进行字节或字形式访问。访问。nMSP430系列单片机存储器的这种组织方式和系列单片机存储器的这种组织方式和CPU采用精简指令相互协调,对外围模块

19、的访问采用精简指令相互协调,对外围模块的访问不需要单独的指令,为软件的开发和调试提供便不需要单独的指令,为软件的开发和调试提供便利。利。322.3.1 MSP430存储空间结构存储空间结构n14系列存储空间结构系列存储空间结构335系系列列存存储储空空间间2.3.2 数据存储器数据存储器RAMnMSP430的数据存储器位于存储器地址空间的的数据存储器位于存储器地址空间的01C00H以上,这些存储器一般用做数据的保存以上,这些存储器一般用做数据的保存与堆栈,同时也是数据运算的场所,特殊场合还与堆栈,同时也是数据运算的场所,特殊场合还可以用作程序存储器。可以用作程序存储器。n可以字操作也可以字节操

20、作,通过指令后缀加以可以字操作也可以字节操作,通过指令后缀加以区别。区别。n字节操作可以是奇地址或者是偶地址,在字操作字节操作可以是奇地址或者是偶地址,在字操作时,每两个字节为一个操作单位,必须对准偶地时,每两个字节为一个操作单位,必须对准偶地址。址。34举例举例MOV.B #20H, &221H; 执行后执行后221H单元的内容为单元的内容为20HMOV.B #324H, &221H; 执行后执行后221H单元的内容为单元的内容为24HMOV.W #3234H, &222H; 执行后执行后222H单元的内容为单元的内容为34H,223H单元的内容为单元的内容为32HMOV.W #324H,

21、&221H; 执行后执行后221H单元的内容为单元的内容为03H,220H单元的内容为单元的内容为24HRAM空间还可以进行运算,如:空间还可以进行运算,如:MOV.B #33H, &220H; 执行后地址执行后地址220H的内容为的内容为33HADD.B #22H, &220H; 执行后地址执行后地址220H的内容为的内容为55H352.3.3 程序存储器程序存储器ROMn程序程序ROM区为区为0FFFFH以下一定数量存储空间,以下一定数量存储空间,可存放指令代码和数据表格。程序代码必须偶地可存放指令代码和数据表格。程序代码必须偶地址寻址。址寻址。n程序代码可分为三种情况:中断向量区、用户程

22、程序代码可分为三种情况:中断向量区、用户程序代码及系统引导程序序代码及系统引导程序(个别器件有,如个别器件有,如FLASH型型)。361 中断向量区(中断向量区(14系列)系列)中断源中断标志系统中断地址优先级上电、外部复位、看门狗、FLASH存储器WDTIFG复位0FFFEH15 NMI、振荡器故障、FLASH访问出错NMIFG、OFIGF、ACCVIFG非屏蔽/可屏蔽0FFFCH14定时器BBCCIFG0可屏蔽0FFFAH13定时器BB C C I F G 1 6 ,TBIFG可屏蔽0FFF8H12比较器ACMPAIFG可屏蔽0FFF6H11看门狗定时器WDTIFG可屏蔽0FFF4H10串

23、口0接收URXIFG0可屏蔽0FFF2H9串口0发送UTXIFG0可屏蔽0FFF0H8ADCADCIFG可屏蔽0FFEEH7定时器ACCIFG0可屏蔽0FFECH6定时器AC C I F G 1 2 ,TAIFG可屏蔽0FFEAH5P1P1IFG.07可屏蔽0FFE8H4串口1接收URXIFG1可屏蔽0FFE6H3串口1发送UTXIFG1可屏蔽0FFE4H2P2P2IFG.07可屏蔽0FFE2H137 中断向量区(中断向量区(5系列)系列)382 用户程序区用户程序区n用户程序区一般用来存放程序与常数或表格。用户程序区一般用来存放程序与常数或表格。MSP430的存储结构尤其允许存放大的数表,并

24、的存储结构尤其允许存放大的数表,并且可以用所有的字和字节指令访问这些表。这一且可以用所有的字和字节指令访问这些表。这一点为提高编程的灵活性和节省程序存储空间带来点为提高编程的灵活性和节省程序存储空间带来各种好处。各种好处。393 外围模块寄存器外围模块寄存器nMSP430系列单片机外围模块的寻址被安排在系列单片机外围模块的寻址被安排在0010H01FFH这一区域,都可以用软件访问和这一区域,都可以用软件访问和控制。控制。nMSP430可以象可以象访问普通访问普通RAM单元一样对这些寄单元一样对这些寄存器进行操作。这些寄存器也分为字节结构和字存器进行操作。这些寄存器也分为字节结构和字结构。结构。

25、n地址空间地址空间0100H01FFH安排字结构,地址空间安排字结构,地址空间0010H00FFH安排字节模块,地址空间安排字节模块,地址空间0000H000FH保存特殊功能寄存器。保存特殊功能寄存器。40MSP430F149 字模块的空间分配字模块的空间分配地址说明地址说明0H1FFH保留170H170H定时器A1E0H1EFH保留160H16FH定时器A1D0H1DFH保留150H15FHADC12转换0H1CFH保留140H14FHADC12转换1B0H1BFH保留130H13FH硬件乘法器0H1AFHADC12控制和中断120H12FH看门狗、FLASH控制190H19FH定时器B11

26、0H11FH保留180H18FH定时器B100H10FH保留41MSP430F149 字节模块的空间分配字节模块的空间分配地址说明地址说明0H1FFH保留70H70H串口1/串口00E0H1EFH保留60H6FH保留0D0H1DFH保留50H5FH比较器A,系统时钟0H1CFH保留40H4FH保留0B0H1BFH保留30H3FH端口6/端口50H1AFH保留20H2FH端口4/端口3090H19FH保留10H1FH端口1/端口2080H18FHADC12存储控制00H0FHSFR42MSP430F149 特殊功能寄存器特殊功能寄存器SFR的空间分配的空间分配地址说明地址说明0FH无定义/未实现

27、07H无定义/未实现0EH无定义/未实现06H无定义/未实现0DH无定义/未实现05H模块允许2:ME20CH无定义/未实现04H模块允许1:ME10BH无定义/未实现03H中断标志2:IFG20AH无定义/未实现02H中断标志1:IFG109H无定义/未实现01H中断允许2:IE208H无定义/未实现00H中断允许1:IE143MSP430F5 空间分配空间分配44MSP430F5 空间分配空间分配45MSP430F5 空间分配空间分配462.4 低功低功耗结耗结构构47n各种操作模式各种操作模式BOR / POR / PUC源源nBORu源:u电源开 / 节电模式uRST/NMIu安全违规

28、(保护存储器)u软件(Bit in PMM)uLPM5唤醒nPORu源:uSVS 低/高u软件(Bit in PMM)nPUCu源:uWDTu重要违规(WDT,Flash,PMM)u从外设区域之外取得u软件(Bit in PMM)PUC复位只是复位CPU然后程序重新开始执行。2.4 低功耗结构低功耗结构nMSP430F149各种低功耗模式下电流大小如下各种低功耗模式下电流大小如下图所示图所示:49nMSP430系列单片机是通过系列单片机是通过CPU中状态寄存器中状态寄存器SR中的中的SCG1、SCG2、OscOff和和CPUOff四个四个位来实现工作模式控制的。各控制位作用如下:位来实现工作模

29、式控制的。各控制位作用如下:50159876543210保留SCG1SCG0OscOffCPUOffn只要任意中断被响应,上述控制位就被压入堆栈只要任意中断被响应,上述控制位就被压入堆栈保存,中断处理之后,又可以恢复以前的工作方保存,中断处理之后,又可以恢复以前的工作方式。在中断处理子程序执行期间,通过间接访问式。在中断处理子程序执行期间,通过间接访问堆栈数据,可以操作这些位,这样在中断返回后,堆栈数据,可以操作这些位,这样在中断返回后,MSP430单片机会以另外一种功耗方式继续运行。单片机会以另外一种功耗方式继续运行。51n下表是各种低功耗工作模式的控制位一览表。下表是各种低功耗工作模式的控

30、制位一览表。nMSP430系列单片机各个模块运行是完全系列单片机各个模块运行是完全独立的,定时器、输入独立的,定时器、输入输出端口、输出端口、A/D转转换、看门狗、液晶显示器等都可以在主换、看门狗、液晶显示器等都可以在主CPU休眠的状态下独立运行。休眠的状态下独立运行。n当需要主当需要主CPU工作时,任何一个模块都可工作时,任何一个模块都可以通过中断唤醒以通过中断唤醒CPU,从而使系统已最低,从而使系统已最低功耗运行。功耗运行。n为了充分利用为了充分利用CPU低功耗性能,可以让低功耗性能,可以让CPU工作于突发状态。工作于突发状态。n在通常情况下,根据需要使用软件将在通常情况下,根据需要使用软

31、件将CPU设定到某一低功耗工作模式下,在需要时设定到某一低功耗工作模式下,在需要时使用中断将使用中断将CPU从休眠状态中唤醒,完成从休眠状态中唤醒,完成工作之后又可以进入相应的休眠状态。工作之后又可以进入相应的休眠状态。 n#include nvoid main(void)nn WDTCTL = WDTPW + WDTHOLD; / Stop watchdog timern UCSCTL4 = SELA_1; / ACLK = VLOn / Port Configurationn P1OUT = 0 x00;P2OUT = 0 x00;P3OUT = 0 x00;P4OUT = 0 x00;P

32、5OUT = 0 x00;P6OUT = 0 x00;n P7OUT = 0 x00;P8OUT = 0 x00; PJOUT = 0 x00;n P1DIR = 0 xFF;P2DIR = 0 xFF;P3DIR = 0 xFF;P4DIR = 0 xFF;P5DIR = 0 xFF;P6DIR = 0 xFF;n P7DIR = 0 xFF;P8DIR = 0 xFF; PJDIR = 0 xFF;n / Disable VUSB LDO and SLDOn USBKEYPID = 0 x9628; / set USB KEYandPID to 0 x9628 / access to US

33、B config registers enabled n USBPWRCTL &= (SLDOEN+VUSBEN); / Disable the VUSB LDO and the SLDOn USBKEYPID = 0 x9600; / access to USB config registers disabled n _bis_SR_register(LPM3_bits); / Enter LPM3 n _no_operation();nn#include nvoid main(void)nn BCSCTL1 |= DIVA_2; / ACLK/4n WDTCTL = WDT_ADLY_10

34、00; / WDT 1s/4 interval timern IE1 |= WDTIE; / Enable WDT interruptn P3DIR |= BIT1; / Set P3.1 to output directionn P3OUT &= BIT1; / Set P3.1 to 0n while(1)n n int i;n _BIS_SR(LPM3_bits + GIE); / Enter LPM3n P3OUT |=BIT1; / Set P3.1 LED onn for (i = 5000; i0; i-); / Delayn P3OUT &= BIT1; / Clear P3.

35、1 LED offn nn#pragma vector=WDT_VECTORn_interrupt void watchdog_timer (void)nn _BIC_SR_IRQ(LPM3_bits) / Clear LPM3 bits from 0(SR)nn当电流消耗是系统应用的重要指标时,应考虑以当电流消耗是系统应用的重要指标时,应考虑以下的一些基本的设计原则:下的一些基本的设计原则:n最大化最大化LPM3或或LPM4的时间,用的时间,用32KHz晶振作晶振作为为ACLK时钟,时钟,DCO用于用于CPU激活后的突发短暂激活后的突发短暂运行。运行。n用接口模块代替软件驱动功能。用接口模块

36、代替软件驱动功能。n用中断控制程序运行。用中断控制程序运行。n用可计算的分支代替标志位测试产生的分支。用可计算的分支代替标志位测试产生的分支。n用快速查表代替软件的软件计算。用快速查表代替软件的软件计算。n在冗长的软件计算中使用单周期的在冗长的软件计算中使用单周期的CPU寄存器。寄存器。n避免频繁的子程序和函数调用。避免频繁的子程序和函数调用。n尽可能直接用电池供电尽可能直接用电池供电 n不论对于内核还是对于外围模块,选择尽可能低不论对于内核还是对于外围模块,选择尽可能低的运行频率,如果不影响功能应设计自动关机。的运行频率,如果不影响功能应设计自动关机。2.5系统复位和初始化系统复位和初始化5

37、9BOR / POR / PUC源源nBORu源:u电源开 / 节电模式uRST/NMIu安全违规(保护存储器)u软件(Bit in PMM)uLPM5唤醒nPORu源:uSVS 低/高u软件(Bit in PMM)nPUCu源:uWDTu重要违规(WDT,Flash,PMM)u从外设区域之外取得u软件(Bit in PMM)PUC复位只是复位CPU然后程序重新开始执行。BOR来自于硬件复位源来自于硬件复位源:(1)芯片上电;)芯片上电;(2)RST/NMI设置成复位模式,在设置成复位模式,在RST/NMI引脚上出现引脚上出现低电平信号。低电平信号。(3)LPM5唤醒。唤醒。 (4)软件软件(

38、Bit in PMM)POR信号信号,源:源:SVS低低/高,软件高,软件(Bit in PMM)PUC信号是上电清除信号,产生它的事件为:信号是上电清除信号,产生它的事件为:(1) 发生发生POR信号;信号;(2) 处于看门狗模式下,看门狗定时时间到;处于看门狗模式下,看门狗定时时间到;(3) 看门狗定时器写入错误的安全键值;看门狗定时器写入错误的安全键值;(4) FLASH存储器写入错误的安全键值。存储器写入错误的安全键值。61系统复位后器件的初始状态系统复位后器件的初始状态(1) 引脚被配置成复位模式;引脚被配置成复位模式;(2) I/O引脚被切引脚被切换成输入模式;换成输入模式;(3)

39、 其他的模块和寄存器被初始化成默认状态,如其他的模块和寄存器被初始化成默认状态,如数据手册所述;数据手册所述;(4) 状态寄存器复位;状态寄存器复位;(5) 看门狗定时器以看门狗模式激活;看门狗定时器以看门狗模式激活;(6) PC装入装入0FFFEH处的地址值,处的地址值,CPU从这一地址从这一地址开始执行。开始执行。62软件初始化,用户软件必须根据应用的需求对软件初始化,用户软件必须根据应用的需求对MSP430进行初始化,必须包括以下几个部分:进行初始化,必须包括以下几个部分:(1) 初始化初始化SP,通常是,通常是RAM的顶部;的顶部;(2) 初始化看门狗定时器;初始化看门狗定时器;(3)

40、 配置外围模块。配置外围模块。632.6 中断系统中断系统n有三种类型的中断:有三种类型的中断:n系统中断系统中断n不可屏蔽中断(不可屏蔽中断(NMI)n可屏蔽中断可屏蔽中断64中断优先级是固定的,如下图:中断优先级是固定的,如下图:65中断源,标志位和向量如下图:中断源,标志位和向量如下图:662.6.1不可屏蔽中断不可屏蔽中断NMINMI中断的使能位不是由通用中断使能中断的使能位不是由通用中断使能GIE来控制,而是由特来控制,而是由特殊的标志位来控制殊的标志位来控制(NMIIE, ACCVIE, OFIE),当一个,当一个NMI中断发生,其他的和与它处于同一优先级的中断发生,其他的和与它处

41、于同一优先级的NMI被自动禁止,被自动禁止,这样来防止同一优先级的这样来防止同一优先级的NMI发生嵌套。发生嵌套。nMSP430 x5xx系列支持两级的不可屏蔽中断(系列支持两级的不可屏蔽中断(NMI),系),系统不可屏蔽中断统不可屏蔽中断n发生用户发生用户NMI中断的中断源如下:中断的中断源如下:n当当RST/NMI配置成配置成NMI模式时的一个边沿信号模式时的一个边沿信号n发生晶体失效发生晶体失效n对对Flash存储器的非法访问(存储器的非法访问(SNMI)67不可屏蔽中断不可屏蔽中断NMIn发生系统发生系统NMI中断的中断源如下:中断的中断源如下:n电压管理模块(电压管理模块(PMM)S

42、VMH/SVMH 供应电压故障供应电压故障nPMM超时超时n对空白内存的访问对空白内存的访问nJTAG 邮箱事件邮箱事件68n上电后,上电后, 引脚被配置为复位模式。引脚被配置为复位模式。n 引脚功能选择位在看门狗定时器的控制寄存器引脚功能选择位在看门狗定时器的控制寄存器WDTCTL中。中。n如果如果 引脚被设置为复位功能,当引脚被设置为复位功能,当 引脚为低电平引脚为低电平时时CPU被停止。被停止。 当输入变成高电平后,当输入变成高电平后,CPU从从0FFFEH开始执行程序。开始执行程序。n如果如果 引脚被设置为引脚被设置为NMI功能,并且功能,并且NMIE被置位,被置位, 引脚上的上升沿引

43、脚上的上升沿/下降沿将触发中断,下降沿将触发中断, 标志位标志位NMIIFG也被置位。也被置位。69注意:注意: 当配置为当配置为NMI模式时,触发模式时,触发NMI事件的信号不事件的信号不能保持能保持 引脚为低电平。如果引脚为低电平。如果NMI信号为低电平,信号为低电平,PUC会改变会改变 引脚为复位功能,其间会被保持在复引脚为复位功能,其间会被保持在复位状态。位状态。 当选择当选择NMI模式并且模式并且WDTNMIES位被改变,一位被改变,一个个NMI事件会根据事件会根据 引脚上的电平被触发,当引脚上的电平被触发,当NMI边沿选择位在边沿选择位在NMI模式选择之前被选择,模式选择之前被选择

44、,NMI事件不会被触发。事件不会被触发。70NMI中断处理的流程如下:中断处理的流程如下:71n#include nvoid main(void)nn WDTCTL = WDTPW + WDTHOLD + WDTNMI + WDTNMIES; / WDT off NMI hi/lon P3DIR |= BIT2; / Set P3.2 to output directionn P3OUT &= BIT2; / Clear P3.2 LED offn IE1 |= NMIIE; / Enable NMIn _BIS_SR(LPM0_bits); / Enter LPM0nn#pragma vec

45、tor=NMI_VECTORn_interrupt void nmi_ (void)nn volatile unsigned int i;n P3OUT |= BIT2; / Set P3.2 LED onn for (i = 20000; i 0; i-); / Delayn P3OUT &= BIT2; / Clear P3.2 LED offn IFG1 &= NMIIFG; / Reclear NMI flag in case bouncen IE1 |= NMIIE; / Enable NMIn2.6.2可屏蔽中断可屏蔽中断n可屏蔽中断由具有中断能力的外围模块产生,包可屏蔽中断由具有

46、中断能力的外围模块产生,包括处于定时器模式的看门狗定时器。每个可屏蔽括处于定时器模式的看门狗定时器。每个可屏蔽中断都可以通过单独的中断允许位来使能。所有中断都可以通过单独的中断允许位来使能。所有的可屏蔽中断可以通过的可屏蔽中断可以通过SR中的中的GIE位来使能。位来使能。73中断处理中断处理中断程序的执行顺序如下:中断程序的执行顺序如下: 完成当前正在执行的指令完成当前正在执行的指令; 把把PC寄存器内容入栈寄存器内容入栈; 把把SR寄存器内容入栈寄存器内容入栈; 如果同时有多个中断,则选择优先级最高的中断如果同时有多个中断,则选择优先级最高的中断; 如果中断是单源中断则中断标志位自动复位,如

47、果中断如果中断是单源中断则中断标志位自动复位,如果中断是多源中断则需要中断服务程序复位是多源中断则需要中断服务程序复位; SR清零,结束低功耗模式,由于清零,结束低功耗模式,由于GIE被清除,其他的中被清除,其他的中断被屏蔽。因此中断不能被嵌套断被屏蔽。因此中断不能被嵌套; 中断向量被装入中断向量被装入PC寄存器,并从该地址开始执行中断服寄存器,并从该地址开始执行中断服务程序。务程序。7475中断由中断由RETI指令结束,从中断返回需要消耗指令结束,从中断返回需要消耗5个时个时钟周期,并执行下面的动作:钟周期,并执行下面的动作: 将将SR寄存器的值从堆栈弹出,恢复中断前的设寄存器的值从堆栈弹出,恢复中断前的设置置; 将将PC寄存器的值从堆栈弹出,程序从寄存器的值从堆栈弹出,程序从PC的地址的地址执行。执行。7677n如果在中断服务程序中把如果在中断服务程序中把GIE置位,则中断嵌套置位,则中断嵌套被允许。在执行中断服务程序时发生中断,则不被允许。在执行中断服务程序时发生中断,则不管新的中断的优先级多高,中断服务程序被打断管

温馨提示

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

评论

0/150

提交评论