STM32L476 STOP模式低功耗避坑指南

本文讲述了作者在使用STM32L476RCTx开发低功耗项目时,遇到休眠功耗问题的解决过程,通过逐步排查发现DI接口配置导致的不确定电平是主要功耗来源,最终通过更改配置和注意接口初始化来降低功耗。
摘要由CSDN通过智能技术生成

        最近在做一个低功耗的项目,主芯片选择的是ST公司的微功耗处理器STM32L476RCTx,基本外设包括三个串口(一个485通信,一个4G模组,一个浓度传感器)、三个IIC(一个LCD显示驱动,两个压力传感器)、一个SPI接口(FLASH存储芯片)两个DI输入,两个电压采集,起初根据各个接口配置完成后,下装程序,采用的是RTC中断定时唤醒的方式,但是STOP模式的休眠功耗始终降不下去,一直维持在500uA左右,先是从硬件方面找原因,所有外设都去掉,包括FLASH芯片,然后是一些保护器件,猜测可能会存在漏电流,苦苦寻找原因未果,然后把程序装载到开发板上,结果休眠电流更大了,很显然是不正确的(因为官方开发板所有引脚都未接任何外设),故进一步猜想可能是由于程序的原因,后来就模仿之前的程序,重新从STM32CubeMX配置了一次,结果依旧不理想,这一下子又没有了头绪,只能从头再来了,于是一个引脚一个引脚的开始配置,从开发板上开始,逐步查找问题到底出在了哪里,首先是配置了RTC+定时中断唤醒,以及下载引脚时钟使能,这时候测量开发板STOP模式功耗仅有7uA,然后下一步开始配置DI接口,幸运的是配置完DI后,功耗一下子上去了,即500uA,这下终于找到了罪魁祸首,想必500uA的功耗便是由DI接口带来了,但是什么原因呢?难道是配置了中断模式,上电或复位后造成了误触发?后来把中断取消,改为input模式,结果依旧,看来和中断的关系不大,然后又取消了一个DI,发现功耗降下来了一半,分析还是在DI配置上出问题了,CubeMX默认配置的管脚没有上下拉,采用浮空输入模式,故这个引脚电平是不确定的状态,后来改为了上拉输入,休眠功耗降至7uA,大功告成,折磨了我好几天,终于好了,另外还有一个,在CubeMX上需要勾选一句话,可以把所有未用到引脚配置为模拟输入模式,最好也勾上,以减少不必要的电流消耗。

        言归正传,回到自己的板子上,DI接口改为上拉输入的模式后休眠功耗约30uA左右,已知的电流消耗:单片机:7uA,FLASH:20uA,max3485:2uA,TLV2435:60nA,MP3414A:1uA,,在加上一些保护二极管的漏电流等,可知基本符合预期。另外就是像IIC,SPI接口等在休眠之前需要先进行反初始化,唤醒后再重新进行初始化,不然功耗还是降不下去。

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值