stm32 低功耗设计

stm32 低功耗设计

ID:6383075

大小:44.50 KB

页数:6页

时间:2018-01-12

stm32 低功耗设计_第1页
stm32 低功耗设计_第2页
stm32 低功耗设计_第3页
stm32 低功耗设计_第4页
stm32 低功耗设计_第5页
资源描述:

《stm32 低功耗设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、stm32低功耗设计最近使用STM32进行了一个低功耗应用设计,做一个小总结:1、SLEEP模式:很容易实现,可以由中断唤醒,但省电较少。这时候要配合时钟的关闭来节电:不需要用到的外设关闭时钟,要用到时才打开。例如USART:要发送数据前,把USART的时钟使能,数据包发送完成后,立即关闭时钟。2、STOP模式:需要外部中断唤醒。RTC报警唤醒给该模式带来了更加灵活的应用。但应用中有一个问题需要注意:在ADC数据采样的应用场合。如果使用STOP模式,假设采样率为200HZ,5毫秒唤醒一次启动ADC采样,通过测试STOP唤醒的周期并不是很固定(可能是唤醒后需要恢复时钟设置,

2、唤醒后自动使用内部的HSI时钟做为系统时钟),造成采样周期不是很固定,对滤波不利,例如工频陷波。以上一点总结,希望对大家有用。低功耗设计参考在ST官方提供的AN2821Clock/calendarfunctionalityfeatures应用笔记中关于控制器从Stopmode和Standbymode唤醒后的状态记录。官方原文:Stopmode:AfterthemicrocontrollerhasexitedtheStopmode,thebasicresetandclockcontrolcircuitry(RCC)hastobereconfiguredandaccessto

3、thebackupdomainhastobere-enabled.Standbymode:TheStandbymodeisthelowestpowerconsumptionmode.AfterthemicrocontrollerwakesupfromtheStandbymode,programexecutionrestartsinthesamewayasafterasystem/powerreset.译文:Stopmode:当控制器从Stopmode中唤醒后,RCC必须重新配置并且需要再次使能对备份区的访问。Standbymode:当控制器从Standbymode中唤醒后

4、,控制器将被复位,程序也将从复位后的地址开始执行。大家好:最近在做STM32的低功耗处理,在使用HSI 8M时钟正常RUN时测试电流做到5-6MA,现在想通过使用睡眠或掉电再或待机模式来进一步降低功耗。我现在整个系统要求使用电池供电,想通过定时睡眠定时唤醒来做低功耗处理,请大家给点建议。我在使用待机模式时,唤醒后STM复位了,官方SHEETDATA上讲的也不是很多,请问这三种低功耗模式是不是唤醒后都要复位???使用WFI指令,把你要处理的东西全放到中断里处理关闭不需要的外设时钟STM32低功耗实验总结1、首先回答一个问题,STM32能不能做低功耗?回答是肯定的,这个是有数

5、据支持的,我测试的STM32101CB,FLASH:128K,RAM:16K并且RTC工作的情况下,测试到的功耗为16uA应该说还是相当不错的。2、STM32低功耗有哪些需要注意的地方?一开始我测试到STM32为16uA的时候,还是非常高兴的,以为真的可以做为我的应用,我的应用是让MCU定时醒来干活,干一会就睡觉,可能干活的时间就几十个毫秒。可是后来发现有些问题(工作在STOP模式):1)时钟问题:STM32被唤醒以后的时钟自动切换到内部HIS RC振荡器,大家都是知道的,RC振荡器的精度是不高的。而且,睡觉前对于时钟的设置都是恢复到复位状态,只是时钟这个地方复位,其他的

6、没有。这也会带来一个问题,可能你睡觉前使用的是内部时钟,可是睡觉后,时钟却变了,带来的问题就是UART和定时器。或许你想不使用PLL,就是8M,这样醒来后的时钟HIS也是8M,这样虽然在时钟上没有差别了,但是时钟却不稳定了。UART波特率肯定不能太高,否则通信会有问题。2)醒来时间:这个问题也是个非常大的问题,datasheet上给出的醒来时间是7us,这个可能真的不假,但是醒来,不能马上干_你的活,为什么。初始化IO,你可能问,我不初始化不行吗,回答应该是否定的。因为,如果你想使用低功耗的话,睡觉前IO口都应该设置为模拟输入,这样才能达到datasheet上的14uA,

7、但是这样也带来一个问题,那就是初始化IO,醒来必须要初始化IO。如果你还想把时钟切换到外部时钟,耗时会更加长,接近200ms,因为STM32会等待外部时钟稳定后才能工作,然后还要在重新初始化所有IO,这个非常的耗时。可能我只需要醒来10ms,但是这些活干完就需要100ms。3)RTC唤醒:RTC这个也是个问题,为什么?大家需要注意的是RTC只能使用报警才能唤醒MCU,秒中断是不可以唤醒的。并且报警中断必须不停的设置,设置一次只生效一次,中断完了,还需要设置下次中断的时间。并且还有个问题,报警中断必须等待到秒中断到了之后才能设置

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。