推荐星级:
- 1
- 2
- 3
- 4
- 5
【应用笔记】BlueNRG-LP BlueNRG-LPS+省电模式
资料介绍
为了在低功耗、短启动时间和可用唤醒源之间寻求最佳平衡,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)