0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用STM32WB设计BLE应用时影响功耗的内容

STM32单片机 来源:STM32 作者:STM32WB 2021-06-22 17:47 次阅读

功耗是物联网应用当中非常关键的因素,在开发的早期都会对功耗进行评估和测试。那么,如何使用ST提供的工具对动态功耗进行测量呢?针对BLE应用应当如何进行低功耗的设计呢?本篇跟大家一起聊聊该话题

测量工具

在本文中使用CubeMonitor-Power + Power Shield的组合工具对STM32Nucleo开发板的动态功耗进行测量。

CubeMonitor-Power是ST提供的上位机软件,主要帮助用户动态的测量功耗。用户可以设定采样频率,采样时间,输入电压等。其界面如下:

X-NUCLEO-LPM01A是ST提供的一块功耗测量的评估板,它可以配合CubeMonitor-Power上位机软件,对目标板的动态功耗进行测量,方便开发者对功耗进行评估。

其特性如下:可编程电压源范围:1.8v~3.3v

静态测量:

电流范围:1nA~200mA

动态测量:

电流范围:100nA~50mA

100KHz带宽,3.2Msps采样率

功耗测量范围:180nW~165mW

X-NUCLEO-LPM01A与STM32WB Nucleo板的连接如下所示,完成连接后就可以通过上位机控制和测量Nucleo的功耗了。

不同低功耗模式的区别主要如下:

低功耗模式唤醒源唤醒后系统时钟时钟影响

Sleep中断/事件与进入前一样CPU时钟关闭,对其他时钟或模拟时钟源无影响

LPRUN清除LPR位与进入前一样无

LPSLEEP中断/事件与进入前一样CPU时钟关闭,对其他时钟或模拟时钟源无影响

Stop0/Stop1/Stop2任意EXTI,特定外设事件

STOPWUCK=1,HSI16STOPWUCK=0,MSI

所有时钟关闭,除了LSI和LSE

StandbyWKUP引脚,RTC事件,LSECSS,NRST引脚复位,IWDG重置HSI16

ShutdownWKUP引脚,RTC事件, NRST引脚复位MSI 4MHz所有时钟关闭,除了LSE

STM32WB支持的低功耗模式非常多,首先需要根据应用情况选择一个适合的低功耗模式,能保持BLE连接的低功耗模式主要有Sleep和STOP,

SMPS

LDO是一种线性电源,它的优势在于结构简单,电流纹波比较低,但电源效率偏低。

SMPS是一种开关电源,它的优势在于电源效率高,损耗小,但由于频率较高会对周围设备造成一定的干扰,需要注意。

通过修改Nucleo板子上的SB31可以控制LDO还是SMPS供电:SB31打开:SMPS打开SB31关闭:SMPS关闭软件侧,打开SMPS,修改app_conf.h代码如下:

#define CFG_USE_SMPS 1

关闭SMPS,使用LDO,修改app_conf.h代码:#define CFG_USE_SMPS 0

从以上图片可以看出,使用SMPS无论是平均电流还是低功耗状态下的电流都要更小,所以应当尽可能使用SMPS。

广播参数

使用BLE_HeartRate Demo不需要做任何修改就可以测试不同的广播参数,该demo默认会先进行一段时间快速广播,然后再进入慢速广播。

广播间隔不同,平均功耗不同。

左侧图片的广播间隔为80ms~100ms,平均电流为282.914 uA。右侧图片的广播间隔为1s~2.5s,平均电流为16.443 uA。

可以看出广播间隔的长短对功耗影响很大,所以在设计BLE应用的时候,应当考虑适当降低广播间隔。

为了保证尽快被对方设备发现,可以如ST 心率Demo中的做法类似,首先先进入一段时间的快速广播,然后使用慢速广播,这样既可以保证开机时被发现的速度,又可以降低平均功耗。

连接参数

测试修改连接参数,可以使用ST提供的P2P Demo。注意:只有主机才能修改连接参数。

通过Button SW2按键,切换并测试不同的连接参数,代码修改如下图:打开Button SW2的中断:

4242969e-cffc-11eb-9e57-12bb97331649.jpg

关闭trace后,可以使能低功耗:

连接dongle后,按下Button后,切换不同的连接参数:

由于BLE在没有数据传输时,也会发送空包,所以降低连接间隔,可以降低平均功耗。

如图所示,左边是使用125ms连接间隔测试的结果,右边是使用1250ms连接间隔的测试结果,左边比右边的平均电流要高近 140uA。所以在应用中可以根据具体的应用使用合适的连接间隔来降低平均功耗。

总结

本文介绍了使用STM32WB设计BLE应用时,影响功耗的各方面的内容。低功耗设计的好坏,直接关系到产品的使用时长,往往是优秀产品的必备要素,需要认真掌握。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2266

    文章

    10872

    浏览量

    354826
  • BLE
    BLE
    +关注

    关注

    12

    文章

    652

    浏览量

    59337

原文标题:工程师笔记 | STM32WB BLE应用低功耗设计

