找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3832|回复: 0
打印 上一主题 下一主题
收起左侧

STM8S 芯片的AWU应用话题

[复制链接]
跳转到指定楼层
楼主
ID:98618 发表于 2015-12-7 00:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

整理:Miler Shao 

 

    对于STM8S系列或STM8L101系列芯片的低功耗模式中,有个活跃停机模式[Active Halt],可以使用AWU中断唤醒。



    从上表可以看出,活跃停机模式[Active Halt]有两种情形,细节这里就不延伸了,反正都可以
通过
AWU 或外部中断唤醒。下面主要就AWU及其应用作些基本的介绍。

 

    此处所说的 AWU,是指STM8S芯片内部的一个外设单元,叫自动唤醒单元[Auto Wake up Unit]。
是用来当STM8S芯片进入低功耗的活跃停机模式[ACTIVE  HALT MODE]时提供一个内部的唤醒时
间基准。该时间基准的时钟源来自LSI或者分频过的HSE。自进入活跃停机休眠模式起,每经过唤
醒时间基准单位后,便利用AWU中断唤醒MCU。 事后根据HALT指令再次进入活跃停机模式,如
此往复循环。

     当使用LSI,为了保障尽可能高的时间精度,它的频率可以通过TIMER3TIMER1的输入

捕捉进行测定。具体用那个 TIMER要看具体的数据手册。面是AWU的时钟框图:

 

     AWU的时钟源可以是LSI或者是经过分频后的HSE,得到的Fls,可以进行预分频,之后

AWU计数器进行计数。

    其中预分频系数由AWU_APR寄存器中的 APR[5:0]决定,最大64分频;那AWU计数器的
计数个数由
AWU_TBR寄存器中的 AWU_TB[3:0]决定,分为15个时基,是它最终决定唤醒
延时的时间长度。最长时间为 
64*30*2048AWU的 Fls脉冲所占时间,如果以Fls  128K
算,最长时间约为
30.72s 

AWU的操作步骤如下:

 

 

1步 意思很清楚了,上面提过。

2步是为了设定从进入休眠到唤醒的时间长度,即设置唤醒时基。

4步是使能AWU 唤醒功能。

5步就是发布STM8S MCU 进入活跃停机模式的指令

 关于AWU唤醒时间的计算

    上面提到过了,跟2个寄存器有关,分别是AWU_APR寄存器中的 APR[5:0]AWU_TBR中的AWU_TB[3:0]
APR[5:0]负责对AWU的时钟源进行分频,然后给AWU的计数器计数。AWU_TB[3:0]负责控制AWU计数器
记多少个脉冲,
一共有15个数据档,不同的档对应不同的计数个数。

    由于寄存器设置数据本身具有一定离散性和2个寄存器数据有可能有多种乘积组合,不难理解,对于具体的
 
唤醒间隔,这2个寄存器的参数有个最佳组合问题,原则是尽可能靠近你所希望的时间间隔。关于这点,ST 
 
官方参考手册有示例说明,可以借鉴参考。

    最后温馨提醒:

1AWU的时钟源Fls,是通过对CKAWUSEL选项位编程选择,经常有人找不到位置;

2AWU的计数器只有在HALT指令之后 且MCU进入活跃停机模式时才开始计数,与此同时并使能AWU中断。

3AWU_APR寄存器中的 APR[5:0]的系统复位后的默认值是0x3f,切不可顺手就使用该

默认值,否则AWU的计数器不工作。这点也的确有人在此流连忘返过。

4、接着第2点罗嗦下,当MCU回到运行模式时AWU是停止计数工作的。当再次进入活跃停机模式时重新初始化
并开始计数延时。

 

 

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表