STM8的定时唤醒单元的使用

STM8L的“RTC periodic wakeup unit”可以通过寄存器RTC_CR1的WUCKSEL[2:0] bits来配置不同的唤醒周期。具体的有以下的三种模式:
  1.1,WUCKSEL[2:0] = 0xxb for short wakeup periods
  1.2 WUCKSEL[2:0] = 10xb for medium wakeup periods
  1.3 WUCKSEL[2:0] = 11xb for long wakeup periods
其中short wakeup periods时钟的分频是如下流程:

              

则的周期唤醒在不同时钟源频率下的clk为:

  

  最小的唤醒周期为(0x0001+1)*0.125us = 0.25us

  最大的唤醒周期为(0xfffff+1)*31.25ms = 2048s

medium wakeup periods时钟源配置流程:

  

则的周期唤醒在不同时钟源频率下的clk为:

  

  最小的唤醒周期为(0x0000+1)*0.125us = 0.125us

  最大的唤醒周期为(0xfffff+1)*8192s = 536870912s

 long wakeup periods的时钟源计算和medium wakeup periods是一样区别就是WUCKSEL[2:0] = 11xb和重载的计数是从0x10000-0x1FFFF;

所有的时钟源的计算都遵循以下公式:

  单位HZ

目前公司项目是用LSE配置的1HZ使用halt的进入低功耗模式,休眠期间功耗为1.5ua左右。

另外在唤醒以后使用TIMEER1作为整个软件系统的嘀嗒时基,注意定时器休眠之前的操作,中断关闭,DeInitt定时器,关闭定时时钟,清定时中断标志等,不然会出现莫名重启。

目前软件运行休眠和唤醒都正常。

 

posted @ 2017-05-15 10:43  小小帝八哥  阅读(5004)  评论(0编辑  收藏  举报