MSP430学习笔记-低功耗与中断系统
2022-03-29 来源:eefocus
年前忙于项目都有段时间没更新博客了,趁年后有点时间更新了一篇,在这篇学习笔记里我们来探讨一下MSP430系列单片机的低功耗模式与中断系统,从下一篇开始,将会开始更新MSP430外设部分的学习笔记。
一、低功耗模式
MSP430系列单片机的一大特色便是其优秀的低功耗运行能力,据说德州仪器曾经演示过使用水果电池来作为MSP430的电源驱动MSP430正常工作,足以见得其功耗之低。
1、低功耗设计的三个基本原则
在介绍低功耗模式的配置之前,先明确低功耗设计的三个基本原则,即:1、工作频率与功耗成正比;2、工作电压与功耗成正比;3、工作模块数与功耗成正比。通过这三个原则我们可以得出以下结论:为了尽量降低单片的功耗,应在满足设计需求以及保证单片机稳定工作的前提下,尽量降低单片机的工作频率与工作电压,关闭不需要的单片机模块的,在单片机不工作时可以使单片机进入低功耗模式,有需要时再通过中断唤醒的方式唤醒单片机。
2、低功耗相关寄存器——状态寄存器(SR)
MSP430的状态寄存器中的第7、6、5、4位为低功耗模式的相关控制位,MSP430系列单片机提供了多种低功耗模式可供用户配置,以满足不同的低功耗需求,如下为状态寄存器的各功能位说明。
MSP430的状态寄存器(SR)
第7位为SCG1位,置1可以关闭DCO内部时钟;第6位为SCG0位,置1可以关闭SMCLK时钟;第5位为OSCOFF位,置1可以关闭外部时钟源输入;第4位为CPUOFF位,置1关闭CPU。
3、低功耗模式分级
MSP430的低功耗模式分为LPM0到LPM4共5个等级,其中越往后电流消耗越小,但是同时可以唤醒单片机的手段也就越少,这5个低功耗模式与SR寄存器中低功耗相关控制位之间的关系如下表所示。
二、中断系统
MSP430系列单片机拥有一个简单(相对STM32系列单片机来说)但是够用的中断系统,整个中断系统的中断分为三类:可屏蔽中断、不可屏蔽中断以及复位中断。其中可屏蔽中断除了受自身的中断使能位控制外,还受SR寄存器中的GIE位控制,而不可屏蔽中断只受自身的中断控制位控制,复位中断比较特殊,放于单独一段说明。
中断分为多源中断及单源中断,其中单源中断即一个中断源独享一个中断向量地址(可以简单理解为一个中断源对应一个中断函数),单源中断的中断标志位会在触发中断后硬件自动清零。多源中断即多个中断源共享一个中断地址 (可以简单理解为多个中断源对应一个中断函数,需要在函数内判断中断标志位确认是哪个中断源引起的中断从而执行对应代码),多源中断的中断标志位不会自动清零,需要软件中手动清零,否则会不停触发中断。
需要注意的是,MSP430系列单片机的中断系统默认不允许中断嵌套,若要进行中断嵌套,需要在中断服务函数中将SR寄存器中的GIE位置为1,此时任何在中断服务函数执行期间发生的中断都会打断当前中断服务函数的执行,而不用考虑中断优先级问题。中断服务函数执行过程中对SR寄存器的修改会在函数执行完成退出时被还原成函数进入前的状态。尤其需要注意!如果使能了某个中断,就一定要在程序中留有对应的中断服务函数(空函数都可以,主要用于使中断向量可以指向这个函数),否则可能导致中断触发时程序跑飞。
最后来谈谈比较特殊的复位中断。复位中断由复位信号触发, 复位信号又分为上电复位信号(POR)与上电清除信号(PUC),两者之间的关系如下图所示。
由上图可知,POR信号主要由芯片上电、外部复位脚复位以及SVS寄存器的POR位置1时检测到的低电压状态产生,PUC信号主要由POR信号、看门狗复位、WDT配置寄存器写入错误安全密钥、访问FLASH写入了错误安全密钥以及CPU非法访问外设地址(0H – 01FFH)这几个事件产生。
最后附上MSP430系列单片机的中断向量表。
MSP430系列单片机中断向量表
下一篇:MSP430学习笔记-时钟篇