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

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

[复制链接]
STMCU小助手 发布时间:2022-10-15 17:10
前言
; v! l5 A! K7 c' {. o' j+ MSTM32U5 系列微控制器内嵌两个可选为系统时钟源的内部 RC 振荡器。它们是 HSI16(高速内部)和 MSI(多速内部)振荡器,其可驱动两个独立的输出:MSIS(用于系统时钟)和 MSIK(用于某些外设作为内核时钟)。HSI16 振荡器的典型频率为 16MHz。MSI 振荡器为多速低功耗时钟源。
+ a9 `  z; N( O* I8 K7 S: D8 h
STM32U5 系列微控制器(称为 STM32U5 器件)具有三个辅助内部时钟源:
' f' G5 O6 n. V: x• LSI:32kHz(内部低速)8 t1 P3 {$ u- _. _0 S' j
• HSI48:48MHz(内部高速),可直接用于 USB、RNG(真随机数发生器)和 SDMMC(SD/SDIO MMC 卡主机接口)。
# I3 d6 `' f1 \9 `4 L/ X; t7 K• SHSI:48MHz(+抖动)内部安全 RC 振荡器,专用于为 SAES 外设提供时钟9 p) T7 q7 z: p! |; N6 l4 C

" G1 g% _# H/ ^3 i9 |7 e工作温度对 RC 振荡器的精度有影响。在 30°C 时,HSI16 精度为±0.5%,MSI 精度为±0.6%,HSI48 精度为±4%。但在–40°C 至125°C 的温度范围内,精度会降低。为补偿温度对内部 RC 振荡器精度的影响,STM32U5 器件内置一些功能用于校准 HSI16、MSI 和 HSI48 振荡器及测量 LSI 振荡器频率。" `/ ~! s, c+ c4 ]
当系统中有 32.768kHz 的 LSE(低速外部)时钟源可用时,MSI 振荡器的频率可通过硬件自动微调,从而达到优于±0.25%的精度。这种使用 LSE 进行的自动硬件校准被称为 PLL(锁相环)模式。本应用笔记尚未对 PLL 模式进行介绍,仅侧重于用户微调。* h6 q8 i1 K; Q/ _
本文档还详细介绍了如何校准 HSI16、MSI 和 HSI48 内部 RC 振荡器,方法如下:
2 _, C! J; ]! U; Q$ i' n• 基于找到具有最小误差的频率的方法% e; B- C/ P9 L- q! t
• 基于找到最大允许频率误差的方法. l: g$ G9 h* D2 v2 x# i, [1 ^8 j
• 制定一个预先测量值的表然后在其中搜索相应变化的方法
8 ^# Y  `- |6 O" N1 Y. {0 A( l1 OLSI 振荡器的测量是通过将振荡器连接到定时器输入捕获来实现的。
- v, U5 u) Y- j( Q* _# G1 l本应用笔记随附的 X-CUBE-RC-CALIB 扩展包包含执行这些内部振荡器校准的源代码,以及运行示例所需的所有嵌入式软件模块。
6 ^1 O5 A1 a. b+ H6 I7 `) I: w2 s$ W) y4 Y
1 STM32U5 系统时钟+ v2 ~3 {$ ~% s7 i$ G  Z
STM32U5 器件具有下列时钟源可用于驱动系统时钟:$ F) w$ Y9 u! y
• HSI16:16 MHz 高速内部 RC 振荡器时钟7 \6 |! Z2 r; I+ C9 e, n
• HSE:4 至 50 MHz 高速外部振荡器时钟- X4 r! j+ F# X7 v" s% l6 K
• MSI(MSIS):100 kHz 到 48 MHz 多速内部 RC 振荡器时钟! T( L  N$ R/ ]$ S7 _+ O3 O
• PLL:1 MHz 到 160 MHz 锁相环(PLL),由 HSI16、MSI 或 HSE 振荡器提供时钟+ b+ ^0 x  q: j# V
HSI16 振荡器的典型频率为 16 MHz,功耗为 150 μA。
; Q9 S0 _: G1 z- T. K. YMSI 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 作为系统时钟。8 z( u" a( ]/ w
HSI48 时钟信号由内部 48 MHz RC 振荡器生成,可直接用于 USB、RNG 和 SDMMC。9 |2 }% Y( u/ e; G* o
内部 RC 振荡器(HSI16、MSI 和 HSI48)提供了一个低成本时钟源(无需外部元件)。它们还具有比外部振荡器更快的启动时间和更低的功耗。可校准 HSI16、MSI 和 HSI48 振荡器以提高其精度。但即使校准后,内部 RC 振荡器频率精度也不如外部晶振或陶瓷谐振器的频率精度(几十 ppm)高。
$ Y7 S' s, }5 N& V5 W! I2 S注: 若外部振荡器发生故障,则 MSI 内部 RC 振荡器还可作为备份时钟源(辅助时钟)使用。5 t4 G0 w5 A" b3 }
+ e) H$ l# s3 n- I* q
) S- z, l" e5 f% V4 q; L
6 _9 `9 \. W" N

6 t3 p+ z2 v6 u9 i, D0 ?& O1 D/ y
300PVW(_]G(E0JWU(D~%3Q7.png

4 i, u# p# X/ X/ ]3 F3 j  @% J% p; f8 r0 A( M" ?3 s9 y
# {" j& e- N; P& q
STM32U5 器件还嵌入了以下次级时钟源(不能用作系统时钟):, j" s2 `1 Z) ]
• LSI:32kHz 低速内部 RC,可在停机和待机模式下保持运行用于 IDWG(独立看门狗)、RTC 和 LCD。LSI振荡器无法校准,但可通过测量来评估任何频率偏差(由于温度和电压变化)。$ e# t- [( i/ T8 O3 }- ]7 `5 B
• LSE 晶振:32.768 kHz 低速外部晶振 RC,可选地驱动 RTC(实时时钟)
( Y; k6 R4 V4 T9 \% y- x! b• HSI48:48 MHz 高速内部 RC,设计用于通过特制 CRS(时钟恢复系统)电路为 USB 外设提供高精度时钟。它还可驱动 RNG 和 SDMMC。, M! [2 {+ _5 k6 y7 g  X0 `% O
• MSIK:多速内部 RC 振荡器时钟,用于外设内核时钟(源自 MSIRCx 振荡器)! a! K+ P0 r- s/ o; I! w
• SHSI:48 MHz 内部 RC 振荡器,专为 SAES 外设提供时钟
2 {  A0 g+ S0 J4 t" P6 E; y3 T
# P3 ?$ n. F' e4 k3 T) l4 G; h2 内部 RC 振荡器校准
: a+ g; g5 j4 d; O+ f# {由于生产过程的不同,每个器件的内部 RC 振荡器的频率都可能不同。因此,MSI 和 HSI16 RC 振荡器由意法半导体在 TA = 30 °C 时进行工厂校准。复位后,工厂校准值自动加载到内部校准位中。6 i, W+ e( ?& U5 @' k  @5 y2 Y9 V* v2 ?
可微调内部 RC 振荡器的频率,以在更宽的温度和供电范围内达到更好的精度。这就是微调位的作用。. y# W+ S1 ?! {- i+ e6 Q( L3 F, `
对于 HSI16 振荡器,复位后校准值加载于 HSICAL[11:0]中。使用五个微调位 HSITRIM[4:0]进行微调。默认微调值为 16。增加/降低此微调值会增加/降低 HSI16 频率。HSI16 振荡器微调步长为 0.18%(约 29 kHz),具体如下:
9 q+ s9 W# w5 d/ U7 D+ h5 b• 将微调值写为 17 至 31 会增加 HSI16 频率。
% n/ ~* R2 W# V0 P• 将微调值写为 0 至 15 会降低 HSI16 频率。$ w; ^0 ?5 g& D5 ^
• 将微调值写为 16,HSI16 频率会保持为默认值。, W) r- W6 y8 S8 T% [
下图显示了随校准值变化的 HSI16 振荡器行为。HSI16 振荡器频率随校准值增加(校准值 = 默认的 HSICAL[11:0]
/ S! E) a+ {! O, N4 M+ HSITRIM[4:0])。
7 ~. N" A7 F- Q, {* n2 a8 S* Y2 u* Q; N3 v; q0 l; L$ E
% W; j3 Q3 M% m$ a- Y5 h
}NSDOTL]AGE]A1MOEV)R@2O.png 8 N1 R* X: d: f# R6 K- {* J2 w

" S( I) |3 o4 V! a( `0 D1 a对于 MSIRCx 振荡器(x = 0..3),复位后校准值加载于 MSICALx[4:0]位中。五个微调位 MSITRIM[4:0]使微调范围更宽。校准基于将默认的 MSICALx[4:0](复位值)加上 MSITRIMx[4:0]。
, N$ F# E/ }8 k5 l0 `7 J结果存储在 MSICALx[4:0] = 默认 MSICALx[4:0] + MSITRIMx[4:0]中。
3 }7 z; q% n% G6 P, l. c( F
4 D* p! T- Q7 o) x- `" i& p
示例
9 e2 C) i& O0 Q  T假设默认的 MSI 校准值 MSICALx[4:0]为 0x10:1 ]% p, D. b* a8 D: m
1. 将 0x01 和 0x0F 之间的值写入 MSITRIM[4:0],会使校准值 MSICALx[4:0]处于 MSICALx[4:0] = 0x10 + 0x01= 0x11 到 MSICALx[4:0] = 0x10 + 0x0F = 0x1F 的范围内。% q4 D# ^* o& Q; s  `
这些结果大于 0x10(默认的 MSICALx[4:0]值),因此 MSIRCx 频率增加 1 步(0x11 - 0x10)至 15 步(0x1F - 0x10)。
# I: R% U$ l9 ?2 x7 [9 j2. 将 0x11 和 0x1F 之间的值写入 MSITRIM[4:0],会使校准值 MSICALx[4:0]处于 MSICALx[4:0] = 0x10 + 0x11 =0x01 到 MSICALx[4:0] = 0x10 + 0x1F = 0x0F 的范围内。
+ |. }1 G* N% h; r5 Y# g这些结果小于 0x10(默认的 MSICALx[4:0]值),因此 MSIRCx 频率降低 1 步(0x01)至 15 步(0x0F)。; O3 W  Z: h; i3 G: q
3. 在 MSITRIM[4:0]中写入默认校准值 0x10 会导致校准值 MSICALx[4:0]等于MSICALx[4:0] = 0x10 + 0x10 = 0x00,因此 MSIRCx 频率会降低 16 步(最低频率)。
; A1 ^# a, w" }0 l. E6 _  D; l  s* a$ {. C! a
下图显示了 MSIRCx 相比于 MSICALx[4:0]在 4MHz 时的行为。3 y2 ^/ A% a9 E8 J2 i8 A  [$ r

" P; f& H# v. E0 X$ W
) R+ |- ?6 _6 N* }6 Q& ?( v
BR$LHK`FU]IQFV}D{J}585N.png
3 G* X: v* I* ]" F7 G: k/ U$ p6 ]/ ]) W! g9 i6 Z
对于 HSI48 振荡器,复位后校准值加载于 HSI48CAL[8:0]中。使用六个微调位 TRIM[6:0](在 CRS_CR 寄存器中)进行微调。默认微调值为 64。增加/降低此微调值会增加/降低 HSI48 频率。
* H9 o7 J9 q- r+ i% ?$ d$ u$ k$ I# zHSI48 振荡器微调步长为 0.12%(约 57 kHz),具体如下:
) j; c- L' \# Q" A! R( C/ W" f• 将微调值写为 65 至 127 会增加 HSI48 频率。
, ?/ a* G" X! z% X9 R• 将微调值写为 0 至 63 会降低 HSI48 频率。4 [% P& G# T! M: O1 d- X
• 将微调值写为 64,HSI48 频率会保持为默认值。
$ S9 ?3 n1 F0 [, y下图显示了随校准值变化的 HSI48 振荡器行为。HSI48 振荡器频率随校准值增加(校准值 = 默认的 HSI48CAL[8:0]2 X2 ^8 k2 s/ q# a0 |* Q* Z
+ TRIM[6:0])。+ _+ k& I2 B; z5 L9 i. k
) z9 T7 d3 s0 h+ D" v: G
' n/ L" ~3 h% ?: S
A56~P0O$C]LXJDM390}DJC8.png
! W. N: R, h9 N0 R/ D0 l2 M' P# A; n4 y5 k2 r6 V
完整版请查看:附件
* B' j2 o3 h7 N4 k* S/ f3 v3 G6 [) b. {2 z, V
4 f6 z, j; G: K% A

7 L# ^0 q. [0 C- e* Z1 o

DM00794778_ZHV1.pdf

下载

642.41 KB, 下载次数: 0

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

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版