简介 AWU是用来当MCU进入低功耗的活跃停机(Active Halt)模式时提供一个内部的唤醒时间基准。该时间基准的时钟是由内部的低速RC振荡器时钟(LSI)或者通过预分频的HSE晶振时钟来提供的。 STM8的LSI时钟测量 在使用LSI低速内部时钟时,为了确保最好的精度,它的频率可以通过TIM3的输入捕捉1来测定。
(表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种不重叠的时间间隔,如下所示: (表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)。 |