0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

應(yīng)用筆記|如何讓STM32WB在沒有LSE時運行BLE應(yīng)用程序

STM32單片機 ? 來源:未知 ? 2023-04-12 23:10 ? 次閱讀

本文檔描述如何讓STM32WB在沒有LSE時運行BLE應(yīng)用程序所需的流程和步驟。LSE 可作為 STM32WB RF Wakeup 和 RTC 的時鐘源。STM32WB RF Wakeup 和 RTC 的時鐘源可配置為 LSE,LSE 時鐘相對比較穩(wěn)定且準確,不需要校準,而且 LSE 可在所有的低功耗模式下保持工作。

目錄預(yù)覽

1 為什么 STM32WB BLE 應(yīng)用需要 LSE ?2 在需要 BLE 使能時,什么情況下可考慮不使用 LSE?3 如何配置 HSE 作為 RF Wakeup 和 RTC 的時鐘源?

為什么 STM32WB BLE 應(yīng)用需要 LSE ?

首先LSE 可作為 STM32WB RF Wakeup 和 RTC 的時鐘源。

STM32WB RF Wakeup 和 RTC 的時鐘源可配置為 LSE,LSE 時鐘相對比較穩(wěn)定且準確,不需要校準,而且 LSE 可在所有的低功耗模式下保持工作。

STM32WB RF Wakeup 和 RTC 的時鐘源也可配置為 HSE,由于 HSE 只能在RUN/LP RUN/SLEEP/LP SLEEP 模式保持,進入 STOP/STANDBY/STUTDOWN 模式后,HSE 會被關(guān)掉,這樣系統(tǒng)就無法進入 STOP/STANDBY/STUTDOWN 模式,導(dǎo)致系統(tǒng)功耗會更高。另外 HSE 可能沒那么穩(wěn)定,可能需要校準,從而可能導(dǎo)致 STM32WB RF Wakeup 時鐘不穩(wěn),也影響 BLE stack 運行,導(dǎo)致 BLE 工作不穩(wěn)。

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

在需要 BLE 使能時,什么情況下可考慮不使用 LSE?

在以下情況下,還需要使能 BLE 并進行開發(fā),調(diào)試時可配置 STM32WB 使用 HSE 做RF Wakeup 和 RTC 的時鐘源。

1.設(shè)計時,遺漏 LSE,但是樣機已做好

2.生產(chǎn)了樣機,忘記貼 LSE 了

3. 生產(chǎn)了樣機,LSE 不匹配,暫時可去掉

4.環(huán)境或應(yīng)用使用某些 GPIO(PC13) 影響 LSE,導(dǎo)致 LSE 時鐘異?;虿环€(wěn)

5. 不關(guān)心功耗,系統(tǒng)不需要進入低功耗

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 預(yù)分頻

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

Generic parameters=>CFG_LPM_SUPPORT=>Disabled,失能低功耗 LPM,系統(tǒng)會 保持在 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】重新生成代碼,用相應(yīng)的 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 函數(shù)中檢查確認RFWakeUpClockSelection配置為RCC_RFWKPCLKSOURCE_HSE_DIV1024 。

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

3.9檢查 RTC 時鐘源為 HSE

在 CoreSrc stm32wbxx_hal_msp.c 的 HAL_RTC_MspInit 函數(shù)中檢查確認 RTCClockSelection 配置為 RCC_RTCCLKSOURCE_HSE_DIV32。

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

3.10驗證

重新編譯工程,并下載到 STM32WB 中,此時 STM32WB 不再使用 LSE 了。使用 ST BLE Sensor 手機 app,搜索 STM32WB,并連接進行測試。

由于文章篇幅有限僅展示部分信息,完整內(nèi)容請點擊“閱讀原文”下載原文檔。

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

長按掃碼關(guān)注公眾號

更多資訊,盡在STM32

點擊“閱讀原文”,可下載原文檔


原文標(biāo)題:應(yīng)用筆記|如何讓STM32WB在沒有LSE時運行BLE應(yīng)用程序

文章出處:【微信公眾號:STM32單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6030

    文章

    44500

    瀏覽量

    632178
  • STM32
    +關(guān)注

    關(guān)注

    2264

    文章

    10858

    瀏覽量

    354392

