STM32L系列低功耗
在stop模式下,稳压器为 Vcore(稳压器输出电压)域提供低功耗电压,用来保持寄存器和内部RAM中的数据。
为了最大程度降低功耗,在进入stop模式之前,VREFINT、BOR、PVD、和温度传感器可以被关闭,退出stop模式后,可以用PWR_UltraLowPowerCmd()打开他们。
PWR_UltraLowPowerCmd(ENABLE);//使能超低功耗模式;
内部参考电压的功耗也不是微不足道的,尤其在stop模式和standby模式。为了减小功耗,用这个函数设置PWR_CR的ULP位来关闭内部参考电压,然而,在这种情况下从stop模式或standby模式退出时,在内部参考电压启动时间内(3ms),通过内部参考电压管理那些功能是不可靠的。为了缩短唤醒时间,在进入stop模式或者standby模式之前,调用PWR_FastWakeUpCmd()函数(设置PWR_CR的FWU位),CPU就可以从stop模式或者standby模式唤醒而不用等待内部参考电压的启动。
if ULP=0(参考电压在低功耗模式下打开),FWU位被忽略。
if ULP=1(参考电压在低功耗模式下关闭),FWU=1:当从低功耗模式退出时,忽略参考电压的启动时间。
if ULP=1(参考电压在低功耗模式下关闭),FWU=0:CPU只有等到参考电压准备好才会从低功耗模式退出。
PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);//进入stop模式;设置PWR_CR寄存器的PDDS和LPSDSR位。PDDS:进入stop模式。
稳压器:
一个嵌入式的、线性的稳压器给除了待机电路外的所有数字电路供电。稳压器的输出电压在1.2~1.8V范围内,软件可配。
稳压器在系统复位后总是被使能。稳压器根据CPU应用模式不同,工作在三种不同的模式:主模式(MR),低功耗模式(LPR),掉电模式。
1、CPU工作在运行模式下时,稳压器工作在主模式并且为Vcore domain提供全部电量(包括核、寄存器、数字电路)
2、CPU工作再低功耗运行模式,稳压器工作再低功耗模式并且为Vcore domain提供低电量,以保存寄存器和内部RAM中的内容。
3、CPU工作再睡眠模式,稳压器工作在主模式并且为Vcore domain提供全部电量,以保存寄存器和内部RAM中的内容。
4、CPU工作再stop模式,稳压器工作再低功耗模式并且为Vcore domain提供低电量,以保存寄存器和内部RAM中的内容。
5、CPU工作在Standby模式,稳压器工作在掉电模式,除了standby电路外,寄存器和内部RAM中的内容都将丢失。
内部参考电压:
通过内部参考电压管理的功能有(BOR)欠压复位、可编程电压检测、ADC、LCD、比较器。内部参考电压总是使能的。
内部参考电压的功耗是不能被忽略的,尤其是在stop模式和standby模式。为了减少功耗,可以将PWR_CR寄存器的ULP(Ultra low power)位置位来关闭内部参考电压,然而在这种情况下,当从stop/standby模式退出时,通过内部参考电压管理的功能在内部参考电压启动时(3ms)是不可靠的。为了减少唤醒时间,CPU可以从stop/standby模式退出时不等待内部参考电压的启动。在进入stop/standby模式之前,将PWR_CR寄存器的FWU(Fast wakeup)置位可以实现。
无论FWU的值是多少,如果ULP位被置位,在进入stop/standby模式之前使能的以上这些功能,在进入stop/standby模式之后这些功能被禁止,并且当内部参考电压的启动结束后这些功能再次使能(通过做PVD的测试,好像并没有像手册说的那样再次使能,而是每次唤醒后要重新手动使能PVD)。在PWR_CSR寄存器的VREFINTRDYF 位表示内部参考电压是否准备好。
从stop模式唤醒后,系统时钟默认为MSI时钟,需要重新配置系统时钟。
任何的EXTI Line(内部的或外部的)中断或事件都能是CPU从stop模式唤醒。
CPU的低功耗特性只是做低功耗产品的开发的一部分,外围器件的功耗同样起决定作用。要想达到理想的功耗,CPU和外围器件必须能够完美的结合。在低功耗产品研发中,可能是我第一次接触此类产品的研发,功耗问题花费了我大量的时间,CPU在没有外部器件的情况下功耗是理想的,基本上与数据手册描述的一样,所选的外围器件的功耗也很低,但是CPU与外围器件连起来时功耗就很高。
下面我分享下我在做STM32L151低功耗(stop模式)研发中的一些经验:
1.外部器件能用IO口供电的就尽量用IO口供电,在stop模式下,CPU的IO口的状态是保持的,这样外围器件的供电开关很容易控制。像外部存储芯片可以用IO口供电。有些外围芯片不适合用IO口供电的,像有些射频芯片,因为这些射频芯片上电启动要相当长的时间。
2.最好别用standby模式。虽然standby模式对CPU来说功耗最低,但是standby模式有很多缺
STM32L系列低功 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)