作者:吴璇 李珂
S08QL系列在1.8至3.6V的电压范围内提供极高的能效,非常适合高性价比、电池敏感的便携式低功耗应用。
除了运行模式和等待模式外,S08QL还提供多种低功耗模式,具有两种超低功耗停止模式、低功耗运行模式和低功耗等待模式。
今天小编就为大家介绍一下S08QL低功耗模式的使用方法。
1. S08QL的电源模式和时钟模式
1.1 电源模式
S08QL是一款超低功耗、小封装、超高性价比的MCU,提供了RUN、LPRUN、WAIT、LPWAIT、STOP2、STOP3这6种电源模式。
从这6种电源模式的节能程度来看,功耗对比为:
STOP2
但是,节能效果越好的电源模式其外设受限程度越高。对于各电源模式之间的转换可参考下图:

在各个模式下,内部调压器的状态如下表:

使用S08QL进行低功耗设计时,需要进行以下配置以减少功耗:
● 低功耗设计时,需要在SCGC1和SCGC2寄存器中,关闭所有未使用的外设时钟, 减少外设产生的功耗。
● 将所有未使用的I/O引脚配置成上拉,使浮空的引脚保持在一个确定的电平,减少电流的消耗。
1.2 时钟模式
S08QL的低功耗特性与时钟模式的选择有关,选择合适的时钟模式可以降低MCU的功耗,保证MCU的低功耗运行和快速唤醒。
关于S08QL时钟的详细说明可以阅读S08QL参考手册第11章,现在对MCU在低功耗模式运行时涉及的时钟进行简单介绍。
S08QL的可选时钟源有3种:内部时钟源、外部时钟源和LPO(1k-Hz,只用于RTC和COP)。
通过时钟管理模块(ICS)对时钟进行配置后,S08QL有7种可用的时钟操作模式:FEI、FEE、FBI、FBILP、FBE、FBELP和STOP。
关于时钟的产生与分配可以参考下图:


现在对MCU低功耗模式下经常使用的FBELP和STOP两种时钟模式进行介绍。
关于时钟模式FBELP:
当系统时钟配置成FBELP时,MCU才能从RUN切换到LPRUN或LPWAIT电源模式。FBELP时钟模式下只能选择外部参考时钟源,且生成系统时钟时旁路掉锁频环FLL。配置FBELP时,在ICS模块的ICSC2寄存器的LP位写1,锁频环FLL在旁路模式下被禁用。
关于时钟模式STOP:
当MCU执行STOP指令进入电源模式STOP2或者STOP3时,MCU的时钟也会进入STOP模式。如果执行指令前不对ICS的STOP模式进行配置,MCU进入STOP2或STOP3后,ICSIRCLK时钟和OSCOUT时钟均不可用。
MCU执行STOP指令前,须对ICS进行以下配置,MCU进入STOP3模式ICSIRCLK时钟仍可用:
● ICSC1_IRCLKEN和ICSC1_IREFSTEN位都写1。
MCU执行STOP指令前,对ICS进行以下配置,MCU进入STOP3模式或STOP2模式后OSCOUT时钟仍可用:
● ICSC2_ERCLKEN和ICSC2_EREFSTEN位都写1。
关于LPO时钟源:
LPO是1-KHz的内部低功耗振荡器,可为RTC和COP提供时钟。MCU在STOP2或STOP3模式时,低功耗时钟LPO仍可以正常工作,RTC唤醒时也可以使用时钟LPO。
2. 低功耗电源模式的配置方法
2.1 RUN(运行)模式和LPRUN(低功耗运行)模式
RUN(运行)模式
RUN模式是MCU复位后的默认运行模式,片内电压调节器可以完全调节,MCU可以全速运行在各种时钟模式下,MCU性能最佳。
LPRUN(低功耗运行)模式
LPRUN模式时,能使用最小的能耗保证CPU的正常工作;电压调节器处于待机状态,提供MCU低频率运行的电压;外设均可以运行,但总线时钟只能配置为FBELP模式,且最大总线时钟频率要低于125kHz;不能对Flash进行编程或者擦除;在LPRUN、LPWAIT、STOP3模式且低电压检测不开启时,ADC和ACMP的间隙参考电压不可用;WAIT、LPRUN、LPWAIT、STOP3模式下,ADC的可用时钟源只有ADC内部产生的ADACK。
从RUN模式进入LPRUN模式,需要执行下面的全部操作:
● 在SCGC1和SCGC2寄存器中,关掉未使用外设模块的时钟;
● 将所有的I/O引脚配置成内部上拉模式;
● SPMC1_LVDE位和SPMC1_LVDSE位写0,关闭低电压检测
● 在ICS模块中,把ICSC2_HGO位写0,将MCU时钟模式配置成FBELP,保证总线时钟频率小于125kHz;
● 完成以上配置后,在SPMSC2寄存器中将LPR位写1,MCU进入LPRUN低功耗模式。
从LPRUN模式恢复到RUN模式主要有三种方法,执行以下任意操作便能成功实现模式转换:
● 将SPMSC2寄存器的LPR位写0,此时读LPRS状态为0,MCU恢复到RUN模式。
● MCU中断退出LPRUN模式:将SPMSC2寄存器的LPWUI位置1,中断产生时SPMSC2寄存器的LPR和LPRS位都为0,MCU恢复到RUN模式。
● MCU产生的各种Reset,都会将清除LPR和LPRS位,MCU恢复到RUN模式。
LPRUN模式还可以进入到更省电的STOP3模式:
● 执行STOP指令,MCU从LPRUN模式进入STOP3模式
2.2 WAIT (等待)模式和LPWAIT(低功耗等待)模式
WAIT (等待)模式
WAIT模式下电压调节器可以全速调节,与RUN模式相比,WAIT模式下会将CPU的时钟关闭,进入省电的待机状态,外设还可以继续运行。
从RUN模式进入WAIT模式的方法:
● 执行WAIT指令
从Wait模式恢复到RUN模式的方法:
● MCU产生任何中断都会将电源模式切换到RUN模式
● MCU产生的各种Reset,使MCU恢复到RUN模式
LPWAIT(低功耗等待)模式
LPWAIT模式和LPRUN模式的基本情况相同,但LPWAIT模式时CPU时钟关闭,进入省电的待机状态,可以进一步降低功耗。MCU只能从LPRUN模式进入LPWAIT模式。
从RUN模式进入LPWAIT模式时需要执行下面的全部操作:
● 将MCU电源模式切换到LPRUN模式
● 执行WAIT指令,MCU切换到LPWAIT模式
MCU从LPWAIT模式切换到其他电源模式时有两种选择,可以恢复到正常运行的RUN模式,也可以恢复到LPRUN模式。
从LPWAIT模式切换到LPRUN模式的方法只有一种:
● SPMSC2寄存器的LPWUI位写0,中断产生时,片内电压调节器仍是待机状态,MCU从LPWAIT模式切换到LPRUN模式。
从LPWAIT模式切换到RUN模式的两种方法:
● SPMSC2_LPWUI位写1,中断产生时,片内电压调节器从待机恢复到全速状态,MCU从LPWAIT模式切换到RUN模式。
● MCU的任何复位操作,都会使MCU从LPWAIT模式切换到RUN模式。
2.2 STOP(停止)模式
STOP模式分为STOP2模式和STOP3模式,总线时钟和CPU时钟都停止工作。执行STOP指令可以使MCU从RUN模式进入STOP2模式或STOP3模式,也可以使MCU从LPRUN模式进入STOP3。
现将执行STOP指令前,MCU进入STOP2或者STOP3模式的寄存器配置总结如下:

