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

如何校准 STM32L1xx 内部 RC 振荡器

[复制链接]
STMCU小助手 发布时间:2022-7-17 22:41
前言2 \  s0 _$ q1 M' M2 e, W
STM32L1xx 微控制器有两个内部 RC 振荡器可做为系统时钟源。它们是 HSI(高速内部)和MSI(多速内部)振荡器。HSI 振荡器的典型频率为 16 MHzMSI 振荡器为低速、低功耗时钟源。+ d, Q8 t+ I7 I9 g5 b- u
工作温度对 RC 振荡器的精度有影响。在 25 ℃时,HSI 和 MSI 振荡器的典型精度为 ±1%,但-40 105 ℃温度范围,精度会降低。
# R. ~3 w' ~2 J为补偿温度对内部 RC 振荡器精度的影响,STM32L1xx 微控制器的内置一些功能可帮您校准HSI MSI 振荡器及测量 MSI LSI (低速内部)振荡器频率
( U- ^) W4 n- S$ F4 W$ m本应用笔记侧重如何校准内部 RC 振荡器:HSI 和 MSI。它展示了两个方法:第一个方法基于寻找具有最低误差的频率,第二个方法是寻找具有最大允许误差的频率。两个方法都通过提供精确参考信号的方式实现。
5 r/ q8 z( y3 g* X' l: rMSI 和 LSI 振荡器的测量都是通过将振荡器连至定时器输入捕获执行。
. ~/ `: N( a+ s/ V6 j& y: 1在本文中, STM32L1xx 指超低功耗大容量、中容量增强型、中容量器件。' r3 N- K. Z  t# S; L8 T3 H+ r  q
2超低功耗中容量器件为 STM32L151xx STM32L152xx 微控制器,其闪存密度范围为 64128K 字节。! b9 Z, _2 r2 Q# a
3超低功耗中容量增强型器件为 STM32L151xxSTM32L152xx STM32L162xx 微控制器,其闪存密度为 256 K 字节。
. _7 V8 \  ~# X0 e# x# ?4超低功耗大容量器件为 STM32L151xxSTM32L152xx STM32L162xx 微控制器,其闪存密度为 384 K 字节。
4 L4 H# G9 r' r, c+ r( r2 h) w% G5 ~- C/ @

* p. \9 ^  C$ K9 @1 @' }* h1 STM32L1xx 系统时钟
; k# g0 Q; i0 j+ PSTM32L1xx 微控制器系列有多个时钟源可用于驱动系统时钟:' ?: t7 W5 v& B# @( b8 Y5 V! v+ b
16 MHz 高速内部 (HSIRC 振荡器时钟
+ i2 H+ k+ g% C0 i; x4 G& b7 ]1 24 MHz 高速外部 (HSE)振荡器时钟
" \( O2 L7 F8 @6 l65.5 kHz 4.2 MHz 多速内部 (MSIRC 振荡器时钟6 {  L5 k; a& Q3 M4 r7 T
2 24 MHz 锁相环 (PLL),由 HSI HSE 振荡器提供时钟
: h& ~" h# L$ S4 p高速内部 (HSI) RC 振荡器一般频率为 16 MHz,耗电 100 µA。" M! Y+ C- K; N5 o2 P
多速内部(MSI)RC 振荡器提供了七个频率范围:65.5 kHz、131 kHz、262 kHz、524 kHz、1.05 MHz2.1 MHz (默认值)和 4.2 MHz。它的设计为工作电流与频率成正比 (请参考产品手册以获得 MSI 耗电与所选频率范围之间关系的更详细信息),因此当 CPU 在低频运行时,内部振荡器耗电可最小化。在从复位重启、从停止唤醒、待机低功耗模式后, MSI 时钟被用作系统时钟。# X2 f; J% H- R  J$ E
内部 RC 振荡器 (HSI 和 MSI)提供了低成本时钟源 (不需外部元件),这是其优点。它还具有比外部振荡器更快的启动时间和更低的功耗。可校准 HSI MSI 振荡器以提高其精度。+ \# k7 l* V2 V' Q) `5 D
但即使校准后,内部RC振荡器频率也不如外部晶振或陶瓷谐振器的频率精度(几十ppm)高。
3 T8 k1 v  x9 v:若外部振荡器发生故障,内部 RC 振荡器 (HSI MSI)还可作为备份时钟源 (辅助时钟)使用。
' P7 P6 y& t6 r! L% G8 R& L3 \! z  {* }1 ?# \3 J' e% w0 c
6 B: ?- |3 I! ^" q' }; B
~`9Z9]ZE]GS4[AZ%7KPJX.png ; C( C$ F( e( k" f

. h* S! r: A1 J% M* a" W

) I6 H, \# q4 y5 T( ~+ e3 }$ U" c- k  s3 G! X
STM32L1x 器件还有两个次级时钟源 (不能用作系统时钟源):
# x: l/ I7 F! ~; O7 w2 b37 kHz 低速内部 (LSIRC,设计为驱动独立看门狗,也可驱动实时时钟 (RTC)。
  U# T# I, J5 @; s+ _- L该 LSI 振荡器无法校准,但可对其测量以评估 (由温度和电压变化引起的)频率偏差
: N  q' A: E% G4 r32.768 kHz 低速外部晶振 (LSE 晶振),用于驱动实时时钟 (RTC)- R% X- ^1 B: L$ g4 O
/ d0 S, I: N$ L% ~2 ~

; K' ^3 O+ r9 D1 P, a9 a2内部 RC 振荡器校准8 u* L! I& c% T, e# i. @
由于生产过程的不同,每个芯片的内部 RC 振荡器的频率都可能不同。因此,MSI 和 HSI RC振荡器由 ST 工厂校准,以获得 TA = 25 ℃时 1% 的精度。复位后,工厂校准值自动加载到内部校准位中。" V# H% a" G- Y1 i8 S5 G  D; |
可微调内部 RC 振荡器的频率,以在更宽的温度和供电范围内达到更好的精度。这就是微调位的作用。% s2 ~$ s7 H1 c6 h2 I# ?% U- p: D
对于 HSI 振荡器,复位后校准值加载于 HSICAL[7:0] 位中。有五个微调位 HSITRIM[4:0] 用于微调。默认微调值为 16。增加 / 降低此微调值会增加 / 降低 HSI 频率。 HSI 振荡器微调步长0.5% (在 80 kHz 周围)。
0 h7 }' l5 l, c% ]' ]3 `将微调值写为 17 31 会增加 HSI 频率。
3 d8 z# e7 p; ~8 \; X) R2 P将微调值写为 0 15 会降低 HSI 频率。
% \$ U) ]5 m) K7 s$ {. @将微调值写为 16HSI 频率会保持为默认值。
' b7 G2 B9 [4 w/ T, l* H3 {! r下图显示了随校准值变化的 HSI 振荡器行为。HSI 振荡器频率随校准值增加(校准值 = 默认HSICAL[7:0]+ HSITRIM[4:0]),除了在模 16 处。在这些校准值处,负步进会达到正步进的三倍。
$ T( M" e4 n" A" n+ c4 M0 G7 M' R" |5 W: E5 H  G& X

# p4 M+ \$ a, b+ p+ G* |+ M (Q6ATQ9{)2MKGV_M]T6AUYX.png + G: |3 l9 {- s7 I# s
0 T; t6 x$ R5 E# [

- N2 h8 d) c$ R+ O8 k3 U
" X: |* x1 d$ Y3 M3 t8 X5 Q" l2 K对于 MSI 振荡器,复位后校准值加载于 MSICAL[7:0] 位中。使用了八个微调位MSITRIM[7:0],因此有更宽的调整范围。校准基于将默认的 MSICAL[7:0] 位 (复位值)加上 MSITRIM[7:0] 位。
+ F1 T2 L( N2 ^; G; L结果储存于 MSICAL[7:0] 中:  L: Q0 o, A; }2 I6 \
MSICAL[7:0] = 默认的 MSICAL[7:0] + MSITRIM[7:0]
1 r3 m6 e' |  n; C6 K: K! ~& K: ?/ W1 }1 h
- y8 u3 _; N$ D
示例:
8 R; J; ~  p* }假设默认的 MSI 校准值 MSICAL[7:0] 为 0x80。% C. w% d. n  L9 Q
1.0x01 0x7F 之间的值写入 MSITRIM[7:0] 会导致校准值 MSICAL[7:0] 的范围为:
6 t3 a$ G* u1 bMSICAL[7:0] = 0x80 + 0x01 = 0x81MSICAL[7:0] = 0x80 + 0x7F = 0xFF" Z* l7 b5 r" f/ F/ J$ D" o
这些结果大于 0x80 (默认的 MSI[7:0] 值),因此 MSI 频率增加 1 步 (0x81 -0x80)至 127 步 (0xFF - 0x80)。
4 ]( E. o( ^3 x$ @8 Z& H$ {8 B2. 将 0x81 到 0xFF 之间的值写入 MSITRIM[7:0] 会导致校准值 MSICAL[7:0] 的范围为:: |# s. x) g$ @( c$ D, y  ?
MSICAL[7:0] = 0x80 + 0x81 = 0x01MSICAL[7:0] = 0x80 + 0xFF = 0X7F
1 @- q, I5 K* T9 H- `. {这些结果小于 0x80 (默认的 MSI[7:0] 值),因此 MSI 频率降低 1 步 (0x01)至127 步 (0x7F)。0 f) J8 X& z% l5 }/ `
3. 在 MSITRIM[7:0] 中写入默认校准值 (0x80)会导致校准值 MSICAL[7:0] 等于MSICAL[7:0] = 0x80 + 0x80 = 0x00,因此 MSI 频率会降低 128 步 (最低频率)。
$ }  d! H) L& L9 v: T
8 K7 r$ t2 s4 R7 \' C1 L

7 `$ u5 b4 Z' [下面的3 显示了在范围 6 (4194304 Hz)处 MSI 行为随 MSICAL[7:0] 的变化。# m2 ?8 d5 v! \3 Z

8 Z4 D3 d0 t6 v2 y1 D) p: M

1 G( \- U- n9 V" U1 T- Z/ t+ m W2%OP3JG(%4YIJBYO4ILH%P.png ) [/ A6 t6 u( N. w- N  n& V# j

; n: N( f  r# V* I; ~! v
, F! V5 P2 i. r' p

2 h9 o( e( S, x5 g4 E) ?2 R( ~/ b' l2.1校准原理! }2 l, x* v0 s9 x+ s# D
校准原理包括:
# V; S/ ?: F8 N! W1.将 (需要校准的)内部 RC 振荡器设置为系统时钟,
$ z( I0 V2 ^3 f, V8 `7 T3 L. @; k2. 测量每个微调值的内部 RC 振荡器 (HSI 或 MSI)频率,6 T2 q. ?1 O; p* L& P4 p) Q
3. 计算每个微调值的频率误差,
5 `3 O+ D9 u1 O! ^# o4. 最后,将微调位设置为最优值 (对应于最低频率误差)。3 s0 R5 f, |0 y' N# s; i
内部振荡器频率并非直接测量,而是使用定时器计算时钟脉冲个数,与典型值比较。为此,必须有一个非常精确的参考频率,比如由外部 32.768 kHz 晶振或 50 Hz/60 Hz 电源频率(请参2.2.2 章节 : 其它源用作参考频率的情况)。5 F% O% q6 m3 v9 S0 t  z0 \
下图显示了怎样使用定时器计数个数测量参考信号周期。
  F; {9 _3 K8 r) ^- K3 U! t
8 f  n  l; Y: t0 C+ N

# z. V2 _' s- D% B3 T" a 9{J2ET5Y5GDQ(4YY42G(IH2.png   B* z7 G( j/ H
7 q; U& m2 Z+ z4 n7 r
启用定时器计数后,当第一个参考信号上升沿发生时,捕捉定时器计数值,储存于IC1ReadValue1 中。在第二个上升沿,又捕捉到定时器计数,储存于 IC1ReadValue2 中。在两个连续上升沿之间的时间 (IC1ReadValue2 - IC1ReadValue1)表示了参考信号的整个周期。
: Z" v! K  y2 z- p* J因为定时器计数器的时钟由系统时钟提供 (内部 RC 振荡器 HSI 或 MSI),因此与参考信号
5 M! f- D2 G4 [有关的内部 RC 振荡器生成的真正频率为:- h0 I" g% r" I
$ m2 l4 J9 k5 j9 \9 i3 N# U

6 `( }2 R1 Q& x9 w H%DV`U(N$~$ZD0INB%Y5D_A.png
' w9 _+ ~3 E4 R" R% G" Z% M. W5 Z3 S1 ^! C- B

+ T9 y2 a+ _! N. q误差 (单位 Hz)为测量频率与典型值之差的绝对值。
' R4 x* Q0 M1 V& t因此,内部振荡器频率误差表示为:8 O4 W7 ]. D9 c- p; Y2 ^, I

+ T' t" u4 o- R% D

" b" L: L7 k$ | GL(JF6C)_9NR}~QSQS[4F}M.png
5 F' Q2 F1 B' r( u4 Y
) i) s( ~/ C/ F) y6 M9 f
  t3 `- A+ B5 W- B
对每个微调值计算误差之后,算法会决定最优微调值 (对应于最接近典型值的频率),编程于微调位中 (请参考2.3 章节 : 内部振荡器校准固件说明以获取更详细信息)。7 \3 r5 W! L/ O. ]0 B. Q$ z+ M

) q# v9 C) J+ S# R9 T; X: Q* e. w
& P4 h# V* q! X2 u8 n) f( o$ F% i* ?

2 ^! k& S( U6 g  ^+ n完整版请查看:附件

; K" A/ n  b/ s3 O
6 @( C" |6 l! Q) E/ q) z  y( N" ^3 s' s( z5 c+ P

6 F! U1 [9 ]- V7 X4 {4 q# [$ M7 Q5 B. G/ \$ J3 G9 J- }

CD00161561_ZHV11.pdf

下载

1.47 MB, 下载次数: 8

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

举报

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