借鉴前辈们MCU低功耗设计和思路的记录-硬件角度

本文探讨了低功耗微控制器(MCU)的功耗降低方法,包括调整工作模式和休眠模式的功耗,以及缩短唤醒时间。通过硬件上的电路优化,如使用IO口控制开关减少ADC采样时的电流损耗,和软件上的策略,如减少不必要的工作和高效利用休眠模式,实现整体系统的功耗降低。强调了软硬件协同在功耗管理中的关键作用。
摘要由CSDN通过智能技术生成

低功耗MCU达成的方式大概有三种:

  1. 降低工作模式的消耗 : 较低的系统频率或运行电压来节省功耗。
  2. 减少休眠模式的功耗 :有两个处理的方向,向下压低休眠时的最低功耗与提供不同等级的待机模式,本质上是针对省电模式进行动态调整,依据使用的状况的不同,自动关闭不需要的功耗,至低的功耗电流几乎是可以针对该产品忽略不计的数值。从终端产品实现角度来讲,休眠时保持低功耗固然重要,在此之外,也务求迅速唤醒,以最低功耗完成工作后,再以最快回归休眠状态,才能将整体系统层级的功耗降低到最低。
  3. 缩短由休眠到工作的唤醒时间

降低功耗并不是纯硬件或软件就能实现的

  • 很多时候,都是需要软件和硬件的协同工作才能解决问题。

  • 我们在做NTC测温电路的时候,如果直接如下图所示连接,那么实际上,计时在未进行AD采集的时候,改电路也一直在消耗电流,按照常温状态下来算,NTC的阻值为10K,那么这部分的电流消耗为:I=3.3V/(10K+10K)=165uA。似乎看起来很小,但是,这只是电路中一部分的消耗,还有其他很多部分都有电流消耗,累加起来之后,就比这165uA大的多了。那么有没有办法让这一部分电路的功耗降低呢?答案肯定是有的。

  • 比如,我们可以在3.3V电源部分或者GND部分加一个开关,并且通过一个IO口来直接控制这个开关,在需要进行AD采样的时候,把这个开关打开,采样完成后,再把这个开关关闭,这样一来,似乎就可以尽可能的减小这部分的开销了。

  • 这样一来,我们就可以达到之前预期的目的了。当然,如果真如上这样设计电路的话,无形中似乎也增加了成本,一个SI2302也需要一两毛钱,一个电阻也是几分钱,如果是几K甚至几十K的量的话,那么成本就不是一点点了。那么上述电路是不是还可以简化一下呢?那是必须滴!实际上我们可以直接通过一个IO口来接到NTC的一端,毕竟按照之前计算的电流,也才微安级别的,就算忽略掉NTC的阻值,也有R1起到限流的作用,不用担心烧坏IO口。那么,当需要采集AD的时候,直接将IO口拉低,就能实现电阻分压了。

  • 由此可见,降低功耗从硬件角度来说,就是需要找到所有可能的消耗电路的回路,一一确定哪些是可以通过软件控制的方式来优化功耗的,哪些是避免不了的,并给编程人员提供一个所有IO口状态对功耗影响的关系,通常用简单的表格说明一下高电平会怎样,低电平会怎样,悬浮会怎样。做到这一点,基本上硬件的工作就告完成,剩下的就是软件开发人员的发挥空间了。

  • 说到软件功耗优化,简单来说就是:能少工作的就少工作,能休眠的就休眠!

  • 项目中我遇到的问题就是ADC分压电阻损耗在这里插入图片描述

  • 公式来计算就是U/回路上所有电阻之和, 代入上图就是5/(R1+R2)=I(这个I就是损耗值),然后再同时放大两个电阻10倍或者以上,可以让损耗电流缩小10倍。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值