原文標(biāo)題:應(yīng)用筆記|如何讓STM32WB在沒有LSE時運行BLE應(yīng)用程序

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    STM32WB5MMG只有第一次下載程序才能正常運行,為什么?

    我使用 STM32WB5MMG 制作了一個 Demo,用于與 USB 加密狗或手機通信(BLE NOTIFICATION),并通過觸發(fā)下降沿中斷從 MAX30001(兩個中斷引腳 PC10
    發(fā)表于 05-28 07:16

    STM32WBSTM32L4/L4+的區(qū)別和優(yōu)劣勢是什么?

    STM32WBSTM32L4 / L4+的區(qū)別,和優(yōu)劣勢
    發(fā)表于 04-26 08:07

    STM32WB thread啟動錯誤是什么原因?qū)е碌模?/a>

    STM32Cube_FW_WB_V1.3.0ProjectsP-NUCLEO-WB55.NucleoApplicationsBLE_ThreadBle_Thread_Static 硬件環(huán)境:STM32WB nucleo 使用SW2切換協(xié)議為thread , 顯示失敗
    發(fā)表于 04-16 08:01

    STM32WB測試板上面焊接了最小系統(tǒng),程序無法燒寫且單片機也無法識別怎么解決?

    自己的STM32WB測試板上面焊接了最小系統(tǒng)發(fā)現(xiàn)程序無法燒寫且單片機也無法識別,經(jīng)過一系列測試發(fā)現(xiàn)與RF引腳連接的濾波網(wǎng)絡(luò)焊接上之后程序就可以正常燒寫,為此我把官方的NUCLEO開發(fā)
    發(fā)表于 03-28 06:32

    STM32WB能否連接藍牙耳機?如果可以支持什么格式?

    STM32WB能否連接藍牙耳機?如果可以支持什么格式?如果能得到回答將非常感謝!
    發(fā)表于 03-27 07:11

    項目開發(fā)時能不能同時用兩塊芯片,比如一塊stm32WB一塊stm32F4?

    請問項目開發(fā)時能不能同時用兩塊芯片,比如一塊stm32WB,一塊stm32F4?
    發(fā)表于 03-20 08:22

    STM32WB配置SMPS模塊具體步驟是什么?

    想要降低STM32WB的功耗,查找手冊發(fā)現(xiàn)開啟SMPS模塊可以降低功耗。配置SMPS模塊具體步驟是什么有大佬知道嗎?是開啟SMPS宏定義,然后寫PWR的寄存器就可以了嗎?怎么證明自己的SMPS模塊-配置正確了呢?
    發(fā)表于 03-20 08:18

    STM32U5,STM32WBSTM32L4開發(fā)板,哪個開發(fā)板擁有較多數(shù)量的ADC?

    請問,我現(xiàn)在需要開發(fā)一個項目,在這個項目中需要使用較多數(shù)量的傳感器(至少8個),這些傳感器需要進行信號采集,現(xiàn)在在使用STM32U5,STM32WBSTM32L4芯片的開發(fā)板中,哪些開發(fā)板擁有較多數(shù)量的ADC?
    發(fā)表于 03-20 08:01

    STM32WB55進入Stop2模式死機的原因?怎么解決?

    使用STM32WB55VGY開發(fā)應(yīng)用,使用Ble協(xié)議棧,每4ms由外置ADC產(chǎn)生一次中斷,中斷處理函數(shù)中通過SPI讀取ADC數(shù)值,每250次,
    發(fā)表于 03-15 06:28

    STM32WB的Zigbee終端調(diào)用ZbStartupWait加入網(wǎng)絡(luò)時,選擇rejoin入網(wǎng)后終端會在15s后自動退網(wǎng)的原因?

    STM32WB系列的Zigbee終端調(diào)用ZbStartupWait加入網(wǎng)絡(luò)時,選擇rejoin入網(wǎng)后,終端會在15s后,自動退網(wǎng),這個是什么原因造成的。
    發(fā)表于 03-15 06:25

    基于STM32WB系列微控制器的構(gòu)建射頻應(yīng)用

    本文檔一步一步地指導(dǎo)設(shè)計人員基于 STM32WB 系列微控制器構(gòu)建特定 Bluetooth?低功耗或802.15.4 應(yīng)用。它匯集了最重要的信息,并且列出了需要處理的方面。為了充分利用本文檔中的信息
    發(fā)表于 12-12 16:48 ?0次下載

    【應(yīng)用筆記STM32WB 低功耗藍牙無線接口

    ,同時保持了相似的通信范圍。標(biāo)準 HCI 指令“藍牙核心規(guī)范 V5.3”(藍牙?低功耗規(guī)范是其中一部分)中定義。此應(yīng)用筆記描述了專有指令。
    發(fā)表于 12-12 16:30 ?1次下載

    STM32WB55開發(fā)(6)----FUS更新

    STM32WB 微控制器中,F(xiàn)US(Firmware Upgrade Services)是用于固件升級的一種服務(wù)。這項服務(wù)可以你更新設(shè)備上的無線棧固件(如藍牙、Zigbee或 Thread 棧
    的頭像 發(fā)表于 12-01 16:49 ?812次閱讀
    <b class='flag-5'>STM32WB</b>55開發(fā)(6)----FUS更新

    STM32WB55開發(fā)(4)----配置串口打印Debug調(diào)試信息

    STM32WB55系列微控制器上進行開發(fā)時,實時監(jiān)控應(yīng)用程序運行情況和調(diào)試潛在問題是至關(guān)重要的。使用串口(USART/UART)進行Debug信息打印是一種簡便、高效的方法。下面是
    的頭像 發(fā)表于 12-01 15:48 ?1166次閱讀
    <b class='flag-5'>STM32WB</b>55開發(fā)(4)----配置串口打印Debug調(diào)試信息

    STM32WB55開發(fā)(1)----監(jiān)測STM32WB連接狀態(tài)

    STM32WB系列微控制器代表了STMicroelectronics無線技術(shù)領(lǐng)域的新一代創(chuàng)新,集成了Bluetooth 5.0、Zigbee和Thread等多種無線通信協(xié)議。而在這些無線應(yīng)用中
    的頭像 發(fā)表于 12-01 15:41 ?1058次閱讀
    <b class='flag-5'>STM32WB</b>55開發(fā)(1)----監(jiān)測<b class='flag-5'>STM32WB</b>連接狀態(tài)