本文作者:ST工程师
点击下载pdf文档查看:
问题
一些客户基于 ST 的 2.4G 方案设计产品,需要用到低功耗模式及相关的低功耗唤醒功能。低功耗唤
醒方式包括定时唤醒和 GPIO 唤醒。
背景: 有些客户在做上述功能会依照典型低功耗蓝牙的产品的应用方式,调用低功耗蓝牙协议栈中的 某些 API,诸如函数:BlueNRG_Stack_Initialization 和 BTLE_StackTick 来实现其低功耗模式。这样做是 错误的。其实 2.4G 私有协议和低功耗蓝牙协议在单个应用中是互斥的,不能同时存在。
所以问题就变成了,如何基于 ST 的 2.4G 私有协议参考方案实现低功耗模式及低功耗唤醒功能。
回答
1. 客户可以基于ST软件包中的SleepTX/RX演示代码,按照下面的步骤确认相关功能。下图一 给出了测试平台,使用 1 块 LPM01A 板子测试 ST 评估板上的 BlueNRG-1/2 的实时功耗。
a. 在参考代码主环中注释掉调用函数“BlueNRG_Sleep”的代码行,重新编译、烧录程序后可以得到 如图二的实时功耗波形,发现其底电流在 5000uA 左右,说明芯片没有进入低功耗模式;在参考 代码主环中恢复调用函数 “BlueNRG_Sleep”的代码行,重新编译、烧录程序后可以得到如图三的 实时功耗波形,观察其底电流,说明芯片可以进入低功耗模式。
b. 在代码文件“main_common.h”做如下更改,增大WAKEUP_TIME到5秒.
c. 在出现主环中更改代码如下,添加IO13作为唤醒源,低电平有效(对应EVAL板上的 PUSH1 按钮)。
d. 下图四中显示了上电后固定的5秒发包间隔和使用PUSH1按键后系统唤醒过程中的实 时功耗波形。