你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32WB55怎么配置蓝牙到低功耗广播状态?或者停止蓝牙广播后进入超低功耗并根据需要再次开始广播?

[复制链接]
轻灵晴川 提问时间:2023-6-14 16:17 / 未解决

使用STM32WB55RGV6作为主控设计了一款智能锁应用,请问怎么配置蓝牙到低功耗广播状态?目前根据例程,蓝牙运行期间cpu1进入stop2之后仍有4mA左右的电流,如何配置可以达到更低的功耗?或者临时关闭蓝牙之后再根据需要重新打开?

收藏 评论16 发布时间:2023-6-14 16:17

举报

16个回答
dvacos 回答时间:2023-7-13 21:58:17

轻灵晴川 发表于 2023-7-11 22:34
配置部分根据官方教程:<a href="https://wiki.st.com/stm32mcu/index.php?title=Connectivity:STM32WB_BLE_STM3">https://wiki.st.com/stm32mcu/index.php?title=Connectivity:STM32WB_BLE_STM3</a> ...

[md]功耗.png

上图是一个蓝牙设备的电流图,灰色高亮区域的平均电流,我们称之为底电流,这部分和蓝牙射频没什么关系,只要芯片和外设成功进入低功耗就会降低,其他的尖峰是蓝牙发射广播造成的高电流。

底电流高是你的外设 或 主控没有成功进入低功耗。尖峰基本不可调(即蓝牙的发射电流),只能降低尖峰电流的个数,即降低链接间隔

butterflyspring 回答时间:2023-6-16 10:27:20
  1. 1射频 RF**无需工作**
  • 如果射频 RF**无需工作(Active活跃) (BLE未广播,未扫描,未连接),即M0+从未启动,这样系统低功耗模式就可以由M4和配置和控制啦!STM32WB系统最低可进入StandbyShutdown模式。**
  • 需要配置**LL_C2_PWR_SetPowerMode(LL_PWR_MODE_SHUTDOWN)**
  1. 2射频 RF**需要工作,不能关停**
  • 如果射频 RF**需要工作(Active活跃)(BLE广播,扫描,连接)**
  • 对于**STM32WB55/50/35/30, STM32WB系统最低可进入的最低功耗模式是STOP2此时M4核处于Stop2模式,负责射频RFM0+核可仍然保持工作(Active活跃),当然没有射频数据收发时,M0+会自主的选择进入最优的超低功耗模式,M4核是无法配置和控制的。如BLE_HeartRate例程。**
  • 对于**STM32WB15/10,STM32WB系统最低可进入的最低功耗模式是standby with RTC。BLE_HeartRate**例程。
butterflyspring 回答时间:2023-6-19 10:17:48

轻灵晴川 发表于 2023-6-19 09:23
请问有什么方法可以在不复位的情况下关闭并再次打开蓝牙?

有个其他小伙伴的程序,你试试看

static void Adv_Cancel(void)

{

/ USER CODE BEGIN Adv_Cancel_1 /

BSP_LED_Off(LED_GREEN);

/ USER CODE END Adv_Cancel_1 /

if (BleApplicationContext.Device_Connection_Status != APP_BLE_CONNECTED_SERVER)

{

tBleStatus ret = BLE_STATUS_INVALID_PARAMS;

ret = aci_gap_set_non_discoverable();

BleApplicationContext.Device_Connection_Status = APP_BLE_IDLE;

if (ret != BLE_STATUS_SUCCESS)

{

APP_DBG_MSG(" STOP ADVERTISING Failed \r\n\r");

}

else

{

APP_DBG_MSG(" \r\n\r");

APP_DBG_MSG(" STOP ADVERTISING \r\n\r");

} }

/ USER CODE BEGIN Adv_Cancel_2 /

/ USER CODE END Adv_Cancel_2 /

return;

}

打开蓝牙:

static void Adv_Request(APP_BLE_ConnStatus_t NewStatus)

butterflyspring 回答时间:2023-6-14 17:44:13
RF部分没有工作时应该自动进入低功耗,通常应用只需要管理好M4这部分。
官方有关于进入STOP的例程,可以参考一下。
轻灵晴川 回答时间:2023-6-15 16:17:30
哪几个例程可以参考?cpu1进入stop2模式后仍有200多uA电流,是我进入的方式不对么?
轻灵晴川 回答时间:2023-6-15 16:21:34
butterflyspring 发表于 2023-6-14 17:44
RF部分没有工作时应该自动进入低功耗,通常应用只需要管理好M4这部分。
官方有关于进入STOP的例程,可以参 ...

