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

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

3天内不再提示

应用笔记|如何让STM32WB在没有LSE时运行BLE应用程序

STM32单片机 ? 来源:未知 ? 2023-04-12 23:10 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文档描述如何让STM32WB在没有LSE时运行BLE应用程序所需的流程和步骤。LSE 可作为 STM32WB RF Wakeup 和 RTC 的时钟源。STM32WB RF Wakeup 和 RTC 的时钟源可配置为 LSE,LSE 时钟相对比较稳定且准确,不需要校准,而且 LSE 可在所有的低功耗模式下保持工作。

目录预览

1 为什么 STM32WB BLE 应用需要 LSE ?2 在需要 BLE 使能时,什么情况下可考虑不使用 LSE?3 如何配置 HSE 作为 RF Wakeup 和 RTC 的时钟源?

为什么 STM32WB BLE 应用需要 LSE ?

首先LSE 可作为 STM32WB RF Wakeup 和 RTC 的时钟源。

STM32WB RF Wakeup 和 RTC 的时钟源可配置为 LSE,LSE 时钟相对比较稳定且准确,不需要校准,而且 LSE 可在所有的低功耗模式下保持工作。

STM32WB RF Wakeup 和 RTC 的时钟源也可配置为 HSE,由于 HSE 只能在RUN/LP RUN/SLEEP/LP SLEEP 模式保持,进入 STOP/STANDBY/STUTDOWN 模式后,HSE 会被关掉,这样系统就无法进入 STOP/STANDBY/STUTDOWN 模式,导致系统功耗会更高。另外 HSE 可能没那么稳定,可能需要校准,从而可能导致 STM32WB RF Wakeup 时钟不稳,也影响 BLE stack 运行,导致 BLE 工作不稳。

56e880b6-d943-11ed-bfe3-dac502259ad0.png

在需要 BLE 使能时,什么情况下可考虑不使用 LSE?

在以下情况下,还需要使能 BLE 并进行开发,调试时可配置 STM32WB 使用 HSE 做RF Wakeup 和 RTC 的时钟源。

1.设计时,遗漏 LSE,但是样机已做好

2.生产了样机,忘记贴 LSE 了

3. 生产了样机,LSE 不匹配,暂时可去掉

4.环境或应用使用某些 GPIO(PC13) 影响 LSE,导致 LSE 时钟异常或不稳

5. 不关心功耗,系统不需要进入低功耗

3. 如何配置 HSE 作为 RF Wakeup 和 RTC 的时钟源?

本 LAT 基于CubeMX v6.6.1 和 CubeWB v1.14.1 介绍。

3.1 打开 BLE_p2pServer.ioc

用CubeMXv6.6.1打开 STM32Cube_FW_WB_V1.14.1Projects P-NUCLEOWB55.NucleoApplicationsBLEBLE_p2pServerBL E_p2pServer.ioc,以此为例。

3.2失能 LSE

Pinout& Configuration => System Core => RCC=>Low Speed Clock (LSE)=>Disable,失能 LSE。

5711f5c2-d943-11ed-bfe3-dac502259ad0.png

3.3 失能 LPM & 配置 RTC 预分频

在 Pinout& Configuration => Middleware => STM32_WPAN =>Configuration=>

Generic parameters=>CFG_LPM_SUPPORT=>Disabled,失能低功耗 LPM,系统会 保持在 RUN 模式

Applicationparameters=>CFG_RTC_ASYNCH_PRESCALER=>127

Applicationparameters=>CFG_RTC_SYNCH_PRESCALER =>7812

57381928-d943-11ed-bfe3-dac502259ad0.png

其实,生成代码后在 CoreIncapp_conf.h 中,如果使能了 CFG_DEBUG_BLE_TRACE 或 CFG_DEBUG_APP_TRACE,会自动的失能 CFG_LPM_SUPPORTED。

576b7ac0-d943-11ed-bfe3-dac502259ad0.png

