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

如何校准 STM32L1xx 内部 RC 振荡器

[复制链接]
STMCU小助手 发布时间:2022-7-17 22:41
前言
/ P2 b0 P& o) Q+ o9 L5 y% dSTM32L1xx 微控制器有两个内部 RC 振荡器可做为系统时钟源。它们是 HSI(高速内部)和MSI(多速内部)振荡器。HSI 振荡器的典型频率为 16 MHzMSI 振荡器为低速、低功耗时钟源。
% Z7 f* B- V9 ^. s工作温度对 RC 振荡器的精度有影响。在 25 ℃时,HSI 和 MSI 振荡器的典型精度为 ±1%,但-40 105 ℃温度范围,精度会降低。
8 n3 s; n6 q1 N8 |  j  E" N为补偿温度对内部 RC 振荡器精度的影响,STM32L1xx 微控制器的内置一些功能可帮您校准HSI MSI 振荡器及测量 MSI LSI (低速内部)振荡器频率
# l* A  k" l: R# ^本应用笔记侧重如何校准内部 RC 振荡器:HSI 和 MSI。它展示了两个方法:第一个方法基于寻找具有最低误差的频率,第二个方法是寻找具有最大允许误差的频率。两个方法都通过提供精确参考信号的方式实现。  V6 Y, z# O9 o* n; u
MSI 和 LSI 振荡器的测量都是通过将振荡器连至定时器输入捕获执行。
! z) ]  \. S8 b* V. H: 1在本文中, STM32L1xx 指超低功耗大容量、中容量增强型、中容量器件。) ]4 d' t$ z4 u. \2 r5 o
2超低功耗中容量器件为 STM32L151xx STM32L152xx 微控制器,其闪存密度范围为 64128K 字节。* ~7 y* P$ D, k- K% z! D, G5 S
3超低功耗中容量增强型器件为 STM32L151xxSTM32L152xx STM32L162xx 微控制器,其闪存密度为 256 K 字节。* L! I1 ?. n) n0 C$ Z: R6 q
4超低功耗大容量器件为 STM32L151xxSTM32L152xx STM32L162xx 微控制器,其闪存密度为 384 K 字节。
) h# ^3 o6 w) S8 _% l- V% H( _; P/ d' b' y- {1 D$ k