STOP2模式
STOP2模式是S08QL中最省电的一种电源模式,片内电压调节器会部分断电,除了RAM、RTC和低功耗振荡器(LPO)没有掉电外,MCU的其他电路都会断电,且所有I/O引脚的状态锁存。
从RUN模式进入STOP2模式需要完成以下全部操作:
● 将SOPT1寄存器的STOPE位写1,使能STOP模式。
● 将SPMSC1寄存器LVDE和LVDSE位写0,关闭低电压检测功能;
● 将SPMSC2寄存器PPDC位写1,使能STOP2低功耗式。
● 执行STOP指令。
从STOP2模式只能恢复到RUN模式,有以下两种方法:
● 通过唤醒引脚唤醒:SOPT1_RSTPE位写1,将PTA5/IRQ/TCLK/RESET引脚配置成复位引脚,可将MCU从STOP2模式唤醒
● RTC中断可以将MCU从STOP2模式中唤醒
RTC中断唤醒时,可用时钟仅有LPO和STOP模式下的OSCOUT。
RTC将MCU从STOP2唤醒后,SPMSC2_PPDF标志位产生,会进行一个POR复位,除SPMSC1~3寄存器和RTC的寄存器外,其他所有的寄存器都会复位;SPMSC2_PPDACK位写1 会清除PPDF标志位,I/O状态不再保持,MCU唤醒过程结束。
STOP3模式
STOP3模式下,片内电压调节器处于待机状态,仍为MCU低频率运行提供所需电压;所有的内部寄存器和逻辑,RAM的内容,以及I/O引脚都进行状态保持;LPO,STOP模式下的ICSIRCLK;OSCOUT都是进入STOP3模式后的可用时钟。
从RUN模式进入STOP3模式的方法:
● SOPT1寄存器的STOPE位写1,使能STOP模式。
● 在SPMSC1寄存器中将LVDE和LVDSE位写0,关闭STOP模式下低电压检测功能;
● SPMSC2寄存器中,把PPDC位写0, 使能STOP3低功耗模式。
● 执行STOP指令
STOP3模式可以与RUN、LPRUN两种电源模式进行转换。
从STOP3模式进入到LPRUN模式:
● SPMSC2寄存器LPWUI位写0,RTC、LVD、LVW、ADC、ACMP、IRQ、SCI、KBI的中断,将MCU从STOP3模式进入LPRUN模式。
从STOP3模式可以恢复到RUN模式:
● RESET引脚复位。
● SPMSC2寄存器LPWUI位写1,RTC、LVD、LVW、ADC、ACMP、IRQ、SCI、KBI的中断将MCU从STOP3模式恢复到RUN模式。
使用SCI唤醒时注意,在STOP3模式下,SCI模块只有接收端有效边沿检测电路还保持工作状态,将SCIBDH_RXEDGIE写1, 当接收端引脚检测到有效边沿时,中断产生才能将MCU从STOP3模式唤醒。
3. S08QL选型
这是S08QL产品的配置框图:

下面是S08QL产品的基本参数表:
