大家知道意法半导体STM32产品中有四个系列,其中一个很重要的系列是超低功耗系列,今天我们就来聊一下STM32超低功耗系列产品。
意法半导体的超低功耗系列有非常优秀的低功耗表现,在EEMBC(嵌入式微处理器基准测评协会)的一个测评排名中,STM32L4系列的功耗可谓首屈一指,那我们就来看一下STM32L系列为什么可以做到那么低的功耗以及是如何做到的。
这篇文章先来说一下STM32L低功耗系列有哪些产品以及不同产品中低功耗模式的对比,之后我们还会发表后续文章,感兴趣的朋友可以持续关注。
超低功耗模式中的不同产品系列
有M0+内核的STM32L0,有Cortex-M3内核的L1以及Cortex-M4内核的L4和L4+,其中L0和L1都有5种低功耗模式,这5种低功耗模式分别是低功耗的运行、睡眠、低功耗睡眠、停止和待机。对于L4和L4+,它们在5种低功耗模式基础上又添加了停止模式下的两个状态,也就是stop 1、stop 2和关断模式。
那这么多模式是怎么定义出来的呢?
从STM32的历史来说,最早是时候是沿用arm内核的低功耗概念,这个概念里面具有睡眠模式、停止模式、待机模式,但随着工艺的不断提升,ST有更多更低功耗的模式出来,像L4产品就做到了非常低的功耗的shutdown模式。
低功耗运行模式
其实低功耗运行模式还是一种运行模式,只是它的电流消耗很低,它与运行模式最大的区别是给内核供电的内部电压调节器电压要低于正常的运行模式下的电压值,也就是它使用的是低功耗电压器来供电,所以系统最大的相对运行频率也会很低,像L4在低功耗运行模式时最大的频率不超过2MHz,对L1来说,它不能超过121KHz。
睡眠模式
在睡眠模式,系统的CPU也就是Cortex-M内核的时钟被关闭了,但外设是继续保持运转的它整个I/O的引脚状态与运行模式下也是相同的。
低功耗睡眠模式
低功耗睡眠模式是基于睡眠模式下的低功耗模式,是具有极低电流消耗的睡眠模式,它内核的时钟也是被关闭的,同时外设时钟频率受到了限制,因为它的电压调节器属于低功耗状态,内部的FLASH是要被停止的,所以低功耗睡眠模式只能从低功耗运行模式进入,这个是和其他模式不同的,其他模式都可以从运行模式直接做切换。
在低功耗运行和睡眠模式下,可以有一个BAM模式,它的工作方式是通过RTC加一个外设加DMA加SRAM,在不需要CPU干预的情况下就可以自行做数据采集,一旦到了数据采集需要到CPU处理的条件时,然后再把CPU唤醒做处理,所以这整个一个小系统就实现了一个协处理器的功能。
停止模式
在说停止模式之前,为了说清楚停止模式和睡眠模式的区别,我们先说一下Vcore的概念,它是内核的一个供电区域,不仅给CPU内核供电,还会给系统内部的存储器和它的数字外设供电。
停止模式中,除了CPU,也就是Cortex-M内核的时钟被关闭外,内核供电域的时钟也被停止,在停止模式下,内核供电域的时钟全部都停掉,PLL内部、外部的高速时钟全部都停掉,电压调节器为内核供电域供电,保留寄存器和内部SRAM中的内容。
在L4和L4+系列中,停止模式被细分为stop 0、stop 1和stop 2三种模式,按照功耗从低到高来说,stop 2是功耗最低的一个stop模式,它整个Vcore电源域放在了更低的漏电流模式下,使用了低功耗的电压调节器,只有最少的外设可以工作,所以它的功耗相对来说是最低的,但是唤醒时间是最长的。
Stop 1模式提供了更多的外设和唤醒源,唤醒时间也会更长一些;
Stop 0模式主电压调节器打开,可以得到最快的唤醒时间;
在所有的stop模式下,所有的高速振荡器停止,而低速振荡器保持活动,外设设置为active,需要的时候就可以使用这些高速时钟,能保证它在一些特定的事件下去唤醒设备。
待机模式
在待机模式下,内核的供电是直接断电的,电压调节器掉电区寄存器的内容会完全丢失,包括内部的SRAM,所以最大的区别就是说,系统从待机模式下的低功耗唤醒的时候,系统是要复位的。
待机模式下,BOR是始终使能的,这样就保证了供电电压低于所选功能阈值时,器件可以复位。默认条件的待机模式下,SRAM的内容是会丢失的,但是在L4里增加了SRAM 2,如果需要在待机模式后系统唤醒的时候有SRAM能保存一些内容,那就可以使用SRAM 2,它需要有多余220nA的额外电流消耗。
Shutdown模式
在shutdown模式,系统达到了最最低的功耗,电压调节器的供电就被关断了,内核的供电也完全被断开,只有备份域的LSE、RTC可以工作所以在L4器件实现了一个新的模式,这个模式主要实现的目的就是为了延长电池供电之后整个器件的使用寿命,它其实是通过关闭内部的稳压器以及禁止使用耗电的监控,所以这个模式可以达到最低的功耗电流。