3.4配置 RTC 和 LSE 的时钟源为 HSE

在 Clock Configuration 中,修改 RTC/LCD Source Mux 的时钟源为 HSE_RTC;修改 RFWKP Source Mux 的时钟源为 HSE。

57969ae8-d943-11ed-bfe3-dac502259ad0.png

57bd562e-d943-11ed-bfe3-dac502259ad0.png

3.5重生代码

点击【GENERATE CODE】重新生成代码,用相应的 IDE 打开工程。

3.6使能 BLE_LSE 校准

打开 CoreIncapp_conf.h,修改 CFG_BLE_LSE_SOURCE,使能 SHCI_C2_BLE_INIT_CFG_BLE_LSE_CALIB,如下

57d89790-d943-11ed-bfe3-dac502259ad0.png

3.7修改 CFG_TS_TICK_VAL 和 CFG_TS_TICK_VAL_PS

打开 CoreIncapp_conf.h,修改 CFG_TS_TICK_VAL 和 CFG_TS_TICK_VAL_PS, 如下

57f4df4a-d943-11ed-bfe3-dac502259ad0.png

3.8检查 RF 唤醒时钟源为 HSE

在 CoreSrcmain.c 的 PeriphCommonClock_Config 函数中检查确认RFWakeUpClockSelection配置为RCC_RFWKPCLKSOURCE_HSE_DIV1024 。

58158d58-d943-11ed-bfe3-dac502259ad0.png

3.9检查 RTC 时钟源为 HSE

在 CoreSrc stm32wbxx_hal_msp.c 的 HAL_RTC_MspInit 函数中检查确认 RTCClockSelection 配置为 RCC_RTCCLKSOURCE_HSE_DIV32。

5844e9cc-d943-11ed-bfe3-dac502259ad0.png

3.10验证

重新编译工程,并下载到 STM32WB 中,此时 STM32WB 不再使用 LSE 了。使用 ST BLE Sensor 手机 app,搜索 STM32WB,并连接进行测试。

由于文章篇幅有限仅展示部分信息,完整内容请点击“阅读原文”下载原文档。

586837d8-d943-11ed-bfe3-dac502259ad0.png

长按扫码关注公众号

更多资讯,尽在STM32

点击“阅读原文”,可下载原文档


原文标题:应用笔记|如何让STM32WB在没有LSE时运行BLE应用程序

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


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

    关注

    6068

    文章

    45040

    浏览量

    652547
  • STM32
    +关注

    关注

    2295

    文章

    11035

    浏览量

    366033

