美国德州仪器(TI)公司推出的MSP430系列单片机能实现极低的处理器功耗,特别适合于电池供电的应用。本文以MSP430G2553单片机为例,对其实现超低功耗的设计进行较为细致地探讨。
1 MSP430G2553单片机概述
MSP430系列单片机具有超低功耗特性,同时还拥有强大的数据处理和运算能力,高性能的模拟技术及丰富的片上模块以及方便高效的开发调试环境。MSP430G2553单片机是一种混合信号微控制器,具有16位精简指令集(RISC)架构和62.5 ns指令周期时间,可在不到1μs的时间里从待机模式超快速地唤醒,支持JTAG仿真调试。超低功耗方面:1.8~3.6 V的低电源电压;在1 MHz频率和2.2 V电压条件下,有230μA /运行模式,0.5μA/待机模式,0.1μA/关闭模式(RAM保持);口线输入漏电流小于50 nA。
MSP430系列开发工具方便先进,本文基于MSP430G2553型号单片机进行超低功耗研究,相关实验采用MSP430 LaunchPad开发板,其单片机采用20引脚PDIP封装,编译工具使用Code Composer Studio v5.1.1,软件编程采用C语言。
2 MSP430G2553单片机超低功耗设计原则
MSP430系列单片机是超低功耗单片机的代表,它有灵活的时钟系统、多种深度的低功耗模式、高度自动化的智能外设,其充分利用MSP 430G2553的特性和内部模块,实现理想的低功耗特性。
图1为典型的低功耗系统CPU工作方式,系统的大部分时间处于空闲状态,有事件发生或定时才会处理一些工作任务,整个系统的功耗就等于平均值曲线下方的面积。降低系统功耗即空闲时选择低功耗模式,运行时使工作消耗最小。[page]
2.1 空闲状态
很多低功耗系统空闲状态下消耗的能量占全部的80%以上,所以空闲状态下尽量选择深度的休眠模式。MSP430系列单片机提供了多种工作模式,如表1所列,可以对系统时钟、辅助时钟作灵活的开关控制。
一般地,采用最大化LPM3时间的方式来尽量降低功耗。MSP430系列单片机可快速方便地切换工作模式,通过中断可以在6μs内从低功耗模式中唤醒CPU以控制程序流程,由于CPU的运算处理速度快、退出低功耗时间短,可保证CPU大部分时间处于空闲状态,降低单片机系统的功耗。
2.2 运行状态
运行状态下CMOS数字系统功耗可由公式(1)计算得出:
其中:P动是运行状态下CMOS数字系统功率,C是CMOS的负载电容,f是系统的时钟频率,Vcc是电源电压。
可见,电源电压对系统的功耗影响最大,然后是时钟频率,再就是负载电容。对使用者来说,负载电容一般是不可控的,那么要设计一个低功耗的单片机系统,主要有两个原则:尽可能降低电源电压;尽可能降低时钟频率。其他方法基本都是围绕这两个原则实现。电源电压与时钟频率如图2所示。
2.2.1 电源电压
相同主频下电源电压越高,功耗越高,需要设计合理的供电系统,以及灵活的调整单片机内核电压来降低功耗。AM下Vcc与Icc典型值如表2所列。活动模式(AM)下,MSP430G2553单片机电源电流(Icc)随电源电压(Vcc)变化而变化。
2.2.2 时钟频率
MSP430G2553的时钟系统为电池供电而特别设计。MSP430G2553单片机有不同的时钟源,产生3种可调的时钟频率:低频辅助时钟(ACLK)高频主系统时钟(MCLK)和高频子系统时钟(SMCLK)。根据各个外围模块的实际需要、处理器速度的最高要求以及时钟精度来权衡3个时钟的频率。对于一些低频工作的外设可采用ACLK作为时钟或信号源,而非统一使用MCLK,从而降低功耗;不论对于CPU还是外部设备,应尽量降低运行频率,不影响功能时可设计自动关机。
2.2.3 I/O端口
对普通的I/O口,需要配置成输出模式来避免外部浮动电压的影响。CMOS输入端不能有悬空的引脚,应将所有输入端接适当的电平。
[page]
2.2.4 外部设备对片上外部设备配置合适的工作模式,对系统中外部设备做合适的功耗管理,以减少功率消耗及降低CPU使用率。在具体的应用中,建议禁止所有不用的外设模块,可使用带使能引脚的ADC转换器、带使能引脚的运放等。
2.2.5 智能外设
充分使用MSP430G2553的智能外设,使其可以独立于CPU进行工作,使系统更长时间处于低功耗模式。比如ADC10能够实现多通道的自动轮询采样,并能够实现对ADC转换结果的自动搬移,通过合理配置寄存器,可以将CPU的负荷降到最低,从而达到降低功耗的目的。
2.2.6 其他
DMA与其他外设的联动、定时器自动触发ADC等功能可以实现片上不同模块之间的智能化操作,并将系统功耗降低。
2.3 软件编程
软件设计的简洁程度与CPU完成任务所需时间直接相关。MSP430G2553有统一的寻址空间,完全正交的指令系统和充足的通用寄存器,可以保证C语言编译的高效率。但同时在系统设计上,需要软件工程师进行最简洁的代码设计,有以下几点:
①尽量使用局部变量,局部变量通常会被分配到通用寄存器,有很高的指令效率;
②尽量使用无符号数;
③用指针对结构体和联合体寻址;
④在使用fox循环时对counter作数据递减;
⑤尽量采用快速查表而不是算法计算,尽量采用计算分支,而不是测试标志位等。
结语
通过选用MSP430G2553单片机并合理配置,可以达到系统的最佳功耗设计。MSP430G2553单片机在便携式仪器、智能传感器、测控设备等领域有良好的应用前景,符合“绿色环保可持续发展”的时代主题。
上一篇:DIY一个MSP430F149最小系统的设计
下一篇:使用两个I/O引脚将4×3矩阵键盘连接至微控制器
推荐阅读最新更新时间:2024-03-16 13:26