文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ST NPI 专区 | 新上架产品【STM32WB09KEV7TR】

    STM32WB09xx32位MCU无线系列:Bluetooth低功耗5.4STM32WB09xx是轻量级、高性价比Bluetooth低功耗5.4应用的理想解决方案产品说明
    的头像 发表于 08-13 08:27 275次阅读
    ST NPI 专区 | 新上架产品【<b class='flag-5'>STM32WB</b>09KEV7TR】

    请问如何估计STM32WB5MMG的功耗

    1.时钟树主频是32MHz,CM0+也是固定的32MHz 2.用了一个SPI和I2C 3.应用BLE0dB TX 还有一个问题就是对应STM32WB5MMG频率必须要64MHz,还是可以是32MHz本来想看STM32WB5MMG
    发表于 05-29 08:16

    STM32WBSTM32L4/L4+的区别和优劣势是什么?

    STM32WBSTM32L4 / L4+的区别,和优劣势
    发表于 04-26 08:07

    RADIO与RFWAKEUP具体功能是什么样的,如何把系统从低功耗模式唤醒的?

    请教下大家RADIO与RFWAKEUP具体功能是什么样的,如何把系统从低功耗模式唤醒的,手册中关于射频与无线部分介绍的功能是真的少,无线部分不是STM32WB系列的重要功能之一么,感觉像藏着掖着一样
    发表于 04-19 08:03

    STM32WB thread启动错误是什么原因导致的?

    STM32Cube_FW_WB_V1.3.0ProjectsP-NUCLEO-WB55.NucleoApplicationsBLE_ThreadBle_Thread_Static 硬件环境:STM32WB nucleo 使用SW2切换协议为thread , 显示失败
    发表于 04-16 08:01

    STM32WB能否连接蓝牙耳机?如果可以支持什么格式?

    STM32WB能否连接蓝牙耳机?如果可以支持什么格式?如果能得到回答将非常感谢!
    发表于 03-27 07:11

    项目开发时能不能同时用两块芯片,比如一块stm32WB一块stm32F4?

    请问项目开发时能不能同时用两块芯片,比如一块stm32WB,一块stm32F4?
    发表于 03-20 08:22

    STM32WB配置SMPS模块具体步骤是什么?

    想要降低STM32WB功耗,查找手册发现开启SMPS模块可以降低功耗。配置SMPS模块具体步骤是什么有大佬知道吗?是开启SMPS宏定义,然后写PWR的寄存器就可以了吗?怎么证明自己的SMPS模块-配置正确了呢?
    发表于 03-20 08:18

    STM32U5,STM32WBSTM32L4开发板,哪个开发板拥有较多数量的ADC?

    请问,我现在需要开发一个项目,在这个项目中需要使用较多数量的传感器(至少8个),这些传感器需要进行信号采集,现在在使用STM32U5,STM32WBSTM32L4芯片的开发板中,哪些开发板拥有较多数量的ADC?
    发表于 03-20 08:01

    STM32WB的Zigbee终端在调用ZbStartupWait加入网络时,选择rejoin入网后终端会在15s后自动退网的原因?

    STM32WB系列的Zigbee终端在调用ZbStartupWait加入网络时,选择rejoin入网后,终端会在15s后,自动退网,这个是什么原因造成的。
    发表于 03-15 06:25

    基于STM32WB系列微控制器的构建射频应用

    本文档一步一步地指导设计人员基于 STM32WB 系列微控制器构建特定 Bluetooth®低功耗或802.15.4 应用。它汇集了最重要的信息,并且列出了需要处理的方面。为了充分利用本文档中的信息
    发表于 12-12 16:48 0次下载

    STM32WB55开发(6)----FUS更新

    STM32WB 微控制器中,FUS(Firmware Upgrade Services)是用于固件升级的一种服务。这项服务可以让你更新设备上的无线栈固件(如蓝牙、Zigbee或 Thread 栈
    的头像 发表于 12-01 16:49 838次阅读
    <b class='flag-5'>STM32WB</b>55开发(6)----FUS更新

    STM32WB55开发(3)----断开蓝牙连接

    在嵌入式领域中,STM32WB 系列微控制器以其双核架构和强大的无线连接能力而著称。特别是其蓝牙5.0的功能使得这款微控制器非常适合那些需要低功耗和高性能无线连接的应用。然而,在实际的应用中,合理
    的头像 发表于 12-01 15:43 1062次阅读
    <b class='flag-5'>STM32WB</b>55开发(3)----断开蓝牙连接

    STM32WB55开发(2)----修改蓝牙地址

    在嵌入式蓝牙开发中,特别是针对STM32WB系列,修改或配置蓝牙设备地址是常见的需求。不论是为了实现特定的测试、满足隐私要求,还是为了区分开发和生产设备,对蓝牙地址的定制化处理都是至关重要的。本文将
    的头像 发表于 12-01 15:42 776次阅读
    <b class='flag-5'>STM32WB</b>55开发(2)----修改蓝牙地址

    STM32WB55开发(1)----监测STM32WB连接状态

    ,监测和管理连接状态显得尤为关键。确保可靠连接不仅对于数据的实时传输至关重要,而且在面对低功耗需求、设备管理和故障诊断时,都有着不可或缺的作用。 本文将深入探讨STM32WB的连接状态监测机制。我们
    的头像 发表于 12-01 15:41 1082次阅读
    <b class='flag-5'>STM32WB</b>55开发(1)----监测<b class='flag-5'>STM32WB</b>连接状态