×
单片机 > 单片机程序设计 > 详情

STM32L系列低功耗调试《实用篇》

发布时间:2020-05-19 发布时间:
|

不知道大家有没有和我一样的经历,看官方数据手册,什么休眠2uA, 停机多少nA,这么换成自己调试的时候就是上百uA了,差的不是一个数量级,有木有这样的感受~


最近在做一个NB项目,用到了如下外设: 外部唤醒引脚,串口,SPI,DMA,ADC,RTC,模拟IIC等外设,可以说是一个综合型项目了吧,    最后调试下来整机<10uA 待机功耗(实测 8.2uA, RTC 1s 唤醒一次,NB模块待机 2uA );


硬件介绍:


单片机是STM32L151R8T6-100pin 的,外接一个SPI 数据存储器,2 个IIC 的传感器,NB 串口模块;


系统直接采用3.2V磷酸铁锂电池供电;


SPI存储器和IIC传感器的电源直接用IO 口来控制使能;


低功耗调试技巧:


① 开机时候除了PA13 和PA14 不要初始化外,其他IO 口全部初始化成无上拉模拟输入;


IO 口作为输出的话,Speed 建议设置成400KHz(对于串口115200 来说,400K 是足够了),SPI 速度稍微快点


② 可以设置成2M的速度;


③ 串口的Rxd引脚设置成模拟输入(有无上下拉看实际效果);


Txd引脚设置开漏无上下拉;


④ SPI的4个脚全部配置成开漏无上下拉,然后输出低电平;


⑤ 如果一些IO口配置成上拉输出,睡眠的时候必须要拉低,这个时候一定要将该IO配置成开漏无上下拉的;


⑥ 睡眠之前要关闭ADC ,串口和SPI 等外设;


关闭外设三部曲: 


a) 先将开启的中断全部关闭掉;


b) xxx_Cmd(xxx,DISABLE);


c) xxx_Deinit(xxx);


ps: 网上说最后还需要关闭外部IO 总线时钟, 其实这个真没有必要!


⑦ 唤醒后记得将睡眠之前配置的IO 和外设全部再重新初始化一遍喔~


按照我的建议调试,发现休眠后功耗依然很大,请仔细看看你的外设电是不是没有断彻底,mos管或者三极管上还有漏电什么的,用的DC-DC功耗比较大等等;


当所有的外设都关闭完之后,功耗依然不理想,请检查每个IO口配置是否合理;

对于IO口检查的原则就是不能形成回路(通俗的说就是不能有压差);


当IO口内部形成回路的时候,外部是测不出来的 :


例如配置成上拉输入,睡眠时候输出低电平这样的情况就只能在代码里找问题了;


关键字:STM32L系列  低功耗调试 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
基于arm的指纹识别门禁系统是如何设计的