历史上的今天
返回首页

历史上的今天

今天是:2025年03月25日(星期二)

正在发生

2018年03月25日 | atmega48的低功耗设计方案

2018-03-25 来源:eefocus

    本文主要介绍了atmega48单片机的特性,提出了其低功耗设计的一般方法,并以定时控制系统的设计为例,具体说明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。

     

8

图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天。

8

图3定时控制系统框图

     0

     

图4 主程序流程图

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

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

    结语

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


推荐阅读

史海拾趣

Altonics公司的发展小趣事

Altonics公司创始人在XXXX年创建了这家公司,初期面临着资金短缺、市场竞争激烈和技术人才缺乏的困境。然而,创始人凭借对电子技术的深刻理解和敏锐的市场洞察力,决定专注于工业自动化控制领域的研发与生产。经过不懈的努力,公司成功开发出一款高性能的自动化控制设备,受到了市场的广泛认可,为公司的后续发展奠定了坚实的基础。

ANYSOLAR LTD.公司的发展小趣事

ANYSOLAR LTD.的创立源于一次技术突破。创始人李明,一位资深的电子工程师,在一次实验中意外发现了一种新型光伏材料的制备方法。这种材料具有高效的光电转换效率,且成本远低于市场上的同类产品。李明意识到这是一个巨大的商业机会,于是决定辞去工作,创立ANYSOLAR LTD.,专注于这种新型光伏材料的研发和生产。

初创期的ANYSOLAR面临着资金短缺、人才匮乏和市场认可度低等多重挑战。然而,李明凭借对技术的深厚理解和不懈追求,带领团队攻克了一个又一个技术难题,逐步将产品推向市场。通过参加行业展会、与潜在客户建立联系等方式,ANYSOLAR逐渐赢得了市场的认可。

BEI Sensors公司的发展小趣事

自上世纪80年代起,Beckhoff便将基于PC的自动化新技术作为公司的发展理念。通过不断研发和创新,公司成功地将工业PC、现场总线模块、驱动产品和控制软件等整合为一套完整的、相互兼容的控制系统。这一创新为工控领域带来了革命性的变革,使得工业自动化系统更加开放、灵活和高效。

AW Industries Inc公司的发展小趣事

近年来,电子行业经历了巨大的变革,新技术、新产品层出不穷。面对这一挑战,AW Industries Inc积极调整战略,加大了对新技术、新产品的研发力度。同时,公司还通过优化生产流程、提高生产效率等方式降低成本,以保持竞争优势。这些措施使公司在行业变革中保持了稳定的发展态势。

Austek Microsystems公司的发展小趣事

在追求经济效益的同时,Austek Microsystems也积极履行社会责任。公司严格遵守环保法规,采用环保材料和生产工艺,减少对环境的影响。此外,Austek Microsystems还积极参与公益事业,为社区的发展和进步贡献自己的力量。

这五个故事展示了Austek Microsystems在电子行业中的发展历程和取得的成就。通过创新研发、建立合作伙伴关系、技术升级与产品迭代、市场拓展与品牌建设以及履行社会责任等方式,Austek Microsystems逐渐在市场中崭露头角,成为了电子行业中一颗璀璨的明星。

Corporation Soneet公司的发展小趣事

在电子行业的激烈竞争中,一家名为Soneet的新兴公司凭借其在半导体技术上的创新突破,逐渐崭露头角。Soneet的研发团队经过数年的努力,成功开发出一种新型的低功耗、高性能的芯片,这一技术突破不仅提高了电子设备的性能,还大大降低了能耗。凭借这一优势,Soneet迅速赢得了市场的认可,其产品在各大电子设备制造商中广受欢迎。

问答坊 | AI 解惑

用电阻做功率模拟

请教各位,我现在测一块散热板的散热效率,打算用铜壳线绕电阻做一个30W的发热源,电阻型号有以下几款 220Ω/5W;500Ω/8W;输入电压在60V左右,请问应该怎样排列电阻效果才好?谢谢!…

查看全部问答>

闪电击中世界最高建筑哈利法塔

上面这张令人震惊的照片展示了世界最高建筑哈利法塔遭闪电击中时的场面。 照片的拍摄者是一位23岁名叫穆罕默德·哈姆丹的学生,来自巴基斯坦,目前在阿联酋攻读建筑工程学。当时,迪拜正遭受暴风雨的袭击。雷电中,高达828米的哈利法塔在紫色的 ...…

查看全部问答>

今天参加mcu day赠送的一款开发板

参加TI mcu Day时,送的开发板,据说可以当做jtag仿真器使用,双重功能!!!…

查看全部问答>

U盘多盘符的问题

我在一个嵌入式系统中,主机在GET MAX LUN我已经返回01,但是主机并未显示2个盘符.仅仅出现了一个盘符 还需要做哪方面的工作…

查看全部问答>

关于桥式整流

这是在空闲之际模拟的几张桥式整流和接电容的图片,希望能对大家有点用处。    大家注意看波形随着电容的变化而变化。…

查看全部问答>

hmc5883的程序有人做过么?我的程序哪里出问题了?本人菜鸟,见笑了。

调了好几个小时了,就是不知道问题在哪里,请高手们指点。 测量先不说,就是怎么读寄存器都没弄清。 看了中文的pdf了,但是还是没搞懂,先看看我的程序吧。 程序部分(已近将无关部分删除): uchar code table[]=\"0123456789\"; //////////// ...…

查看全部问答>

有谁用了ADS8332,求程序!

最近用到团购买回来的ADS8332,但是调试了两天没成功,求助各位!谢谢!…

查看全部问答>

debug正常,51运算错误

已经用其他程序试验过了,不是xdata的问题,xdata里的数据能正常使用。我在用51做一个32点的fft。 部分代码如下: #include #include #define  uchar  unsigned  char #define  uint unsigned int ...…

查看全部问答>

谁用单片机驱动过PS2的数字小键盘?

我在网上买了一块PS2的数字小键盘,就是传统台式机键盘最右边的数字键部分。 学习了一下PS2及扫描编码相关内容,看懂了程序,但是,由于小键盘只有部分按键,有的键还是不能读取。 0—9数字键是可以输入的,小键盘的enter也能读取,但+、-、*、/ ...…

查看全部问答>