2 d: o" x- c8 B( W' f1 STM32L1xx 系统时钟
7 z6 l) t3 O* {3 ESTM32L1xx 微控制器系列有多个时钟源可用于驱动系统时钟:
; ?* \# g2 ~& L! T' \" j16 MHz 高速内部 (HSIRC 振荡器时钟% B0 E/ S2 f" B* e6 c8 B
1 24 MHz 高速外部 (HSE)振荡器时钟7 z  R5 Q' [  ^, m# @2 v
65.5 kHz 4.2 MHz 多速内部 (MSIRC 振荡器时钟* _, _1 |5 C3 z
2 24 MHz 锁相环 (PLL),由 HSI HSE 振荡器提供时钟. S0 P4 s% {' y* w- U5 p5 u. Z$ M
高速内部 (HSI) RC 振荡器一般频率为 16 MHz,耗电 100 µA。. p+ ^" @% V3 L9 P5 P7 N
多速内部(MSI)RC 振荡器提供了七个频率范围:65.5 kHz、131 kHz、262 kHz、524 kHz、1.05 MHz2.1 MHz (默认值)和 4.2 MHz。它的设计为工作电流与频率成正比 (请参考产品手册以获得 MSI 耗电与所选频率范围之间关系的更详细信息),因此当 CPU 在低频运行时,内部振荡器耗电可最小化。在从复位重启、从停止唤醒、待机低功耗模式后, MSI 时钟被用作系统时钟。, b) L- W' y3 Y0 R8 K) \
内部 RC 振荡器 (HSI 和 MSI)提供了低成本时钟源 (不需外部元件),这是其优点。它还具有比外部振荡器更快的启动时间和更低的功耗。可校准 HSI MSI 振荡器以提高其精度。: ~. R1 f* {# T6 a+ z" [
但即使校准后,内部RC振荡器频率也不如外部晶振或陶瓷谐振器的频率精度(几十ppm)高。
5 i$ `2 e$ f1 m! `8 W* k! o. W:若外部振荡器发生故障,内部 RC 振荡器 (HSI MSI)还可作为备份时钟源 (辅助时钟)使用。
( j& |, N% c$ W- T% o3 u4 p; M
1 A- A- S  Z  V4 g, T
, G1 F& L& g% M5 H; |
~`9Z9]ZE]GS4[AZ%7KPJX.png ' I/ ^9 L3 R. C" }" R! O: z% Z
1 @7 ~4 }+ Q: ?# m3 [$ y
0 O- I  K6 k$ z5 v4 h4 K

+ ?* [- n+ s7 U" q4 Y/ g1 xSTM32L1x 器件还有两个次级时钟源 (不能用作系统时钟源):
- l+ e( [8 h1 F  J" B6 p37 kHz 低速内部 (LSIRC,设计为驱动独立看门狗,也可驱动实时时钟 (RTC)。
+ w' O; ^; R# J" p1 f该 LSI 振荡器无法校准,但可对其测量以评估 (由温度和电压变化引起的)频率偏差
4 P0 j- p  W* B* O1 X' I% P4 T$ C; U32.768 kHz 低速外部晶振 (LSE 晶振),用于驱动实时时钟 (RTC)
  I( D) Q& i# _9 X2 L* w) s. f9 c: N+ R% y

, S  z1 c& i$ j5 h" T) _2内部 RC 振荡器校准: z: D) m) [5 J( Z
由于生产过程的不同,每个芯片的内部 RC 振荡器的频率都可能不同。因此,MSI 和 HSI RC振荡器由 ST 工厂校准,以获得 TA = 25 ℃时 1% 的精度。复位后,工厂校准值自动加载到内部校准位中。
  r5 j8 r6 u! P9 L! d- l可微调内部 RC 振荡器的频率,以在更宽的温度和供电范围内达到更好的精度。这就是微调位的作用。2 o4 u9 o1 C$ z* J' U
对于 HSI 振荡器,复位后校准值加载于 HSICAL[7:0] 位中。有五个微调位 HSITRIM[4:0] 用于微调。默认微调值为 16。增加 / 降低此微调值会增加 / 降低 HSI 频率。 HSI 振荡器微调步长0.5% (在 80 kHz 周围)。
" x1 \; ?( M  A将微调值写为 17 31 会增加 HSI 频率。$ t' {  p& t; \! f
将微调值写为 0 15 会降低 HSI 频率。
& ?4 d0 ^3 m  u& v将微调值写为 16HSI 频率会保持为默认值。
% s) ^  J6 g' d0 x* Q) O下图显示了随校准值变化的 HSI 振荡器行为。HSI 振荡器频率随校准值增加(校准值 = 默认HSICAL[7:0]+ HSITRIM[4:0]),除了在模 16 处。在这些校准值处,负步进会达到正步进的三倍。3 {- e5 ?( t/ p7 d& s7 {7 v* U
: [: R) `" c! t
" ~* Q, F/ N, ?5 L  U, W3 r# A
(Q6ATQ9{)2MKGV_M]T6AUYX.png % ]) f( F2 A- {& G" s. `; w
3 S" ]* M. n, `0 T& C, B- a

$ s7 k3 R0 R8 H: {0 U
( O# N3 x, c; a; \# \4 V6 j2 k对于 MSI 振荡器,复位后校准值加载于 MSICAL[7:0] 位中。使用了八个微调位MSITRIM[7:0],因此有更宽的调整范围。校准基于将默认的 MSICAL[7:0] 位 (复位值)加上 MSITRIM[7:0] 位。$ y4 V! |! V! h# s$ J7 c$ [
结果储存于 MSICAL[7:0] 中:. o/ i, S7 T5 G
MSICAL[7:0] = 默认的 MSICAL[7:0] + MSITRIM[7:0]
& ?; k7 @8 J& H; Q* R2 Z) ?/ Q; o8 b/ r, s+ M4 b4 C
5 n0 z, i) z. e' v
示例:/ v6 C" q# `2 h' b' a" Y
假设默认的 MSI 校准值 MSICAL[7:0] 为 0x80。
% A. w* z' h# I7 m3 k# i2 A1.0x01 0x7F 之间的值写入 MSITRIM[7:0] 会导致校准值 MSICAL[7:0] 的范围为:
: T  E6 e6 {8 d5 j# yMSICAL[7:0] = 0x80 + 0x01 = 0x81MSICAL[7:0] = 0x80 + 0x7F = 0xFF- R! X- y- d% X9 ]8 m! N7 t9 @
这些结果大于 0x80 (默认的 MSI[7:0] 值),因此 MSI 频率增加 1 步 (0x81 -0x80)至 127 步 (0xFF - 0x80)。
+ Q: y( B* Y: j# L% w' V7 o3 k2. 将 0x81 到 0xFF 之间的值写入 MSITRIM[7:0] 会导致校准值 MSICAL[7:0] 的范围为:
' b2 Y8 z+ Q; w9 T- gMSICAL[7:0] = 0x80 + 0x81 = 0x01MSICAL[7:0] = 0x80 + 0xFF = 0X7F9 S* A0 j$ `* U. a2 h: M
这些结果小于 0x80 (默认的 MSI[7:0] 值),因此 MSI 频率降低 1 步 (0x01)至127 步 (0x7F)。
: B9 q9 ^6 t1 m3. 在 MSITRIM[7:0] 中写入默认校准值 (0x80)会导致校准值 MSICAL[7:0] 等于MSICAL[7:0] = 0x80 + 0x80 = 0x00,因此 MSI 频率会降低 128 步 (最低频率)。1 n( c/ j2 R6 Y, A  b
# T! H; ?+ x: G# Z7 N

4 @# D2 n) x- @" g) B# z下面的3 显示了在范围 6 (4194304 Hz)处 MSI 行为随 MSICAL[7:0] 的变化。
) O, o7 b8 ?% E* r" p2 P
. t: _2 [5 V' q6 h

. T$ ~6 D4 B0 n9 ]/ N W2%OP3JG(%4YIJBYO4ILH%P.png ( G9 @$ o$ g6 h+ m! T6 T
8 r8 I! X) T  F4 b* G8 U
1 S. U" W& l4 V6 p: e7 J
/ y' P, U( r& X. |+ t' u7 Y7 x
2.1校准原理& n. L/ C/ P+ P0 P9 ^
校准原理包括:: ?! P+ P  N) T0 ~3 }6 h8 _: F
1.将 (需要校准的)内部 RC 振荡器设置为系统时钟,
! y5 }! {! ?! j, k2. 测量每个微调值的内部 RC 振荡器 (HSI 或 MSI)频率,* B8 Y3 q' T+ W7 P) K4 B  {3 I
3. 计算每个微调值的频率误差,8 U9 O$ _: _9 r* n3 [* k
4. 最后,将微调位设置为最优值 (对应于最低频率误差)。/ ~4 u+ Z) `- z' t
内部振荡器频率并非直接测量,而是使用定时器计算时钟脉冲个数,与典型值比较。为此,必须有一个非常精确的参考频率,比如由外部 32.768 kHz 晶振或 50 Hz/60 Hz 电源频率(请参2.2.2 章节 : 其它源用作参考频率的情况)。
# p# e* T  V7 }# m. Q. Q下图显示了怎样使用定时器计数个数测量参考信号周期。
, e, Y4 u' a& a1 ^- i5 q' V7 u1 ^- q+ H7 N9 g  @

8 F( o- v, _4 F0 a4 F, s7 z2 A 9{J2ET5Y5GDQ(4YY42G(IH2.png " |$ k9 i" J' {* W

9 l) [9 F" V7 d启用定时器计数后,当第一个参考信号上升沿发生时,捕捉定时器计数值,储存于IC1ReadValue1 中。在第二个上升沿,又捕捉到定时器计数,储存于 IC1ReadValue2 中。在两个连续上升沿之间的时间 (IC1ReadValue2 - IC1ReadValue1)表示了参考信号的整个周期。$ P& T8 Z* ~' j7 [* ]  h
因为定时器计数器的时钟由系统时钟提供 (内部 RC 振荡器 HSI 或 MSI),因此与参考信号: X% x' j0 j+ B9 P
有关的内部 RC 振荡器生成的真正频率为:
* R2 M9 V2 i9 U
7 p: r, I+ g: o' i# f1 A
  v# t* [9 @( J4 L4 x
H%DV`U(N$~$ZD0INB%Y5D_A.png
6 _. t1 @& d( x! D7 {& A4 i+ ?- T) Q: m

3 C# a3 j+ R3 T9 i/ e. M误差 (单位 Hz)为测量频率与典型值之差的绝对值。
* U; Z# R# X! W! F& w3 s因此,内部振荡器频率误差表示为:
  i$ y% f* F6 _4 i+ e- ^0 o
! n. X& |" Z) P
+ t1 E# z( t" F8 N2 U
GL(JF6C)_9NR}~QSQS[4F}M.png
; Z4 r8 T# d, i/ z' N
2 }: s$ x- z  u+ k  J! c

1 z) A5 f3 c. Q5 p6 I对每个微调值计算误差之后,算法会决定最优微调值 (对应于最接近典型值的频率),编程于微调位中 (请参考2.3 章节 : 内部振荡器校准固件说明以获取更详细信息)。3 c) B& G* y8 {$ l* Z
6 k7 O* a: O0 d& S4 G
, e. m* i3 ]% h1 Y7 B- Y9 b
, e9 w/ O4 r, q
3 `# D) G7 y- P+ B! b. N
完整版请查看:附件
& l5 _- F0 X3 `) J. B" I8 g

& z, V7 u3 h! @. T, n1 {( M% N% e2 _; t

0 K! s" R% w# y- D' ~+ A1 _3 E
2 \/ A2 H2 s( W$ E1 r, o

CD00161561_ZHV11.pdf

下载

1.47 MB, 下载次数: 8

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

举报

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