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单片机】欢迎添加关注!文章转载请注明出处。


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

    关注

    6001

    文章

    43973

    浏览量

    620847
  • STM32
    +关注

    关注

    2239

    文章

    10671

    浏览量

    348755

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    使用AT32WB415的无线蓝牙模块来自定义BLE相关的功能

    这篇应用笔记描述了使用AT32WB415的无线蓝牙模块来自定义BLE相关的功能,如何进行无线蓝牙模块和MCU之间的沟通,以及MCU接收到来自蓝牙模块的需求后,如何做出对应的行为。本应
    发表于 10-25 08:09

    如何让STM32WB没有LSE时运行BLE应用程序

    如何让STM32WB没有LSE时运行BLE应用程序
    的头像 发表于 10-24 16:41 224次阅读
    如何让<b class='flag-5'>STM32WB</b>在<b class='flag-5'>没有</b><b class='flag-5'>LSE</b><b class='flag-5'>时运行</b><b class='flag-5'>BLE</b><b class='flag-5'>应用程序</b>

    用笔记 | STM32WB如何一次性烧写FUS+STACK+APP

    关键字:STM32WB,烧写,FUS+STACK+APP   目录预览 1.前言 2.操作方法 3.烧录验证 4.总结 5.附录 0 1 前言 在使用STM32WB系列MCU时,通过
    的头像 发表于 10-13 18:15 372次阅读

    基于STM32WB系列产品开发Zigbee智能能源(SE)应用

    本应用笔记全面介绍了 Zigbee®智能能源(SE)。提供了一些关于如何在 STM32WB 系列微控制器上构建 Zigbee®智能能源(SE)应用的提示,还涵盖了 sub-GHz 操作和 LBT
    发表于 10-09 17:30 3次下载

    STM32WB系列上开始使用Zigbee

    本应用笔记将指导设计者完成基于 STM32WB 系列微控制器构建特定 Zigbee®应用程序所需的所有步骤。阐明了如何与STM32WB 系列微控制器连接,同时还整合了与 Zigbee®
    发表于 10-09 17:30 0次下载

    用笔记 | STM32WB基于Custom Template实现客户定制BLE私有协议

    关键字:STM32WBBLE私有协议,定制   目录预览 1.引言 2. STM32CubeMx 实现步骤 3.测试平台搭建及功能测试 4.小结 0 1 引言 STM32WB55是一
    的头像 发表于 10-08 17:40 971次阅读

    STM32WB BLE应用低功耗设计

    电子发烧友网站提供《STM32WB BLE应用低功耗设计.pdf》资料免费下载
    发表于 09-20 14:58 4次下载
    <b class='flag-5'>STM32WB</b> <b class='flag-5'>BLE</b>应用低功耗设计

    STM32WB的用户密钥存储(CKS)

    电子发烧友网站提供《STM32WB的用户密钥存储(CKS).pdf》资料免费下载
    发表于 09-20 14:47 0次下载
    <b class='flag-5'>STM32WB</b>的用户密钥存储(CKS)

    STM32WB硬件、软件、BLE低功耗设计及速率优化

    电子发烧友网站提供《STM32WB硬件、软件、BLE低功耗设计及速率优化.pdf》资料免费下载
    发表于 09-20 11:47 3次下载
    <b class='flag-5'>STM32WB</b>硬件、软件、<b class='flag-5'>BLE</b>低功耗设计及速率优化

    没有专用测试仪器如何测试STM32WB产品的无线性能

    电子发烧友网站提供《没有专用测试仪器如何测试STM32WB产品的无线性能.pdf》资料免费下载
    发表于 09-19 16:46 0次下载
    <b class='flag-5'>没有</b>专用测试仪器如何测试<b class='flag-5'>STM32WB</b>产品的无线性能

    STM32WB系列的ST固件升级服务

    ®-M4 上运行的任何代码使用,也可以通过嵌入式自举程序指令(也在 Cortex®-M4 上运行)使用。FUS(固件升级服务)是在 STM32WB Cortex®-M0+上
    发表于 09-12 09:34 0次下载

    STM32WB产品详解及FUS无线协议栈升级

    STM32WB产品详解及FUS无线协议栈升级2.4GHz无线双核STM32WB, 采用SoC单芯片设计,支持多协议射频。
    发表于 09-06 06:35

    STM32WB BLE协议栈编程指南

    本文档的主要目的是为开发人员提供有关如何使用 STM32WB BLE 协议栈 API 和相关事件回调开发低功耗蓝牙(BLE)应用的一些参考编程指南。本文档介绍了允许访问 STM32WB
    发表于 08-14 10:13

    STM32WB无线产品介绍

    电子发烧友网站提供《STM32WB无线产品介绍.pdf》资料免费下载
    发表于 07-31 16:50 1次下载
    <b class='flag-5'>STM32WB</b>无线产品介绍