本文檔描述如何讓STM32WB在沒(méi)有LSE時(shí)運(yùn)行BLE應(yīng)用程序所需的流程和步驟。LSE 可作為 STM32WB RF Wakeup 和 RTC 的時(shí)鐘源。STM32WB RF Wakeup 和 RTC 的時(shí)鐘源可配置為 LSE,LSE 時(shí)鐘相對(duì)比較穩(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í)鐘相對(duì)比較穩(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)就無(wú)法進(jìn)入 STOP/STANDBY/STUTDOWN 模式,導(dǎo)致系統(tǒng)功耗會(huì)更高。另外 HSE 可能沒(méi)那么穩(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)行測(cè)試。
由于文章篇幅有限僅展示部分信息,完整內(nèi)容請(qǐng)點(diǎn)擊“閱讀原文”下載原文檔。
![586837d8-d943-11ed-bfe3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9A/69/wKgaomTniiaAayiwAAOyOP2Y2vs779.png)
長(zhǎng)按掃碼關(guān)注公眾號(hào)
更多資訊,盡在STM32
▽點(diǎn)擊“閱讀原文”,可下載原文檔
原文標(biāo)題:應(yīng)用筆記|如何讓STM32WB在沒(méi)有LSE時(shí)運(yùn)行BLE應(yīng)用程序
文章出處:【微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
單片機(jī)
+關(guān)注
關(guān)注
6044文章
44631瀏覽量
639063 -
STM32
+關(guān)注
關(guān)注
2273文章
10926瀏覽量
357824
原文標(biāo)題:應(yīng)用筆記|如何讓STM32WB在沒(méi)有LSE時(shí)運(yùn)行BLE應(yīng)用程序
文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
STM32WB55RG開發(fā)(5)----監(jiān)測(cè)STM32WB連接狀態(tài)
![<b class='flag-5'>STM32WB</b>55RG開發(fā)(5)----監(jiān)測(cè)<b class='flag-5'>STM32WB</b>連接狀態(tài)](https://file1.elecfans.com/web3/M00/02/75/wKgZPGdf2H-AEoxXAAYYCxH3dnU800.png)
STM32WB55RG開發(fā)(3)----生成 BLE 程序連接手機(jī)APP
![<b class='flag-5'>STM32WB</b>55RG開發(fā)(3)----生成 <b class='flag-5'>BLE</b> <b class='flag-5'>程序</b>連接手機(jī)APP](https://file1.elecfans.com/web3/M00/02/75/wKgZPGdf2H-AEoxXAAYYCxH3dnU800.png)
評(píng)論