1、望江电子应用研究所 TEXAS INSTRUMENTS MSP430 系列混合信号微控制器 结构及模块 用户指南 电话(0556)7172756 望江电子应用研究所 目录 1 MSP430 系列 1.1 特性与功能 1.2 系统关键性能 1.3 MSP430 系列的各型号 2 结构概述 2.1 CPU 2.2 代码存储器 2.3 数据存储器(RAM) 2.4 运行控制 2.5 外围模块 2.6 振荡器、倍频器和时钟发生器 3 系统复位、中断和运行模式 3.1 系统复位和初始化 3.2 中断系统结构 3.3 中断处理 3.3.1 SFR 中的中断控制位 3.3.2 外部中断 3.4 运行模式 3
2、.5 低功耗模式 3.5.1 低功耗模式 0 与模式1,LPM0和 LPM1 3.5.2 低功耗模式 2 与模式3,LPM2和 LPM3 3.5.3 低功耗模式 4,LPM4 3.6 低功耗应用要点 4 存储器组织 4.1 存储器中的数据 4.2 片内 ROM 组织 4.2.1 ROM 表的处理 4.2.2 计算分支跳转和子程序调用 4.3 RAM 与外围模块组织 4.3.1 RAM 4.3.2 外围模块 地址定位 4.3.3 外围模块-SFR 5 16 位 CPU 5.1 CPU 寄存器 5.1.1 程序计数器 PC 5.1.2 系统堆栈指针 SP 电话(0556)7172756 望江电子应
3、用研究所 5.1.3 状态寄存器 SR 5.1.4 常数发生寄存器 CG1 与CG2 5.2 寻址模式 5.2.1 寄存器模式 5.2.2 变址模式 5.2.3 符号模式 5.2.4 绝对模式 5.2.5 间接模式 5.2.6 间接增量模式 5.2.7 立即模式 5.2.8 指令的时钟周期与长度 5.3 指令组概述 5.3.1 双操作数指令 5.3.2 单操作数指令 5.3.3 条件跳转 5.3.4 模拟指令的短格式 5.3.5 其它指令 5.4 指令分布 6 硬件乘法器 6.1 硬件乘法器的操作 6.2 硬件乘法器的寄存器 6.3 硬件乘法器的 SFR 位 6.4 硬件乘法器的软件限制 6.
4、4.1 硬件乘法器软件限制-寻址模式 6.4.2 硬件乘法器软件限制-中断程序 7 振荡器与系统时钟发生器 7.1 晶体振荡器 7.2 处理机时钟发生器 7.3 系统时钟运行模式 7.4 系统时钟控制寄存器 7.4.1 模块寄存器 7.4.2 与系统时钟发生器相关的 SFR 位 7.5 DCO 典型特性 8 数字 I/O 配置 8.1 通用端口 P0 8.1.1 P0 控制寄存器 8.1.2 P0 原理图 8.1.3 P0 中断控制功能 8.2 通用端口 P1、P2 8.2.1 P1、P2 控制寄存器 8.2.2 P1、P2 原理图 电话(0556)7172756 望江电子应用研究所 8.2.
5、3 P1、P2 中断控制功能 8.3 通用端口 P3、P4 8.3.1 P3、P4 控制寄存器 8.3.2 P3、P4 原理图 8.4 LCD 端口 8.5 LCD 端口-定时器/端口比较器 9 通用定时器/端口模块 9.1 定时器/端口模块操作 9.1.1 定时器/端口计数器 TPCNT1,8 位操作 9.1.2 定时器/端口计数器 TPCNT2,8 位操作 9.1.3 定时器/端口计数器,16位操作 9.2 定时器/端口寄存器 9.3 定时器/端口SFR 位 9.4 定时器/端口在 A/D 中的应用 9.4.1 R/D 转换原理 9.4.2 分辨率高于 8 位的转换 10 定时器 10.1
6、 Basic Timer1 10.1.1 BasicTimer1寄存器 10.1.2 SFR 位 10.1.3 BasicTimer1 操作 10.1.4 BasicTimer1操作:LCD时钟信号f LCD10.2 8 位间隔(Interval)定时器/计数器 10.2.1 8 位定时器/计数器的操作 10.2.2 8 位定时器/计数器的寄存器 10.2.3 与 8 位定时器/计数器有关的 SFR 10.2.4 8 位定时器/计数器在 UART 中的应用 10.3 看门狗定时器 10.3.1 看门狗定时器寄存器 10.3.2 看门狗定时器中断控制功能 10.3.3 看门狗定时器操作 10.4
7、 8 位PWM 定时器 10.4.1 操作 10.4.2 PWM 寄存器 11 Timer_A 11.1 Timer_A 的操作 11.1.1 定时器操作 11.1.2 捕获模式 11.1.3 比较器模式 11.1.4 输出单元 11.2 Timer_A 的寄存器 电话(0556)7172756 望江电子应用研究所 11.2.1 Timer_A 控制寄存器TACTL 11.2.2 捕获/比较控制寄存器 CCTL 11.2.3 Timer_A 中断向量寄存器 11.3 Timer_A 的应用 11.3.1 Timer_A 增计数模式应用 11.3.2 Timer_A 连续模式应用 11.3.3
8、Timer_A 增/减计数模式应用 11.3.4 Timer_A 软件捕获应用 11.3.5 Timer_A 处理异步串行通信协议 11.4 Timer_A 的特殊情况 11.4.1 CCR0 用作周期寄存器 11.4.2 定时器寄存器的启/停 11.4.3 输出单元 Unit0 12 USART 外围接口,UART 模式 12.1 异步操作 12.1.1 异步帧格式 12.1.2 异步通信的波特率发生器 12.1.3 异步通信格式 12.1.4 线路空闲多处理机模式 12.1.5 地址位格式 12.2 中断与控制功能 12.2.1 USART 接收允许 12.2.2 USART 发送允许 1
9、2.2.3 USART 接收中断操作 12.2.4 USART 发送中断操作 12.3 控制与状态寄存器 12.3.1 USART 控制寄存器UCTL 12.3.2 发送控制寄存器 UTCTL 12.3.3 接收控制寄存器 URCTL 12.3.4 波特率选择和调制控制寄存器 12.3.5 USART 接收数据缓存URXBUF 12.3.6 USART 发送数据缓存UTXBUF 12.4 UART 模式,低功耗模式应用特性 12.4.1 由 UART 帧启动接收操作 12.4.2 UART 模式波特率与时钟频率 12.4.3 节约 MSP430资源的多处理机模式 12.5 波特率的计算 13
10、USART 外围接口,SPI 模式 13.1 USART 的同步操作 13.1.1 SPI 模式中的主模式,MM=1、SYNC=1 13.1.2 SPI 模式中的从模式,MM=0、SYNC=1 13.2 中断与控制功能 电话(0556)7172756 望江电子应用研究所 13.2.1 USART 接收允许 13.2.2 USART 发送允许 13.2.3 USART 接收中断操作 13.2.4 USART 发送中断操作 13.3 控制与状态寄存器 13.3.1 USART 控制寄存器 13.3.2 发送控制寄存器 UTCTL 13.3.3 接收控制寄存器 URCTL 13.3.4 波特率选择和
11、调制控制寄存器 13.3.5 USART 接收数据缓存URXBUF 13.3.6 USART 发送数据缓存UTXBUF 14 液晶显示驱动 14.1 LCD 驱动基本原理 14.2 LCD 控制器/驱动器 14.2.1 LCD 控制器/驱动器功能 14.2.2 LCD 控制及模式寄存器 14.2.3 LCD 显示存储器 14.2.4 LCD 操作软件例程 14.3 LCD 端口功能 14.4 LCD 与端口模式混合应用实例 15 A/D 转换器 15.1 概述 15.2 A/D 转换操作 15.2.1 A/D 转换 15.2.2 A/D 中断 15.2.3 A/D 量程 15.2.4 A/D
12、电流源 15.2.5 A/D 输入端与多路切换 15.2.6 A/D 接地与降噪 15.2.7 A/D 输入与输出引脚 15.3 A/D 控制寄存器 16 其它模块 16.1 晶体振荡器 16.2 上电电路 16.3 晶振缓冲输出 附录 A 外围模块分布 附录 B 指令组说明 附录 C EPROM 编程 电话(0556)7172756 望江电子应用研究所 本书用途及表述约定 MSP430 用户指南以方便工程师及程序员使用的方式提供软件和硬件资料,以帮助开发应用 MSP430系列的产品。 以下是表示信号和处理机状态的符号的简要说明: z ADC A/D 转换器。 z CPUOff mode 保持
13、 RAM 及I/O 信号不变的低功耗模式。 用辅助时钟(32768Hz 晶振)工作的模块处于活动状态。 z DCO 数字控制振荡器。 z LCD 液晶显示器。 z FF 触发器。 z MAB 存储器地址总线。位于各内部模块之间。可以是从 4 位至16 位的任意宽度。它与 MS 信号一起定义了物理地址。 z MDB 存储器数据总线。位于各内部模块之间。可以是 8 位或16位宽度。 z MS 模块选择。为预解码地址空间。与 MAB 一起定义了物理地址。 z MSFR 模块特殊寄存器。是特殊寄存器的预解码地址空间(0h至0Fh) 。 z OSCOff mode 最低功耗模式。保持 RAM 及I/O
14、信号不变。晶振停止。 z OTP 单次可编程。 z POR 上电复位。 z PUC 上电清除, “1”设置处理机启动条件。 z SAR 逐位逼近寄存器。 z SCI 处理同步及异步协议的串行通信接口。 z SCG 系统时钟发生器。 z SFR 特殊功能寄存器。 z SPI 串行外围接口(广泛应用的同步串行通信协议) 。 z TBD 待定义。 z TOS 堆栈顶。 z UART 通用异步收发(最广泛应用的串行通信协议) 。 z USART 通用同步异步收发。 z WD,WDT 看门狗,看门狗定时器。 寄存器位类型约定 z rw: 读/写。 z r: 只读。 z r0: 读出为“0” 。 z w:
15、 只写。 z (w): 无寄存功能,写“1”将产生一个脉冲。读出总是为“0” 。 z -0,-1: 发生PUC 后的状态。 z -(0),-(1): 发生 POR 后的状态。 z h0: 由硬件复位。 电话(0556)7172756 望江电子应用研究所 符号 运算符 寄存器间接寻址 注解指示 电话(0556)7172756 望江电子应用研究所 1 MSP430 系列 本章讨论 MSP430 系列微控制器的特性及对模拟信号处理控制的特殊能力。系列的全部成员均为软件兼容,软件通过公共的软件库、设计技术及开发工具,可以方便地在系列中的各型号间移植。 CPU 设计成适合各种应用的 16 位结构。它采用
16、“冯-纽曼结构” ,因此 RAM、ROM 和全部外围模块都在同一个地址空间内。 目录 页号 1.1 特性与功能 1.2 系统关键特性 1.3 MSP430 系列的各型号 1 电话(0556)7172756 望江电子应用研究所 1.1 特性与功能 多达 64K 字节寻址空间,包含 ROM、RAM、闪存 RAM 和外围模块,将来计划扩大至 1M。 通过堆栈处理,中断和子程序调用层次无限制。 仅 3 种指令格式,全部为正交结构。 尽可能做到 1 字/指令。 源操作数有 7 种寻址模式。 目的操作数有 4 种寻址模式。 外部中断引脚:I/O 引脚具有中断能力。 中断优先级:同时发生的中断按优先级别处理
17、。 嵌套中断结构:中断程序可以被更高优先级的中断请求打断。 外围模块的存储器分配:全部寄存器不占用 RAM 空间,均在模块内。 片上 USART:发送与接收有各自的中断。 定时器中断可作事件计数、时序发生、PWM、等等。 看门狗功能。 A/D 转换器(10 位或更高精度) 有8个输入端,可作为恒流源工作。 具有EPROM型及OTP 型。 具有 LCD 驱动电路。 用 FLL 和32768Hz 晶振获得稳定的处理机时钟频率。 正交指令简化了程序开发:所有指令可以用所有寻址模式。 已开发了 C-编译器。 模块设计思想:所有模块采用存储器分配。 1.2 系统关键特性 超低电流消耗: CPUOff a
18、nd OSCOff 模式。 可在电压降至 2.5 V情况下工作。 系统内置模块:LCD 驱动,A/D 转换,I/O 端口, UART,看门狗,定时器,EPROM,等等。 只有微计算机模式; 无微处理机模式。 方便使用:强大而方便的指令组加速软件的开发。 软件可在 RAM 中运行。程序可经 UART 或测试引脚装入 RAM,并能在实时条件下运行。 这样可降低试验和调整的开销。 在 64K 字节公共空间中有可能实现任意的 ROM/RAM 混合分配。 具有高级语言编程能力 大寄存器组(12 个通用寄存器) 面向堆栈 大ROM 和RAM 空间 正交指令组 利用寻址模式实现查表处理 有实现 16与 10
19、 进制转换的专门指令 DADD ROM 读取、RAM 存取、数据处理、I/O及其它外围操作都使用公共的指令:无特殊指令。 CPU 的能力远超出智能化传感系统的要求。它的实时处理能力及各种外围模块使得可应 用在其它低功耗领域。如有线远程通信的 DTM 收发器。 电话(0556)7172756 望江电子应用研究所 1.3 MSP430 系列的各型号 MSP430 系列的各型芯片的命名和特性归纳如下: 命名: 1 MSP430Cxxx Q FN 封装代码, 1 至2 字符 温度范围, 1 字符 Q: 用户要求 I: -40 至 +85 A: -40 至 +125 每一型号的唯一号或软件号,3 字符
20、存储器代码: C: CMOS, ROM 型 P: OTP, 单次编程 E: EPROM 型, 封装带窗口 S: SRAM, RAM 型代码存储器 开发工具包括软件仿真器 DT430,汇编器及连接器 ASM430/LNK430, C-编译器CS430/CW430,以及硬件在线仿真器 ICE430。所有开发工具都工作在 PC 环境下,并且符合 Windows 的SAA 标准。 1 对 PC 的最低要求为: IBM 兼容 DOS 5.0 或更高版本 Windows 3.1, 3.11 or 95 PC有486 或更高性能处理机 8 MB 存储器 3.5“软盘驱动器 硬盘有 5 MB 可用空间 电话(
21、0556)7172756 望江电子应用研究所 1 MSP430x310 MSP430x320 MSP430x330 最大内部时钟频率 晶振频率 1.1 MHz 3V 3.3 MHz 5V 32.768 kHz 1.1 MHz 3V 2.2 MHz 5V 1.1 MHz 3V 2.2 MHz 5V 32.768 kHz 工作温度 -40至+85 -40至+85 -40至+85 程序存储器 MSP430Cxxx: MSP430Pxxx: MSP430Exxx: 存储器扩展 4/8/12k ROM 8K OTP 8K EPROM 无 8k ROM 16K OTP 16K EPROM 无 24k RO
22、M 32K OTP 32K EPROM 无 内部RAM 256/512 256/512 1024 数据EEPROM 无 无 无 模块 硬件乘法器 P0,8 位,支持中断 P1,8 位,支持中断 P2,8 位,支持中断 P3 P4 看门狗定时器 BasicTimer1/实时钟 8-bit 定时器/计数器 定时器/端口,1x8 位 Timer_A,16位 同步通信 异步通信 LCD 驱动 ADC/恒流源 DAC 无 有 有 有 有 有 无 无 定时器/端口+软件23x4 段 见定时器/端口 无 无 有 有 有 有 有 无 无 定时器/端口+软件 21x4 段 有 无 有 有 有 有 有 有 有 有
23、 有 有 有 SPI 模式 UART 模式或 定时器/端口+软件 30x4 段 见定时器/端口 无 I/O 引脚 输入引脚 输出引脚 9 1 27 9 7 25 40 1 34 中断/复位 外部中断 向量数 11 16 11 16 1+24 16 封装类型 56 QFP 64 SSOP 100 QFP 1 表 1.1:MSP430 系列特性汇总 电话(0556)7172756 望江电子应用研究所 2结构概述 本章说明 MSP430 系统的基本功能。 目录 页号 2.1 CPU 2.2 代码存储器 2.3 数据存储器(RAM) 2.4 运行控制 2.5 外围模块 2.6 振荡器、倍频器和时钟发生
24、器 2 电话(0556)7172756 望江电子应用研究所 MSP430 系列产品包含以下主要功能: CPU 程序存储器(ROM或 EPROM) 数据存储器(RAM或 EEPROM) 运行控制 外围模块 振荡器和倍频器 MSP430 系列采用存储器-存储器结构,即用一个公共的空间对全部功能模块寻址,同时用精简指令组操作所有功能模块。 图 2.1:MSP430 系统结构 2.1 CPU CPU 运行正交设计、对模块高度透明的精简指令集。它由一个 16 位 ALU、16 个寄存器和一套指令控制逻辑组成。其中 4 个寄存器有特殊用途,即程序计数器 PC、堆栈指针 SP、状态寄存器 SR 和常数发生器
25、 CG2。除了R3/CG2和 R2/CG1,所有寄存器都可作为通用寄存器用所有指令操作。常数发生器是用于在指令执行时提供常数而不是存储数据。对 CG1访问的寻址模式可以区分常数的数据。PC、SR和 SP 配合精简指令组所实现的控制使应用开发可实现复杂的寻址模式和软件算法。 2.2 代码存储器 对代码存储器的访问总是以字形式取得代码,而对数据可以用字或字节方式访问。每次访问需要 16 条数据线和访问当前存储器模块所需的地址线。存储器模块由模块允许信号自电话(0556)7172756 望江电子应用研究所 动选中,这是一项减少总电流消耗的技术。程序存储器可以是 EPROM或 ROM。MSP430 系
26、列目前的产品支持 OTP 型和掩膜编程型。支持外部扩展存储器是将来性能增强的目标。最低的64K 字节空间的顶部 16 个字,即 0FFFFh 到0FFE0h,保留存放复位和中断的向量。 程序对程序存储器可以任意读取,但不能写入。 未来的改进: 寻址空间将改进为分段方式。扩展的寻址空间主要增加 3种方式:长跳转及调用指令、代码段指针 CSP 和数据指针 DPP。代码段指针在状态寄存器 SR 中。扩展的地址空间以如下方式用于代码访问指令(CSP+PC)和数据存储器访问指令(DPPi+操作数地址)中: MAB = CSP * 10000h + PC 访问代码存储器 MAB = DDPi * 4000
27、h + Rs/d 访问堆栈和数据存储器 在 64K 空间内寻址,CSP和 DPP 的数值在存储器地址总线上不起作用。 2.3 数据存储器(RAM) 数据存储器经两条总线与 CPU 相连:存储器地址总线(MAB)和存储器数据总线(MDB) 。数据存储器可以以字或字节宽度集成在片内。 所有指令可以对字节或字操作。但是对堆栈和 PC 的操作是按字宽度的,寻址时必须对准偶地址。 2.4 运行控制 MSP430 系列微控制器的运行主要受控于存储在特殊寄存器 (SFR) 中的信息。 不同的SFR中的位可以允许中断,支撑取决于中断标志状态的软件,以及定义外围模块的工作模式。被禁止的外围模块将停止它的功能以减
28、少电流的消耗。而所有存储在模块寄存器中的数据被保留。外围模块的工作模式可以用特定的区域来识别。 2.5 外围模块 外围模块经 MAB、MDB 和中断服务及请求线与 CPU 相连。对大多数外围模块,MAB 通常是 5 位。MDB 是 8 位或 16 位。8 位数据总线的模块经总线转换电路连到 16 位的 CPU。这些模块的数据交换毫无例外地要用字节指令处理。 而对 16 位模块的操作指令就没有任何限制。大部分外围模块是工作在字节方式下的。SFR 的处理也毫无例外为 8 位。对 8 位外围模块的操作要依据顺序说明。 电话(0556)7172756 望江电子应用研究所 图 2.2:外围模块的连接总线
29、 2.6 振荡器、倍频和时钟发生器 振荡器是专门为通用的时钟低功耗 32768Hz 晶振设计的。除了晶体外接外,所有的模拟元件都集成在片内。 这一振荡器对于一些以低频工作的模块是直接信号源。对于 CPU 和其它模块,晶振频率用一个锁频环电路(FLL)倍频。FLL 在上电后以最低频率开始工作,并通过控制一个数控振荡器(DCO)来调整到适当的频率。 长时间的频率偏离受到晶体和振荡器的稳定性的限制。 供处理机工作的时钟发生器的频率固定在晶振的倍频上。并提供时钟信号 MCLK。 电话(0556)7172756 望江电子应用研究所 电话(0556)7172756 望江电子应用研究所 3系统复位、中断和运
30、行模式 目录 页号 3.1 系统复位和初始化 3.2 中断系统结构 3.3 中断处理 3.4 运行模式 3.5 低功耗模式 3.6 低功耗应用要点 3 电话(0556)7172756 望江电子应用研究所 3.1 系统复位和初始化 MSP430 可以有 4 种复位来源: 在 VCC端加上供电电源, 在 RST*/NMI 端输入低电平信号,可编程看门狗定时器超时和在对 WDTCTL 寄存器写入时密钥不符。 图 3.1:系统复位功能 发生复位后,程序查询各复位源的标志。程序能确定复位源,以执行适当的复位操作。 MSP430 在发生 VCC 上电后开始硬件初始化: z 全部 I/O 引脚切换成输入状态
31、。 z I/O 标志被复位,见各外围模块说明。 z 在复位向量地址 0FFFEh中含的地址加载入 PC。 CPU 从这个上电清除(PUC)向量中含的地址开始运行。 z 状态寄存器(SR)清除。 z 用户程序必须对除 PC 与SR 外的全部寄存器作初始化(如 SP、RAM 等) 。 z 决定工作频率的系统时钟从 DCO 的最低频率开始工作。启动晶振时钟后,频率调整到目标值。 RST*/NMI 引脚在加载 VCC 后形成复位功能。引脚的复位功能一直保持到不选此功能为止。处于复位功能状态下,在 RST*/NMI 引脚上拉低至 GND,然后释放,MSP430 按以下顺序开始工作: z 在复位向量地址
32、0FFFEh中含的地址加载入 PC。 z 在释放 RST*/NMI 引脚后,CPU 从复位向量中含的地址开始运行。 z 状态寄存器 SR 复位。 z 除 PC 与 SR外,用户程序对全部寄存器作初始化(如 SP、RAM 等) 。 z 对外围模块中的寄存器作处理。 z 决定工作频率的系统时钟从 DCO 的最低频率开始工作。启动晶振时钟后,频率调整到目标值。 电话(0556)7172756 望江电子应用研究所 3.2 中断系统结构 有 3 类中断: z 系统复位 z 非屏蔽中断 z 可屏蔽中断 引起系统复位的中断源有: z 加电源电压 POR,PUC z RST*/NMI 引脚加低电平(选择复位模
33、式) POR,PUC z 看门狗定时器溢出(选择看门狗模式) PUC z 看门狗定时器密钥不符(写 WDTCTL是口令错) PUC 非屏蔽中断由以下情况产生: z RST*/NMI 引脚有上升沿(选择 NMI模式) 。 z 振荡器故障。 注意: 振荡器故障 振荡器故障可由允许位 OFIE 屏蔽。在通用中断允许复位后被禁止。 可屏蔽中断源有: z 看门狗定时器溢出(选择定时器模式)。 z 其它模块的中断。 3 MSP430 中断优先级系统各模块的中断优先级由模块连接链决定:越接近 CPU/NMIRS 的模块中断优先级越高 电话(0556)7172756 望江电子应用研究所 图 3.2:中断优先级
34、结构 图 3.3:复位/非屏蔽中断模式选择 因为作用在同一个引脚上,复位和 NMI 功能只能交替工作。有关的控制位位于看门狗定时器控制寄存器(WDTCTL)内,也有口令保护。 WDTCTL(0120h) 7 0 HOLD NMIES NMI TMSEL CNTCL SSEL IS1 IS0 rw-0 rw-0 rw-0 rw-0 (w)-0 rw-0 rw-0 rw-0 位 5: NMI 位选择RST*/NMI 引脚的功能。PUC后复位。 NMI=0: RST*/NMI 引脚按复位输入端工作。 RST*/NMI 引脚保持低电平时,内部 PUC 信号有效(电平敏感)。 电话(0556)71727
35、56 望江电子应用研究所 NMI=1: RST*/NMI 引脚作为边沿敏感的非屏蔽中断输入端。 位 6: 选择 RST*/NMI 引脚上触发 NMI 功能的有效边沿。 NMIES=0: 上升沿触发非屏蔽中断。 NMIES=1: 下降沿触发非屏蔽中断。 中断操作 - 复位/NMI 如选择复位功能,当 RST*/NMI 引脚保持“低”时 CPU 一直保持复位状态。当引脚电平变“高” ,CPU 开始从0FFFEh(复位向量)所含的地址执行程序。 如选择 NMI 功能,一个按 NMIES 位规定的触发沿会产生无条件中断,程序从 0FFFCh 所含的地址重新开始执行,并且 SFR 中的 RST*/NMI
36、 标志(IFG1.4)也被置位。它在中断请求服务程序执行时自动复位。RST*/NMI 引脚不可永久地保持“低”状态。当发生激活 PUC 的状态,WDTCTL 寄存器中的复位会强制在 RST*/NMI 引脚上产生复位功能。在 RST*/NMI 引脚上的持续“低”电平引起复位和系统暂停。 注意: NMI 触发沿选择 当已选择了NMI模式并改变NMI沿选择位, 根据RST*/NMI引脚上的实际电平可能会发生NMI。在 NMI 模式选择前改变 NMI 沿选择位就不会发生 NMI。 中断操作 - 振荡器故障控制 如振荡器部分所述,FLL振荡器甚至在晶振失效时也能持续工作,但是它将运行在可能的最低频率上。
37、第二个极限是可能的最高频率。这两种情况通常都是出错条件,必须能被CPU 检测到。 因此 SFR 中的 IE1.1 位可允许振荡器故障信号产生一个 NMI 请求。 通过测试 SFR中的中断标志 IFG1.1,CPU 能确定中断是否由振荡器故障引起。 中断操作 - 上电清除(PUC) 3 种信号源或事件会产生系统复位: z 上电逻辑电路信号 z RST*/NMI 输入 z 看门狗定时器溢出 因RST*/NMI和看门狗引发的复位可以由软件通过测试SFR中的中断标志位IFG1.0来确定。 3.3 中断处理 MSP430 的可编程中断结构可以组成灵活的片上和外部中断体系,以适应实时中断驱动系统的需要。中
38、断可由处理机的运行状态来启动,如看门狗溢出、外围模块或外部发生的事件等。每个中断源可以用中断允许位单独关闭,而状态寄存器中的通用中断允许位 GIE 可以禁止全部中断。 当中断请求发生并且相应的中断允许位和通用中断允许位置位,中断服务程序按以下顺序激活: z CPU 处于活动状态: 完成当前执行指令。 电话(0556)7172756 望江电子应用研究所 CPU 处于省电状态: 终止低功耗模式。 z 指向下一条指令的 PC 值压入堆栈。 z SR 压入堆栈。 z 如在执行上条指令时已有多个中断请求发生并且等待服务,选择最高优先级者。 z 在单一中断源标志中的中断请求标志位自动复位,多中断源标志仍保
39、持置位以等待软件服务。 z 通用中断允许位 GIE 复位; CPUOff 位、OscOff 位和SCG1 位 *)复位; 状态位V、N、Z和C复位。 z 相应的中断向量值装入 PC,程序从该地址继续执行中断处理。 *)SCG0 不改变,FLL 环路控制保持原有工作状态。 中断前 中断后 堆栈项1 堆栈项1 SP - 堆栈项2 TOS 堆栈项2 PC SP - SR TOS 中断响应从接受中断请求开始到执行相应的中断服务程序的首条指令,持续 6 个周期。 中断处理程序结束的指令是: RETI 它执行以下内容: z SR 从堆栈中推出。 被中断的程序回到与中断前完全相同的状态,包括 OscOff、
40、CPUOff和GIE 位。 SR 中的 GIE位在中断服务期间的值被取代,它总是“1” ,因为为了接受中断请求它预先已置位。 z PC 从堆栈推出。 以 RETI 指令从中断服务程序返回,需 5 个周期。 3 中断返回前 中断返回后 堆栈项1 堆栈项1 堆栈项2 SP - 堆栈项2 TOS PC PC SP - SR TOS SR 如果 GIE 位在中断处理程序内置位,允许中断请求嵌套。 含有 GIE 位的状态寄存器 SR/R2 如下: 电话(0556)7172756 望江电子应用研究所 15 9 8 7 0 留作将来增强用 V SCG1 SCG0 OscOff CPUOff GIE N Z
41、C rw-0 rw-0 rw-0 rw-0 rw-0 rw-0 rw-0 rw-0 rw-0 rw-0图 3.4:状态寄存器 SR 除了 GIE 位,中断源可以被控制位单独或成组的允许/禁止。中断允许标志集中位于两个地址的 SFR 中。受中断请求对程序流的控制可以方便地通过充分运用中断允许和屏蔽来调整。硬件只对被允许的中断源中的最高优先级服务。 3 3.3.1 SFR 中的中断控制位 大多数中断控制位、中断标志和中断允许位集中在少数几个 SFR 中。这些 SFR 以字节形式位于低地址区。SFR 只能以字节指令访问。 地址 7 0 000Fh 未定义或未实现 000Eh 未定义或未实现 000D
42、h 未定义或未实现 000Ch 未定义或未实现 000Bh 未定义或未实现 000Ah 未定义或未实现 0009h 未定义或未实现 0008h 未定义或未实现 0007h 未定义或未实现 0006h 未定义或未实现 0005h 模块允许 2; ME2.x 0004h 模块允许 1; ME1.x 0003h 中断标志 2; IFG2.x 0002h 中断标志 1; IFG1.x 0001h 中断允许 2; IE2.x 0000h 中断允许 1; IE1.x MSP430 各型号支持各个模块内的 SFR。除了 NMI,各模块中断源可以单独允许以实现中断功能及操作。配置位的完全软件控制使得应用软件在
43、中断允许屏蔽时重新激活系统。 3 中断允许1、2 位 缩写 初始状态* 说明 IE1.0 WDTIE 复位 看门狗定时器允许,选中 watchdog模式时无效 IE1.1 OFIE 复位 振荡器故障中断允许 IE1.2 P0IE.0 复位 针对I/O P0.0 IE1.3 P0IE.1 复位 针对 I/O P0.1 或8 位定时器/计数器 电话(0556)7172756 望江电子应用研究所 IE1.4 复位 保留,未定义 IE1.5 复位 保留,未定义 IE1.6 复位 保留,未定义 IE1.7 复位 保留,未定义 IE2.0 URXIE 复位 USART 接收中断允许 IE2.1 UTXRI
44、E 复位 USART 发送中断允许 IE2.2 ADIE/TPIE 复位 ADC 或定时器/端口中断允许(适合 320 型) IE2.3 TPIE 复位 定时器/端口(适合310、330 型) IE2.4 复位 保留,未定义 IE2.5 复位 保留,未定义 IE2.6 复位 保留,未定义 IE2.7 BTIE 复位 Basic Timer中断允许 *初始状态是指发生 PUC后的状态. 对于 WDTIFG见有关说明 中断标志寄存器 1、2 位 缩写 初始状态 说明 IFG1.0 WDTIFG 不变 溢出或密钥不符时置位 复位 VCC 上电或RST*/NMI 引脚有复位条件 IFG1.1 OFIF
45、G 置位 振荡器发生故障时置位 IFG1.2 P0IFG.0 复位 针对I/O P0.0 IFG1.3 P0IFG.1 复位 针对I/ O P0.1 或8-bit 定时器/计数器 IFG1.4 NMIIFG 复位 RST*/NMI 引脚信号 IFG1.5 保留,未定义 IFG1.6 保留,未定义 IFG1.7 保留,未定义 IFG2.0 URXIFG USART 接收标志 IFG2.1 UTXIFG USART 发送就绪 IFG2.2 ADIFG 复位 ADC 转换结束时置位 IFG2.3 保留,未定义 IFG2.4 保留,未定义 IFG2.5 保留,未定义 IFG2.6 保留,未定义 IFG
46、2.7 BTIFG 不变 Basic Timer标志 模块允许1、2 位 缩写 初始状态 说明 ME1.0 保留,未定义 ME1.1 保留,未定义 ME1.2 保留,未定义 ME1.3 保留,未定义 ME1.4 保留,未定义 ME1.5 保留,未定义 ME1.6 保留,未定义 ME1.7 保留,未定义 ME2.0 URXE USART 接收允许 ME2.1 UTXE USART 发送允许 ME2.2 保留,未定义 ME2.3 保留,未定义 电话(0556)7172756 望江电子应用研究所 ME2.4 保留,未定义 ME2.5 保留,未定义 ME2.6 保留,未定义 ME2.7 保留,未定义
47、3 电话(0556)7172756 望江电子应用研究所 中断向量地址 中断向量和上电起始地址位于 ROM中的 0FFFFh - 0FFE0h。向量包含各中断处理程序的16 位入口地址。中断向量的优先级按递降排列。 中断源 中断标志 系统中断 地址 优先级 上电 外部复位 看门狗 WDTIFG 复位 0FFFEh 15,最高 NMI 振荡器故障 NMIIFG OFIFG* 非屏蔽 可屏蔽 0FFFCh 14 I/O 专用 P0IFG.0 可屏蔽 0FFFAh 13 I/O 专用 P0IFG.1 可屏蔽 0FFF8h 12 可屏蔽 0FFF6h 11 看门狗定时器 WDTIFG 可屏蔽 0FFF4
48、h 10 Timer_A CCIFG0 可屏蔽 0FFF2h 9 Timer_A TAIFG* 可屏蔽 0FFF0h 8 USART 接收 URXIFG 可屏蔽 0FFEEh 7 USART 发送 UTXIFG 可屏蔽 0FFECh 6 ADC,定时器/端口 2) ADCIFG 可屏蔽 0FFEAh 5 定时器/端口 1) 可屏蔽 0FFE8h 4 P2 P2IFG.07*、 * 可屏蔽 0FFE6h 3 P1 P1IFH.07*、 * 可屏蔽 0FFE4h 2 Basic Timer BTIFG 可屏蔽 0FFE2h 1 P0 P0IFG.27*、* 可屏蔽 0FFE0h 0,最低 *) 多源标志 *) 暂定 1) 定时器/端口在 320 型中的向量 2) 定时器/端口在 310、330型中的向量 表 3.1:中断源、标志和向量 3 电话(0556)7172756 望江电子应用研究所 3.3.2 外部中断 端口 P0、P1和 P2 的全部8 位都可实现外部事件的中断处理。每一个 I/O 位都可独立编程。 由于可能组合任意输入、输出和中断条件,因此能灵活适应不同 I/O结构。 注意:外部中断信号的最小脉冲宽度 所有外部中断信号必须具有至少 1.5MCLK 的脉冲宽度以保证稳定的中断响应,但是更窄的脉冲信号