stm32低功耗设计经验
,该读卡芯片有个TESTIN/TESTOUT管脚,是用来测试用的,出厂后也就用不上了,我也一直以为这两个脚确实没什么用,就没接;可是我发现 厂家提供的样板居然接了这两个脚,但是厂商也没说这两个脚接或不接会影响功耗啊,抱着试一试的心态,我我把TESTIN/TESTOUT两个管脚接到单片 机上进行相应的配置,接下来是见证奇迹的时刻了,功耗居然真的、真的降到10uA了。。。。。。。。。。。 此处省略n个字
1.管脚设置,这个很关键,还是跟你电路有关系,外加上拉、下拉电阻切记不能随便加
2.STM32的systick clock、DMA、TIM什么的,能关就全都关掉,STM32低功耗很简单,关键是外围电路功耗是关键
3.选择一个低功耗的LDO,这个项目用到的LDO功耗就很不错,静态功耗10uA都不到。
4.确定STM32设置没问题,进入低功耗有好几种情况可以选择(睡眠、停机、待机),我还是推荐选择STOP模式,这个我觉的比较好是因为可以任意外部中断都可以唤醒,而且管脚可以保留之前的设置,进入停机模式的代码使用库函数自带的,就一句:
PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);
意思是,在进入停机模式之前,也关掉电压调节器,进一步降低功耗,使用WFI指令(任意中断唤醒),但是经过测试,使用WFE(任事件唤醒)指令效果、功耗一模一样。
最后一步是从STOP模式怎么恢复了,恢复其实也很简单,外部中断来了会进入中断函数,然后STM32就被唤醒,唤醒还要做一些工作,需要开启外部晶振(当然你也可以选择使用内部自带振荡器)、开启你需要的外设等等。
关于低功耗,
STM32这端,
1
2
那个电流表测整板的工作电流,没必要一一去测某一个模块。不同的IO设置会导致不同的漏电流,所以IO要设置正确,这个要注意额。TIM的时钟也建议都关掉吧,很耗电,采用外部中断唤醒或者RTC唤醒都可以的
给的代码就是在进入stop之前要把管脚这样设置的是么?
思路是不是这样:
1,进入stop之前将管脚重新设置,关闭不用的外设和时钟
2,进入stop指令
3,退出时进入中断,先重新配置管脚以及开启时钟和外设
stm32低功耗设 相关文章:
- stm32 低功耗设计[操作寄存器+库函数](11-25)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)