本文檔描述如何讓STM32WB在沒有LSE時(shí)運(yùn)行BLE應(yīng)用程序所需的流程和步驟。LSE 可作為 STM32WB RF Wakeup 和 RTC 的時(shí)鐘源。STM32WB RF Wakeup 和 RTC 的時(shí)鐘源可配置為 LSE,LSE 時(shí)鐘相對比較穩(wěn)定且準(zhǔn)確,不需要校準(zhǔn),而且 LSE 可在所有的低功耗模式下保持工作。
目錄預(yù)覽
1 為什么 STM32WB BLE 應(yīng)用需要 LSE ?2 在需要 BLE 使能時(shí),什么情況下可考慮不使用 LSE?3 如何配置 HSE 作為 RF Wakeup 和 RTC 的時(shí)鐘源?
為什么 STM32WB BLE 應(yīng)用需要 LSE ?
首先LSE 可作為 STM32WB RF Wakeup 和 RTC 的時(shí)鐘源。
STM32WB RF Wakeup 和 RTC 的時(shí)鐘源可配置為 LSE,LSE 時(shí)鐘相對比較穩(wěn)定且準(zhǔn)確,不需要校準(zhǔn),而且 LSE 可在所有的低功耗模式下保持工作。
STM32WB RF Wakeup 和 RTC 的時(shí)鐘源也可配置為 HSE,由于 HSE 只能在RUN/LP RUN/SLEEP/LP SLEEP 模式保持,進(jìn)入 STOP/STANDBY/STUTDOWN 模式后,HSE 會(huì)被關(guān)掉,這樣系統(tǒng)就無法進(jìn)入 STOP/STANDBY/STUTDOWN 模式,導(dǎo)致系統(tǒng)功耗會(huì)更高。另外 HSE 可能沒那么穩(wěn)定,可能需要校準(zhǔn),從而可能導(dǎo)致 STM32WB RF Wakeup 時(shí)鐘不穩(wěn),也影響 BLE stack 運(yùn)行,導(dǎo)致 BLE 工作不穩(wěn)。

在需要 BLE 使能時(shí),什么情況下可考慮不使用 LSE?
在以下情況下,還需要使能 BLE 并進(jìn)行開發(fā),調(diào)試時(shí)可配置 STM32WB 使用 HSE 做RF Wakeup 和 RTC 的時(shí)鐘源。
1.設(shè)計(jì)時(shí),遺漏 LSE,但是樣機(jī)已做好
2.生產(chǎn)了樣機(jī),忘記貼 LSE 了
3. 生產(chǎn)了樣機(jī),LSE 不匹配,暫時(shí)可去掉
4.環(huán)境或應(yīng)用使用某些 GPIO(PC13) 影響 LSE,導(dǎo)致 LSE 時(shí)鐘異常或不穩(wěn)
5. 不關(guān)心功耗,系統(tǒng)不需要進(jìn)入低功耗
3. 如何配置 HSE 作為 RF Wakeup 和 RTC 的時(shí)鐘源?
本 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。

3.3 失能 LPM & 配置 RTC 預(yù)分頻
在 Pinout& Configuration => Middleware => STM32_WPAN =>Configuration=>
Generic parameters=>CFG_LPM_SUPPORT=>Disabled,失能低功耗 LPM,系統(tǒng)會(huì) 保持在 RUN 模式
Applicationparameters=>CFG_RTC_ASYNCH_PRESCALER=>127
Applicationparameters=>CFG_RTC_SYNCH_PRESCALER =>7812

其實(shí),生成代碼后在 CoreIncapp_conf.h 中,如果使能了 CFG_DEBUG_BLE_TRACE 或 CFG_DEBUG_APP_TRACE,會(huì)自動(dòng)的失能 CFG_LPM_SUPPORTED。

3.4配置 RTC 和 LSE 的時(shí)鐘源為 HSE
在 Clock Configuration 中,修改 RTC/LCD Source Mux 的時(shí)鐘源為 HSE_RTC;修改 RFWKP Source Mux 的時(shí)鐘源為 HSE。


3.5重生代碼
點(diǎn)擊【GENERATE CODE】重新生成代碼,用相應(yīng)的 IDE 打開工程。
3.6使能 BLE_LSE 校準(zhǔn)
打開 CoreIncapp_conf.h,修改 CFG_BLE_LSE_SOURCE,使能 SHCI_C2_BLE_INIT_CFG_BLE_LSE_CALIB,如下

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

3.8檢查 RF 喚醒時(shí)鐘源為 HSE
在 CoreSrcmain.c 的 PeriphCommonClock_Config 函數(shù)中檢查確認(rèn)RFWakeUpClockSelection配置為RCC_RFWKPCLKSOURCE_HSE_DIV1024 。

3.9檢查 RTC 時(shí)鐘源為 HSE
在 CoreSrc stm32wbxx_hal_msp.c 的 HAL_RTC_MspInit 函數(shù)中檢查確認(rèn) RTCClockSelection 配置為 RCC_RTCCLKSOURCE_HSE_DIV32。

3.10驗(yàn)證
重新編譯工程,并下載到 STM32WB 中,此時(shí) STM32WB 不再使用 LSE 了。使用 ST BLE Sensor 手機(jī) app,搜索 STM32WB,并連接進(jìn)行測試。
由于文章篇幅有限僅展示部分信息,完整內(nèi)容請點(diǎn)擊“閱讀原文”下載原文檔。

長按掃碼關(guān)注公眾號(hào)
更多資訊,盡在STM32
▽點(diǎn)擊“閱讀原文”,可下載原文檔
原文標(biāo)題:應(yīng)用筆記|如何讓STM32WB在沒有LSE時(shí)運(yùn)行BLE應(yīng)用程序
文章出處:【微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
單片機(jī)
+關(guān)注
關(guān)注
6076文章
45495瀏覽量
670344 -
STM32
+關(guān)注
關(guān)注
2309文章
11162瀏覽量
373444
原文標(biāo)題:應(yīng)用筆記|如何讓STM32WB在沒有LSE時(shí)運(yùn)行BLE應(yīng)用程序
文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
AN5289 使用 STM32WB 系列微控制器構(gòu)建射頻應(yīng)用筆記
LAT1215+如何讓 STM32WB 在沒有 LSE 時(shí)運(yùn)行 BLE 應(yīng)用程序
STM32WB 系列微控制器 OTA 和無線固件更新應(yīng)用筆記
AN2606_STM32單片機(jī)系統(tǒng)內(nèi)存啟動(dòng)方式應(yīng)用筆記
MLPF-WB55-01E3:2.4 GHz低通濾波器的卓越之選
MLPF - WB55 - 01E3:2.4 GHz低通濾波器的深度解析
STM32WB連接擴(kuò)展板技術(shù)解析:從硬件架構(gòu)到開發(fā)實(shí)踐
STM32WB09KE評估板技術(shù)解析與應(yīng)用指南
應(yīng)用筆記|如何讓STM32WB在沒有LSE時(shí)運(yùn)行BLE應(yīng)用程序
評論