推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

【应用笔记】BlueNRG-LP BlueNRG-LPS+省电模式

更新时间:2023-11-01 21:23:09 大小:715K 上传用户:xuzhen1查看TA发布的资源 标签:省电模式 下载积分:1分 评价赚积分 (如何评价?) 收藏 评论(0) 举报

资料介绍

为了在低功耗、短启动时间和可用唤醒源之间寻求最佳平衡,BlueNRG-LP、BlueNRG-LPS 硬件提供两种主 要省电模式: • Deepstop 模式 ‒ 系统和总线时钟均停止 ‒ 只有必要的数字电源区域工作,并以 1.0 V 供电 ‒ 存储区 RAM0 处于保留状态 ‒ 其他 RAM 存储区可以保留或不保留,具体取决于软件配置 ‒ 低速时钟可以运行或停止,具体取决于软件配置  ON 或 OFF  时钟源来自 LSE 或 LSI ‒ RTC 和 IWDG 保持活跃状态(如果启用,且低速时钟处于工作状态) ‒ 在 BlueNRG-LPS 上,LPUART 保持活跃状态(前提是启用,且低速时钟处于工作状态) ‒ 射频唤醒模块(包括其定时器)保持活跃状态(前提是启用,且低速时钟处于工作状态) ‒ 如果低速时钟处于关闭状态,仅可以从 GPIO (BlueNRG-LP 上的 PA0 到 PA15,以及 PB0 到 PB11;BlueNRG-LPS 上的所有 GPIO)唤醒;如果低速时钟处于工作状态,则还可以从 RTC、 IWDG 和 LPUART(仅限 BlueNRG-LPS)、射频模块和 Hal 虚拟定时器进行唤醒 ‒ 当上述源触发唤醒时,系统回到运行模式且所有外设启用。应用需等到高速晶振稳定后,才能从 deepstop 模式退出。 • Shutdown 模式 ‒ Shutdown 模式是功耗最小的模式。在 Shutdown 模式下,BlueNRG-LP、BlueNRG- LPS 处于超低 功耗状态:所有稳压器、时钟和 RF 接口均关闭。 ‒ BlueNRG-LP、BlueNRG- LPS 可以通过内部软件序列进入 shutdown 模式。退出 shutdown 模式的 唯一方法是对“RESET”引脚先进行置位再取消置位 请参考 BlueNRG-LP、BlueNRG- LPS 数据手册了解所有省电模式的功耗。 BlueNRG-LP、BlueNRG-LPS DK 软件包提供的软件支持所有 BlueNRG-LPS 硬件省电模式。 省电软件(函数 HAL_PWR_MNGR_Request())结合来自应用层 Radio 模块的操作模式的低功耗的请求, 选择适用于当前情况的最佳省电模式。 射频模块和应用请求之间的协商防止数据丢失,并由省电软件执行。 当 BlueNRG-LP、BlueNRG-LPS 退出任何省电模式时,会发生复位:所有外设配置和应用上下文均会丢失。 省电软件采用一种机制,在省电程序被调用时保存并恢复所有外设配置和应用上下文。因此,从应用的角度来 看,从低功耗程序退出是完全透明的:从省电模式唤醒时,CPU 继续执行省电函数被调用后的下一个指令。 省电软件执行下列省电模式: • POWER_SAVE_LEVEL_RUNNING ‒ 在该省电模式下,一切处于激活并运行的状态。不会使用该模式,定义其的目的是确保信息的完整 性:该模式并不属于真正的省电模式。 • POWER_SAVE_LEVEL_CPU_HALT ‒ 该省电模式执行 HW CPU-Halt 省电模式(只有 CPU 被停止) • POWER_SAVE_LEVEL_STOP_WITH_TIMER ‒ 该省电模式执行硬件 deepstop 模式(低速时钟开启)。器件处于深度睡眠状态,并且定时器时钟 源(LSI 或 LSE)仍然保持运行。可以从 GPIO (BlueNRG-LP 上的 PA0 到 PA15,以及 PB0 到 PB11;BlueNRG-LPS 上的所有 GPIO)、RTC、IWDG 和 LPUART(仅限 BlueNRG-LPS)、射 频模块和 Hal 虚拟定时器进行唤醒。 • POWER_SAVE_LEVEL_NOTIMER ‒ 该省电模式执行硬件 deepstop 模式(低速时钟关闭) ‒ 器件处于深度睡眠状态。所有外设和时钟源均关闭 ‒ 仅可以从 GPIO(BlueNRG-LP 上的 PA0 到 PA15,以及 PB0 到 PB11;BlueNRG-LPS 上的所有 GPIO)进行唤醒 其中 • level 是要启用的省电模式: ‒ POWER_SAVE_LEVEL_RUNNING ‒ POWER_SAVE_LEVEL_CPU_HALT ‒ POWER_SAVE_LEVEL_STOP_WITH_TIMER ‒ POWER_SAVE_LEVEL_STOP_NOTIMER • wsConfig 是唤醒时钟源配置 ‒ 它指定是否启用 RTC 唤醒源 ‒ 它指定是否启用 LPUART 唤醒源(仅适用于 BlueNRG-LPS) ‒ 由其指定被配置为待唤醒的 IO,这些 IO 遇到低电平会退出睡眠。(如果没有使用低电平唤醒的 IO, 则该参数须初始化为零) ‒ 由其指定被配置为待唤醒的 IO,这些 IO 遇到高电平会退出睡眠。(如果没有使用高电平唤醒的 IO, 则该参数须初始化为零) • negotiatedLevel 返回实际生效的协商后省电级别: ‒ POWER_SAVE_LEVEL_RUNNING ‒ POWER_SAVE_LEVEL_CPU_HALT ‒ POWER_SAVE_LEVEL_STOP_WITH_TIMER ‒ POWER_SAVE_LEVEL_STOP_NOTIMER 函数返回状态: • ERROR 代码 • SUCCESS 省电软件导出对应用有用的其他函数: • HAL_PWR_MNGR_WakeupSource () ‒ 该函数返回退出省电模式的最后一个唤醒源 • 返回值可以是以下值的组合: ‒ BlueNRG-LP:PA0 - PA15,PB0 - PB11,RTC,射频,定时器; ‒ BlueNRG-LPS:所有 GPIO 都能够唤醒系统,RTC,LPUART,射频,定时器

部分文件列表

文件名 大小
【应用笔记】BlueNRG-LP、BlueNRG-LPS+省电模式.pdf 715K

全部评论(0)

暂无评论