如何停止RF部分?并且在需要时重新打开?
butterflyspring 回答时间:2023-6-16 10:28:32
butterflyspring 发表于 2023-6-16 10:27
[md]1. 1**射频** **RF****无需工作******

* **如果射频** **RF****无需工作****(Active****活跃****) (** ...

厂家也有个STOP2 的例程,适合第二种情况,可以参考一下。
轻灵晴川 回答时间:2023-6-16 15:52:16

butterflyspring 发表于 2023-6-16 10:27</p>
<ol>
<li>1<strong>射频</strong> <strong>RF**</strong>无需工作<strong>**</strong></li>
</ol>
<ul>
<li><strong>如果射频</strong> <strong>RF**</strong>无需工作<strong><strong>(Active</strong></strong>活跃<strong>**) (</strong> ...

[md]在“射频 RF** 需要工作,不能关停**”模式下M4核进入stop2后,如果不停止BLE广播,则会有4mA左右的电流消耗,如果使用app_entry.c中Reset_Device()函数关闭蓝牙后,系统功耗降低至300uA,关闭之后蓝牙也不能再次打开了。

请问如何配置蓝牙可以做到低功耗广播?

butterflyspring 回答时间:2023-6-16 17:17:15
蓝牙工作时,这部分电路(RF 工作时)确实耗电,这是省不下来的。相对于低功耗时比较多。
所以只有停止RF工作(M0+ 进入低功耗),电流才会明显下降。如果想更低,可以将M4进入STOP2。

不停止蓝牙,是不能省下更多电流的。也就是说低功耗广播是不存在的。
轻灵晴川 回答时间:2023-6-19 09:23:48

butterflyspring 发表于 2023-6-16 17:17
蓝牙工作时,这部分电路(RF 工作时)确实耗电,这是省不下来的。相对于低功耗时比较多。
所以只有停止RF工 ...

请问有什么方法可以在不复位的情况下关闭并再次打开蓝牙?

轻灵晴川 回答时间:2023-6-19 11:19:36

butterflyspring 发表于 2023-6-19 10:17
有个其他小伙伴的程序,你试试看</p>
<p>

[md]M4在进入stop4前执行了:

tBleStatus ret = BLE_STATUS_INVALID_PARAMS; ret = aci_gap_set_non_discoverable(); BleApplicationContext.Device_Connection_Status = APP_BLE_IDLE;

蓝牙被成功关闭,但是在唤醒后执行:

Adv_Request(APP_BLE_FAST_ADV);

却卡死,还需要哪里需要配置?

butterflyspring 回答时间:2023-6-20 16:34:46
很难说卡在哪里,官方的这个软件可以参考一下
STM32Cube_FW_WB_V1.16.0\Projects\P-NUCLEO-WB55.Nucleo\Applications\BLE\BLE_p2pServer
dvacos 回答时间:2023-6-30 14:33:19
你是不是不太了解蓝牙?蓝牙只要发送广播就是毫安级的电流(瞬间电流),但是我们组要关心的是,降低平均电流,所以想要降低平均电流,最简单的方法是**降低广播间隔**。

但是降低广播间隔会影响连接APP速度,但是子要不是要求超快链接的,广播间隔改到500ms,甚至更高都可以。
轻灵晴川 回答时间:2023-7-11 18:09:48

dvacos 发表于 2023-6-30 14:33
你是不是不太了解蓝牙?蓝牙只要发送广播就是毫安级的电流(瞬间电流),但是我们组要关心的是,降低平均电流 ...

我这边按照官方例程配置的,只要蓝牙打开就有持续6mA左右电流,发送广播的瞬间会更高,怎么配置可以消除这个持续的6mA?

轻灵晴川 回答时间:2023-7-11 22:34:27

配置部分根据官方教程:https://wiki.st.com/stm32mcu/index.php?title=Connectivity:STM32WB_BLE_STM32CubeMX&oldid=20002 来做的,不过没有使能UART跟踪和按钮功能,有其他的初始化或者配置方式吗?

12下一页
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版