打印
[其他ST产品]

STM32与LoRa低功耗调试总结

[复制链接]
701|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
物联网的大部分设备都是电池供电的,设备本身低功耗对设备使用寿命至关重要,今天就以实际调试经验,聊一聊stm32的低功耗调试。

1、stm32在运行状态下的功耗



上图截图自stm32l15x手册,stm32l15x系列最大运行在32M;如果在最大频率下运行,那么mcu功耗是214uA*32=6848uA=6.8mA,如果还有外设,那么整个系统功耗可能会更多。

因此,在调试功耗的时候,可以用上面的6.8mA当做一个参考,判断mcu有没有进入低功耗状态(stop,standby等)。


使用特权

评论回复
沙发
哈根达斯uz|  楼主 | 2024-2-27 17:32 | 只看该作者
对于没有使用到的IO口处理

经过反复试验测试,对于没有使用的io配置为推挽输出,且输出高电平。

使用特权

评论回复
板凳
哈根达斯uz|  楼主 | 2024-2-27 17:32 | 只看该作者
Adc采样引脚处理

软件上配置为模拟输入,硬件采样电阻要尽可能的大,比如2M,假如VBAT=3.6V,那么耗电仅仅为I=U/R=3.6/(4*1000000)=0.9uA。

使用特权

评论回复
地板
哈根达斯uz|  楼主 | 2024-2-27 17:33 | 只看该作者
上下拉IO口处理

硬件上拉,IO要配置成上拉,硬件下拉,IO口要配置成下拉。
传感器供电处理


采样的时候供电,其他时间断电;通过PB5控制4.2V的输出,因此在休眠的时候可以拉低PB5,节约功耗。

使用特权

评论回复
5
哈根达斯uz|  楼主 | 2024-2-27 17:34 | 只看该作者
三极管的be极或者MOS管的gd极耗电
在调试的时候,因为某些原因,直接把R19的右边,接在了mos管的g极,在PB6拉高后,mos管导通,gd极的压降很小,相当于将3.3v直接加在了1k的电阻上,粗略计算下,3.3/1000=330mA电流,因为在开机后PB6需要一直保持高电平,所以在实际设计上,三极管的基极, mos管的g极,需要加大电阻

使用特权

评论回复
6
哈根达斯uz|  楼主 | 2024-2-27 17:34 | 只看该作者
射频开关


通过PB7供电、PB2收发切换,休眠的时候设置为开漏输出。

使用特权

评论回复
7
哈根达斯uz|  楼主 | 2024-2-27 17:36 | 只看该作者
8、对于外设使用到的io,休眠时候的处理

如果休眠的时候外设要工作,那就不要动,保持原样;

如果休眠的时候外设不工作,处理如下:

对于spi,在休眠的时候SPI去使能,IO口配置成输入上拉输入即可;

对于串口,也是同样的处理。

9、如果功耗还是降不下来怎么办?

终极方法:直接把硬件供电断开,直接给mcu供电,再一步一步恢复供电电路,基本上就能找到耗电的地方。

使用特权

评论回复
8
hjl2832| | 2024-2-28 08:19 | 只看该作者
电池电量测量,最好是用MOSFET管开关隔离,这样不会在休眠时还持续放电。

使用特权

评论回复
9
Henryko| | 2024-2-29 22:54 | 只看该作者
hjl2832 发表于 2024-2-28 08:19
电池电量测量,最好是用MOSFET管开关隔离,这样不会在休眠时还持续放电。

这个怎么隔离啊

使用特权

评论回复
10
hjl2832| | 2024-3-1 08:45 | 只看该作者
哈根达斯uz 发表于 2024-2-27 17:34
三极管的be极或者MOS管的gd极耗电
在调试的时候,因为某些原因,直接把R19的右边,接在了mos管的g极,在PB6 ...

MOSFET管GD之间并不会产生直接直通的现象,不管是P沟道还是N沟道。另外3.3/1000是3.3mA,并不是330mA,这里要更正下。否则容易误导新人。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

325

帖子

0

粉丝