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

如何校准 STM32L1xx 内部 RC 振荡器

[复制链接]
STMCU小助手 发布时间:2022-7-17 22:41
前言
  R5 W; t7 N9 m) y4 x- DSTM32L1xx 微控制器有两个内部 RC 振荡器可做为系统时钟源。它们是 HSI(高速内部)和MSI(多速内部)振荡器。HSI 振荡器的典型频率为 16 MHzMSI 振荡器为低速、低功耗时钟源。
2 k7 ^0 \- ~4 y工作温度对 RC 振荡器的精度有影响。在 25 ℃时,HSI 和 MSI 振荡器的典型精度为 ±1%,但-40 105 ℃温度范围,精度会降低。
/ u7 r6 G; g+ K2 S5 L为补偿温度对内部 RC 振荡器精度的影响,STM32L1xx 微控制器的内置一些功能可帮您校准HSI MSI 振荡器及测量 MSI LSI (低速内部)振荡器频率  a$ r/ O: M) e+ m$ h
本应用笔记侧重如何校准内部 RC 振荡器:HSI 和 MSI。它展示了两个方法:第一个方法基于寻找具有最低误差的频率,第二个方法是寻找具有最大允许误差的频率。两个方法都通过提供精确参考信号的方式实现。
+ O7 A1 L& i! c0 {7 ~! J  v, lMSI 和 LSI 振荡器的测量都是通过将振荡器连至定时器输入捕获执行。
  V1 @% Y5 F0 v) p) N+ P# X: 1在本文中, STM32L1xx 指超低功耗大容量、中容量增强型、中容量器件。. ?2 c( U. `5 W+ j& |8 O
