低功耗是MCU的一项非常重要的指标,比如某些可穿戴的设备,其携带的电量有限,如果整个电路消耗的电量特别大的话,就会经常出现电量不足的情况,影响用户体验。
平时我们在做产品的时候,基本的功能实现很简单,但只要涉及低功耗的问题就比较棘手了,比如某些可以低到微安级的MCU,而自己设计的低功耗怎么测都是毫安级的,电流竟然能够高出标准几百到上千倍,遇到这种情况千万不要怕,只要认真你就赢了。下边咱们仔细分析一下这其中的原因。
第一条
掐断外设命脉
——关闭外设时钟
先说最直观的,也是工程师都比较注意的方面,就是关闭MCU的外设时钟,对于现在市面上出现的大多数的MCU,其外设模块都对应着一个时钟开关。只需要打开这个外设的时钟,就可以正常的使用这个外设了,当然,此外设也就会产生相应的功耗;反之,如果想要让这个外设不产生功耗,只需关闭它的时钟即可。
第二条
让工作节奏慢下来
——时钟不要倍频
除了外设模块功率消耗之外,还有一个功耗大户需要注意一下,这就是PLL和FLL模块。PLL和FLL主要是用来对原始的时钟信号进行倍频操作,从而提高系统的整体时钟,相应的,其功耗也会被提上去。所以在进入低功耗之前,需要切换是种模式,旁路掉PLL和FLL模块,从而尽可能的降低MCU的功耗,等到MCU唤醒之后再把时钟切换回去。更多学习交流可以加Q3472880374
第三条
围堵涓涓细流
——注意I/O口的电平状态
如果认为只要关闭外设时钟就能够保证外设不再耗电,那么你就太天真了。如果IO口没有做好处理的话,它就会在暗地里偷走功耗,而你却浑然不知。具体原因是这样的,一般的IO的内部或者外部都会有上下拉电阻,举个例子,如下图所示,假如某个IO口有个10KΩ的上拉电阻,把引脚拉到3.3V,然而当MCU进入低功耗模式的时候,此IO口被设置成输出低电平,根据欧姆定律,此引脚就会消耗3.3V/10K=0.33mA的电流,假如有四、五个这样的IO口,那么几个mA就贴进去了,太可惜了。所以在进入低功耗之前,请逐个检查IO口的状态:
如果此IO口带上拉,请设置为高电平输出或者高阻态输入;
如果此IO口带下拉,请设置为低电平输出或者高阻态输入;
总之一句话,不要把上好的电流浪费在产生热量的功能上,咱可不靠这点温度去暖手。
第四条
睦邻友好合作
——注意I/O与外设IC的统筹
IO口的上下拉电阻消耗电流这一因素相对比较明显,下边咱来说一个不明显的因素:IO口与外部IC相连时的电流消耗。假如某个IO口自带上拉,而此与IO相连的IC引脚偏偏是自带下拉的,那么无论这个引脚处于什么样的电平输出,都不可避免的产生一定的电流消耗。所以凡是遇见这一类的情况,首先需要阅读外设IC的手册,确定好此引脚的的状态,做到心中有数;然后在控制MCU睡眠之前,设置好MCU的IO口的上下拉模式及输入输出状态,要保证一丝儿电流都不要被它消耗掉。
第五条
断开调试器连接,不要被假象所迷惑
还有一类比较奇特,检测出来的电流消耗很大,可实际结果是自己杞人忧天,什么原因呢?是因为在测试功耗的时候MCU还连接着调试器呢!这时候大部分电流就会被调试器给掳走,平白无故的让工程师产生极度郁闷的心情。所以在测低功耗的时候,一定不要连接调试器,更不能边调试边测电流。
总结
MCU的低功耗设计是一个细致活,要养成良好的习惯,做到每添加一个功能都要重新验证一下低功耗是否符合要求,这样就可以随时随地干掉消耗功率的因素。如果把所有功能都设计好了才去考虑低功耗的问题,一个不小心,就可能要更改程序的架构——即便如此也不一定能把功耗给彻底降下去。
关键字:MCU 低功耗 电流
引用地址:
让MCU低功耗的五点
推荐阅读最新更新时间:2024-11-10 10:17
FCC批准Ligado部署低功耗5G网络
据路透社报道,当地时间周一,美国联邦通信委员会(FCC)批准了Ligado(利加多,Ligado Networks是一家美国卫星通信公司)的通讯频段的申请,允许其在全国部署低功耗5G网络。 值得注意的是,在上周四的时候,FCC就公布了相关草稿,要求重新分配宽带通信无线电频谱的特定部分。但是遭到了美国国防部的极力反对,国防部表示重新分配宽带通信无线电频谱将对GPS导航系统造成“不可接受的”损害。 据了解,美国国防部认为,利加多的计划会严重破坏和干扰GPS的运行,而这套系统一旦遭受破坏,就会危及军事部署。此后利加多对计划进行了修改,以避免对GPS的干涉。但五角大楼首席信息技术官员达纳·迪希表示,“我们有非常有力的技术证据
[网络通信]
采用C8051F020微控制器控制CF卡存储及设计研究
随着计算机应用技术的飞速发展,移动存储设备得到了广泛的应用。其中CF(Compact Flash)卡诞生于1994年,是最早推出的闪存卡,在众多产品中其普及率也最高。由于CF卡具有价格低廉、体积小、存储容量大、高速等特点,因此被广泛地应用于数码相机、PDA和笔记本电脑等当前十分热门的消费类电子产品中。CF卡在其他领域中也得到了广泛的应用。如本文所述内容就是将CF卡应用于动态脑电图系统中存储脑电信号。 由于CF卡中存储的脑电图信号要能够从PC机上读取出来,所以必须把脑电图信号以相应的文件格式存储。下面将介绍采用C8051F020微控制器控制CF卡的文件存储,并详细地介绍其软、硬件的设计。 1 C8051F020与CF卡的接口
[单片机]
什么是单片机的寻址(举例介绍)
让我们先来复习一下我们学过的一些 指令 :MOV P1,#0FFH,MOV R7,#0FFH这些 指令 都是将一些数据送到对应的位置中去,为什么要送数据呢?第一个因为送入的数能让灯全灭掉,第二个是为了要实现延时,从这里我们能看出来,在用单片机的编程语言编程时,经常要用到数据的传递,事实上数据传递是单片机编程时的一项重要工作,一共有28条指令(单片机共111条指令)。下面我们就从数据传递类指令开始吧。 分析一下MOV P1,#0FFH这条指令,我们不难得出结论,第一个词MOV是命令动词,也就是决定做什么事情的,MOV是MOVE少写了一个E,所以就是“传递”,这就是指令,规定做什么事情,后面还有一些参数,分析一下,数据传递必须要有一
[单片机]
单片机工作电压5V的来历
5V来自于TTL电平。5为True,0为False,之后用了压降更低的PN节,衍生出了3.3这个电平。 12V和24V来自于汽车电瓶,早年乘用车又12V和24V两个系统,现在一般小型车12V,商用车24V,再究其由来应该是铅酸电池。 所以3.3V和5V一般出现在信号电路或者单片机等VCC供电,而12V/24V一般出现在低压动力电,例如主板、显卡、轴流风机、监控器。硬件决定系统基础,如果锂电池早点应用的话估计还会有3.7/7.4这个系统。 为什么很多单片机的工作电压是5v? 因为大多数芯片都是5V的TTL电平,要做到电平兼容,电平匹配,避免要电平转换操作,所有很多单片机的工作电压都是5V。早期(196x)的晶体管电路(TTL
[单片机]
PIC单片机入门_定时器TMR2详解与实例
1.前言 这里将介绍另一款定时器TMR2模块,TMR2与前面介绍的TMR0和TMR1相比,最大的差别是只能工作于定时模式,因此称它为“定时器TMR2”。 2.TMR2的特性 TMR2为8位宽,附带二个4位宽的分频器:一个“预分频器”和一个“后分频器”,一个可编程的8位周期寄存器PR2。其主要用途: 1. 可以用作时间定时器,但是不能作为计数器; 2. 可以为同步串行端口MSSP模块提供波特率时钟; 3. 可以与CCP模块配合使用,实现脉宽调制PWM功能。 TMR2的核心是一个可以由软件读/写的8位宽的计数器,它也是按递增计数,从某一初值(缺省为0)开始递增,直到与周期寄存器PR2中内容匹配之后,在下一次递增时则返回到00
[单片机]
UC3846间接电流型控制的分析
电流型控制模式是一种性能优良的控制技术,与传统的电压型控制相比有许多优点。该控制比传统的峰值和平均值电流型控制在噪声敏感和动态范围方面有显著的优势;在线性调整和宽负载范围调整方面减少了控制的复杂性,解决了系统静态精度与稳定性之间的矛盾,使系统具有动态响应快和静态精度高的特点。电压积分间接电流型控制将会越来越多地为广大用户和厂商所采纳。 2、间接电流型控制技术 传统的电流型控制通常基于采样电感电流,而间接电流型控制无需通过电阻或霍尔元件采样电流,而是通过对电感的电压积分重构电感电流,实现电流的间接取样。这样,不仅可以避免因采样电阻产生损耗和杂波信号过大而使电路发生紊乱,而且无需采用互感器,使电流型控制方案的实现更加简单。更重
[电源管理]
PIC单片机开发环境搭建_MPLAB X IDE安装步骤
熟悉开发环境是学习单片机的第一步,现在介绍下PIC得开发环境,PIC的开发环境有老的 MPLAB IDE, 和最新的MPLAB X IDE. MPLAB X IDE 比老的MPLAB IDE, 编写代码的起来更方便,出错的概率也低因为MPLAB X IDE 时时的检测书写错误。 MPLAB X IDE 的安装: 第一步 安装JAVA 的运行环境(因为MPLAB X IDE是用JAVA程序写的) 安装jdk 6.1(在jdk 当中包含了运行环境jre,当然只安装jre也行) 双击jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe安装jdk 6.1 第二步 安
[单片机]
【GD32 MCU 入门教程】一、GD32 MCU 开发环境搭建(2)使用 IAR 开发 GD32
IAR版本众多,版本之间的兼容性并不好,如果初次使用建议安装7.3以上的版本,安装好IAR以后再根据该文档来添加GD的器件型号,进行相关的debug工作。 2.1 在IAR中添加GD32 MCU Device 2.1.1 从官网上下载相应的GD32系列插件。 下面以GD32F30x系列为例,下载插件IAR_GD32F30x_ADDON.1.0.0.exe: 2.1.2 运行IAR_GD32F30x_ADDON.1.0.0.exe,单击start开始安装插件。 2.1.3 安装成功后单击Finish,结束插件安装。 2.2 在IAR中编译调试GD32 在上一小节中我们已经添加了GD32F30x系列的插件,这一小节我们介绍
[单片机]