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

如何校准 STM32L1xx 内部 RC 振荡器

[复制链接]
STMCU小助手 发布时间:2022-7-17 22:41
前言
- ~$ {5 D, `+ Y8 S+ ]# VSTM32L1xx 微控制器有两个内部 RC 振荡器可做为系统时钟源。它们是 HSI(高速内部)和MSI(多速内部)振荡器。HSI 振荡器的典型频率为 16 MHzMSI 振荡器为低速、低功耗时钟源。* P$ S; v& h9 L5 G: ]
工作温度对 RC 振荡器的精度有影响。在 25 ℃时,HSI 和 MSI 振荡器的典型精度为 ±1%,但-40 105 ℃温度范围,精度会降低。
( b( R6 U8 w. k. q3 c' ^为补偿温度对内部 RC 振荡器精度的影响,STM32L1xx 微控制器的内置一些功能可帮您校准HSI MSI 振荡器及测量 MSI LSI (低速内部)振荡器频率. I8 k* e- U4 r! S
本应用笔记侧重如何校准内部 RC 振荡器:HSI 和 MSI。它展示了两个方法:第一个方法基于寻找具有最低误差的频率,第二个方法是寻找具有最大允许误差的频率。两个方法都通过提供精确参考信号的方式实现。. |7 ?  P) L) k1 V1 A
MSI 和 LSI 振荡器的测量都是通过将振荡器连至定时器输入捕获执行。
% r5 [4 a8 G3 y+ r1 }3 H: 1在本文中, STM32L1xx 指超低功耗大容量、中容量增强型、中容量器件。+ R, j% C+ j+ Z/ }/ P' ]
2超低功耗中容量器件为 STM32L151xx STM32L152xx 微控制器,其闪存密度范围为 64128K 字节。
7 E' m2 ~8 @9 M( I6 G- n$ U* J3超低功耗中容量增强型器件为 STM32L151xxSTM32L152xx STM32L162xx 微控制器,其闪存密度为 256 K 字节。
$ V. k$ x- G% J( ]$ z* S4超低功耗大容量器件为 STM32L151xxSTM32L152xx STM32L162xx 微控制器,其闪存密度为 384 K 字节。
6 |# P( @! j. ]! O' y" ^$ Z4 @2 U/ v/ _" E* d1 t

) i* V5 N( I. Z% w1 STM32L1xx 系统时钟# k) o, \  {8 e. a
STM32L1xx 微控制器系列有多个时钟源可用于驱动系统时钟:; o4 ]* t' t$ |% h- O! `$ ^: }: F, l
16 MHz 高速内部 (HSIRC 振荡器时钟
1 W- J6 [1 `0 e* n4 b& s0 f1 24 MHz 高速外部 (HSE)振荡器时钟( ]& ]% E* ]8 G2 u( s
65.5 kHz 4.2 MHz 多速内部 (MSIRC 振荡器时钟
' F5 p1 m4 b. E* y: G1 I2 24 MHz 锁相环 (PLL),由 HSI HSE 振荡器提供时钟# X" P# J9 ~1 g5 g, P
高速内部 (HSI) RC 振荡器一般频率为 16 MHz,耗电 100 µA。+ Q" ?- n. }. L* @
多速内部(MSI)RC 振荡器提供了七个频率范围:65.5 kHz、131 kHz、262 kHz、524 kHz、1.05 MHz2.1 MHz (默认值)和 4.2 MHz。它的设计为工作电流与频率成正比 (请参考产品手册以获得 MSI 耗电与所选频率范围之间关系的更详细信息),因此当 CPU 在低频运行时,内部振荡器耗电可最小化。在从复位重启、从停止唤醒、待机低功耗模式后, MSI 时钟被用作系统时钟。2 k% G$ p2 }, D. E: D, ^4 V
内部 RC 振荡器 (HSI 和 MSI)提供了低成本时钟源 (不需外部元件),这是其优点。它还具有比外部振荡器更快的启动时间和更低的功耗。可校准 HSI MSI 振荡器以提高其精度。
' D7 D6 y5 J7 z2 b9 i5 r但即使校准后,内部RC振荡器频率也不如外部晶振或陶瓷谐振器的频率精度(几十ppm)高。
& [/ |- S2 K" K+ l:若外部振荡器发生故障,内部 RC 振荡器 (HSI MSI)还可作为备份时钟源 (辅助时钟)使用。
" Z! Y& A* T) o7 N; }
( A2 o$ q; i+ p% w. `
% K, L; I! y) z- g4 g( f+ L- `
~`9Z9]ZE]GS4[AZ%7KPJX.png
6 B! j& C* l+ [- Z0 ^4 t1 P7 @$ h8 V% S2 F1 l' h
1 |4 w: r6 W. ~  V
5 m3 H+ ?) \" l$ h- H3 u( ]" g" f
STM32L1x 器件还有两个次级时钟源 (不能用作系统时钟源):3 Y8 s- z% I  O3 @2 b' I
37 kHz 低速内部 (LSIRC,设计为驱动独立看门狗,也可驱动实时时钟 (RTC)。
% r% D, c0 ~& @' t  d; J该 LSI 振荡器无法校准,但可对其测量以评估 (由温度和电压变化引起的)频率偏差
% k6 A4 q7 W: h: W+ s, ?, k32.768 kHz 低速外部晶振 (LSE 晶振),用于驱动实时时钟 (RTC)
6 H( X: ]' U5 Q' Y; J$ E/ i/ x( \* D$ J
# l/ h$ q' X" |- [! |+ x6 n$ B
2内部 RC 振荡器校准
, ^; h8 }0 ^$ i7 Z& M( A4 a由于生产过程的不同,每个芯片的内部 RC 振荡器的频率都可能不同。因此,MSI 和 HSI RC振荡器由 ST 工厂校准,以获得 TA = 25 ℃时 1% 的精度。复位后,工厂校准值自动加载到内部校准位中。
. Y9 v: x' i, ^$ Z$ Z2 B. E可微调内部 RC 振荡器的频率,以在更宽的温度和供电范围内达到更好的精度。这就是微调位的作用。( a4 ]9 M9 J' N5 ~: P
对于 HSI 振荡器,复位后校准值加载于 HSICAL[7:0] 位中。有五个微调位 HSITRIM[4:0] 用于微调。默认微调值为 16。增加 / 降低此微调值会增加 / 降低 HSI 频率。 HSI 振荡器微调步长0.5% (在 80 kHz 周围)。
1 l4 C) P& Z5 \  g: ~1 s将微调值写为 17 31 会增加 HSI 频率。3 }$ N1 n$ c7 r8 f2 v+ t6 l
将微调值写为 0 15 会降低 HSI 频率。# w2 q+ W3 }: U6 a
将微调值写为 16HSI 频率会保持为默认值。
! n- p& {* x9 s6 [9 P& F( p* T下图显示了随校准值变化的 HSI 振荡器行为。HSI 振荡器频率随校准值增加(校准值 = 默认HSICAL[7:0]+ HSITRIM[4:0]),除了在模 16 处。在这些校准值处,负步进会达到正步进的三倍。
* T: N3 O7 l7 W- }) \8 b) E9 g% |. D9 {0 G8 U6 Z
3 E3 c$ {4 _7 @# L0 n/ {
(Q6ATQ9{)2MKGV_M]T6AUYX.png
- ]7 d7 |4 ^! B, V# |$ c2 l0 T1 B* z. C- f& R) c
, u8 D+ \: t" o; [9 o9 Y( L
3 ]- M5 e0 }8 U, q* @
对于 MSI 振荡器,复位后校准值加载于 MSICAL[7:0] 位中。使用了八个微调位MSITRIM[7:0],因此有更宽的调整范围。校准基于将默认的 MSICAL[7:0] 位 (复位值)加上 MSITRIM[7:0] 位。
8 L/ O* H3 A# I/ h结果储存于 MSICAL[7:0] 中:5 X. Q0 e% K0 _) Z+ m+ n- s
MSICAL[7:0] = 默认的 MSICAL[7:0] + MSITRIM[7:0]2 E' ]+ b3 @& R! b6 L4 O
+ o  f* H1 v6 K) V! U" [* O, n
3 n' Y$ Q! ^& o" M, C, ]
示例:6 c! ~3 O6 t  B: d4 {
假设默认的 MSI 校准值 MSICAL[7:0] 为 0x80。
7 D6 S/ R- {/ O7 D& C; h1.0x01 0x7F 之间的值写入 MSITRIM[7:0] 会导致校准值 MSICAL[7:0] 的范围为:
9 j7 N4 B% T8 n8 nMSICAL[7:0] = 0x80 + 0x01 = 0x81MSICAL[7:0] = 0x80 + 0x7F = 0xFF
5 a# S5 Y2 r+ B这些结果大于 0x80 (默认的 MSI[7:0] 值),因此 MSI 频率增加 1 步 (0x81 -0x80)至 127 步 (0xFF - 0x80)。9 N9 \) P+ w2 V) f# d
2. 将 0x81 到 0xFF 之间的值写入 MSITRIM[7:0] 会导致校准值 MSICAL[7:0] 的范围为:7 `0 R6 Z" {/ x" [, r/ v  Y) g
MSICAL[7:0] = 0x80 + 0x81 = 0x01MSICAL[7:0] = 0x80 + 0xFF = 0X7F; z& t1 ]  y. @: g8 t  D
这些结果小于 0x80 (默认的 MSI[7:0] 值),因此 MSI 频率降低 1 步 (0x01)至127 步 (0x7F)。/ D( l5 g/ u9 s* g# O6 h
3. 在 MSITRIM[7:0] 中写入默认校准值 (0x80)会导致校准值 MSICAL[7:0] 等于MSICAL[7:0] = 0x80 + 0x80 = 0x00,因此 MSI 频率会降低 128 步 (最低频率)。3 |) C; r& L  _5 R
. N- c% r$ o: P  @* e

) W! A/ `  Q. E, S; D7 U下面的3 显示了在范围 6 (4194304 Hz)处 MSI 行为随 MSICAL[7:0] 的变化。' _! Y$ w, a7 u  s. i3 Q% X+ b& K1 E

6 v+ Y+ ~& A7 x. Q7 [0 `
; z% z; l/ W" ]" N& U
W2%OP3JG(%4YIJBYO4ILH%P.png
* F: K' T4 r3 g3 b5 S8 D( u( j0 {9 L/ ]7 F7 p( A
/ W. }/ c9 f/ o! k5 M6 w

! p$ n# \" U: R, P. c6 B7 C2.1校准原理4 D/ Z* Q3 @1 m; Q( Z
校准原理包括:. n0 A$ ^# X0 G; Q" T( f$ K
1.将 (需要校准的)内部 RC 振荡器设置为系统时钟,
; @  P1 J" L& N, O4 i" Q$ Y/ S. C2. 测量每个微调值的内部 RC 振荡器 (HSI 或 MSI)频率,  v6 }) a9 D9 [" m( U( O+ H
3. 计算每个微调值的频率误差,2 {7 U: Y+ P# \9 L
4. 最后,将微调位设置为最优值 (对应于最低频率误差)。
& X: K4 A# W& ~* j- T. e$ ?内部振荡器频率并非直接测量,而是使用定时器计算时钟脉冲个数,与典型值比较。为此,必须有一个非常精确的参考频率,比如由外部 32.768 kHz 晶振或 50 Hz/60 Hz 电源频率(请参2.2.2 章节 : 其它源用作参考频率的情况)。
3 Y1 W; Y" L$ t下图显示了怎样使用定时器计数个数测量参考信号周期。
% Y2 X3 ?( q# T) l$ |8 r/ Q; C( d$ _+ {4 D/ }

& r5 O! M# G8 ~; Z4 t# \ 9{J2ET5Y5GDQ(4YY42G(IH2.png
3 w1 [3 \% o9 N5 ^5 v3 I" g) j. R- H# ^# r- k: q
启用定时器计数后,当第一个参考信号上升沿发生时,捕捉定时器计数值,储存于IC1ReadValue1 中。在第二个上升沿,又捕捉到定时器计数,储存于 IC1ReadValue2 中。在两个连续上升沿之间的时间 (IC1ReadValue2 - IC1ReadValue1)表示了参考信号的整个周期。
, F4 Q6 @0 }# u5 F& l2 }因为定时器计数器的时钟由系统时钟提供 (内部 RC 振荡器 HSI 或 MSI),因此与参考信号
; h! t8 D+ l  w/ ?1 d/ v) K* v有关的内部 RC 振荡器生成的真正频率为:
: f& U3 q) l/ |
8 l* P1 q' V* g  ~0 S  X# p) t! Z5 h

: |- @0 B) K( ?+ f/ k( L( b/ O H%DV`U(N$~$ZD0INB%Y5D_A.png 8 N  _% M* o3 r( t

/ Q0 T' ]8 Y9 `3 R7 h) G/ ^

: G/ U2 j/ |( {1 Q' M4 z- K6 ~误差 (单位 Hz)为测量频率与典型值之差的绝对值。: B, K+ q( t0 {3 w8 E$ M% Q
因此,内部振荡器频率误差表示为:
, ?. O6 ]9 T* z$ ^9 Z9 }# c
5 a8 d% Y$ _& V6 D
& P2 I. c/ ]2 X' O3 I5 Z
GL(JF6C)_9NR}~QSQS[4F}M.png
. x' P5 N/ ?7 @" ]3 W  W9 `+ C  {$ ^/ C+ I/ e8 i" T" G( x

# q" H/ P4 c1 [+ y) i对每个微调值计算误差之后,算法会决定最优微调值 (对应于最接近典型值的频率),编程于微调位中 (请参考2.3 章节 : 内部振荡器校准固件说明以获取更详细信息)。7 P, v. q2 J7 K+ R9 w2 z. \$ e
6 P1 H: J8 y; L  x2 B

4 ]4 d  j- }, _; [; m( P4 P3 `

* z2 Q+ ]6 i" y% u1 F! |1 M& N$ E# Q0 t7 Q) `3 d; ~$ }
完整版请查看:附件
! b) r# F2 }1 ?9 D4 e

. h1 W' y' [) K. X/ B. ]% _. Z$ e  }" N$ Z4 T4 K
$ ^4 k4 g% l2 `) K

' T. a7 m+ y5 V3 ]3 O/ F4 L

CD00161561_ZHV11.pdf

下载

1.47 MB, 下载次数: 8

收藏 评论0 发布时间:2022-7-17 22:41

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版