STM8 自动唤醒(AWU)

以下资料由微雪电子整理并发布,未经许可不得转载,否则追究相应责任!

简介

AWU是用来当MCU进入低功耗的活跃停机(Active Halt)模式时提供一个内部的唤醒时间基准。该时间基准的时钟是由内部的低速RC振荡器时钟(LSI)或者通过预分频的HSE晶振时钟来提供的。
STM8的LSI时钟测量
在使用LSI低速内部时钟时,为了确保最好的精度,它的频率可以通过TIM3的输入捕捉1来测定。

STM8_AWU时钟框图
(表18:AWU时钟框图)

注意:LS低速时钟源的选择是通过编程CKAWUSEL选项位来实现的。详见时钟控制器章节。

AWU操作

为了使用STM8的AWU功能,按顺序执行如下步骤:
1.使用AWU_CSR寄存器的MSR位和TIM3的输入捕捉通道1来检测LS的时钟频率;
2.通过写AWU_APR的APR[5:0]位来定义适当的预分频值;
3.通过写AWU_TBR的AWUTB[3:0]来选择需要的自动唤醒延时;
4.置位AWU_CSR的AWUEN位;
5.执行HALT指令。
注意:计数器仅仅在HALT指令之后MCU进入活跃停机模式时才开始计数(请参考电源管理的活跃停机模式章节),AWU中断同时被使能。
预分频计数器仅仅在APR[5:0]值不同于它的复位值0x3F值时才开始计数。
空闲模式
如果不使用AWU,必须载入'0000'值到AWU_TBR的AWUTB[3:0]位来让STM8降低功耗。

时基选择

请参考AWU_PAR和AWU_TBR的说明。
AWU的时间间隔取决于AWUTB[3:0]位的值和APR[5:0]位的值(APRDIV),可以定义15种不重叠的时间间隔,如下所示:

STM8_AWUTB[3:0]选择
(表22: AWUTB[3:0]选择)


(表23: 当fLS=128 kHz,目标时间是78.5 ms时的一个例子 )

 

LSI低速内部时钟频率检测

在经过出厂校验后,在全温度范围内低速内部RC(LSI)振荡器的频率离散性是128 kHz+/-12.5%。为了获得精确的AWU时间间隔或者蜂鸣器输出,必须精确测量LSI频率。
可采用如下的步骤:
1.将AWU_CSR的MSR位置1来把LSI的内部时钟连接到TIM3定时器的ICAP1;
2.通过定时器的输入捕捉中断来测量LSI的时钟频率;
3.到向AWU_APR的APR[5:0]位写入一个适当的值来调整AWU定时间隔到期望的时间间隔。
 AWUTB[3:0]位可以被更改来选择不同的时间间隔。
LSI的时钟频率测量方法也可以被用来校准蜂鸣器的频率(见13.2.2)。

STM8 自动唤醒(AWU)

——