基于Atmega48单片机的低功耗系统设计

分享到:

随着微电子技术和计算机技术的发展,尤其是微机在各个领域的普遍应用,功耗、成本、体积以及可靠性等指标均成为设计者所关注的重要问题。尤其是在由电池供电的设备中,如何降低设备功耗成为设计的首要任务。本文中以ATMEL公司的Atmega48单片机为例,介绍了单片机低功耗设计的一般方法。

Atmega48单片机

低功耗系统设计首要是选择合适的单片机。Atmega48单片机是一款 8位微控制器,具有高性能、低功耗的显著特点。由于采用RISC精简指令集结构,其指令集大多为单周期指令,具有高速运行的特点。3V供电时,未使能内部看门狗的情况下,Atmega48的典型掉电电流小于1uA。具体工作电流见图1。而且该单片机在1.8V~5.5V的电压范围内均能正常工作,片内自带 4K字节的flash、256字节的E2PROM,以及512字节SRAM;并内置6~8路10位AD转换器、看门狗、3个16位的定时/计数器、具有独立振荡器的实时计数器RTC 和6路PWM输出。另外还具有五种休眠模式,引脚变化及中断可唤醒MCU。

 


图1 工作电流与系统频率的关系 图2工作电流与供电电压的关系(128k)


低功耗设计方法

以单片机为核心构成的系统,其系统的总能耗是由单片机能耗及其外围电路能耗共同构成。为了降低整个系统的功耗,除了要降低单片机自身的运行功耗外,还要降低外围电路的功耗。对外围电路而言,首先选择低电压低功耗器件,如用 LMV324代替传统的LM324,SP3223EEY代替MAX232等。其次,CMOS器件输入引脚不能悬空。如果输入引脚悬空,在输入引脚上很容易积累电荷,产生较大的感应电动势,使引脚电位处于0至1间的过渡区域。另外,单片机外围电路应尽量避免采用阻性元件。

Atmega48单片机的功耗主要与系统频率,工作模式,电源电压及外围模块有关。由图1和图2可知,Atmega48单片机的工作电流与其工作频率、工作电压成正比。

降低系统时钟频率

功耗与工作频率有关。工作频率增加时,功耗也线性的增加。系统工作频率的降低,电路的延时增加导致系统性能下降,因此在利用频率降低系统功耗的时候,要在能耗和速度之间进行权衡。

Atmega48的时钟源可以选择片内的RC振荡器,也可以是来自外部时钟。片内RC振荡器提供了可校准的8M时钟和128k低功率振荡器。外部时钟可以选用低功率晶体,满振幅晶体和低频晶振。通过编程Flash 熔丝位,可以选择所需的时钟源。

ATmega48可以通过设置时钟预分频寄存器CLKPR来得到分频的系统时钟。当需要的系统处理能力比较低时可以利用这个特性来降低功耗。预分频对所有时钟源都适用,并且影响CPU 及所有同步外设的时钟频率。

单片机的时钟系统主要包括:CPU时钟,Flash时钟,I/O时钟,异步定时器时钟和ADC时钟。在大多数情况下,这些时钟并不需要同时工作。时钟功耗抑制寄存器PRR 提供终止单独外设时钟的方法以降低功耗。通过设置功耗抑制寄存器PRR,将不使用的外围模块关掉,以降低芯片功耗。例如,如果不使用ADC模块,可以向功耗抑制寄存器PRR中的PRADC位写“1”,关闭芯片的ADC模块。同时,为了降低功耗,可以通过使用不同的休眠模式来禁止无需工作的模块。

单片机的休眠模式

休眠模式可以使应用程序关闭MCU 中没有使用的模块,从而降低功耗。AVR 具有不同的休眠模式,允许用户根据自己的应用要求实施剪裁。Atmega48单片机具有五种休眠模式:空闲模式、ADC 噪声抑制模式、掉电模式、省电模式和等待模式。使用内部128 kHz RC 振荡器,其工作电流见表2。在此以空闲模式为例说明如何根据需要选择最低功耗的运行模式。因为这种休眠模式只停止clkCPU 和clkFLASH,而其他时钟继续工作。所以当用SLEEP指令使MCU进入空闲模式时,CPU停止运行,而 USART、模拟比较器、ADC、两线串行接口、定时器/ 计数器、看门狗和中断系统则继续工作。如果我们只需要其中一种或几种模块运行,还可以启用功耗抑制寄存器关闭其他模块来降低功耗。具体程序如下:
ldi r16,$e7
sts prr,r16 ;关闭未用外设
ldi r16,$01
out smcr,r16 ;进入掉电模式
wait:
sleep
nop
rjmp wait
值得注意的是在休眠模式,要使端口引脚配置为最小的功耗模式,必须避免引脚悬空和防止模拟输入电平接近VCC/2时以消耗太多的电流。当引脚未被使用,将引脚配置为输入,并使能内部上拉,给引脚一个确定的电平。

电源电压的选择

CMOS 逻辑电路中的电流与电源电压成正比,功耗与电源电压的平方成正比,因此降低器件的供电电压可以减小功耗。芯片所要求的电源电压为1.8-5.5V。由于供电电压与芯片能工作的最大频率有关联,因此应在频率满足处理速度的要求下,尽可能采用低的电源电压。

 


表1 各种工作模式的典型供电电流值


典型设计

图3是以ATmega48为核心的定时控制系统框图。该系统是油井工具投放机的控制部分。设备匀速从地面向下投放,延时时间控制设备投放的深度。延时时间一到,电机马上启动,使设备投放机停止运行。延时时间由多圈线位器设定。设定值经内部 AD转换后,在液晶上显示。液晶采用北京青云公司的LCM061A模块。该液晶能在2.7V-5.2V内工作,且工作电流小。为了加强驱动能力,PB1、 PB2并联使用,并通过TIP122直接驱动直流电机。考虑到系统时钟越低,功耗越低,并结合本系统的实际功能要求,时钟源采用内部128k低频时钟。在 2节500mA可充电电池供电的情况下,系统能可靠的运行14天。

 

 


图3定时控制系统框图

 

 


图4 主程序流程图

主程序流程图如图4所示。在主程序中,在程序初始化时,关闭未用到的外设模块,避免消耗过多的电流。IO口初始化时,PD口为输入口,使能内部上拉。所有悬空的IO口都使能内部上拉,使之有确定的电平。当检测到有按键按下时,单片机禁用对应IO口的内部上拉,避免内部上拉电阻消耗不必要的电流。 (ATmega48的引脚上拉电阻为30K~60K之间。)

在单片机完成初始化后,单片机进入空闲模式,CPU停止运行,定时器/ 计数器和中断系统继续工作。此时,实测消耗电流为0.14mA。当定时时间一到,CPU即被唤醒,执行响应的程序后继续进入空闲模式。


结语

本文介绍了ATmega48单片机低功耗特性,并通过具体实例,说明了在硬件电路设计和编制程序时,应注意的问题和低功耗设计方法,具有一定的参考价值。
 

继续阅读
“火鸟”北斗28纳米低功耗多模芯片正式问世

闪耀在太空中的北斗导航卫星,在国内正逐步打破GPS在卫星导航系统的垄断地位,并准备2020年面向全球开展服务,北斗导航系统无疑已成为我国的一张新名片。

五点要素保证MCU低功耗

平时我们在做产品的时候,基本的功能实现很简单,但只要涉及低功耗的问题就比较棘手了,比如某些可以低到微安级的MCU,而自己设计的低功耗怎么测都是毫安级的,电流竟然能够高出标准几百到上千倍,遇到这种情况千万不要怕,只要认真你就赢了。下边咱们仔细分析一下这其中的原因。

物联网时代MCU 将迎来三大发展趋势

物联网行业的快速发展是驱动MCU发展的一大动力。其中又因为汽车驾驶信息系统、油门控制系统、自动泊车、先进巡航控制、防撞系统等ADAS系统对于32位MCU的大规模需求,将刺激32位MCU的大幅增长。

Gartner预测2017/18年十大物联网技术

国际研究暨顾问机构Gartner近日选出十大物联网(IoT)技术,提醒企业组织必须在未来两年内特别注意相关发展。物联网的技术与原则将为企业组织带来极为广泛的影响,范围涵盖商业策略、风险管理及各式各样的技术领域,例如架构与网路设计。

锁定物联网市场 ARM再推低功耗处理器

继去年推出mbed OS 3.0设计平台、ARMv8-M指令集架构,以及对应低耗电嵌入式装置设计的Cortex-A35处理器之后,ARM再次宣布推出以ARMv8-A指令集架构为基础的Cortex-A32处理器,并且以32位元架构设计,主要锁定在更广泛的嵌入式或物联网应用产品。

©2018 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss