找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3274|回复: 3
收起左侧

分享stm32f103停止模式低功耗设置方法(最低5.7ua)

[复制链接]
ID:613800 发表于 2020-4-14 13:57 | 显示全部楼层 |阅读模式
刚开始进入STOPMode后,整机功耗有300uA的,此时外围其他硬件电路电流已经可以肯定漏电流在nA级,因此调试方向在主芯片,经过实际测试,都是GPIO配置的问题,比如某个GPIO为中断输入,闲置为低电平,而我们配置成了IPU,因此内部的40K上拉就会在这里消耗3/40k =75uA,另外将N.C的GPIO配置成Floating Input,也会有一些漏电流,实际测试漏电流不大;另外将STM32F05x直接PIINtoPIN替代STM32100,所以Pin35,36的PF6,PF7为之前的VCC,GND,因此要相应的配置为IPU,IPD,才不会有拉电流/灌电流;外部不使用晶振,因此必须将其配置为IPU/IPD或者输出Low,如果配置成Floating,实测消耗200uA+的电流,这个特别注意。另外不需要关闭不用的外设的CLK,因为STOPMODE会将内部1.8V的core关闭,因此该步骤不影响功耗。

因此在进入STOPMODE之前,需要做:

1、将N.C的GPIO统一配置为IPU/IPD;

2、检查一些Signal的输入Active是High/Low,相应进行配置为IPD/IPU,即避免在内部上/下拉电阻上消耗电流,而且该电流理论值为VCC/R = 3/40 =75uA;

3、如果外部晶振不使用,必须将GPIO配置为IPU/IPD/PPLow,不允许配置为floating,否则会消耗极大的电流 200uA+;

4*、加入进入STOPMODE前,不允许将PWR的CLK关闭,这部分牵涉低功耗模式,实际测试关闭能用,也能唤醒,但是电流会增加10uA+;

5、配置GPIO为输出时,根据输出的常态选择上拉/下拉,如闲置输出为0,则配置为下拉,输出闲置为1,则配置上拉;

6、另外特别说明的是->从Stopmode唤醒后,系统会自动切换到HSI,如果进入前使用的是外部晶振/PLL(PLL的clksource = HSI/HSE)因此必须调用System_Init(),对RCC重新初始化,否则唤醒后主频发生改变,会影响系统;

调试经验分享:

经常在移植新的产品方案时,都会遇到待机电流不能一步到位,需要测试、调试的过程,在此分享一个土办法。

1、在调用EnterStopmode前,将GPIO的所有配置寄存器printf,比对GPIO的初始化表,看是否在进入STOP前,在其他地方对GPIO配置做了改动;

调试过程告诉我,基本都是在进入stopmode时,其他的GPIO被另外配置错误导致;

2、在调用EnterStopmode前,将GPIO的所有配置全部重新配置一次,也可以快速的检验是否是这个环节出问题。


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:143692 发表于 2020-11-30 15:22 | 显示全部楼层
楼主有没有实例程序
回复

使用道具 举报

ID:665572 发表于 2020-12-11 15:59 | 显示全部楼层
膜拜大佬
回复

使用道具 举报

ID:519089 发表于 2021-7-14 22:17 | 显示全部楼层
唤醒直接复位。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表