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

如何在 STM32U5 系列上校准内部 RC 振荡器

[复制链接]
STMCU小助手 发布时间:2022-10-15 17:10
前言; k. n+ G2 ^6 A
STM32U5 系列微控制器内嵌两个可选为系统时钟源的内部 RC 振荡器。它们是 HSI16(高速内部)和 MSI(多速内部)振荡器,其可驱动两个独立的输出:MSIS(用于系统时钟)和 MSIK(用于某些外设作为内核时钟)。HSI16 振荡器的典型频率为 16MHz。MSI 振荡器为多速低功耗时钟源。
; l: f( B7 E3 c1 m6 e& Z
STM32U5 系列微控制器(称为 STM32U5 器件)具有三个辅助内部时钟源:$ i& D9 q$ J( p3 ?! w/ f7 G" w
• LSI:32kHz(内部低速)
" j; B( ~3 E) S% @0 V  N: t- n! D• HSI48:48MHz(内部高速),可直接用于 USB、RNG(真随机数发生器)和 SDMMC(SD/SDIO MMC 卡主机接口)。" ?7 C" R2 Z# P8 M( C3 S" W6 ?" r
• SHSI:48MHz(+抖动)内部安全 RC 振荡器,专用于为 SAES 外设提供时钟- ~: |; A3 R" W+ @

+ {( Z% R! g7 ~! b1 j工作温度对 RC 振荡器的精度有影响。在 30°C 时,HSI16 精度为±0.5%,MSI 精度为±0.6%,HSI48 精度为±4%。但在–40°C 至125°C 的温度范围内,精度会降低。为补偿温度对内部 RC 振荡器精度的影响,STM32U5 器件内置一些功能用于校准 HSI16、MSI 和 HSI48 振荡器及测量 LSI 振荡器频率。
- p6 c  S# c& z2 W! Z当系统中有 32.768kHz 的 LSE(低速外部)时钟源可用时,MSI 振荡器的频率可通过硬件自动微调,从而达到优于±0.25%的精度。这种使用 LSE 进行的自动硬件校准被称为 PLL(锁相环)模式。本应用笔记尚未对 PLL 模式进行介绍,仅侧重于用户微调。
4 y. X( w  y2 Z5 H- N  p本文档还详细介绍了如何校准 HSI16、MSI 和 HSI48 内部 RC 振荡器,方法如下:5 H( `5 d* g; A5 R* Z+ p, e
• 基于找到具有最小误差的频率的方法# ^- U3 i1 l  j( R) _
• 基于找到最大允许频率误差的方法
) J4 ?" z% M6 P: e• 制定一个预先测量值的表然后在其中搜索相应变化的方法
# \, u, }  L/ ^$ P; bLSI 振荡器的测量是通过将振荡器连接到定时器输入捕获来实现的。
8 M% O  H% D. r本应用笔记随附的 X-CUBE-RC-CALIB 扩展包包含执行这些内部振荡器校准的源代码,以及运行示例所需的所有嵌入式软件模块。
! |" |  N" W8 m) k# A$ T) P5 W) `, M  K; r4 ?
1 STM32U5 系统时钟5 Y3 ]5 v+ I  ?! W0 M6 Q4 K# I- l- d
STM32U5 器件具有下列时钟源可用于驱动系统时钟:
; L( _. Y% J6 m% a8 O• HSI16:16 MHz 高速内部 RC 振荡器时钟$ ^8 E  g" {8 I
• HSE:4 至 50 MHz 高速外部振荡器时钟2 v1 U9 o) _/ d* c4 J
• MSI(MSIS):100 kHz 到 48 MHz 多速内部 RC 振荡器时钟
4 C. D; W0 m" S, h6 l, f1 t• PLL:1 MHz 到 160 MHz 锁相环(PLL),由 HSI16、MSI 或 HSE 振荡器提供时钟
3 g7 B4 i' p* t; z$ IHSI16 振荡器的典型频率为 16 MHz,功耗为 150 μA。9 O5 ?$ Y2 X2 F3 ^, Z2 G: }) W- j
MSI RC 振荡器基于四个内部 RC 振荡器:MSIRC0 = 48 MHz、MSIRC1 = 4 MHz、MSIRC2 = 3.072 MHz、MSIRC4 = 400 kHz。每个 MSIRCx 振荡器具有四个分频器:/1、/2、/3 和/4。MSI 共提供了 16 个频率范围,可选择用于两种输出:MSIS(用于系统时钟)和 MSIK(用于外设内核时钟)。MSI 的设计为工作电流与频率成正比(请参考产品手册以获得 MSI 功耗与所选频率范围之间关系的更详细信息),当 CPU 在低频运行时,可最小化内部振荡器功耗。在从复位重启或待机、关断低功耗模式唤醒后,MSIS 时钟被用作系统时钟。从停机模式唤醒后,可选择 MSI 时钟而不是 HSI16 作为系统时钟。1 p* E! [4 k0 q3 l  x% ~, l
HSI48 时钟信号由内部 48 MHz RC 振荡器生成,可直接用于 USB、RNG 和 SDMMC。
! h# v$ a: d) E1 `; K内部 RC 振荡器(HSI16、MSI 和 HSI48)提供了一个低成本时钟源(无需外部元件)。它们还具有比外部振荡器更快的启动时间和更低的功耗。可校准 HSI16、MSI 和 HSI48 振荡器以提高其精度。但即使校准后,内部 RC 振荡器频率精度也不如外部晶振或陶瓷谐振器的频率精度(几十 ppm)高。
" ^. O  z2 j6 a! I, C/ L. A9 m注: 若外部振荡器发生故障,则 MSI 内部 RC 振荡器还可作为备份时钟源(辅助时钟)使用。
+ e1 ?8 `1 F$ \4 Q
+ {6 ^4 k# F% i2 z  f. h% r3 ~" F: m: p8 g0 h& @. }

9 L) b, \% B! w/ X# B9 |2 g
$ r# e& I+ ^; [
300PVW(_]G(E0JWU(D~%3Q7.png
# c- S. f, `/ Z# ?1 E

: J$ `2 p( E- o

7 v: d6 ~8 V  ]$ K, jSTM32U5 器件还嵌入了以下次级时钟源(不能用作系统时钟):
' u3 g% Y5 a# o3 L' @0 `8 F& D• LSI:32kHz 低速内部 RC,可在停机和待机模式下保持运行用于 IDWG(独立看门狗)、RTC 和 LCD。LSI振荡器无法校准,但可通过测量来评估任何频率偏差(由于温度和电压变化)。
/ ^2 Z- Z6 S8 I9 C1 r9 C& u- K' z• LSE 晶振:32.768 kHz 低速外部晶振 RC,可选地驱动 RTC(实时时钟)' N, O2 k2 @# T! u& f  {$ g* d
• HSI48:48 MHz 高速内部 RC,设计用于通过特制 CRS(时钟恢复系统)电路为 USB 外设提供高精度时钟。它还可驱动 RNG 和 SDMMC。
4 L9 K5 `) L, i* x( g: R• MSIK:多速内部 RC 振荡器时钟,用于外设内核时钟(源自 MSIRCx 振荡器)& n7 q5 s! [' u. \$ K6 |" L
• SHSI:48 MHz 内部 RC 振荡器,专为 SAES 外设提供时钟
% }3 H1 P) y1 q2 `% s
- F! U8 W9 L1 T2 内部 RC 振荡器校准5 y8 `) f5 C1 P' p
由于生产过程的不同,每个器件的内部 RC 振荡器的频率都可能不同。因此,MSI 和 HSI16 RC 振荡器由意法半导体在 TA = 30 °C 时进行工厂校准。复位后,工厂校准值自动加载到内部校准位中。, V' j' ?4 F% W/ f& q  w% Q
可微调内部 RC 振荡器的频率,以在更宽的温度和供电范围内达到更好的精度。这就是微调位的作用。
/ U$ e9 w- }+ U7 Z, a, v& L3 k对于 HSI16 振荡器,复位后校准值加载于 HSICAL[11:0]中。使用五个微调位 HSITRIM[4:0]进行微调。默认微调值为 16。增加/降低此微调值会增加/降低 HSI16 频率。HSI16 振荡器微调步长为 0.18%(约 29 kHz),具体如下:" q) L# m( x0 x* ?' D
• 将微调值写为 17 至 31 会增加 HSI16 频率。8 Y" g: b8 n- Y# O  a* X
• 将微调值写为 0 至 15 会降低 HSI16 频率。
" n$ {# O2 M/ O, l  F• 将微调值写为 16,HSI16 频率会保持为默认值。+ Q) c" a0 [! _9 B- }# A1 U6 o
下图显示了随校准值变化的 HSI16 振荡器行为。HSI16 振荡器频率随校准值增加(校准值 = 默认的 HSICAL[11:0]/ P% n  V. D" E1 y  I
+ HSITRIM[4:0])。3 a, a% Z4 [$ C* w$ N" [
& Z5 R) p7 z7 e/ }9 N

# ~7 R0 c! ]- H4 v  B  g; N }NSDOTL]AGE]A1MOEV)R@2O.png % |$ M- n* J$ G5 m  j' B

8 g1 @% Q) S' s$ S; D. w对于 MSIRCx 振荡器(x = 0..3),复位后校准值加载于 MSICALx[4:0]位中。五个微调位 MSITRIM[4:0]使微调范围更宽。校准基于将默认的 MSICALx[4:0](复位值)加上 MSITRIMx[4:0]。
) l: h- `& \; W" Q" X结果存储在 MSICALx[4:0] = 默认 MSICALx[4:0] + MSITRIMx[4:0]中。
) d) t5 w; f+ \- C7 H2 V3 q; ]5 Y, c/ T
示例# ]" d2 [$ f3 X+ t2 O" B: H
假设默认的 MSI 校准值 MSICALx[4:0]为 0x10:
- E6 N( F& F+ s; Z( d7 z2 j1. 将 0x01 和 0x0F 之间的值写入 MSITRIM[4:0],会使校准值 MSICALx[4:0]处于 MSICALx[4:0] = 0x10 + 0x01= 0x11 到 MSICALx[4:0] = 0x10 + 0x0F = 0x1F 的范围内。5 n& t4 ?# w: I/ U- h2 i
这些结果大于 0x10(默认的 MSICALx[4:0]值),因此 MSIRCx 频率增加 1 步(0x11 - 0x10)至 15 步(0x1F - 0x10)。' M% |) t. c( m/ A
2. 将 0x11 和 0x1F 之间的值写入 MSITRIM[4:0],会使校准值 MSICALx[4:0]处于 MSICALx[4:0] = 0x10 + 0x11 =0x01 到 MSICALx[4:0] = 0x10 + 0x1F = 0x0F 的范围内。
, v+ f3 M" z7 y1 Y, Y这些结果小于 0x10(默认的 MSICALx[4:0]值),因此 MSIRCx 频率降低 1 步(0x01)至 15 步(0x0F)。% Y7 i, t; R; z5 F' n* U6 z
3. 在 MSITRIM[4:0]中写入默认校准值 0x10 会导致校准值 MSICALx[4:0]等于MSICALx[4:0] = 0x10 + 0x10 = 0x00,因此 MSIRCx 频率会降低 16 步(最低频率)。1 b3 N" k3 A* {+ s$ [, B7 i

" g  |) v6 [, R* Z( M0 `下图显示了 MSIRCx 相比于 MSICALx[4:0]在 4MHz 时的行为。
2 j. w2 J5 a3 _' l5 b% h; F. I
0 u: p: ?# j" h  k
7 h, m; O7 |& X; A3 @( R0 t! o
BR$LHK`FU]IQFV}D{J}585N.png
, x, |' b, u4 ~1 Z6 W" Z0 s# M1 o3 J- ]; B7 ?( y  l
对于 HSI48 振荡器,复位后校准值加载于 HSI48CAL[8:0]中。使用六个微调位 TRIM[6:0](在 CRS_CR 寄存器中)进行微调。默认微调值为 64。增加/降低此微调值会增加/降低 HSI48 频率。
2 d: j, k9 s; k5 r8 \HSI48 振荡器微调步长为 0.12%(约 57 kHz),具体如下:
( ^: G) g6 E8 R+ a' E- a! C# E• 将微调值写为 65 至 127 会增加 HSI48 频率。0 @& Y* g; m3 D6 C& C( w0 \9 g
• 将微调值写为 0 至 63 会降低 HSI48 频率。) j0 d$ n- k( ]3 m9 w# b- Z  t# _
• 将微调值写为 64,HSI48 频率会保持为默认值。) g/ v$ u& d) u2 ~& i9 F" p" ?
下图显示了随校准值变化的 HSI48 振荡器行为。HSI48 振荡器频率随校准值增加(校准值 = 默认的 HSI48CAL[8:0]! w; B; r9 H9 E" X0 p6 W1 h
+ TRIM[6:0])。
' @  F/ F* _1 |. F/ a! ?
3 Y. `0 S; _6 }' F; [- T2 C; p

0 c: g8 m- K8 \" H$ ] A56~P0O$C]LXJDM390}DJC8.png 0 B2 g/ ~- b# W. `( u0 x# p3 v( u
: F; g2 n) ^0 l8 R6 n
完整版请查看:附件) Y. M# V" }5 x4 [; n; Y
7 c2 C4 [& L2 F# i4 {, s

8 S- s& ?% \1 l' k* I
0 D; Z5 D# Y  W6 {: o

DM00794778_ZHV1.pdf

下载

642.41 KB, 下载次数: 0

赞 收藏 评论0 发布时间:2022-10-15 17:10

举报

0个回答

所属标签

相似技术帖

官网相关资源

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