历史上的今天
今天是:2025年07月16日(星期三)
2019年07月16日 | STM32开发笔记24:STM32L0低功耗设计——需求概述
2019-07-16 来源:eefocus
单片机型号:STM32L053R8T6
这几篇日志将详细记录,自己应用stm32进行低功耗设计的全过程。
使用芯片:STM32L053R8T6
运行模式:
Range 1:电源电压限制在1.71-3.6V,CPU最大运行频率为32MHz。
Range 2:CPU最大运行频率为16MHz。
Range 3:CPU最大运行频率4.2MHz
低功耗模式:
Sleep mode(睡眠模式)、Low-power run mode(低功耗运行模式)、Low-power sleep mode(低功耗睡眠模式)、Stop mode with RTC(带有RTC的停止模式)、Stop mode without RTC(不带RTC的停止模式)、Standby mode with RTC(带有RTC的旁路模式)、Standby mode without RTC(不带RTC的旁路模式)。
在上述这些模式中功耗依次降低,具体值为:
Sleep mode:37uA/MHz
Low-power run mode:8uA
Low-power sleep mode:4.5uA
Stop mode with RTC:1uA
Stop mode without RTC:0.4uA VDD=3.0V
Standby mode with RTC:0.85uA VDD=3.0V
Standby mode without RTC:0.29uA VDD=3.0V
在上述这些模式中,使用时应注意以下几点:
1、睡眠模式,在所有外设全部关闭的条件下,16MHz时,电流为1mA左右,这个数值相对自身的项目来说还是有些大;
2、低功耗运行模式和低功耗睡眠模式,都限制了CPU的最大运行速度,如果CPU需要一直工作选择,该模式是比较合适的;
3、停止模式,电流比较低,唤醒的方法也比较多;
4、旁路模式,里面的RAM中的数据全部丢失,相当于复位重启。
综上所述,停止模式是比较适合大部分项目的,我现在着手于选择停止模式,还完成后续的项目设计工作。
Stop mode without RTC
在停止模式时,RAM和寄存器中的数据全部保留。所有的时钟全部停止,包括PLL、MSI RC、HSI、LSI RC、HSE和LSE 。下图是我项目中用到的时钟的基本情况,仅使用了HSE和PLL。
在stop运行模式时,一些具有唤醒功能的外设,当探索到唤醒条件时,能够使能HSI RC时钟。
在stop运行模式时,电压稳压器处于低功耗模式。任何外部中断先,在3.5us的时间内即可唤醒器件,处理器将处理中断程序或执行后续代码。在STM32中,任何一个GPIO都可以设置为外部中断源,也就是说可以使用任何一个引脚的电平变化,来唤醒CPU。CPU也可以被USB/USART/I2C/LPUART/LPTIMER唤醒。
在本项目中,我希望使用USART或者LPUART进行唤醒,在现阶段USART已经调通。
项目结构
项目的大体结构为:12V给线路板供电,使用DCDC稳压到5V给无线传输模块供电,使用低压差线性稳压芯片稳压为3.3V给STM32L053R8T6供电。无线模块与STM32采用串口连接,平时STM32进入stop模式,当有无线模块发送过来的数据时,唤醒STM32。
当前功耗
下面记录一下现阶段的功耗情况,后面慢慢加入。
只焊接DCDC:232.7uA,此处说明DCDC在空载的情况下,功耗还是比较大的,我的项目限制于12V供电,所以没有太好的方法。如果不需要高电压,建议采用锂电池直接供电,这部分功耗就生下来了。
DCDC两端加大电容:230uA,焊接电容后,由于仍然是空载状态,所以电路电流的下降是一个缓慢的过程,这和给电容的充电曲线是相符合的,最后停留在230uA左右,比不加电容还低3uA,这说明增加电容,可以增加DCDC的转换效率。
简单程序正常运行:4.3mA,程序除了初始化相应的外设外,不进行任何逻辑操作。
STM32处于STOP模式:236uA,板子上只有一个低压差的稳压芯片,没有焊接其它外设。
STM32处于STOP模式(焊接无线模块):233uA,这个挺神奇的,当然我这个模块还没有进行软件设置,可是电已经供上了,表有问题?
史海拾趣
|
------------------------------------------------------------------- 基础篇: 1: 这是宣传册,资源概览 STM32 2008年回顾暨2009年新产品预告 STM32应用实例 STM32F10x 大容量Flash 产品介绍 2:芯片手册 STM32F101xx 和STM ...… 查看全部问答> |
|
各位有没有想过, 到底CCD上那片玻璃片是干嘛用的?--- 那片滤光片,正确名称叫”光学低通滤波器” (OLPF)! 啊!不就是片破玻璃片嘛! 且听我道来: 滤光片的功用:1.滤除红外线. 2.修整进来的光线 滤除红外线: 彩色CCD也可感应红外线,就是因为会感应 ...… 查看全部问答> |
|
在工作场合中透露私事很危险 现在我们大部分人有太多时间跟同事一起过,我们跟同事在一起的时间有时甚至超过跟家人在一起的时间,这种情况使我们有时分不清公事和私事,有时候觉得跟同 事的关系像亲人一样,跟同事分享自己的私事,孩子养育问题, ...… 查看全部问答> |
|
我用CH7005将LCD信号转换成VGA输出,在640*480分辨率下能在VGA输出,但是在800*600分辨率下不能输出。 640*480分辨率的相关注册表配置如下:(谢谢知道的大侠指点下这些该怎么配置,下面的配置是借别人的配置)\"Clkval_TFT\"= DWORD:1 \"vbpd\" ...… 查看全部问答> |
|
程序里已经实现TTS的播放,也就是代码里已经实现过对WinCE音频设备的打开与关闭, 可是我不会播放wave文件,从我的猜想中播放wave文件是不是与TTS一样(TTS是把文字转换成音频数据)把wave文件的二进制内容压入到wince音频设备的通道里去? 这只 ...… 查看全部问答> |
|
我想在编译CE5.0内核时候将mfcce400.dll文件加到内核文件中去. 这样运行应用程序时候就可以直接运行.而不需要事先将错就mfcce400.dll加到板子上的CE中去. 我在platform.bib文件中的module加上: mfcce400.dll $(_FLATRELEASEDIR)\\mfc ...… 查看全部问答> |
|
我想问一下 430的AD通道的输入阻抗大不大啊!我的传感器进来的信号是10v的,我通过阻容电路滤波分压后,再经过运放的电压跟随后进430,我现在不想用运放跟随,直接进430.不知道信号会不会有什么损失啊!就是我的信号会不会失真啊!430的ad通道的输入阻抗大 ...… 查看全部问答> |




