MSP430单片机是TI公司1996年开始推向市场的超低功耗微处理器,另外他还集成了很多模块功能,从而使得用一片MSP430 芯片可以完成多片芯片才能完成的功能,大大缩小了产品的体积与成本。如今,MSP430单片机已经用于各个领域,尤其是仪器仪表、监测、医疗器械以及汽车电子等领域。
下面来说一下它的主要特点:(1)低电源电压范围,1.8~3.6V。(2)超低功耗,拥有5种低功耗模式(以后会详细介绍)。(3)灵活的时钟使用模式。(4)高速的运算能力,16位RISC架构,125ns指令周期。(5)丰富的功能模块,这些功能模块包括:A:多通道10-14位AD转换器;B:双路12位DA转换器;C:比较器;D:液晶驱动器;E:电源电压检测;F:串行口USART(UART/SPI);G:硬件乘法器;H:看门狗定时器,多个16位、8位定时器(可进行捕获,比较,PWM输出);I:DMA控制器。(6)FLASH存储器,不需要额外的高电压就在运行种由程序控制写擦欧哦和段的擦除;(7)MSP430芯片上包括JTAG接口,仿真调试通过一个简单的JTAG接口转换器就可以方便的实现如设置断点、单步执行、读写寄存器等调试;(8)快速灵活的变成方式,可通过JTAG和BSL两种方式向CPU内装在程序。
在这里我主要说说MSP430单片机的复位吧。
MSP430的复位信号有2种:上电复位信号(POR)、上电清除信号(PUC)。还有能够触发POR和PUC的信号:5种来在看门狗,1种来自复位管脚,1种来自写FLASH键值出现错误所产生的信号。
POR信号只在2种情况下发生:(1)微处理上电;(2)RST/NMI管脚上产生低电平时系统复位。
PUC信号产生的条件:(1)POR信号产生;(2)看门狗有效时,看门狗定时器溢出;(3)写看门狗定时器安全键值出现错误;(4)写FLASH存储器安全键值出现错误。
POR和PUC两者的关系:POR信号的产生会导致系统复位并产生PUC信号。而PUC信号不会引起POR信号的产生。
无论是POR信号还是PUC信号触发的复位,都会使MSP430从地址0xFFFE处读取复位中断向量,程序从中断向量所指的地址处开始执行。触发PUC信号的条件中,除了POR产生触发PUC信号外,其他的豆科一通过读取相应的中断向量来判断是何种原因引起的PUC信号,以便作出相应的处理。
系统复位(指POR)后的状态为:(1)RST/NMI管脚功能被设置为复位功能;(2)所有I/O管脚被设置为输入;(3)外围模块被初始化,其寄存器值为相关手册上的默认值;(4)状态寄存器SR复位;(5)看门狗激活,进入工作模式;(6)程序计数器PC载入0xFFFE处的地址,微处理器从此地址开始执行程序。
典型的复位电路有一下3种:(1) 在RST/NMI管脚上接100K欧的上拉电阻。(2)在(1)的基础上再接0.1uf的电容,电容的一端接地,可以使复位更加可靠。(3)再(2)的基础上,再在电阻上并接一个型号为IN4008的二极管,可以可靠的实现系统断电后立即上电。
MSP430单片机的时钟系统
MSP430根据型号的不同最多可以选择使用3个振荡器。我们可以根据需要选择合适的振荡频率,并可以在不需要时随时关闭振荡器,以节省功耗。这3个振荡器分别为:
(1)DCO 数控RC振荡器。它在芯片内部,不用时可以关闭。DCO的振荡频率会受周围环境温度和MSP430工作电压的影响,且同一型号的芯片所产生的频率也不相同。但DCO的调节功能可以改善它的性能,他的调节分为以下3步:a:选择BCSCTL1.RSELx确定时钟的标称频率;b:选择DCOCTL.DCOx在标称频率基础上分段粗调;c:选择DCOCTL.MODx的值进行细调。
(2)LFXT1 接低频振荡器。典型为接32768HZ的时钟振荡器,此时振荡器不需要接负载电容。也可以接450KHZ~8MHZ的标准晶体振荡器,此时需要接负载电容。
(3)XT2 接450KHZ~8MHZ的标准晶体振荡器。此时需要接负载电容,不用时可以关闭。
低频振荡器主要用来降低能量消耗,如使用电池供电的系统,高频振荡器用来对事件做出快速反应或者供CPU进行大量运算。
MSP430的3种时钟信号:MCLK系统主时钟;SMCLK系统子时钟;ACLK辅助时钟。
(1)MCLK系统主时钟。除了CPU运算使用此时钟以外,外围模块也可以使用。MCLK可以选择任何一个振荡器所产生的时钟信号并进行1、2、4、8分频作为其信号源。
(2)SMCLK系统子时钟。供外围模块使用。并在使用前可以通过各模块的寄存器实现分频。SMCLK可以选择任何一个振荡器所产生的时钟信号并进行1、2、4、8分频作为其信号源。
(3)ACLK辅助时钟。供外围模块使用。并在使用前可以通过各模块的寄存器实现分频。但ACLK只能由LFXT1进行1、2、4、8分频作为信号源。
PUC复位后,MCLK和SMCLK的信号源为DCO,DCO的振荡频率为800KHZ。ACLK的信号源为LFXT1。
MSP430内部含有晶体振荡器失效监测电路,监测LFXT1(工作在高频模式)和XT2输出的时钟信号。当时钟信号丢失50us时,监测电路捕捉到振荡器失效。如果MCLK信号来自LFXT1或者XT2,那么MSP430自动把MCLK的信号切换为DCO,这样可以保证程序继续运行。但MSP430不对工作在低频模式的LFXT1进行监测。
5种低功耗模式
5种低功耗模式分别为LPM0~LPM4(LOW POWER MODE),CPU的活动状态称为AM(ACTVE MODE)模式。其中AM耗电最大,LPM4耗电最省,仅为0.1uA。另外工作电压对功耗的影响:电压越低功耗也越低。
系统PUC复位后,MSP430进入AM状态。在AM状态,程序可以选择进入任何一种低功耗模式,然后在适当的条件下,由外围模块的中断使CPU退出低功耗模式,返回AM模式,再由AM模式选择进入相应的低功耗模式,如此类推。
工作模式的选择由状态寄存器SR中的SCG1、SCG0、OSCOFF、CPUOFF位控制。由于在CPU的头文件中对CPU内的各寄存器和模块的各种工作模式都作了详尽的定义,所以编程时尽可能的利用就是了。如:要进入低功耗模式0,可在程序中直接写:LPM0; 。进入低功耗模式4,可以写:LMP4;就可以了。退出低功耗模式如下:
LPM0_EXIT; //退出低功耗模式0
LPM4_EXIT; //退出低功耗模式4