你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

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

[复制链接]
STMCU小助手 发布时间:2023-2-17 15:01
1. 为什么 STM32WB BLE 应用需要 LSE ?' T: |) d2 a0 q% d
: Q1 C( @3 ~: h  N
首先 LSE 可作为 STM32WB RF Wakeup 和 RTC 的时钟源。/ U3 L1 {' J$ ~. Q" |
STM32WB RF Wakeup 和 RTC 的时钟源可配置为 LSE,LSE 时钟相对比较稳定且准确,不需要校准,而且 LSE 可在所有的低功耗模式下保持工作。
/ G" Z  v; f1 _5 ?3 J- USTM32WB 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 工作不稳。
9 [9 L0 T6 f4 l" ?0 J, _3 b) B7 ~8 r$ C0 n$ m1 E* D
# S; s" b- b1 a
_TSU8H14_T}`UI0]8QPNIXP.png & f. h( L% A( e+ n" H+ `

* ^: k) Q  b* Y% i* g9 W2. 在需要 BLE 使能时,什么情况下可考虑不使用 LSE
4 a3 C$ `# `" q0 D% ?2 \在以下情况下,还需要使能 BLE 并进行开发,调试时可配置 STM32WB 使用 HSE 做RF Wakeup 和 RTC 的时钟源。# @3 N& N+ z/ P
1. 设计时,遗漏 LSE,但是样机已做好
' v7 Q0 P" e' F% v3 \3 ~" c2. 生产了样机,忘记贴 LSE 了; ]  Z! ^4 }8 P( E7 i+ U
3. 生产了样机,LSE 不匹配,暂时可去掉7 m! G4 `2 W6 T0 n$ L4 @4 A
3. 环境或应用使用某些 GPIO(PC13) 影响 LSE,导致 LSE 时钟异常或不稳
1 x1 N2 G* }7 ?( \4. 不关心功耗,系统不需要进入低功耗
  Q# y" [/ R6 t& z% v# j! L0 e% N2 ?* I* {
3. 如何配置 HSE 作为 RF Wakeup 和 RTC 的时钟源
0 u, V/ ~- F+ D; L& w5 G: F. ]已有介绍,基于 CubeMX v6.3.0 和 CubeWB v1.12.0,但是从 CubeMX v6.4.0 and CubeWB v1.13.1 后,CubeWB 有稍许更新,本 LAT 基于CubeMX v6.6.1 和 CubeWB v1.14.1 介绍。
" E2 W8 w* g# O- p( Q6 K  l1 X2 _4 {; `: I6 w
3.1. 打开 BLE_p2pServer.ioc
% P. w) X0 U& f) i% i3 E; Y) ^用 CubeMX v6.6.1 打开 STM32Cube_FW_WB_V1.14.1\Projects\P-NUCLEOWB55.Nucleo\Applications\BLE\BLE_p2pServer\BLE_p2pServer.ioc,以此为例。3 B" [% h' B. h# ]
( `9 t1 o! _6 z$ x/ d# `% ~$ S9 V7 o' q
3.2. 失能 LSE/ H! V! R7 i8 d# r
在 Pinout& Configuration => System Core => RCC=>Low Speed Clock (LSE)=>Disable,失能 LSE。3 R5 o# z: a# [; v. R

$ E0 s' I8 u0 h$ N, @2 w

" W5 g8 l# ]; ?' O* _ %3USL)M(}EBMK9I7J9JR6.png
$ H: {2 B/ l4 N
* v, C4 Y( c, a0 ?6 ]3 w3.3. 失能 LPM & 配置 RTC 预分频# \3 |) H$ t. x" \4 B' u
在 Pinout& Configuration => Middleware => STM32_WPAN =>Configuration=>Generic parameters=>CFG_LPM_SUPPORT=>Disabled,失能低功耗 LPM,系统会保持在 RUN 模式
6 {% J" w' f& ]Application parameters=> CFG_RTC_ASYNCH_PRESCALER=>127
/ K- q' f5 M4 b2 yApplication parameters=> CFG_RTC_SYNCH_PRESCALER =>7812
5 A2 j3 f  z5 q
* u+ }; [) c# z' V2 I4 V$ c
& Z% t- ^; m5 u
2{1O[%RH1}PCF(8P)V96GHM.png
9 N) U# W: v& B/ {( r; W( @$ M5 ^! T% w3 e
" R$ r, y# O, R: j( x/ e
其实,生成代码后在 Core\Inc\app_conf.h 中,如果使能了CFG_DEBUG_BLE_TRACE 或 CFG_DEBUG_APP_TRACE,会自动的失能CFG_LPM_SUPPORTED。 ( A8 j' L' M. Q& P0 @# C

4 Z( I3 ~1 X, M+ M2 @% x" P" j
) Q. G* T# s0 o8 c- b9 Y+ R
+ i! A$ ]+ q8 \6 f4 j
完整版请查看:附件 如何配置STM32WB在没有LSE时运行BLE应用程序.pdf (568.4 KB, 下载次数: 2)
赞 收藏 评论0 发布时间:2023-2-17 15:01

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版