嵌入式开发----低功耗设计、解决方法

本文分享了一位工程师在STM32低功耗产品设计中的经验,通过调整芯片频率、管脚处理、模块功耗测试和优化,将运行功耗从2.3mA降低到0.6mA。关键步骤包括屏幕自动息屏、ADC低功耗模式设置等,为类似项目提供了参考。

第一次接触低功耗产品,在降功耗的过程中费了很多心思,把解决过程介绍给大家,供参考:

在很多场景下会要求产品要低功耗,stm32低功耗芯片最低10uA,实测,在运行模式下,最小系统板,全管脚模块收入时,0.224mA

下面介绍下我在项目中降功耗的经验

我们的PCB板上用到了片内片外的ADC、串口、片外FLASH、按键、显示屏等

1、首先控制芯片的频率,在满足使用的情况下,越低越好,我用的是4MHZ

2、管脚处理:使用的时候初始化,用完改为模拟输入

按照以上两方法,设计出来的软件运行功耗为2.3mA左右,太高了,要继续降

后面就是要分别测各个模块的功耗,进行各个击破:

1、首先测的就是lcd屏,拔掉屏后,功耗降了1mA,说明显示屏功耗太大了

      那么1分钟无操作,自动息屏,由于我们的设备主要是测量和无线通信,很少会有人到现象查看,所以这里可以降1mA左右。

      1.3mA还是有点大的,我们的目标是降到1mA以下。

      其它的模块都焊在PCB上,不能进行拔插,下面要从最小系统板开始,一个个模块进行焊接:

2、片外ADC,这个片子焊上后功耗就增加了0.5mA左右,把Vcc脚抛起来都没用,要把REST脚拉低才行,这也不符合我们的使用要求

      查看ADC数据手册,这个片子有低功耗模式,只有10uA左右,那么查看它的引脚和寄存器,根据要求,在使用前设置为运行模式,使用后设置为低功耗模式,这样,功耗又降了0.5ma左右。

后面再继续查其它模块。。。

硬件查完了再查软件,首先软件设计要模块化,否则很难查。

从BSP开始,对每个模块初始化后,记录下此时的功耗,这样就能直观的看出是哪个模块耗电最多,然后再进行相应的优化,这样,我们最后的功耗在0.6ma左右,在没有睡眠的情况下,已经大致目标

如果要继续降功耗,那么后面就要加睡眠、降频、降采样点数等方面考虑了

写了这么多,仅供大家参考,如果有不足之处,还请指出,多谢!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值