版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 第第3 3章章 MSP430 MSP430单片机硬件单片机硬件 结构及原理结构及原理 2 本章内容本章内容 n3.1 MSP430 x14x结构概述结构概述 n3.2 MSP430 x14x的主要特性和外部引脚的主要特性和外部引脚 n3.3 MSP430单片机的中央处理器单片机的中央处理器 n3.4 MSP430单片机的存储器结构单片机的存储器结构 n3.5 MSP430时钟模块与低功耗结构时钟模块与低功耗结构 n3.6系统复位和初始化系统复位和初始化 n3.7 中断系统中断系统 3 3.1 MSP430 x14x结构概述结构概述 4 硬件结构具有以下特点:硬件结构具有以下特点: n超低功
2、耗结构,能够延长电池生存周期。超低功耗结构,能够延长电池生存周期。RAM保保 持方式下电流为持方式下电流为0.1A,等待方式时电流为,等待方式时电流为 0.8A,活动状态时电流也仅为,活动状态时电流也仅为250A/MIPS。 n高性能的模拟器件可以用于精确测量。集成高性能的模拟器件可以用于精确测量。集成12位位 200Kbps的的A/D转换器,自带采样保持。转换器,自带采样保持。 n16位位RISC中央处理器,中央处理器,125ns指令周期。可以指令周期。可以 用较少的代码空间实现高性能的应用。用较少的代码空间实现高性能的应用。 n在系统可编程的在系统可编程的FLASH,为开发编程提供便利。,
3、为开发编程提供便利。 5 MSP430 x14x主要包括以下功能部件:主要包括以下功能部件: nCPU n存储器:存储器: n外围模块:主要包括:时钟模块、外围模块:主要包括:时钟模块、 看门狗、定时器看门狗、定时器A、定时器、定时器B、比、比 较器较器A、串口、串口0、串口、串口1、硬件乘、硬件乘 法器、法器、12位模数转换和端口等。位模数转换和端口等。 6 MSP430X11X系列系列 7 MSP430X12X系列系列 8 MSP430X13X系列系列 9 MSP430X14X系列系列 10 MSP430F15X/F16(1)X 系列系列 11 MSP430F15X/F16(1)X 系列系
4、列 12 MSP430X41X系列系列 13 MSP430F43X系列系列 14 MSP430F44X系列系列 15 3.3 MSP430单片机的中央处理器单片机的中央处理器 16 17 MSP430CPU的主要特征的主要特征 nRISC指令集,指令集,27条内核指令和条内核指令和7种寻址模式种寻址模式 n寄存器资源丰富寄存器资源丰富 n寄存器操作为单周期寄存器操作为单周期 n16位地址总线位地址总线 n常数发生器常数发生器 n直接的存储器到存储器访问直接的存储器到存储器访问 n位、字和字节操作方式位、字和字节操作方式 18 MSP430 CPU的寄存器的寄存器 简写功能 R0程序计数器PC,
5、指示下一条将要执行的指令地址。 R1堆栈指针SP,指向堆栈栈顶 R2状态寄存器SR/常数发生器CG1 R3常数发生器CG2 R4通用寄存器 R15通用寄存器 19 (1)程序计数器)程序计数器PC/R0 n程序计数器是程序计数器是MSP430 CPU中最核心的寄存器,中最核心的寄存器, 指示出下一条即将执行的指令的地址。指示出下一条即将执行的指令的地址。 n程序计数器程序计数器PC的内容总是偶数,指向偶字节地址的内容总是偶数,指向偶字节地址. n程序计数器程序计数器PC可以像其他寄存器一样用所有指令可以像其他寄存器一样用所有指令 和所有寻址方式访问,但对程序存储器的访问必须和所有寻址方式访问,
6、但对程序存储器的访问必须 以字为单位,否则会清除高位字节。以字为单位,否则会清除高位字节。 n程序计数器程序计数器PC的变化的轨迹决定程序的流程的变化的轨迹决定程序的流程. n程序计数器程序计数器PC的宽度决定了存储器可以直接寻址的宽度决定了存储器可以直接寻址 的范围。的范围。 nMSP430的程序计数器是的程序计数器是16位的计数器,最多位的计数器,最多 直接寻址的存储空间高达直接寻址的存储空间高达64KB。 20 n举例:举例: nMOV #LABLE,PC ;跳转到地址跳转到地址LABLE开始执行开始执行 nMOV LABLE,PC ;程序开始执行的地址为程序开始执行的地址为LABLE所
7、在内存中的数所在内存中的数 nMOV R14,PC ;程序开始执行的地址为寄存器程序开始执行的地址为寄存器R14中的数中的数 21 (2)堆栈指针)堆栈指针SP n系统堆栈在系统调用子程序或进入中断服系统堆栈在系统调用子程序或进入中断服 务程序时,能够保护程序计数器务程序时,能够保护程序计数器PC. n然后将子程序的入口地址或者中断矢量地然后将子程序的入口地址或者中断矢量地 址送程序计数器,执行子程序或中断服务址送程序计数器,执行子程序或中断服务 程序。程序。 n子程序或者中断服务程序执行完毕,遇到子程序或者中断服务程序执行完毕,遇到 返回指令时,将堆栈的内容送到程序计数返回指令时,将堆栈的内
8、容送到程序计数 器中,程序流程又返回到原来的地方,继器中,程序流程又返回到原来的地方,继 续执行续执行. n此外,堆栈可以在函数调用期间保存寄存此外,堆栈可以在函数调用期间保存寄存 器变量、局域变量和参数等。器变量、局域变量和参数等。 22 n堆栈指针堆栈指针SP总是指向堆栈的顶部。系统在将数据总是指向堆栈的顶部。系统在将数据 压入堆栈时,总是先将堆栈指针压入堆栈时,总是先将堆栈指针SP的值减的值减2,然,然 后再将数据送到后再将数据送到SP所指的所指的RAM单元。将数据从单元。将数据从 堆栈中弹出正好与压入过程相反;先将数据从堆栈中弹出正好与压入过程相反;先将数据从SP 所指示的内存单元取出
9、,再将所指示的内存单元取出,再将SP值加值加2。 23 n举例:举例: nMOV 2(SP), R6 ;将内存单元将内存单元I2中的数放到中的数放到R6中中 nMOV R7, 0(SP) ;将将R7中的数放到栈顶所在单元中的数放到栈顶所在单元(I3)中中 nPUSH #0123h ;将将SP的值减的值减2,再将再将#0123h放到放到SP所指向的单元中。所指向的单元中。 nPOP R8 ;将将SP所指向单元中的数所指向单元中的数(#0123h)放到放到R8中,再将中,再将SP的的 值加值加2 24 (3) 状态寄存器状态寄存器SR 0C进位标志。当运算结果产生进位时置位,否则复位。 1Z零标志
10、。当运算结果为零时Z置位,否则Z复位。 2N负标志。当运算结果为负时N置位,否则N复位。 3GIE中断控制位。控制可屏蔽中断,当GIE置位CPU可响 应可屏蔽中断,否则不响应可屏蔽中断。 4CPUOff置位CPUOff位可使CPU进入关闭模式,可用所有允 许的中断将CPU唤醒。 C-Carry bit ;Z-Zero bit;N-Negative bit;GIE-General Interrupt Enable 25 5OscOff置位OscOff位可使晶体振荡器处于停止状态, 同时CPUOff也需置位。可用外部中断或者 NMI唤醒。 6SCG0SCG0置位关闭SMCLK,与SCG1一起控制系
11、 统时钟发生器的4种状态。 7SCG1SCG1置位关闭DCO发生器,与SCG0一起控 制系统时钟发生器的4种状态。 8V溢出标志。当运算结果超出有符号数范围时 置位。溢出情况如下: 正数 + 正数 = 负数 负数 + 负数 = 正数 正数 - 负数 = 负数 负数 - 正数 = 正数 915保留未用。 OscOff-Oscillator Off;SCG0-System Clock Generator;V-Overflow bit 26 (4) 常数发生器常数发生器CG1和和CG2 寄存器As常数说明 R200-寄存器模式 R201(0)绝对寻址模式 R21000004H+4位处理 R21100
12、008H+8位处理 R30000000H0字处理 R30100001H+1 R31000002H+2位处理 R3110FFFFH-1位处理 27 n举例:单操作数指令举例:单操作数指令 nCLR dst ;将将dst单元清零单元清零 n这不是内核指令,而是一条模拟指令,汇编器将这不是内核指令,而是一条模拟指令,汇编器将 As=00,R3=0,用,用 nMOV R3,dst n来模拟。来模拟。 28 (5)通用工作寄存器)通用工作寄存器R4R15 n举例:举例: nMOV #1234H,R15 ;执行后执行后R15内容为内容为 1234H nMOV.B #23H,R15 ;执行后执行后R15内容
13、为内容为 0023H nADD.B #34H,R15 ;执行后执行后R15内容为内容为 0057H 29 3.4 MSP430单片机的存储器结构单片机的存储器结构 nMSP430系列的存储空间采用系列的存储空间采用“冯冯-诺依曼诺依曼”结构,结构, 物理上完全分离的存储区域如物理上完全分离的存储区域如ROM/FLASH、 RAM、外围模块、特殊功能寄存器、外围模块、特殊功能寄存器SFR等,被安等,被安 排在同一地址空间,这样就可以使用一组地址、排在同一地址空间,这样就可以使用一组地址、 数据总线、相同的指令对它们进行字节或字形式数据总线、相同的指令对它们进行字节或字形式 访问。访问。 nMSP
14、430系列单片机存储器的这种组织方式和系列单片机存储器的这种组织方式和 CPU采用精简指令相互协调,对外围模块的访问采用精简指令相互协调,对外围模块的访问 不需要单独的指令,为软件的开发和调试提供便不需要单独的指令,为软件的开发和调试提供便 利。利。 30 MSP430不同系列器件的存储空间分布有很不同系列器件的存储空间分布有很 多相同之处:多相同之处: n中断向量被安排在相同的空间:中断向量被安排在相同的空间:0FFE00FFFFH; n8位、位、16位外围模块占用相同范围的存储器地址;位外围模块占用相同范围的存储器地址; n所有器件的特殊功能寄存器占用相同范围的存储器地所有器件的特殊功能寄
15、存器占用相同范围的存储器地 址:址:00H0FH; n数据存储器开始于相同的地址,即从数据存储器开始于相同的地址,即从0200H处开始;处开始; n代码存储器的最高地址都是代码存储器的最高地址都是0FFFFH。 31 存储空间的分布也存在一些差异:存储空间的分布也存在一些差异: n不同型号器件的代码存储器容量不一样;不同型号器件的代码存储器容量不一样; n代码存储器的起始地址不一样,每一种器件的代码存储器代码存储器的起始地址不一样,每一种器件的代码存储器 的起始地址为的起始地址为 起始地址起始地址 = 10000H 该器件的代码容量该器件的代码容量 n仅仅FLASH型有信息存储器,而且不同的器
16、件地址也不一型有信息存储器,而且不同的器件地址也不一 样,但容量都是样,但容量都是256B n仅仅FLASH型有引导存储器,而且不同器件的地址也不一型有引导存储器,而且不同器件的地址也不一 样,但容量都是样,但容量都是1KB n各器件数据存储器的末地址也不一样,其末地址为各器件数据存储器的末地址也不一样,其末地址为 末地址末地址 = 该器件数据该器件数据RAM容量容量 + 0200H n中断向量的具体内容因器件不同而不同;中断向量的具体内容因器件不同而不同; n所有器件的所有器件的8位、位、16位外围模块地址范围内的具体内容因位外围模块地址范围内的具体内容因 器件不同而不同。器件不同而不同。
17、32 nMSP430的数据存储器位于存储器地址空间的的数据存储器位于存储器地址空间的 0200H以上,这些存储器一般用做数据的保存与以上,这些存储器一般用做数据的保存与 堆栈,同时也是数据运算的场所,特殊场合还可堆栈,同时也是数据运算的场所,特殊场合还可 以用作程序存储器。以用作程序存储器。 n可以字操作也可以字节操作,通过指令后缀加以可以字操作也可以字节操作,通过指令后缀加以 区别。区别。 n字节操作可以是奇地址或者是偶地址,在字操作字节操作可以是奇地址或者是偶地址,在字操作 时,每两个字节为一个操作单位,必须对准偶地时,每两个字节为一个操作单位,必须对准偶地 址。址。 33 举例举例 MO
18、V.B #20H, 执行后执行后221H单元的内容为单元的内容为20H MOV.B #324H, 执行后执行后221H单元的内容为单元的内容为24H MOV.W #3234H, 执行后执行后222H单元的内容为单元的内容为 34H,223H单元的内容为单元的内容为32H MOV.W #324H, 执行后执行后221H单元的内容为单元的内容为03H, 220H单元的内容为单元的内容为24H RAM空间还可以进行运算,如:空间还可以进行运算,如: MOV.B #33H, 执行后地址执行后地址220H的内容为的内容为33H ADD.B #22H, 执行后地址执行后地址220H的内容为的内容为55H
19、34 n程序程序ROM区为区为0FFFFH以下一定数量存储空间,以下一定数量存储空间, 可存放指令代码和数据表格。程序代码必须偶地可存放指令代码和数据表格。程序代码必须偶地 址寻址。址寻址。 n程序代码可分为三种情况:中断向量区、用户程程序代码可分为三种情况:中断向量区、用户程 序代码及系统引导程序序代码及系统引导程序(个别器件有,如个别器件有,如FLASH 型型)。 35 1 中断向量区中断向量区 中断源中断标志系统中断地址优先级 上电、外部复位、看 门狗、FLASH存储器 WDTIFG复位0FFFEH15 NMI、振荡器故障、 FLASH访问出错 NMIFG、OFIGF、 ACCVIFG
20、非屏蔽/可 屏蔽 0FFFCH14 定时器BBCCIFG0可屏蔽0FFFAH13 定时器BB C C I F G 1 6 , TBIFG 可屏蔽0FFF8H12 比较器ACMPAIFG可屏蔽0FFF6H11 看门狗定时器WDTIFG可屏蔽0FFF4H10 串口0接收URXIFG0可屏蔽0FFF2H9 串口0发送UTXIFG0可屏蔽0FFF0H8 ADCADCIFG可屏蔽0FFEEH7 定时器ACCIFG0可屏蔽0FFECH6 定时器AC C I F G 1 2 , TAIFG 可屏蔽0FFEAH5 P1P1IFG.07可屏蔽0FFE8H4 串口1接收URXIFG1可屏蔽0FFE6H3 串口1发
21、送UTXIFG1可屏蔽0FFE4H2 P2P2IFG.07可屏蔽0FFE2H1 36 2 用户程序区用户程序区 n用户程序区一般用来存放程序与常数或表格。用户程序区一般用来存放程序与常数或表格。 MSP430的存储结构尤其允许存放大的数表,并的存储结构尤其允许存放大的数表,并 且可以用所有的字和字节指令访问这些表。这一且可以用所有的字和字节指令访问这些表。这一 点为提高编程的灵活性和节省程序存储空间带来点为提高编程的灵活性和节省程序存储空间带来 各种好处。各种好处。 37 nMSP430系列单片机外围模块的寻址被安排在系列单片机外围模块的寻址被安排在 0010H01FFH这一区域,都可以用软件
22、访问和这一区域,都可以用软件访问和 控制。控制。 nMSP430可以可以象象访问普通访问普通RAM单元一样对这些寄单元一样对这些寄 存器进行操作。这些寄存器也分为字节结构和字存器进行操作。这些寄存器也分为字节结构和字 结构。结构。 n地址空间地址空间0100H01FFH安排字结构,地址空间安排字结构,地址空间 0010H00FFH安排字节模块,地址空间安排字节模块,地址空间 0000H000FH保存特殊功能寄存器。保存特殊功能寄存器。 38 MSP430F149 字模块的空间分配字模块的空间分配 地址说明地址说明 0H1FFH保留170H170H定时器A 1E0H1EFH保留160H16FH定
23、时器A 1D0H1DFH保留150H15FHADC12转换 0H1CFH保留140H14FHADC12转换 1B0H1BFH保留130H13FH硬件乘法器 0H1AFHADC12控制和中断120H12FH看门狗、FLASH控 制 190H19FH定时器B110H11FH保留 180H18FH定时器B100H10FH保留 39 MSP430F149 字节模块的空间分配字节模块的空间分配 地址说明地址说明 0H1FFH保留70H70H串口1/串口0 0E0H1EFH保留60H6FH保留 0D0H1DFH保留50H5FH比较器A,系统时 钟 0H1CFH保留40H4FH保留 0B0H1BFH保留30
24、H3FH端口6/端口5 0H1AFH保留20H2FH端口4/端口3 090H19FH保留10H1FH端口1/端口2 080H18FHADC12存储控制00H0FHSFR 40 MSP430F149 特殊功能寄存器特殊功能寄存器SFR的空间分配的空间分配 地址说明地址说明 0FH无定义/未实现07H无定义/未实现 0EH无定义/未实现06H无定义/未实现 0DH无定义/未实现05H模块允许2:ME2 0CH无定义/未实现04H模块允许1:ME1 0BH无定义/未实现03H中断标志2:IFG2 0AH无定义/未实现02H中断标志1:IFG1 09H无定义/未实现01H中断允许2:IE2 08H无定
25、义/未实现00H中断允许1:IE1 41 3.5 MSP430时钟模块与低功耗结构时钟模块与低功耗结构 n时钟模块对于单片机来说是至关重要的,它不仅给时钟模块对于单片机来说是至关重要的,它不仅给CPU提提 供正确的时序,还给单片机的外围模块提供工作时序。因供正确的时序,还给单片机的外围模块提供工作时序。因 此,一个高效稳定的时钟模块是单片机系统能够正常工作此,一个高效稳定的时钟模块是单片机系统能够正常工作 的基础。的基础。 n在数字系统中,系统功耗与频率成正比,实际应用中常希在数字系统中,系统功耗与频率成正比,实际应用中常希 望系统能够快速响应事件的同时又要尽量的降低系统能耗,望系统能够快速响
26、应事件的同时又要尽量的降低系统能耗, 这对于单片机来说是一个互相矛盾的要求。这对于单片机来说是一个互相矛盾的要求。 nMSP430的系统时钟很好的满足了这个要求,它通过提的系统时钟很好的满足了这个要求,它通过提 供几种不同的时钟信号,并为时钟设计多种不同的工作模供几种不同的时钟信号,并为时钟设计多种不同的工作模 式,使用户可以根据需要,灵活的为式,使用户可以根据需要,灵活的为CPU和外设选择合适和外设选择合适 的时钟频率。的时钟频率。 42 43 它有它有3个时钟源输入端个时钟源输入端 nLFXT1CLK 低频时钟源,接低频时钟晶体、也低频时钟源,接低频时钟晶体、也 可接高频时钟晶体、陶瓷谐振
27、器或直接外接时钟可接高频时钟晶体、陶瓷谐振器或直接外接时钟 信号源。信号源。 nXT2CLK 高频时钟源,接标准高频晶体、也高频时钟源,接标准高频晶体、也 可接陶瓷谐振器或直接外接可接陶瓷谐振器或直接外接450kHz8MHz时钟时钟 信号源。信号源。 nDCOCLK 片内可以数字控制的片内可以数字控制的RC振荡器。振荡器。 44 基础时钟模块可提供基础时钟模块可提供3种时钟信号:种时钟信号: nACLK 辅助时钟,是辅助时钟,是LFXT1CLK信号经信号经1,2,4,8分频分频 后得到的。分频系数可由软件控制。后得到的。分频系数可由软件控制。ACLK可由软件选作可由软件选作 各个外围模块的时钟
28、信号,一般用于低速外设。各个外围模块的时钟信号,一般用于低速外设。 nMCLK 系统主时钟,由软件选择来自系统主时钟,由软件选择来自LFXT1CLK、 XT2CLK,DCOCLK三者之一,然后经三者之一,然后经1,2,4,8分频分频 得到,分频系数可由软件控制。主要用于得到,分频系数可由软件控制。主要用于CPU和系统。和系统。 nSMCLK 子系统时钟,由软件选择来自子系统时钟,由软件选择来自LFXT1CLK、 XT2CLK,DCOCLK三者之一,然后经三者之一,然后经1,2,4,8分频分频 得到,分频系数可由软件控制。主要用于高速外围模块。得到,分频系数可由软件控制。主要用于高速外围模块。
29、45 n当发生有效的当发生有效的PUC后,后,MCLK和和SMCLK使用工作使用工作 在在800KHz附近附近DCOCLK作为时钟源,作为时钟源,ACLK使使 用工作在低速模式的用工作在低速模式的LFXT1CLK作为时钟源。作为时钟源。 n状态寄存器状态寄存器(SR)控制位控制位SCG0、SCG1、 OSCOFF和和CPUOFF用来配置基础时钟模块的使用来配置基础时钟模块的使 能。能。 nDCOCTL、BCSCTL1和和BCSCTL2用来配置基础用来配置基础 时钟模块。在程序运行的任何时间,都可以通过时钟模块。在程序运行的任何时间,都可以通过 这些寄存器来配置基础时钟模块。这些寄存器来配置基础
30、时钟模块。 n(PUC-Power Up Clear重启)重启) n(POR-Power On Reset上电复位,更彻底复上电复位,更彻底复 位)位) 46 nMSP430系列的每种产品中都有低速晶体振荡器系列的每种产品中都有低速晶体振荡器 (LTXT1),通常外接),通常外接32768Hz的时钟晶体,的时钟晶体, 可以选择使用广泛使用的手表晶振,同时将所需可以选择使用广泛使用的手表晶振,同时将所需 两个小电容也集成在内部。这样可降低系统成本。两个小电容也集成在内部。这样可降低系统成本。 nLFXT1振荡器在发生有效的振荡器在发生有效的PUC后开始工作,一后开始工作,一 次有效的次有效的PU
31、C信号将信号将SR寄存器的寄存器的OscOff位复位,位复位, 即允许即允许LFXT1工作。如果工作。如果LFXT1CLK信号没有用信号没有用 作作SMCLK或或ACLK信号,则可以用软件将信号,则可以用软件将OscOff 位置以禁止位置以禁止LFXT1工作:工作: nMOV #OscOff,SR 47 LFXT1 的控制逻辑如下图所示:的控制逻辑如下图所示: 48 注意:注意: n低速时钟通常需要几百低速时钟通常需要几百ms的时间来启动。的时间来启动。 n尽量避免外界信号对晶体的干扰,布线时晶体要尽量避免外界信号对晶体的干扰,布线时晶体要 尽量靠近单片机。尽量靠近单片机。 n当工作在低速模式
32、时,如果当工作在低速模式时,如果VCC小于小于2.5V,为保,为保 证正常工作,需要在证正常工作,需要在VSS和和XOUT之间加入之间加入5.1M 欧姆电阻欧姆电阻 nLFXT1振荡器也可以外接频率较高的高速晶体振振荡器也可以外接频率较高的高速晶体振 荡器或陶瓷振荡器,以工作在高速模式;这时荡器或陶瓷振荡器,以工作在高速模式;这时 XTS位置位,同时两个引脚还要外接电容,电容位置位,同时两个引脚还要外接电容,电容 大小根据晶体或振荡器的特性来选择。大小根据晶体或振荡器的特性来选择。 49 n高速振荡器(高速振荡器(XT2)主要存在于)主要存在于F13X,F14X,F4XX等等 器件,一般称之为
33、第二振荡器器件,一般称之为第二振荡器XT2,它产生时钟信号,它产生时钟信号 XT2CLK,它的工作特性与,它的工作特性与LFXT1振荡器工作在高频模式振荡器工作在高频模式 时类似。时类似。 n下页图是下页图是TX2振荡器的控制逻辑。如果振荡器的控制逻辑。如果XT2CLK信号没用信号没用 做做MCLK、SMCLK时钟信号,则可以用时钟信号,则可以用XT2Off控制位关控制位关 闭闭XT2。 n如果如果CPUOff=0,SELM=2,则,则XT2CLK用做用做MCLK时钟;时钟; 如果如果SCG1=0且且SELS=1,XT2CLK用做用做SMCLK时钟。时钟。 50 51 nMSP430系列的两个
34、外部振荡器产生的时钟信号都可以系列的两个外部振荡器产生的时钟信号都可以 经经1,2,4,8分频后用作系统主时钟分频后用作系统主时钟MCLK。上电复位。上电复位 或振荡器失效时,或振荡器失效时,DCO振荡器会自动被选做振荡器会自动被选做MCLK的时钟的时钟 源,频率在源,频率在800K左右。左右。 nDCO振荡器实质上是一个可数字控制的振荡器实质上是一个可数字控制的RC振荡器。因为振荡器。因为 RC振荡器的频率会随着温度和工作电压的变化而变化,振荡器的频率会随着温度和工作电压的变化而变化, 所以同一型号芯片产生的频率有所不同。所以同一型号芯片产生的频率有所不同。 n但同时但同时DCO频率可通过频
35、率可通过DCO、MOD、Rsel等控制位用软等控制位用软 件调节,这又增加了振荡器频率的稳定性。件调节,这又增加了振荡器频率的稳定性。 n当当DCO信号没有用作信号没有用作SMCLK和和MCLK时钟信号时,可以时钟信号时,可以 用软件关闭直流发生器,直流发生器消耗的电流定义了用软件关闭直流发生器,直流发生器消耗的电流定义了 DCOCLK的基本频率。的基本频率。 52 DCO的控制逻辑如图所示。的控制逻辑如图所示。 53 MSP430 x1xx的的DCO控制原理图控制原理图 54 最终的最终的DCO输出频率输出频率DCOCLK由以下功能建立:由以下功能建立: n DCO基础频率由内部或外部电阻向
36、基础频率由内部或外部电阻向DC发生器发生器 注入的电流决定,由注入的电流决定,由DCOR控制位选择片内或片控制位选择片内或片 外电阻。外电阻。 n 基础频率由控制位基础频率由控制位Rsel2,Rsel1和和Rsel0分分 频为频为8个标称频率范围,而这些频率范围因不同个标称频率范围,而这些频率范围因不同 型号而异。型号而异。 n 控制位控制位DCO0,DCO1和和DCO2可分段调节可分段调节 DCOCLK频率。频率。 n 由由5个调整位个调整位MOD0MOD4控制切换控制切换DCO和和 DCO+1选择的两种频率。选择的两种频率。 55 n由由DCO控制位选择的控制位选择的DCOCLK频率大约可
37、以在时频率大约可以在时 钟周期的钟周期的10%范围内调整。在范围内调整。在MSP430 x1xx系系 列中列中DCO的控制由的控制由3个寄存器完成:个寄存器完成:DCOCTL、 BCSCTL1、BCSCTL2。 n(Basic Clock System Control Register ) 56 (1) DCOCTL n地址为地址为056H,PUC后的值为后的值为060H nMOD.0 MOD.4 定义了在定义了在32个个DCO周期中插周期中插 入的入的f(DCO+1)周期,而在余下的周期,而在余下的DCO周期中为周期中为 f(DCO)周期。如果周期。如果DCO常数为常数为7,由于已经选择,由
38、于已经选择 了最高频率将不进行调整。了最高频率将不进行调整。 nDCO.0 DCO.2 定义了定义了8种频率之一,而频率种频率之一,而频率 由注入直流发生器的电流定义。由注入直流发生器的电流定义。 57 (2)BCSTCL1 n地址为地址为057H,PUC后的值为后的值为084H 58 Rsel.0 Rsel.2 三位选择某个内部电阻以决定标称频率。三位选择某个内部电阻以决定标称频率。 Rsel=0,选择最低的标称频率;,选择最低的标称频率; Rsel=7,选择最高的标称频率。,选择最高的标称频率。 XT5V 此位必须为此位必须为0。 DIVA.0 DIVA.1 选择选择ACLK的分频系数。的
39、分频系数。 DIVA=0,ACLK的分频系数为的分频系数为1; DIVA=1,ACLK的分频系数为的分频系数为2; DIVA=2,ACLK的分频系数为的分频系数为4; DIVA=3,ACLK的分频系数为的分频系数为8。 XTS 选择选择LFXT1工作在低频晶振模式还是高频晶振模式,选择须同实际晶体。工作在低频晶振模式还是高频晶振模式,选择须同实际晶体。 XTS=0,LFXT1工作在低频模式;工作在低频模式; XTS=1,LFXT1工作在高频模式。工作在高频模式。 XT2OFF 控制控制XT2振荡器的开启与关闭。振荡器的开启与关闭。 XT2OFF=0,XT2振荡器开启;振荡器开启; XT2OFF
40、=1,XT2振荡器关闭。振荡器关闭。 59 60 (3)BCSTCL2 地址为地址为058H,PUC后值为后值为00H DCOR 选择内部还是外部电阻。选择内部还是外部电阻。DCOR=0,选择,选择 内部电阻;内部电阻;DCOR=1,选择外部电阻。,选择外部电阻。 DIVS.0 DIVS.1 选择选择SMCLK的分频因子。的分频因子。 DIVS=0,分频因子为1; DIVS=1,分频因子为2; DIVS=2,分频因子为4; DIVS=3,分频因子为8。 61 SELS 选择选择SMCLK的时钟源。的时钟源。 SELS=0,SMCLK的时钟源为DCOCLK; SELS=1,SMCLK的时钟源为L
41、FXT1CLK(对于MSP430F11XX), SMCLK的时钟源为XT2CLK(对于MSP430F13X/14X)。 DIVM.0 DIVM.1 选择选择MCLK的分频因子。的分频因子。 DIVM=0,分频因子为1; DIVM=1,分频因子为2; DIVM=2,分频因子为4; DIVM=3,分频因子为8。 SELM.0 SELM.1 选择选择MCLK的时钟源。的时钟源。 SELM=0,MCLK的时钟源为DCOCLK; SELM=1,MCLK的时钟源为DCOCLK; SELM=2,MCLK的时钟源为LFXT1CLK(对于MSP430F11XX), MCLK的时钟源为XT2CLK(对MSP430
42、F13X/14X); SELM=3,MCLK的时钟源为LFXT1CLK。 62 PUC信号之后,信号之后,DCOCLK被自动选做被自动选做MCLK时钟信时钟信 号,根据需要,号,根据需要,MCLK的时钟源可以另外设置为的时钟源可以另外设置为 LFXT1或者或者XT2.设置顺序如下:设置顺序如下: 1.复位OscOff; 2.清除OFIFG; 3.延时等待至少50us; 4.再次检查OFIFG,如果仍然置位,则重复3,4步骤,直 到OFIFG=0为止。 63 举例:举例: ;Select LFXT1 (HF mode) for MCLK BIC #OscOff,SR BIS.B #XTS,BCS
43、STL1 L1 BIC.B #OFIFG, / Stop watchdog timer n P3DIR |= BIT2; / Set P3.2 to output direction n for (;) n n volatile unsigned int i; n P3OUT = BIT2; / Toggle P3.2 using exclusive-OR n i = 50000; / Delay n do (i-); n while (i != 0); n n 例例1 设设MCLK=XT2,SMCLK=DCOCLK,将,将MCLK由由5.4输出程序如下:输出程序如下: #include vo
44、id main(void) unsigned int i; WDTCTL = WDTPW + WDTHOLD; /停止看门狗停止看门狗 P5DIR |= 0X10; /设置设置P5.4为输出为输出 P5SEL |= 0X10; /设置设置P5.4为为MCLK输出输出 BCSCTL1 /设置设置XT2为有效为有效 do IFG1 /清除振荡器失效标志清除振荡器失效标志 for(i = 0 xFF;i0;i-); /稳定时间稳定时间 while(IFG1 /如果振荡器失效标志存在则继续循环。如果振荡器失效标志存在则继续循环。 BCSCTL2 |= SELM1; /设置设置MCLK = XT2 fo
45、r(;); 72 例例2 设置设置ACLK=MCLK=LFXT1=LF,将,将MCLK通过通过P5.4输出。输出。 #include void main(void) unsigned int i; WDTCTL = WDTPW + WDTHOLD; /停止看门狗停止看门狗 / P5DIR |= 0X10; /设置设置P5.4为输出为输出 P5SEL |= 0X10; /设置设置P5.4为为MCLK输出输出 BCSCTL1 /设置设置LFXT1为低速模式为低速模式 do IFG1 /清除振荡器失效标志清除振荡器失效标志 for(i = 0 xFF;i0;i-); /稳定时间稳定时间 while(
46、IFG1 /如果振荡器失效标志存在则继续循环如果振荡器失效标志存在则继续循环 BCSCTL2 |= SELM1+SELM0; /设置设置MCLK=LFXT1 for(;); 73 74 nMSP430系列单片机是通过系列单片机是通过CPU中状态寄存器中状态寄存器 SR中的中的SCG1、SCG2、OscOff和和CPUOff四个四个 位来实现工作模式控制的。各控制位作用如下:位来实现工作模式控制的。各控制位作用如下: 75 159876543210 保留SCG1SCG0OscOffCPUOff nSCG1:当:当SCG1复位时,使能复位时,使能SMCLK;SCG1置位则禁置位则禁 止止SMCLK
47、。 nSCG0:当:当SCG0复位时,直流发生器被激活,只有在复位时,直流发生器被激活,只有在 SCG0置位且置位且DCOCLK信号没有用于信号没有用于MCLK或或SMCLK,直,直 流发生器才能被禁止。流发生器才能被禁止。 nOscOff:当:当OscOff复位时,复位时,LFXT晶体振荡器激活,只晶体振荡器激活,只 有当有当OscOff被置位且不用于被置位且不用于MCLK或或SMCLK时,时,LFXT晶晶 体振荡器才能被禁止,当使用振荡器关闭选项体振荡器才能被禁止,当使用振荡器关闭选项OscOff时,时, 需要考虑晶体振荡器的启动设置时间。需要考虑晶体振荡器的启动设置时间。 nCPUOff
48、:当:当CPUOff复位,用于复位,用于CPU的时钟信号的时钟信号MCLK被被 激活,当激活,当CPU置位时,置位时,MCLK停止。停止。 76 n只要任意中断被响应,上述控制位就被压入堆栈只要任意中断被响应,上述控制位就被压入堆栈 保存,中断处理之后,又可以恢复以前的工作方保存,中断处理之后,又可以恢复以前的工作方 式。在中断处理子程序执行期间,通过间接访问式。在中断处理子程序执行期间,通过间接访问 堆栈数据,可以操作这些位,这样在中断返回后,堆栈数据,可以操作这些位,这样在中断返回后, MSP430单片机会以另外一种功耗方式继续运行。单片机会以另外一种功耗方式继续运行。 77 78 n下表
49、是各种低功耗工作模式的控制位一览表。下表是各种低功耗工作模式的控制位一览表。 工作模式工作模式SCG1SCG1SCG0SCG0OSCOffOSCOffCPUOffCPUOff LPM00001 LPM10101 LPM21001 LPM31101 LPM41111 nMSP430系列单片机各个模块运行是完全系列单片机各个模块运行是完全 独立的,定时器、输入独立的,定时器、输入输出端口、输出端口、A/D转转 换、看门狗、液晶显示器等都可以在主换、看门狗、液晶显示器等都可以在主 CPU休眠的状态下独立运行。休眠的状态下独立运行。 n当需要主当需要主CPU工作时,任何一个模块都可工作时,任何一个模块
50、都可 以通过中断唤醒以通过中断唤醒CPU,从而使系统已最低,从而使系统已最低 功耗运行。功耗运行。 n为了充分利用为了充分利用CPU低功耗性能,可以让低功耗性能,可以让 CPU工作于突发状态。工作于突发状态。 n在通常情况下,根据需要使用软件将在通常情况下,根据需要使用软件将CPU 设定到某一低功耗工作模式下,在需要时设定到某一低功耗工作模式下,在需要时 使用中断将使用中断将CPU从休眠状态中唤醒,完成从休眠状态中唤醒,完成 工作之后又可以进入相应的休眠状态。工作之后又可以进入相应的休眠状态。 n#include nvoid main(void) n n BCSCTL1 |= DIVA_2;
51、/ ACLK/4 n WDTCTL = WDT_ADLY_1000; / WDT 1s/4 interval timer n IE1 |= WDTIE; / Enable WDT interrupt n P3DIR |= BIT1; / Set P3.1 to output direction n P3OUT / Set P3.1 to 0 n while(1) n n int i; n _BIS_SR(LPM3_bits + GIE); / Enter LPM3 n P3OUT |=BIT1; / Set P3.1 LED on n for (i = 5000; i0; i-); / Del
52、ay n P3OUT / Clear P3.1 LED off n n n#pragma vector=WDT_VECTOR n_interrupt void watchdog_timer (void) n n _BIC_SR_IRQ(LPM3_bits) / Clear LPM3 bits from 0(SR) n n当电流消耗是系统应用的重要指标时,应考虑以当电流消耗是系统应用的重要指标时,应考虑以 下的一些基本的设计原则:下的一些基本的设计原则: n最大化最大化LPM3的时间,用的时间,用32KHz晶振作为晶振作为ACLK 时钟,时钟,DCO用于用于CPU激活后的突发短暂运行。激活后的突
53、发短暂运行。 n用接口模块代替软件驱动功能。用接口模块代替软件驱动功能。 n用中断控制程序运行。用中断控制程序运行。 n用可计算的分支代替标志位测试产生的分支。用可计算的分支代替标志位测试产生的分支。 n用快速查表代替软件的软件计算。用快速查表代替软件的软件计算。 n在冗长的软件计算中使用单周期的在冗长的软件计算中使用单周期的CPU寄存器。寄存器。 n避免频繁的子程序和函数调用。避免频繁的子程序和函数调用。 n尽可能直接用电池供电尽可能直接用电池供电 n不论对于内核还是对于外围模块,选择尽可能低不论对于内核还是对于外围模块,选择尽可能低 的运行频率,如果不影响功能应设计自动关机。的运行频率,如
54、果不影响功能应设计自动关机。 3.6系统复位和初始化系统复位和初始化 85 POR来自于硬件复位,只有以下两种情况才能产生来自于硬件复位,只有以下两种情况才能产生POR信信 号号 (1)芯片上电;)芯片上电; (2)RST/NMI设置成复位模式,在设置成复位模式,在RST/NMI引脚上出现引脚上出现 低电平信号。低电平信号。 POR信号的产生总会产生信号的产生总会产生PUC信号,但信号,但PUC信号的发生不信号的发生不 一定会产生一定会产生POR信号。信号。PUC信号是上电清除信号,产生信号是上电清除信号,产生 它的事件为:它的事件为: (1) 发生发生POR信号;信号; (2) 处于看门狗模
55、式下,看门狗定时时间到;处于看门狗模式下,看门狗定时时间到; (3) 看门狗定时器写入错误的安全键值;看门狗定时器写入错误的安全键值; (4) FLASH存储器写入错误的安全键值。存储器写入错误的安全键值。 86 n当当Vcc上电比较慢的时候,上电比较慢的时候,POR检测器保持检测器保持POR信号信号 为高电平直到为高电平直到Vcc已经上升到大于已经上升到大于启动启动门限门限 ,如图所,如图所 示。当示。当Vcc快速上升时,快速上升时,POR信号产生一个延迟信号产生一个延迟 再产再产 生生POR信号以便让信号以便让MSP430正确初始化。正确初始化。 87 (1) 引脚被配置成复位模式;引脚被
56、配置成复位模式; (2) I/O引脚被引脚被切切换成输入模式;换成输入模式; (3) 其他的模块和寄存器被初始化成默认状态,如其他的模块和寄存器被初始化成默认状态,如 数据手册所述;数据手册所述; (4) 状态寄存器复位;状态寄存器复位; (5) 看门狗定时器以看门狗模式激活;看门狗定时器以看门狗模式激活; (6) PC装入装入0FFFEH处的地址值,处的地址值,CPU从这一地址从这一地址 开始执行。开始执行。 88 软件初始化,用户软件必须根据应用的需求对软件初始化,用户软件必须根据应用的需求对 MSP430进行初始化,必须包括以下几个部分:进行初始化,必须包括以下几个部分: (1) 初始化
57、初始化SP,通常是,通常是RAM的顶部;的顶部; (2) 初始化看门狗定时器;初始化看门狗定时器; (3) 配置外围模块。配置外围模块。 89 3.7 中断系统中断系统 n有三种中断:有三种中断: n(1) 系统复位系统复位 n(2) NMI中断中断 n(3) 可屏蔽中断可屏蔽中断 90 91 中断优先级顺序排列图(参考P51表) NMI中断的使能位不是由通用中断使能中断的使能位不是由通用中断使能GIE来控制,而是由特来控制,而是由特 殊的标志位来控制殊的标志位来控制(NMIIE, ACCVIE, OFIE),当一个,当一个NMI 中断发生,所有的中断发生,所有的NMI中断使能都自动复位。程序从储存在中断使能都自动复位。程序从储存在 NMI中断向量中断向量(0FFFCH)开始执行,用户软件必须在开始执行,用户软件必须在NMI中中 断中对允许的断中对允许的NMI中断重新使能。中断重新使能。 NMI中断可以由以下三种中断源产生:中断可以由以下三种中断源产生: (1) 当当 引脚配置为引脚配置为NMI模式时,引脚上出现上升沿或下降沿。模式时,引脚上出现上升沿或下降沿。 (2) FLASH访问错误。访问错误。 (3) 发生晶振失效发生晶振失效 92 n上电后,上电后, 引脚被配置为复位模式。引脚被配置为复
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智慧财税考试试题及答案
- 2026三年级数学下册 年月日项目学习
- 2026九年级下语文天下第一楼写作手法
- 危机管理培训试题及答案
- 企业相关质量、进度等跟踪检查制度
- 企业信息安全制度
- 人事考评制度
- 落实红包回扣奖惩制度
- 厨师管理考核奖惩制度
- 雅戈尔营业员奖惩制度
- 2022年甘肃高考物理真题及答案
- 烹调技术(第三版)中职PPT完整全套教学课件
- 2021西安美术学院附中招生语文试卷
- 清华大学出版社机械制图习题集参考答案(课堂PPT)
- 室内绿化植物的配置形式和原则
- 东方汽轮机高低旁液压油站使用说明书
- 地质环境与地质灾害防治绪论课件
- GB/T 30256-2013节能量测量和验证技术要求泵类液体输送系统
- GB/T 19634-2021体外诊断检验系统自测用血糖监测系统通用技术条件
- GB/T 18354-2021物流术语
- 儿童炎症性肠病(IBD)
评论
0/150
提交评论