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

【中文文档】AN2868_STM32F10xx内部RC振荡器校准

[复制链接]
STMCU-管管 发布时间:2019-4-10 14:06
STM32F10xxx内部 RC 振荡器 (HSI)校准
% @7 }; c, X/ b) z7 \/ M5 w2 x: A6 K$ |  u
前言 * m: ?- b% \/ l3 q3 X' t! P

3 H1 D. l$ o  J1 D+ @$ w  I1 ?9 ISTM32F10xxx 微控制器提供了适合运行的内部 RC 振荡器 (典型地,有 8 MHz 的 HSI:高速内部振荡器)。在 25 ℃时, HSI 的典型精度为 ±1%。在 –40 到 105 ℃, RC 频率精度值扩大为 ±3%。因此,温度对 RC 精度有影响。
4 I+ m5 j/ X6 i# t9 N& U. ?+ H1 Y% @5 q8 i
为补偿应用中的温度影响,用户可使用运行时校准程序,进一步微调 STM32F10xxx HSI 振荡器的输出频率,提高 HSI 的频率精度。对通信外设来说,这可能是至关重要的。
& z$ F1 E3 l7 V( p
4 v# L- c; x) E0 X1 \本应用笔记给出了两个校准内部 RC 振荡器的方法:找到具有最小误差的频率或找到最大允许的频率误差。两者都通过提供精确的参考源,如 RTC/64 信号或主动信号实现。
( f# ?$ {( `& W$ }0 J  P' E, N
; e: o4 b: g) d) `7 b# q# X这两个方法都基于相同的原理:计算 RC 频率 vs. 参考频率,计算 HSI 频率误差,设置RCC_CR 寄存器中的 HSITRIM 位。
1 d  y, O  [" _/ f0 F9 W% G

' w; h' Y- z" h7 w7 s1 STM32F10xxx 的内部时钟:HSI 时钟
' I; n* N( F( @. q- k; l+ A
- s" i' j$ Y( \, F9 q8 LHSI 时钟信号由内部 8 MHz RC 振荡器生成,可直接用作系统时钟,或者除以 2 用作 PLL 输入。 HSI RC 振荡器的优点是成本较低 (无需使用外部组件)。它还比 HSE 晶振具有更快的启动时间。但即使校准后,频率也不如外部晶振或陶瓷谐振器的频率精度高。 HSI 信号还可作为备份时钟源 (辅助时钟)使用,以防 HSE 晶振发生故障。 3 J" A* U( F7 E% {
/ a' y' N2 I0 x- ~+ d1 F7 F
1.1 校准
" K, Y) n& i1 e! w  i1 i( X
7 T2 ^! E' o% o( q
由于生产过程的不同,每个芯片的 RC 振荡器的频率都可能不同。因此,每个器件都由 ST做工厂校准,在 TA = 25 ℃时达到 1% 精度。
9 x' m6 B" P  ~& t- C1 D; ~
! e. Q/ ?+ G9 x2 [2 h! g复位后,工厂校准值将加载到时钟控制寄存器 RCC_CR 的 HSICAL[7:0] 位中。 # Y3 d0 \! O" {  I/ Y1 N% f2 r
0 M4 \6 |+ b$ q. d& `
通过设置 RCC_CR 寄存器中的 HSITRIM[4:0] 位进行用户校准。可对这些 位编程,以考虑电压和温度变化对内部 HSI RC 振荡器频率的影响。默认值为 16,加上 HSICAL 值,应能将HSI 微调至 8 MHz ±1%。前后两个 HSICAL 步进之间的微调步长 (Fhsitrim)约为 40 kHz。) E3 v  m) F2 G
, n% l7 d$ i$ f: G2 P8 g
2 RC 校准
, {" w7 a4 O0 R$ W& v0 k. ]

  u5 w2 W  G# [" s2.1 校准原理
; y4 ?( P- K. m/ r0 D3 ~$ N$ \  L2 N5 O- Q! i7 S  K* s: s
校准的原理为首先测量 HSI 频率,然后计算频率误差,最后设置 RCC_CR 寄存器中的HSITRIM 位。 9 a0 `; ~6 Q0 @1 x. a& Q
4 \( \- u4 |$ S3 k
HSI 频率并不是直接测量的,而是使用定时器对 HSI 时钟沿计数方式算出,然后与理想值 8000 000 Hz 比较。为此,必须有一个非常精确的参考频率,比如由外部 32 kHz 晶振提供的RTC/64 信号或 50 Hz/60 Hz 主频 (请参考第 2.2.2 章节)。对于 RTC 时钟源的情况,参考频率等于 512 Hz (32768 Hz/64)。 8 R2 J  v, ~: ]8 k' _
) f0 Z0 I! Y# }! J/ g# _+ N
图 1 显示了怎样使用定时器计数个数测量参考信号周期。
: ~% o: }7 w/ b: u2 g% f0 P8 P  t$ k7 o2 p

5 i7 M, K# s6 e
1.png
/ f6 l- K5 x' K4 M5 U# e9 \* _
在每个上升沿会发生两个中断:捕获比较 1 中断和更新事件中断。后者用于在参考信号周期对计数器溢出计数。因为在每个新周期开始时两个中断同时发生,所以会发生额外的溢出。这就是为什么我们必须对计数器溢出的数目减 1:N – 1。
9 u4 M8 a" Y( k( e/ ]) I& N" O! X. ~

+ S' j) i3 ?4 i  v4 e

1 H( [3 E: G' `
...........
* n' J% R/ J# m9 i  Z1 \
想了解更多,请下载原文阅读

' T2 h  u" K: W* G
收藏 1 评论1 发布时间:2019-4-10 14:06

举报

1个回答
Kevin_G 回答时间:2019-4-10 14:35:58
收藏

所属标签

相似分享

官网相关资源

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