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

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

3天内不再提示

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

jf_pJlTbmA9 来源:STM32单片机 作者:STM32单片机 2023-10-24 16:41 次阅读

本文档描述如何让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 工作不稳。

wKgaomUDyTKAc5-IAAK0YhXI2sM634.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。

wKgaomUDyTSAMm43AAGlTTtC4V0328.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

wKgZomUDyTWAWtLNAAKXkSbivtM782.png

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

wKgaomUDyTaAOv2PAAFUHFvq2dc898.png

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

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

wKgZomUDyTiAeQKUAAJRK7xp50k033.pngwKgZomUDyTmAPHNWAABbYi0YgAQ827.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,如下

wKgaomUDyTqAReP3AADA29HyzrU100.png

3.7修改 CFG_TS_TICK_VAL 和 CFG_TS_TICK_VAL_PS

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

wKgaomUDyTyAbnYwAACIznI6Bl4162.png

3.8检查 RF 唤醒时钟源为 HSE

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

wKgZomUDyT6AF9O5AAG3VBOq0eM452.png

3.9检查 RTC 时钟源为 HSE

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

wKgaomUDyT-ACAyeAAJUiUJ65c4770.png

3.10验证

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

来源:STM32单片机

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理

审核编辑 黄宇

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

    关注

    0

    文章

    10

    浏览量

    10169
  • BLE
    BLE
    +关注

    关注

    12

    文章

    608

    浏览量

    58839
收藏 人收藏

    评论

    相关推荐

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

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

    具有BLE连接的STM32WB设备上进行无线固件更新的过程

    本应用笔记描述了具有BLE连接的STM32WB设备上进行无线固件更新的过程,解释了如何使用STM32Cube固件包中提供的OTA应用程序
    发表于 12-02 06:09

    请问是否可以通过BLE唤醒STM32WB MCU的待机模式?

    我们正在启动一个使用 STM32WB MCU 的项目。我们希望睡眠时将功耗降至最低,但能够通过 BLE 命令将其唤醒。从文档 AN5071(STM32WB 超低功耗特性概述)中可以看
    发表于 12-06 06:59

    我想知道带有BLESTM32WB是否可以连接到经典蓝牙设备呢

    我想知道带有 BLESTM32WB 是否可以连接到经典蓝牙设备,带 BLESTM32WB 可以连接到经典蓝牙设备吗?
    发表于 12-15 09:13

    STM32WB是否可以与Windows BLE应用程序形成2M PHY连接呢?

    我只是想知道是否可以与 Windows BLE 应用程序形成 2M PHY 连接?我已经为我的 STM32WB 核板开发了固件,以及一个 C#.NET Windows 应用程序来连接它
    发表于 12-21 06:30

    BLE是如何与STM32WB配对的

    PKA Hw 信号量)并正常运行BLE 正在完美通信。 直到几天前,我们发现了一个错误,即在新设备与STM32WB配对后,随后的PKA操作中,ISR根本
    发表于 12-23 08:22

    STM32WB10CCU板上的BLE无法工作如何解决呢

    你好!我正在使用定制的 STM32WB10CCU 板,但似乎无法 BLE 工作。以下是详细信息:我的董事会上没有 LSE。只有 HSE。我
    发表于 12-23 07:45

    如何对STM32WB BLE项目实施BLE OTA固件升级?

    BLE_CFG_OTA_REBOOT_CHAR 设置为 1当我对默认 BLE 心率应用程序进行这些更改并通过 ST BLE android 应用程
    发表于 12-26 06:04

    STM32WB生成代码中的LPM调用问题求解

    CubeMX 为 STM32WB 上的 BLE 应用程序生成的代码中发现了一些奇怪的东西。 APP_
    发表于 02-07 08:54

    STM32WB BLE协议栈编程指南

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

    STM32WB蓝牙®低功耗(BLE)无线接口

    STM32WB蓝牙®低功耗(BLE)无线接口
    发表于 11-21 08:11 0次下载
    <b class='flag-5'>STM32WB</b>蓝牙®低功耗(<b class='flag-5'>BLE</b>)无线接口

    STM32WB BLE 堆栈编程指南

    STM32WB BLE 堆栈编程指南
    发表于 11-24 08:29 1次下载
    <b class='flag-5'>STM32WB</b> <b class='flag-5'>BLE</b> 堆栈编程指南

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

    本文档描述如何让STM32WB没有LSE时运行BLE应用程序所需的流程和步骤。
    的头像 发表于 04-12 23:10 899次阅读

    STM32WB BLE应用低功耗设计

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

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

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