stm8 低功耗 RTC唤醒

stm8 低功耗 RTC唤醒

本人在网上百度了很多教程以后,受益匪浅,但很多时候看的半知半懂,所以觉得写一篇完整的教程给大家。

降低功耗的方法

降低系统时钟:
比如你现在的系统时钟为主时钟16M,那么你可以通过分频器降到8M,2M等:
CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);
关闭未使用的时钟:
从我入门单片机以来,没进入低功耗的世界时,一般都是习惯用哪个时钟把哪个时钟打开,如果是低功耗单片机,我们可以把不用的外设关掉,比如我们关掉TIM1时钟:
CLK_PeripheralClockConfig(CLK_Peripheral_TIM1,DISABLE);
关闭所有未使用的模拟功能块

如果你的设计方案在低功耗模式下,不需要CPU运行的话,那么你可以选择将stm8进入以下模式:
等待(Wait)
活跃停机(Active Halt)(可配置为慢速或快速唤醒)
停机(Halt) (可配置为慢速或快速唤醒)

我们主要讨论这三种模式:
在这里插入图片描述

等待模式:

在运行模式下执行WFI指令,进入等待模式。
COU停止运行,外设与中断控制器仍保持运行,可外设时钟门控,降低CPU频率,以及选择低功耗时钟源(LSI,HSI)结合使用。
所有寄存器与RAM的内容保持不变,之前所定义的时钟配置也保持不变。
当一个内部外部中断请求产生的时,CPU从等待模式唤醒并恢复工作。

停机模式:

主时钟停止,由fMASTER提供时钟的CPU及所有外设均被关闭,因此所有外设均被关闭。
所有寄存器与RAM的值保持不变,默认情况下时钟配置也保持不变。
MCU通过执行HALT指令进入停机模式,外部中断可将MCU从停机模式唤醒。
这种模式下,主电压调节器关闭,仅低电压调节器处于工作状态。

为了减少MCU的唤醒时间,
建议在进入暂停模式前选择HSI做为fMASTER的时钟源。

活跃停机模式:

活跃停机模式与停机模式类似,但它不需要外部中断唤醒。它使用AWU,在一定的延时后产生一个内部唤醒事件,延迟时间是用户可编程的。

在这里,我们介绍一下AWU:
AWU是用来当MCU进入低功耗的活跃停机(Active Halt)模式时提供一个内部的唤醒时间基准。该时间基准的时钟是由内部的低速RC振荡器时钟(LSI)或者通过预分频的HSE晶振时钟来提供的

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值