本文檔描述如何讓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)。
在需要 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。
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
其實,生成代碼后在 CoreIncapp_conf.h 中,如果使能了 CFG_DEBUG_BLE_TRACE 或 CFG_DEBUG_APP_TRACE,會自動的失能 CFG_LPM_SUPPORTED。
3.4配置 RTC 和 LSE 的時鐘源為 HSE
在 Clock Configuration 中,修改 RTC/LCD Source Mux 的時鐘源為 HSE_RTC;修改 RFWKP Source Mux 的時鐘源為 HSE。
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,如下
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 喚醒時鐘源為 HSE
在 CoreSrcmain.c 的 PeriphCommonClock_Config 函數(shù)中檢查確認RFWakeUpClockSelection配置為RCC_RFWKPCLKSOURCE_HSE_DIV1024 。
3.9檢查 RTC 時鐘源為 HSE
在 CoreSrc stm32wbxx_hal_msp.c 的 HAL_RTC_MspInit 函數(shù)中檢查確認 RTCClockSelection 配置為 RCC_RTCCLKSOURCE_HSE_DIV32。
3.10驗證
重新編譯工程,并下載到 STM32WB 中,此時 STM32WB 不再使用 LSE 了。使用 ST BLE Sensor 手機 app,搜索 STM32WB,并連接進行測試。
由于文章篇幅有限僅展示部分信息,完整內(nèi)容請點擊“閱讀原文”下載原文檔。
長按掃碼關(guān)注公眾號
更多資訊,盡在STM32
▽點擊“閱讀原文”,可下載原文檔
原文標(biāo)題:應(yīng)用筆記|如何讓STM32WB在沒有LSE時運行BLE應(yīng)用程序
文章出處:【微信公眾號:STM32單片機】歡迎添加關(guān)注!文章轉(zhuǎ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)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論