2超低功耗中容量器件为 STM32L151xx STM32L152xx 微控制器,其闪存密度范围为 64128K 字节。* Z- g& P2 }6 q. d/ M" F5 a
3超低功耗中容量增强型器件为 STM32L151xxSTM32L152xx STM32L162xx 微控制器,其闪存密度为 256 K 字节。
  ]2 u# j: [* L4 g5 m" F% I5 s4超低功耗大容量器件为 STM32L151xxSTM32L152xx STM32L162xx 微控制器,其闪存密度为 384 K 字节。0 b; d7 g1 E! h! }/ [

) H6 T$ X- l3 W7 {
8 B" n/ |5 x3 C* a
1 STM32L1xx 系统时钟
$ `; j4 o$ u) a. H/ q$ kSTM32L1xx 微控制器系列有多个时钟源可用于驱动系统时钟:
' d- ^+ @9 x4 w; w: i! B6 x16 MHz 高速内部 (HSIRC 振荡器时钟
" P9 A8 |3 m. o/ A+ Q2 a( S$ W+ u1 24 MHz 高速外部 (HSE)振荡器时钟
8 i) d% M6 E) L65.5 kHz 4.2 MHz 多速内部 (MSIRC 振荡器时钟
3 G6 s6 r# m" M# `+ N2 24 MHz 锁相环 (PLL),由 HSI HSE 振荡器提供时钟
- X( W5 }- a8 ]6 b高速内部 (HSI) RC 振荡器一般频率为 16 MHz,耗电 100 µA。
+ b% ^) h2 v- B4 F- Q6 N多速内部(MSI)RC 振荡器提供了七个频率范围:65.5 kHz、131 kHz、262 kHz、524 kHz、1.05 MHz2.1 MHz (默认值)和 4.2 MHz。它的设计为工作电流与频率成正比 (请参考产品手册以获得 MSI 耗电与所选频率范围之间关系的更详细信息),因此当 CPU 在低频运行时,内部振荡器耗电可最小化。在从复位重启、从停止唤醒、待机低功耗模式后, MSI 时钟被用作系统时钟。
% l4 i9 }. K$ f5 Y" [  F" n内部 RC 振荡器 (HSI 和 MSI)提供了低成本时钟源 (不需外部元件),这是其优点。它还具有比外部振荡器更快的启动时间和更低的功耗。可校准 HSI MSI 振荡器以提高其精度。* E% b% [) z, |: }4 y' {$ z
但即使校准后,内部RC振荡器频率也不如外部晶振或陶瓷谐振器的频率精度(几十ppm)高。
, D& G; s, s5 s! @3 f/ w# w:若外部振荡器发生故障,内部 RC 振荡器 (HSI MSI)还可作为备份时钟源 (辅助时钟)使用。( j3 j2 W. P8 Y4 @/ M
8 M" f" G& v+ ]3 o5 x, [

3 g1 o+ W( R2 X) V+ L! o ~`9Z9]ZE]GS4[AZ%7KPJX.png 7 d5 f2 E/ u/ g( I' n" m, W5 T

% m9 r5 s1 h7 K, y" c# ], m( z; m

$ Q6 V- t) g2 ~  k5 y
# [- j; O( h5 b: L5 i4 ^STM32L1x 器件还有两个次级时钟源 (不能用作系统时钟源):( m, T- T' Z$ }
37 kHz 低速内部 (LSIRC,设计为驱动独立看门狗,也可驱动实时时钟 (RTC)。
( Y, N( ]" T# y+ {2 w该 LSI 振荡器无法校准,但可对其测量以评估 (由温度和电压变化引起的)频率偏差
2 L* T/ `  z2 L32.768 kHz 低速外部晶振 (LSE 晶振),用于驱动实时时钟 (RTC)
6 \. S' a6 g# f& t9 n6 I/ @: w$ z7 g( f- a+ V$ W. N# A
- {# j1 t9 Z5 o* N$ u" K8 z
2内部 RC 振荡器校准  {3 P6 F$ J. s: T8 ?  @5 m
由于生产过程的不同,每个芯片的内部 RC 振荡器的频率都可能不同。因此,MSI 和 HSI RC振荡器由 ST 工厂校准,以获得 TA = 25 ℃时 1% 的精度。复位后,工厂校准值自动加载到内部校准位中。
. S( K) E. \" Q* P9 @* I0 h5 M可微调内部 RC 振荡器的频率,以在更宽的温度和供电范围内达到更好的精度。这就是微调位的作用。
+ u* H% w6 z: o# k& a对于 HSI 振荡器,复位后校准值加载于 HSICAL[7:0] 位中。有五个微调位 HSITRIM[4:0] 用于微调。默认微调值为 16。增加 / 降低此微调值会增加 / 降低 HSI 频率。 HSI 振荡器微调步长0.5% (在 80 kHz 周围)。
( B% q8 Z+ R, h1 E0 ?1 Y: ]" }5 V# _将微调值写为 17 31 会增加 HSI 频率。
2 Z8 x7 j. x8 w8 E7 j5 W" ?  h' V将微调值写为 0 15 会降低 HSI 频率。
; L: d* p$ y  {8 Z将微调值写为 16HSI 频率会保持为默认值。  _) H/ \6 f" p7 D- R; `; W
下图显示了随校准值变化的 HSI 振荡器行为。HSI 振荡器频率随校准值增加(校准值 = 默认HSICAL[7:0]+ HSITRIM[4:0]),除了在模 16 处。在这些校准值处,负步进会达到正步进的三倍。6 D- x9 F* L9 ?& H! L' y+ v

% ]3 V( I! D5 D

: i0 `/ H; Y  B7 a* s: v0 u' K (Q6ATQ9{)2MKGV_M]T6AUYX.png
: R& K, J1 M) C) b
$ R5 A5 ]6 M' i, k

! c& d2 F: H7 f& l$ b* X; F5 ~+ r/ g! f) q' N( I
对于 MSI 振荡器,复位后校准值加载于 MSICAL[7:0] 位中。使用了八个微调位MSITRIM[7:0],因此有更宽的调整范围。校准基于将默认的 MSICAL[7:0] 位 (复位值)加上 MSITRIM[7:0] 位。
' r! c9 s1 F, l8 a& a结果储存于 MSICAL[7:0] 中:& j0 l, a% Y: I- e- r0 l$ e
MSICAL[7:0] = 默认的 MSICAL[7:0] + MSITRIM[7:0]
: o/ j& U# [2 }$ g$ {- R: v$ f3 z$ Z4 I  Z6 M5 A4 d( U9 u

) r, u1 Z' Q1 n& V1 f# r( a示例:) r5 I+ E+ u* H: K2 e+ H. m
假设默认的 MSI 校准值 MSICAL[7:0] 为 0x80。
6 D5 T& @" Y1 {# g. Q. @1.0x01 0x7F 之间的值写入 MSITRIM[7:0] 会导致校准值 MSICAL[7:0] 的范围为:
/ E& T( C: ]8 s4 w, X! W, ?) ^4 cMSICAL[7:0] = 0x80 + 0x01 = 0x81MSICAL[7:0] = 0x80 + 0x7F = 0xFF
, n, i( u5 X& |  o6 {这些结果大于 0x80 (默认的 MSI[7:0] 值),因此 MSI 频率增加 1 步 (0x81 -0x80)至 127 步 (0xFF - 0x80)。0 b4 w5 g! j! u0 ^+ h. d
2. 将 0x81 到 0xFF 之间的值写入 MSITRIM[7:0] 会导致校准值 MSICAL[7:0] 的范围为:
4 M7 J% c; f* Z7 U& U! [MSICAL[7:0] = 0x80 + 0x81 = 0x01MSICAL[7:0] = 0x80 + 0xFF = 0X7F3 h8 K4 t/ f8 g  F( g+ d" b$ ]/ J2 u- u% N0 D
这些结果小于 0x80 (默认的 MSI[7:0] 值),因此 MSI 频率降低 1 步 (0x01)至127 步 (0x7F)。+ \, C" A; n1 ^* R" i* \
3. 在 MSITRIM[7:0] 中写入默认校准值 (0x80)会导致校准值 MSICAL[7:0] 等于MSICAL[7:0] = 0x80 + 0x80 = 0x00,因此 MSI 频率会降低 128 步 (最低频率)。
2 }/ Y7 Y7 E( m2 F* |$ e1 `$ z3 \+ y+ E: `+ ]

! Q. F6 a( _* S4 `, S下面的3 显示了在范围 6 (4194304 Hz)处 MSI 行为随 MSICAL[7:0] 的变化。( f' b, N9 }2 V3 G+ N6 S

: ?3 A8 W+ x: O
% ]6 o, K9 B; p- H
W2%OP3JG(%4YIJBYO4ILH%P.png / j% q2 K# U( h: y: r

' B8 ]) @6 v8 A
6 X+ Y4 I4 Y+ ]4 F4 [9 t, m
) E8 k7 j: ~9 y, B3 U% C
2.1校准原理
, J% ]/ W4 L5 C0 l校准原理包括:% ^) O* j8 I3 r
1.将 (需要校准的)内部 RC 振荡器设置为系统时钟,
1 `& d5 P* d1 G& `) q8 Q5 A2. 测量每个微调值的内部 RC 振荡器 (HSI 或 MSI)频率,  ^, O$ G2 i' w
3. 计算每个微调值的频率误差,
- w8 N8 J- y6 u& D5 a4. 最后,将微调位设置为最优值 (对应于最低频率误差)。. a2 Q+ c! y- L
内部振荡器频率并非直接测量,而是使用定时器计算时钟脉冲个数,与典型值比较。为此,必须有一个非常精确的参考频率,比如由外部 32.768 kHz 晶振或 50 Hz/60 Hz 电源频率(请参2.2.2 章节 : 其它源用作参考频率的情况)。
+ O* }3 {/ Y/ r3 V下图显示了怎样使用定时器计数个数测量参考信号周期。1 l& j  K1 q2 b0 S
# H2 l7 x$ w! a+ I$ t4 a# [

$ H1 W  [7 H# K$ ~- }1 ~: X; U 9{J2ET5Y5GDQ(4YY42G(IH2.png : f$ M- L, F) u( k- O# r' w: D

! }% E" l( F$ b& F$ r4 y启用定时器计数后,当第一个参考信号上升沿发生时,捕捉定时器计数值,储存于IC1ReadValue1 中。在第二个上升沿,又捕捉到定时器计数,储存于 IC1ReadValue2 中。在两个连续上升沿之间的时间 (IC1ReadValue2 - IC1ReadValue1)表示了参考信号的整个周期。" y2 e' f: h+ }1 x! M' H
因为定时器计数器的时钟由系统时钟提供 (内部 RC 振荡器 HSI 或 MSI),因此与参考信号
, Y/ x( |  b# a; y) n有关的内部 RC 振荡器生成的真正频率为:
( ]0 Y. S$ Z: s9 c1 l
0 a6 x2 D) D& k1 C% c, B
! P. _9 D; y( X  O2 K. o+ K" s& p
H%DV`U(N$~$ZD0INB%Y5D_A.png
9 z" A1 @0 S' Z/ }+ z& k' L6 v5 e* S
" m5 \8 {" Z/ q- P2 O
误差 (单位 Hz)为测量频率与典型值之差的绝对值。& ^. x* t) m/ O8 F! {0 x
因此,内部振荡器频率误差表示为:
2 T8 T, M; J6 O0 E& o) G5 q* d+ Y8 S0 \
; e# y- E) _* h, `6 M
GL(JF6C)_9NR}~QSQS[4F}M.png
5 d( o* a8 Y2 {2 _' b- b6 s2 ?# d
# t4 @! ^( m% r5 z, J8 x; F  o
- S7 @& \6 ^. X0 c
对每个微调值计算误差之后,算法会决定最优微调值 (对应于最接近典型值的频率),编程于微调位中 (请参考2.3 章节 : 内部振荡器校准固件说明以获取更详细信息)。0 w% _5 x6 x! }2 K) r/ B: E, m' ]& C

' L" [1 q- s9 a# o( E3 y+ Y' n& [, p: I- C! w1 G
6 M4 ~; W' i/ G0 J, C/ ]

. }! Z; L  g8 x% W7 ~, m' w完整版请查看:附件
; g' n% D+ K. a1 r! o. j+ j

' @- V* I4 X: v  d& T/ i" E/ Q* Q4 V
  V* h. I% J& V1 }, F. z

7 R. O/ Y) m, b- Z
2 Q( D3 V" b" L, K' h8 q" |

CD00161561_ZHV11.pdf

下载

1.47 MB, 下载次数: 8

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

举报

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