版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 中断系统中断系统33.1 MSP430 x14x结构概述结构概述 4硬件结构具有以下特点:硬件结构具有以下特点: n超低功耗结构,能够延长电池生存周
2、期。超低功耗结构,能够延长电池生存周期。RAM保保持方式下电流为持方式下电流为0.1A,等待方式时电流为,等待方式时电流为0.8A,活动状态时电流也仅为,活动状态时电流也仅为250A/MIPS。n高性能的模拟器件可以用于精确测量。集成高性能的模拟器件可以用于精确测量。集成12位位200Kbps的的A/D转换器,自带采样保持。转换器,自带采样保持。n16位位RISC中央处理器,中央处理器,125ns指令周期。可以指令周期。可以用较少的代码空间实现高性能的应用。用较少的代码空间实现高性能的应用。n在系统可编程的在系统可编程的FLASH,为开发编程提供便利。,为开发编程提供便利。 5MSP430 x
3、14x主要包括以下功能部件:主要包括以下功能部件: nCPUn存储器:存储器:n外围模块:主要包括:时钟模块、外围模块:主要包括:时钟模块、看门狗、定时器看门狗、定时器A、定时器、定时器B、比、比较器较器A、串口、串口0、串口、串口1、硬件乘、硬件乘法器、法器、12位模数转换和端口等。位模数转换和端口等。6MSP430X11X系列系列 7MSP430X12X系列系列 8MSP430X13X系列系列 9MSP430X14X系列系列 10MSP430F15X/F16(1)X 系列系列 11MSP430F15X/F16(1)X 系列系列12MSP430X41X系列系列 13MSP430F43X系列系
4、列 14MSP430F44X系列系列 153.3 MSP430单片机的中央处理器单片机的中央处理器 1617MSP430CPU的主要特征的主要特征nRISC指令集,指令集,27条内核指令和条内核指令和7种寻址模式种寻址模式n寄存器资源丰富寄存器资源丰富n寄存器操作为单周期寄存器操作为单周期n16位地址总线位地址总线n常数发生器常数发生器n直接的存储器到存储器访问直接的存储器到存储器访问n位、字和字节操作方式位、字和字节操作方式18MSP430 CPU的寄存器的寄存器 简写功能R0程序计数器PC,指示下一条将要执行的指令地址。R1堆栈指针SP,指向堆栈栈顶R2状态寄存器SR/常数发生器CG1R3
5、常数发生器CG2R4通用寄存器R15通用寄存器19(1)程序计数器)程序计数器PC/R0n程序计数器是程序计数器是MSP430 CPU中最核心的寄存器,中最核心的寄存器,指示出下一条即将执行的指令的地址。指示出下一条即将执行的指令的地址。n程序计数器程序计数器PC的内容总是偶数,指向偶字节地址的内容总是偶数,指向偶字节地址.n程序计数器程序计数器PC可以像其他寄存器一样用所有指令可以像其他寄存器一样用所有指令和所有寻址方式访问,但对程序存储器的访问必须和所有寻址方式访问,但对程序存储器的访问必须以字为单位,否则会清除高位字节。以字为单位,否则会清除高位字节。n程序计数器程序计数器PC的变化的轨
6、迹决定程序的流程的变化的轨迹决定程序的流程.n程序计数器程序计数器PC的宽度决定了存储器可以直接寻址的宽度决定了存储器可以直接寻址的范围。的范围。nMSP430的程序计数器是的程序计数器是16位的计数器,最多位的计数器,最多直接寻址的存储空间高达直接寻址的存储空间高达64KB。 20n举例:举例: nMOV #LABLE,PC ;跳转到地址跳转到地址LABLE开始执行开始执行nMOV LABLE,PC ;程序开始执行的地址为程序开始执行的地址为LABLE所在内存中的数所在内存中的数 nMOV R14,PC ;程序开始执行的地址为寄存器程序开始执行的地址为寄存器R14中的数中的数21(2)堆栈指
7、针)堆栈指针SPn系统堆栈在系统调用子程序或进入中断服系统堆栈在系统调用子程序或进入中断服务程序时,能够保护程序计数器务程序时,能够保护程序计数器PC.n然后将子程序的入口地址或者中断矢量地然后将子程序的入口地址或者中断矢量地址送程序计数器,执行子程序或中断服务址送程序计数器,执行子程序或中断服务程序。程序。n子程序或者中断服务程序执行完毕,遇到子程序或者中断服务程序执行完毕,遇到返回指令时,将堆栈的内容送到程序计数返回指令时,将堆栈的内容送到程序计数器中,程序流程又返回到原来的地方,继器中,程序流程又返回到原来的地方,继续执行续执行.n此外,堆栈可以在函数调用期间保存寄存此外,堆栈可以在函数
8、调用期间保存寄存器变量、局域变量和参数等。器变量、局域变量和参数等。 22n堆栈指针堆栈指针SP总是指向堆栈的顶部。系统在将数据总是指向堆栈的顶部。系统在将数据压入堆栈时,总是先将堆栈指针压入堆栈时,总是先将堆栈指针SP的值减的值减2,然,然后再将数据送到后再将数据送到SP所指的所指的RAM单元。将数据从单元。将数据从堆栈中弹出正好与压入过程相反;先将数据从堆栈中弹出正好与压入过程相反;先将数据从SP所指示的内存单元取出,再将所指示的内存单元取出,再将SP值加值加2。23n举例:举例:nMOV 2(SP), R6 ;将内存单元将内存单元I2中的数放到中的数放到R6中中nMOV R7, 0(SP
9、) ;将将R7中的数放到栈顶所在单元中的数放到栈顶所在单元(I3)中中nPUSH #0123h ;将将SP的值减的值减2,再将再将#0123h放到放到SP所指向的单元中。所指向的单元中。nPOP R8 ;将将SP所指向单元中的数所指向单元中的数(#0123h)放到放到R8中,再将中,再将SP的的值加值加2 24(3) 状态寄存器状态寄存器SR0C进位标志。当运算结果产生进位时置位,否则复位。1Z零标志。当运算结果为零时Z置位,否则Z复位。2N负标志。当运算结果为负时N置位,否则N复位。3GIE中断控制位。控制可屏蔽中断,当GIE置位CPU可响应可屏蔽中断,否则不响应可屏蔽中断。4CPUOff置
10、位CPUOff位可使CPU进入关闭模式,可用所有允许的中断将CPU唤醒。C-Carry bit ;Z-Zero bit;N-Negative bit;GIE-General Interrupt Enable255OscOff置位OscOff位可使晶体振荡器处于停止状态,同时CPUOff也需置位。可用外部中断或者NMI唤醒。6SCG0SCG0置位关闭SMCLK,与SCG1一起控制系统时钟发生器的4种状态。7SCG1SCG1置位关闭DCO发生器,与SCG0一起控制系统时钟发生器的4种状态。8V溢出标志。当运算结果超出有符号数范围时置位。溢出情况如下:正数 + 正数 = 负数负数 + 负数 = 正数
11、正数 - 负数 = 负数负数 - 正数 = 正数915保留未用。OscOff-Oscillator Off;SCG0-System Clock Generator;V-Overflow bit26(4) 常数发生器常数发生器CG1和和CG2寄存器As常数说明R200-寄存器模式R201(0)绝对寻址模式R21000004H+4位处理R21100008H+8位处理R30000000H0字处理R30100001H+1R31000002H+2位处理R3110FFFFH-1位处理27n举例:单操作数指令举例:单操作数指令nCLR dst ;将将dst单元清零单元清零n这不是内核指令,而是一条模拟指令,
12、汇编器将这不是内核指令,而是一条模拟指令,汇编器将As=00,R3=0,用,用nMOV R3,dst n来模拟。来模拟。28(5)通用工作寄存器)通用工作寄存器R4R15n举例:举例:nMOV #1234H,R15 ;执行后执行后R15内容为内容为1234HnMOV.B #23H,R15 ;执行后执行后R15内容为内容为0023HnADD.B #34H,R15 ;执行后执行后R15内容为内容为0057H293.4 MSP430单片机的存储器结构单片机的存储器结构 nMSP430系列的存储空间采用系列的存储空间采用“冯冯-诺依曼诺依曼”结构,结构,物理上完全分离的存储区域如物理上完全分离的存储区
13、域如ROM/FLASH、RAM、外围模块、特殊功能寄存器、外围模块、特殊功能寄存器SFR等,被安等,被安排在同一地址空间,这样就可以使用一组地址、排在同一地址空间,这样就可以使用一组地址、数据总线、相同的指令对它们进行字节或字形式数据总线、相同的指令对它们进行字节或字形式访问。访问。nMSP430系列单片机存储器的这种组织方式和系列单片机存储器的这种组织方式和CPU采用精简指令相互协调,对外围模块的访问采用精简指令相互协调,对外围模块的访问不需要单独的指令,为软件的开发和调试提供便不需要单独的指令,为软件的开发和调试提供便利。利。303.4.1 MSP430存储空间结构存储空间结构MSP430
14、不同系列器件的存储空间分布有很不同系列器件的存储空间分布有很多相同之处:多相同之处:n中断向量被安排在相同的空间:中断向量被安排在相同的空间:0FFE00FFFFH;n8位、位、16位外围模块占用相同范围的存储器地址;位外围模块占用相同范围的存储器地址;n所有器件的特殊功能寄存器占用相同范围的存储器地所有器件的特殊功能寄存器占用相同范围的存储器地址:址:00H0FH;n数据存储器开始于相同的地址,即从数据存储器开始于相同的地址,即从0200H处开始;处开始;n代码存储器的最高地址都是代码存储器的最高地址都是0FFFFH。31存储空间的分布也存在一些差异:存储空间的分布也存在一些差异:n不同型号
15、器件的代码存储器容量不一样;不同型号器件的代码存储器容量不一样;n代码存储器的起始地址不一样,每一种器件的代码存储器代码存储器的起始地址不一样,每一种器件的代码存储器的起始地址为的起始地址为 起始地址起始地址 = 10000H 该器件的代码容量该器件的代码容量n仅仅FLASH型有信息存储器,而且不同的器件地址也不一型有信息存储器,而且不同的器件地址也不一样,但容量都是样,但容量都是256Bn仅仅FLASH型有引导存储器,而且不同器件的地址也不一型有引导存储器,而且不同器件的地址也不一样,但容量都是样,但容量都是1KBn各器件数据存储器的末地址也不一样,其末地址为各器件数据存储器的末地址也不一样
16、,其末地址为 末地址末地址 = 该器件数据该器件数据RAM容量容量 + 0200Hn中断向量的具体内容因器件不同而不同;中断向量的具体内容因器件不同而不同;n所有器件的所有器件的8位、位、16位外围模块地址范围内的具体内容因位外围模块地址范围内的具体内容因器件不同而不同。器件不同而不同。323.4.1 数据存储器数据存储器RAMnMSP430的数据存储器位于存储器地址空间的的数据存储器位于存储器地址空间的0200H以上,这些存储器一般用做数据的保存与以上,这些存储器一般用做数据的保存与堆栈,同时也是数据运算的场所,特殊场合还可堆栈,同时也是数据运算的场所,特殊场合还可以用作程序存储器。以用作程
17、序存储器。n可以字操作也可以字节操作,通过指令后缀加以可以字操作也可以字节操作,通过指令后缀加以区别。区别。n字节操作可以是奇地址或者是偶地址,在字操作字节操作可以是奇地址或者是偶地址,在字操作时,每两个字节为一个操作单位,必须对准偶地时,每两个字节为一个操作单位,必须对准偶地址。址。33举例举例MOV.B #20H, &221H; 执行后执行后221H单元的内容为单元的内容为20HMOV.B #324H, &221H; 执行后执行后221H单元的内容为单元的内容为24HMOV.W #3234H, &222H; 执行后执行后222H单元的内容为单元的内容为34H,223
18、H单元的内容为单元的内容为32HMOV.W #324H, &221H; 执行后执行后221H单元的内容为单元的内容为03H,220H单元的内容为单元的内容为24HRAM空间还可以进行运算,如:空间还可以进行运算,如:MOV.B #33H, &220H; 执行后地址执行后地址220H的内容为的内容为33HADD.B #22H, &220H; 执行后地址执行后地址220H的内容为的内容为55H343.4.2 程序存储器程序存储器ROMn程序程序ROM区为区为0FFFFH以下一定数量存储空间,以下一定数量存储空间,可存放指令代码和数据表格。程序代码必须偶地可存放指令代码和数据
19、表格。程序代码必须偶地址寻址。址寻址。n程序代码可分为三种情况:中断向量区、用户程程序代码可分为三种情况:中断向量区、用户程序代码及系统引导程序序代码及系统引导程序(个别器件有,如个别器件有,如FLASH型型)。351 中断向量区中断向量区中断源中断标志系统中断地址优先级上电、外部复位、看门狗、FLASH存储器WDTIFG复位0FFFEH15 NMI、振荡器故障、FLASH访问出错NMIFG、OFIGF、ACCVIFG非屏蔽/可屏蔽0FFFCH14定时器BBCCIFG0可屏蔽0FFFAH13定时器BB C C I F G 1 6 ,TBIFG可屏蔽0FFF8H12比较器ACMPAIFG可屏蔽0
20、FFF6H11看门狗定时器WDTIFG可屏蔽0FFF4H10串口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可屏蔽0FFE2H1362 用户程序区用户程序区n用户程序区一般用来存放程序与常数或表格。用户程序区一般用来存放程序与常数或表格。MSP430的存储结构尤其允
21、许存放大的数表,并的存储结构尤其允许存放大的数表,并且可以用所有的字和字节指令访问这些表。这一且可以用所有的字和字节指令访问这些表。这一点为提高编程的灵活性和节省程序存储空间带来点为提高编程的灵活性和节省程序存储空间带来各种好处。各种好处。373.4.3 外围模块寄存器外围模块寄存器nMSP430系列单片机外围模块的寻址被安排在系列单片机外围模块的寻址被安排在0010H01FFH这一区域,都可以用软件访问和这一区域,都可以用软件访问和控制。控制。nMSP430可以可以象象访问普通访问普通RAM单元一样对这些寄单元一样对这些寄存器进行操作。这些寄存器也分为字节结构和字存器进行操作。这些寄存器也分
22、为字节结构和字结构。结构。n地址空间地址空间0100H01FFH安排字结构,地址空间安排字结构,地址空间0010H00FFH安排字节模块,地址空间安排字节模块,地址空间0000H000FH保存特殊功能寄存器。保存特殊功能寄存器。38MSP430F149 字模块的空间分配字模块的空间分配地址说明地址说明0H1FFH保留170H170H定时器A1E0H1EFH保留160H16FH定时器A1D0H1DFH保留150H15FHADC12转换0H1CFH保留140H14FHADC12转换1B0H1BFH保留130H13FH硬件乘法器0H1AFHADC12控制和中断120H12FH看门狗、FLASH控制1
23、90H19FH定时器B110H11FH保留180H18FH定时器B100H10FH保留39MSP430F149 字节模块的空间分配字节模块的空间分配地址说明地址说明0H1FFH保留70H70H串口1/串口00E0H1EFH保留60H6FH保留0D0H1DFH保留50H5FH比较器A,系统时钟0H1CFH保留40H4FH保留0B0H1BFH保留30H3FH端口6/端口50H1AFH保留20H2FH端口4/端口3090H19FH保留10H1FH端口1/端口2080H18FHADC12存储控制00H0FHSFR40MSP430F149 特殊功能寄存器特殊功能寄存器SFR的空间分配的空间分配地址说明地
24、址说明0FH无定义/未实现07H无定义/未实现0EH无定义/未实现06H无定义/未实现0DH无定义/未实现05H模块允许2:ME20CH无定义/未实现04H模块允许1:ME10BH无定义/未实现03H中断标志2:IFG20AH无定义/未实现02H中断标志1:IFG109H无定义/未实现01H中断允许2:IE208H无定义/未实现00H中断允许1:IE1413.5 MSP430时钟模块与低功耗结构时钟模块与低功耗结构n时钟模块对于单片机来说是至关重要的,它不仅给时钟模块对于单片机来说是至关重要的,它不仅给CPU提提供正确的时序,还给单片机的外围模块提供工作时序。因供正确的时序,还给单片机的外围模
25、块提供工作时序。因此,一个高效稳定的时钟模块是单片机系统能够正常工作此,一个高效稳定的时钟模块是单片机系统能够正常工作的基础。的基础。n在数字系统中,系统功耗与频率成正比,实际应用中常希在数字系统中,系统功耗与频率成正比,实际应用中常希望系统能够快速响应事件的同时又要尽量的降低系统能耗,望系统能够快速响应事件的同时又要尽量的降低系统能耗,这对于单片机来说是一个互相矛盾的要求。这对于单片机来说是一个互相矛盾的要求。nMSP430的系统时钟很好的满足了这个要求,它通过提的系统时钟很好的满足了这个要求,它通过提供几种不同的时钟信号,并为时钟设计多种不同的工作模供几种不同的时钟信号,并为时钟设计多种不
26、同的工作模式,使用户可以根据需要,灵活的为式,使用户可以根据需要,灵活的为CPU和外设选择合适和外设选择合适的时钟频率。的时钟频率。423.5.1 MSP430系列时钟模块系列时钟模块43它有它有3个时钟源输入端个时钟源输入端nLFXT1CLK 低频时钟源,接低频时钟晶体、也低频时钟源,接低频时钟晶体、也可接高频时钟晶体、陶瓷谐振器或直接外接时钟可接高频时钟晶体、陶瓷谐振器或直接外接时钟信号源。信号源。nXT2CLK 高频时钟源,接标准高频晶体、也高频时钟源,接标准高频晶体、也可接陶瓷谐振器或直接外接可接陶瓷谐振器或直接外接450kHz8MHz时钟时钟信号源。信号源。nDCOCLK 片内可以数
27、字控制的片内可以数字控制的RC振荡器。振荡器。44基础时钟模块可提供基础时钟模块可提供3种时钟信号:种时钟信号:nACLK 辅助时钟,是辅助时钟,是LFXT1CLK信号经信号经1,2,4,8分频分频后得到的。分频系数可由软件控制。后得到的。分频系数可由软件控制。ACLK可由软件选作可由软件选作各个外围模块的时钟信号,一般用于低速外设。各个外围模块的时钟信号,一般用于低速外设。nMCLK 系统主时钟,由软件选择来自系统主时钟,由软件选择来自LFXT1CLK、XT2CLK,DCOCLK三者之一,然后经三者之一,然后经1,2,4,8分频分频得到,分频系数可由软件控制。主要用于得到,分频系数可由软件控
28、制。主要用于CPU和系统。和系统。nSMCLK 子系统时钟,由软件选择来自子系统时钟,由软件选择来自LFXT1CLK、XT2CLK,DCOCLK三者之一,然后经三者之一,然后经1,2,4,8分频分频得到,分频系数可由软件控制。主要用于高速外围模块。得到,分频系数可由软件控制。主要用于高速外围模块。45n当发生有效的当发生有效的PUC后,后,MCLK和和SMCLK使用工作使用工作在在800KHz附近附近DCOCLK作为时钟源,作为时钟源,ACLK使使用工作在低速模式的用工作在低速模式的LFXT1CLK作为时钟源。作为时钟源。n状态寄存器状态寄存器(SR)控制位控制位SCG0、SCG1、OSCOF
29、F和和CPUOFF用来配置基础时钟模块的使用来配置基础时钟模块的使能。能。nDCOCTL、BCSCTL1和和BCSCTL2用来配置基础用来配置基础时钟模块。在程序运行的任何时间,都可以通过时钟模块。在程序运行的任何时间,都可以通过这些寄存器来配置基础时钟模块。这些寄存器来配置基础时钟模块。n(PUC-Power Up Clear重启)重启)n(POR-Power On Reset上电复位,更彻底复上电复位,更彻底复位)位)463.5.2 低速晶体振荡器低速晶体振荡器nMSP430系列的每种产品中都有低速晶体振荡器系列的每种产品中都有低速晶体振荡器(LTXT1),通常外接),通常外接32768H
30、z的时钟晶体,的时钟晶体,可以选择使用广泛使用的手表晶振,同时将所需可以选择使用广泛使用的手表晶振,同时将所需两个小电容也集成在内部。这样可降低系统成本。两个小电容也集成在内部。这样可降低系统成本。nLFXT1振荡器在发生有效的振荡器在发生有效的PUC后开始工作,一后开始工作,一次有效的次有效的PUC信号将信号将SR寄存器的寄存器的OscOff位复位,位复位,即允许即允许LFXT1工作。如果工作。如果LFXT1CLK信号没有用信号没有用作作SMCLK或或ACLK信号,则可以用软件将信号,则可以用软件将OscOff位置以禁止位置以禁止LFXT1工作:工作:nMOV #OscOff,SR47LFX
31、T1 的控制逻辑如下图所示:的控制逻辑如下图所示:48注意:注意:n低速时钟通常需要几百低速时钟通常需要几百ms的时间来启动。的时间来启动。n尽量避免外界信号对晶体的干扰,布线时晶体要尽量避免外界信号对晶体的干扰,布线时晶体要尽量靠近单片机。尽量靠近单片机。n当工作在低速模式时,如果当工作在低速模式时,如果VCC小于小于2.5V,为保,为保证正常工作,需要在证正常工作,需要在VSS和和XOUT之间加入之间加入5.1M欧姆电阻欧姆电阻nLFXT1振荡器也可以外接频率较高的高速晶体振振荡器也可以外接频率较高的高速晶体振荡器或陶瓷振荡器,以工作在高速模式;这时荡器或陶瓷振荡器,以工作在高速模式;这时
32、XTS位置位,同时两个引脚还要外接电容,电容位置位,同时两个引脚还要外接电容,电容大小根据晶体或振荡器的特性来选择。大小根据晶体或振荡器的特性来选择。493.5.3 高速晶体振荡器高速晶体振荡器n高速振荡器(高速振荡器(XT2)主要存在于)主要存在于F13X,F14X,F4XX等等器件,一般称之为第二振荡器器件,一般称之为第二振荡器XT2,它产生时钟信号,它产生时钟信号XT2CLK,它的工作特性与,它的工作特性与LFXT1振荡器工作在高频模式振荡器工作在高频模式时类似。时类似。n下页图是下页图是TX2振荡器的控制逻辑。如果振荡器的控制逻辑。如果XT2CLK信号没用信号没用做做MCLK、SMCL
33、K时钟信号,则可以用时钟信号,则可以用XT2Off控制位关控制位关闭闭XT2。n如果如果CPUOff=0,SELM=2,则,则XT2CLK用做用做MCLK时钟;时钟;如果如果SCG1=0且且SELS=1,XT2CLK用做用做SMCLK时钟。时钟。50513.5.4 DCO振荡器振荡器nMSP430系列的两个外部振荡器产生的时钟信号都可以系列的两个外部振荡器产生的时钟信号都可以经经1,2,4,8分频后用作系统主时钟分频后用作系统主时钟MCLK。上电复位。上电复位或振荡器失效时,或振荡器失效时,DCO振荡器会自动被选做振荡器会自动被选做MCLK的时钟的时钟源,频率在源,频率在800K左右。左右。n
34、DCO振荡器实质上是一个可数字控制的振荡器实质上是一个可数字控制的RC振荡器。因为振荡器。因为RC振荡器的频率会随着温度和工作电压的变化而变化,振荡器的频率会随着温度和工作电压的变化而变化,所以同一型号芯片产生的频率有所不同。所以同一型号芯片产生的频率有所不同。n但同时但同时DCO频率可通过频率可通过DCO、MOD、Rsel等控制位用软等控制位用软件调节,这又增加了振荡器频率的稳定性。件调节,这又增加了振荡器频率的稳定性。n当当DCO信号没有用作信号没有用作SMCLK和和MCLK时钟信号时,可以时钟信号时,可以用软件关闭直流发生器,直流发生器消耗的电流定义了用软件关闭直流发生器,直流发生器消耗
35、的电流定义了DCOCLK的基本频率。的基本频率。52DCO的控制逻辑如图所示。的控制逻辑如图所示。53MSP430 x1xx的的DCO控制原理图控制原理图54最终的最终的DCO输出频率输出频率DCOCLK由以下功能建立:由以下功能建立:n DCO基础频率由内部或外部电阻向基础频率由内部或外部电阻向DC发生器发生器注入的电流决定,由注入的电流决定,由DCOR控制位选择片内或片控制位选择片内或片外电阻。外电阻。n 基础频率由控制位基础频率由控制位Rsel2,Rsel1和和Rsel0分分频为频为8个标称频率范围,而这些频率范围因不同个标称频率范围,而这些频率范围因不同型号而异。型号而异。n 控制位控
36、制位DCO0,DCO1和和DCO2可分段调节可分段调节DCOCLK频率。频率。n 由由5个调整位个调整位MOD0MOD4控制切换控制切换DCO和和DCO+1选择的两种频率。选择的两种频率。55n由由DCO控制位选择的控制位选择的DCOCLK频率大约可以在时频率大约可以在时钟周期的钟周期的10%范围内调整。在范围内调整。在MSP430 x1xx系系列中列中DCO的控制由的控制由3个寄存器完成:个寄存器完成:DCOCTL、BCSCTL1、BCSCTL2。n(Basic Clock System Control Register )56(1) DCOCTLn地址为地址为056H,PUC后的值为后的值
37、为060HnMOD.0 MOD.4 定义了在定义了在32个个DCO周期中插周期中插入的入的f(DCO+1)周期,而在余下的周期,而在余下的DCO周期中为周期中为f(DCO)周期。如果周期。如果DCO常数为常数为7,由于已经选择,由于已经选择了最高频率将不进行调整。了最高频率将不进行调整。nDCO.0 DCO.2 定义了定义了8种频率之一,而频率种频率之一,而频率由注入直流发生器的电流定义。由注入直流发生器的电流定义。57(2)BCSTCL1 n地址为地址为057H,PUC后的值为后的值为084H58Rsel.0 Rsel.2 三位选择某个内部电阻以决定标称频率。三位选择某个内部电阻以决定标称频
38、率。 Rsel=0,选择最低的标称频率;,选择最低的标称频率; Rsel=7,选择最高的标称频率。,选择最高的标称频率。XT5V 此位必须为此位必须为0。DIVA.0 DIVA.1 选择选择ACLK的分频系数。的分频系数。 DIVA=0,ACLK的分频系数为的分频系数为1; DIVA=1,ACLK的分频系数为的分频系数为2; DIVA=2,ACLK的分频系数为的分频系数为4; DIVA=3,ACLK的分频系数为的分频系数为8。XTS 选择选择LFXT1工作在低频晶振模式还是高频晶振模式,选择须同实际晶体。工作在低频晶振模式还是高频晶振模式,选择须同实际晶体。 XTS=0,LFXT1工作在低频模
39、式;工作在低频模式; XTS=1,LFXT1工作在高频模式。工作在高频模式。XT2OFF 控制控制XT2振荡器的开启与关闭。振荡器的开启与关闭。 XT2OFF=0,XT2振荡器开启;振荡器开启; XT2OFF=1,XT2振荡器关闭。振荡器关闭。5960(3)BCSTCL2 地址为地址为058H,PUC后值为后值为00HDCOR 选择内部还是外部电阻。选择内部还是外部电阻。DCOR=0,选择,选择内部电阻;内部电阻;DCOR=1,选择外部电阻。,选择外部电阻。DIVS.0 DIVS.1 选择选择SMCLK的分频因子。的分频因子。DIVS=0,分频因子为1;DIVS=1,分频因子为2;DIVS=2
40、,分频因子为4;DIVS=3,分频因子为8。61SELS 选择选择SMCLK的时钟源。的时钟源。SELS=0,SMCLK的时钟源为DCOCLK;SELS=1,SMCLK的时钟源为LFXT1CLK(对于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
41、,MCLK的时钟源为DCOCLK;SELM=2,MCLK的时钟源为LFXT1CLK(对于MSP430F11XX), MCLK的时钟源为XT2CLK(对MSP430F13X/14X);SELM=3,MCLK的时钟源为LFXT1CLK。62PUC信号之后,信号之后,DCOCLK被自动选做被自动选做MCLK时钟信时钟信号,根据需要,号,根据需要,MCLK的时钟源可以另外设置为的时钟源可以另外设置为LFXT1或者或者XT2.设置顺序如下:设置顺序如下:1.复位OscOff;2.清除OFIFG;3.延时等待至少50us;4.再次检查OFIFG,如果仍然置位,则重复3,4步骤,直到OFIFG=0为止。63
42、举例:举例:;Select LFXT1 (HF mode) for MCLK BIC #OscOff,SR BIS.B #XTS,BCSSTL1L1 BIC.B #OFIFG,&IFG1 MOV #0FFH,R15L2 DEC R15 JNZ L2 BIT.B #OFIFG,&IFG JNZ L1 BIS.B #SELM1+SELM0,&BCSCTL264MSP430 x14x与时钟模块有关的几个引脚与时钟模块有关的几个引脚引脚名称引脚序号第二功能P1.4/SMCLK12SMCLK信号输出P2.0/ACLK20ACLK信号输出P5.4/MCLK48MCLK信号输出P5.
43、5/SMCLK49SMCLK信号输出P5.6/ACLK50ACLK信号输出XIN8晶体振荡器XT1的输入口XOUT/TCLK9晶体振荡器XT1的输出口或测试时钟输入口XT2IN53晶体振荡器XT2的输入口XT2OUT52晶体振荡器XT2的输出口P2.5/Rosc25外界一电阻以确定DCO的工作频率653.5.5 振荡器失效检测振荡器失效检测nMSP430单片机由模拟电路监视单片机由模拟电路监视LFXT1CLK(工工作于高频模式作于高频模式)和和XT2CLK。当其失效大约。当其失效大约50s时被认定为振荡器失效。当振荡器失效信号被检时被认定为振荡器失效。当振荡器失效信号被检测到,如果测到,如果M
44、CLK源为高速模式下的源为高速模式下的LFXT1或或XT2,则,则MCLK源自动切换到源自动切换到DCO。由于。由于DCO被被选为选为MCLK,所以代码会继续执行。,所以代码会继续执行。n振荡器失效会设置振荡器失效标志位振荡器失效会设置振荡器失效标志位OFIFG,如,如果此时振荡器失效中断允许位(果此时振荡器失效中断允许位(OFIE)置位,则)置位,则产生非屏蔽中断请求。产生非屏蔽中断请求。OFIFG必须由用户软件清必须由用户软件清除。除。6667nXT2振荡器的失效信号和振荡器的失效信号和LFXT1振荡器的失效信号都能引振荡器的失效信号都能引起起OFIFG中断标志。对于只有中断标志。对于只有
45、2个振荡器的芯片个振荡器的芯片(MSP430 x11x、MSP430 x11x1),振荡器失效标志),振荡器失效标志OFIFG可以在可以在LFXT1的失效信号为的失效信号为“0”时用软件复位。对时用软件复位。对于有于有3个振荡器的芯片(个振荡器的芯片(MSP430 x13x、MSP430 x14x),振荡器失效标志),振荡器失效标志OFIFG必须在必须在LFXT1和和XT2的失效信号都为的失效信号都为“0”时才能被软件复位。时才能被软件复位。n当系统上电、,当系统上电、,LFXT1在高速模式时失效或在高速模式时失效或XT2失效时,失效时,振荡器失效信号振荡器失效信号XT_OscFault有效,
46、有效,OFIFG被置位。当被置位。当XT2或高速模式的或高速模式的LFXT1被软件停止,被软件停止,XT_OscFault立立即有效,并一直保持到振荡器重起之后约即有效,并一直保持到振荡器重起之后约50s。68n如果如果MCLK信号来自高速模式的信号来自高速模式的LFXT1或或XT2,则当则当XT振荡器失效时振荡器失效时DCO振荡器会自动被选作振荡器会自动被选作MCLK的的源。由于源。由于DCO振荡器被选作振荡器被选作MCLK,XT振荡器失效而引振荡器失效而引起的起的NMI中断请求也可以得到响应。这个中断请求也可以得到响应。这个NMI中断的请中断的请求甚至在求甚至在CPU被关闭的情况下也能被处
47、理。被关闭的情况下也能被处理。6970选DCO为MCLKSELM.1=0NMI中断处理,由硬件复位:OFIE,NMIE,ACCIEOFIFG=1ACCIFG=1NMIIFG=1复位ACCVIFG复位NMIIFG用户软件振荡器失效处理用户软件FLASH访问出错处理用户软件外部NMI处理OFIFG=0OFIFG=1重新选择失效的XT振荡器RETINONONOYesYesYesn灯闪烁灯闪烁n#include nvoid main(void)nn WDTCTL = WDTPW + WDTHOLD; / Stop watchdog timern P3DIR |= BIT2; / Set P3.2 to
48、 output directionn for (;)n n volatile unsigned int i;n P3OUT = BIT2; / Toggle P3.2 using exclusive-ORn i = 50000; / Delayn do (i-);n while (i != 0);n n3.5.6 基础时钟模块应用举例基础时钟模块应用举例例例1 设设MCLK=XT2,SMCLK=DCOCLK,将,将MCLK由由5.4输出程序如下:输出程序如下:#include void main(void) unsigned int i; WDTCTL = WDTPW + WDTHOLD; /
49、停止看门狗停止看门狗 P5DIR |= 0X10; /设置设置P5.4为输出为输出 P5SEL |= 0X10; /设置设置P5.4为为MCLK输出输出 BCSCTL1 &= XT2OFF; /设置设置XT2为有效为有效 do IFG1 &= OFIFG; /清除振荡器失效标志清除振荡器失效标志 for(i = 0 xFF;i0;i-); /稳定时间稳定时间 while(IFG1 & OFIFG) != 0); /如果振荡器失效标志存在则继续循环。如果振荡器失效标志存在则继续循环。 BCSCTL2 |= SELM1; /设置设置MCLK = XT2 for(;);72例
50、例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 &= XTS; /设置设置LFXT1为低速模式为低速模式 do IFG1 &= OFIFG; /清除振荡器失效标志清除振荡器失效标志 for(i = 0 xFF;i0;i-); /
51、稳定时间稳定时间 while(IFG1 & OFIFG) != 0); /如果振荡器失效标志存在则继续循环如果振荡器失效标志存在则继续循环 BCSCTL2 |= SELM1+SELM0; /设置设置MCLK=LFXT1 for(;);733.5.7 低功耗结构低功耗结构74nMSP430系列单片机是通过系列单片机是通过CPU中状态寄存器中状态寄存器SR中的中的SCG1、SCG2、OscOff和和CPUOff四个四个位来实现工作模式控制的。各控制位作用如下:位来实现工作模式控制的。各控制位作用如下:75159876543210保留SCG1SCG0OscOffCPUOffnSCG1:当:当
52、SCG1复位时,使能复位时,使能SMCLK;SCG1置位则禁置位则禁止止SMCLK。nSCG0:当:当SCG0复位时,直流发生器被激活,只有在复位时,直流发生器被激活,只有在SCG0置位且置位且DCOCLK信号没有用于信号没有用于MCLK或或SMCLK,直,直流发生器才能被禁止。流发生器才能被禁止。nOscOff:当:当OscOff复位时,复位时,LFXT晶体振荡器激活,只晶体振荡器激活,只有当有当OscOff被置位且不用于被置位且不用于MCLK或或SMCLK时,时,LFXT晶晶体振荡器才能被禁止,当使用振荡器关闭选项体振荡器才能被禁止,当使用振荡器关闭选项OscOff时,时,需要考虑晶体振荡
53、器的启动设置时间。需要考虑晶体振荡器的启动设置时间。nCPUOff:当:当CPUOff复位,用于复位,用于CPU的时钟信号的时钟信号MCLK被被激活,当激活,当CPU置位时,置位时,MCLK停止。停止。76n只要任意中断被响应,上述控制位就被压入堆栈只要任意中断被响应,上述控制位就被压入堆栈保存,中断处理之后,又可以恢复以前的工作方保存,中断处理之后,又可以恢复以前的工作方式。在中断处理子程序执行期间,通过间接访问式。在中断处理子程序执行期间,通过间接访问堆栈数据,可以操作这些位,这样在中断返回后,堆栈数据,可以操作这些位,这样在中断返回后,MSP430单片机会以另外一种功耗方式继续运行。单片
54、机会以另外一种功耗方式继续运行。7778n下表是各种低功耗工作模式的控制位一览表。下表是各种低功耗工作模式的控制位一览表。工作模式工作模式SCG1SCG1SCG0SCG0OSCOffOSCOffCPUOffCPUOffLPM00001LPM10101LPM21001LPM31101LPM41111nMSP430系列单片机各个模块运行是完全系列单片机各个模块运行是完全独立的,定时器、输入独立的,定时器、输入输出端口、输出端口、A/D转转换、看门狗、液晶显示器等都可以在主换、看门狗、液晶显示器等都可以在主CPU休眠的状态下独立运行。休眠的状态下独立运行。n当需要主当需要主CPU工作时,任何一个模块
55、都可工作时,任何一个模块都可以通过中断唤醒以通过中断唤醒CPU,从而使系统已最低,从而使系统已最低功耗运行。功耗运行。n为了充分利用为了充分利用CPU低功耗性能,可以让低功耗性能,可以让CPU工作于突发状态。工作于突发状态。n在通常情况下,根据需要使用软件将在通常情况下,根据需要使用软件将CPU设定到某一低功耗工作模式下,在需要时设定到某一低功耗工作模式下,在需要时使用中断将使用中断将CPU从休眠状态中唤醒,完成从休眠状态中唤醒,完成工作之后又可以进入相应的休眠状态。工作之后又可以进入相应的休眠状态。 n#include nvoid main(void)nn BCSCTL1 |= DIVA_2
56、; / ACLK/4n WDTCTL = WDT_ADLY_1000; / 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-);
57、 / Delayn P3OUT &= BIT1; / Clear P3.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的时间,用的时间,用32KHz晶振作为晶振作为ACLK时钟,时钟,DCO用于用于CPU激活后的突发短暂
58、运行。激活后的突发短暂运行。n用接口模块代替软件驱动功能。用接口模块代替软件驱动功能。n用中断控制程序运行。用中断控制程序运行。n用可计算的分支代替标志位测试产生的分支。用可计算的分支代替标志位测试产生的分支。n用快速查表代替软件的软件计算。用快速查表代替软件的软件计算。n在冗长的软件计算中使用单周期的在冗长的软件计算中使用单周期的CPU寄存器。寄存器。n避免频繁的子程序和函数调用。避免频繁的子程序和函数调用。n尽可能直接用电池供电尽可能直接用电池供电 n不论对于内核还是对于外围模块,选择尽可能低不论对于内核还是对于外围模块,选择尽可能低的运行频率,如果不影响功能应设计自动关机。的运行频率,如
59、果不影响功能应设计自动关机。3.6系统复位和初始化系统复位和初始化85POR来自于硬件复位,只有以下两种情况才能产生来自于硬件复位,只有以下两种情况才能产生POR信信号号(1)芯片上电;)芯片上电;(2)RST/NMI设置成复位模式,在设置成复位模式,在RST/NMI引脚上出现引脚上出现低电平信号。低电平信号。POR信号的产生总会产生信号的产生总会产生PUC信号,但信号,但PUC信号的发生不信号的发生不一定会产生一定会产生POR信号。信号。PUC信号是上电清除信号,产生信号是上电清除信号,产生它的事件为:它的事件为:(1) 发生发生POR信号;信号;(2) 处于看门狗模式下,看门狗定时时间到;
60、处于看门狗模式下,看门狗定时时间到;(3) 看门狗定时器写入错误的安全键值;看门狗定时器写入错误的安全键值;(4) FLASH存储器写入错误的安全键值。存储器写入错误的安全键值。863.6.1系统上电复位系统上电复位n当当Vcc上电比较慢的时候,上电比较慢的时候,POR检测器保持检测器保持POR信号信号为高电平直到为高电平直到Vcc已经上升到大于已经上升到大于启动启动门限门限 ,如图所,如图所示。当示。当Vcc快速上升时,快速上升时,POR信号产生一个延迟信号产生一个延迟 再产再产生生POR信号以便让信号以便让MSP430正确初始化。正确初始化。873.6.2 系统复位后器件的初始状态系统复位后器件的初始状态(1) 引脚被配置成复位模式;引脚被配置成复位模式;(2) I/O引脚被引脚被切切换成输入模式;换成输入模式;(3) 其他的模块
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 九色鹿公开课教学课件教学课件教学
- 风车的作用课件
- 胰腺癌治疗进展
- 《科技信息检索,》课件
- 《抗代谢药》课件
- 23幼保2班期中考复习测试卷附答案
- 《小讲课糖尿病》课件
- 《殡葬用品设计》课件-可持续发展原则
- 《新型输电技术》课件
- 投入产出分析
- 《胶轮车操作工》(司机、检修)理论知识考试及答案
- 森林康养基地建设项目可行性研究报告
- 机械行业质量奖惩制度
- 中国航空学会-2024低空经济场景白皮书
- 23J916-1 住宅排气道(一)
- 古典诗词鉴赏学习通超星期末考试答案章节答案2024年
- 2024年新人教PEP版三年级上册英语课件 Unit 4 Reading time
- 2022年黑龙江哈尔滨中考满分作文《这也是收获》2
- 第四次全国文物普查工作推进情况汇报3篇
- 《江城子·乙卯正月二十日夜记梦》课件 -2024-2025学年统编版高中语文选择性必修上册
- 新员工岗前安全培训考试题含完整答案【各地真题】
评论
0/150
提交评论