单片机低功耗配置及注意事项

32的三种低功耗模式

睡眠sleep,停机stop,待机idle或standby

睡眠状态下只是CPU关闭,任一中断均可唤醒。
停机状态下关闭CPU及内部功能、分频器、HSE,可用外部中断、电源电压中断PVD、RTC闹钟、USB唤醒。
待机状态下与停机状态下相比多一项RAM内容清除(相当于复位了),用上图表里的功能唤醒。

IO配置总结

1、所有IO管脚,如果高阻状态端口是高电平,就设成上拉输入,如果高阻状态是低电平,设成下拉输入,如果高阻是中间状态,设成模拟输入。必须用到输出时,硬件上必须加上下拉。
2、不用的IO口可以设置为IPU/IPD/PP,如果IO为浮空状态,外部电路必须要用上拉或下拉,引脚浮空非常耗电。
3、芯片与外设相连时,外设脚为高电平芯片脚配成上拉,外设为低芯片也要为低电平,这样就能避免有电流。
4、睡眠模式不要使用外部晶振,两个晶振输入脚要remap成普通IO,并配置成IPU/IPD/PP,千万不能浮空,时钟使用内部RC振荡器。
5、如果用在32里:pwr的时钟要使能,即RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
6、关闭jtag口,并设成普通IO;
7、不用的外设,复用的时钟要关闭。当用中断唤醒时,切记要保留。

三种状态都可用RTC定时器做。
//
//
//
//
//

以下摘自网络=======
在做低功耗产品的时候,对于MCU的IO模式设置,一定要慎重,而不是,没有用到的IO,就不管,一般而言,设置成,上拉输入,或者浮空,
而对于EMC要求比较高的产品的时候,对于没有用到的IO,一般设置成输出模式,而且是高输出,,
关闭时钟基本上就不会耗电了,最好同时把外设失能

外圍設備什麼狀態 IO口就配置成什麼狀態。如,外圍設備關機狀態IO為低電平,單片機的IO也就要取消上拉,陪成低電平,這樣才不會產生電流

STM32唤醒就是相当于复位。??如果你想不复位某些变量,就用__no_init修饰下。但最好是在休眠前保存相关数据,唤醒后再读出。休眠当掉电处理,小心驶得万年船?????????

低功耗模式有几种,每种能唤醒的方式都不一样。但至少都支持RTC闹钟唤醒。你可以用RTC定时来做定时。

进入待机或者停机时候CPU会自动帮你关大部分外设的。主要注意的是IO的时钟,如果用外部中断唤醒,那就需要保留响应的端口的时钟

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

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


实验证明,将IO端口设成IPU/IPD/AIN/PPOUT=1/PPOUT=0/ODOUT=0,电流是基本相同的,最可怕的就是GPIO浮空,且电路上未外接上拉下拉,这样电流就会比较大。
原来以来PPOUT要是输出为0,就会浪费电流,其实只要不负载,电流和ODOUT=0时一样样的。
ODOUT=1这个禁忌,一个脚要费20uA
串口的AF脚要关闭,换为AIN或其它

http://blog.sina.com.cn/s/blog_542bad910101sads.html
刚开始进入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重新初始化,否则唤醒后主频发生改变,会影响系统;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值