原文标题:应用笔记|如何让STM32WB在没有LSE时运行BLE应用程序

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    外围设备通过手机连接到BLE应用程序,为什么不能连接到Infineaon BLE

    ; key_ch06_ex01_ \" observer 项目创建了 BLE 中央应用程序。 但是它无法扫描附近蓝牙中的任何设备。 它进入高扫描模式 5 秒钟,进入低扫描模式 5 秒钟然后停止。 不显示任何主机 ID,包括我的外围设备。
    发表于 07-07 08:06

    使用不同的Bluetooth?适配器时,BLE速率较慢怎么解决?

    我已经CYW20829中编写了一个BLE服务器程序。 当我使用 Python 脚本将其连接到我的计算机时,它可以达到 800 Kbps,该脚本生成使用 Bleak 的 BLE 客户端
    发表于 06-27 06:28

    STM32WB09KEV6TR生成的代码需要改哪些地方才能实现开启BLE

    想问一下我利用STM32WB09KEV6TR生成的代码还需要改哪些地方才能实现开启BLE,并且发现GATT服务,麻烦大佬指点一下,我需要看哪些文档~
    发表于 03-13 06:58

    PTR5415模组上,如何实现同时运行BLE+Thread+1个自定义专有协议?

    PTR5415模组上,如何实现同时运行BLE+Thread+1个自定义专有协议?欢迎评论区分享代码片段与性能测试结果! http://www.freqchina.com/
    发表于 03-07 13:41

    用两块nucleo-wb05kz分别运行BLE_SerialCom_Peripheral 和BLE_SerialCom_central的蓝牙通讯示例,出现死机的情况怎么解决?

    用两块nucleo-wb05kz板子,分别运行BLE_SerialCom_Peripheral 和BLE_SerialCom_central 的蓝牙通讯示例时,出现了开发板死机的情况,
    发表于 03-07 08:16

    低价不贵!安信可WiFi+BLE模组Ai-WB2系列

    您买到同时实现Wi-Fi+BLE功能的模组,经过“双85”测试,产品的可靠性与稳定性更强。 01采用WPA3安全协议,数据安全性大幅提升 Ai-WB2系列模组支持 WPA3 安全协议,自身具备更高
    的头像 发表于 03-06 08:49 ?506次阅读
    低价不贵!安信可WiFi+<b class='flag-5'>BLE</b>模组Ai-<b class='flag-5'>WB</b>2系列

    OpenVINO?中运行应用程序失败怎么解决?

    尝试 OpenVINO? 中运行我的推理应用程序失败,并出现以下错误: RuntimeError: Check \'false\' failed at src/core/src/runtime/ov_tensor.cpp:67
    发表于 03-05 10:29

    了解ISL28022的电流和功率计算应用笔记

    本应用笔记讨论数字电源监控器(DPM) ISL28022的内部计算程序。它解释了数据寄存器的位格式,并举例说明了内部数学处理器从测得的分流和总线电压导出电流和功率值的程序步骤。本应用笔记
    的头像 发表于 02-21 11:30 ?628次阅读
    了解ISL28022的电流和功率计算应<b class='flag-5'>用笔记</b>

    CDK应用笔记

    电子发烧友网站提供《CDK应用笔记.pdf》资料免费下载
    发表于 01-16 16:17 ?0次下载
    CDK应<b class='flag-5'>用笔记</b>

    ES32VF2264应用笔记

    电子发烧友网站提供《ES32VF2264应用笔记.pdf》资料免费下载
    发表于 01-16 16:14 ?0次下载
    ES32VF2264应<b class='flag-5'>用笔记</b>

    ES7P0213应用笔记

    电子发烧友网站提供《ES7P0213应用笔记.pdf》资料免费下载
    发表于 01-16 15:26 ?0次下载
    ES7P0213应<b class='flag-5'>用笔记</b>

    AT32F423 PWC应用笔记

    电子发烧友网站提供《AT32F423 PWC应用笔记.pdf》资料免费下载
    发表于 01-15 15:30 ?0次下载
    AT32F423 PWC应<b class='flag-5'>用笔记</b>

    S32K3xxICU应用笔记

    S32K3xxICU应用笔记
    发表于 12-30 15:38 ?2次下载

    STM32WB55RG开发(5)----监测STM32WB连接状态

    STM32WB系列微控制器代表了STMicroelectronics无线技术领域的新一代创新,集成了Bluetooth 5.0、Zigbee和Thread等多种无线通信协议。而在这些无线应用中
    的头像 发表于 12-16 16:22 ?1574次阅读
    <b class='flag-5'>STM32WB</b>55RG开发(5)----监测<b class='flag-5'>STM32WB</b>连接状态

    STM32WB55RG开发(3)----生成 BLE 程序连接手机APP

    本项目旨在利用 STM32WB55 微控制器的蓝牙低功耗(BLE)功能,实现与手机 APP 的无线连接。通过配置时钟源、启动关键模块(如 RCC、RTC、RF、IPCC 和 HSEM),以及启用蓝牙功能,用户可以创建一个稳定的 BLE
    的头像 发表于 12-16 16:06 ?1939次阅读
    <b class='flag-5'>STM32WB</b>55RG开发(3)----生成 <b class='flag-5'>BLE</b> <b class='flag-5'>程序</b>连接手机APP