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

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

[复制链接]
STMCU-管管 发布时间:2019-4-10 14:06
STM32F10xxx内部 RC 振荡器 (HSI)校准) R1 i, r& Y6 [4 t7 _' e
  L$ I* T1 _' u+ t8 f( p" i7 o
前言 7 G; h5 e- L  z( [% m9 p2 r3 R9 _
7 \1 p. ^( @: r) x& S( E
STM32F10xxx 微控制器提供了适合运行的内部 RC 振荡器 (典型地,有 8 MHz 的 HSI:高速内部振荡器)。在 25 ℃时, HSI 的典型精度为 ±1%。在 –40 到 105 ℃, RC 频率精度值扩大为 ±3%。因此,温度对 RC 精度有影响。
2 \; n9 Y$ X7 o% q- G( y6 ?
- e7 L3 {- u# A3 |6 N/ {为补偿应用中的温度影响,用户可使用运行时校准程序,进一步微调 STM32F10xxx HSI 振荡器的输出频率,提高 HSI 的频率精度。对通信外设来说,这可能是至关重要的。 % h8 r+ U  o% c6 \' Y
0 t% a  i; K/ a8 a
本应用笔记给出了两个校准内部 RC 振荡器的方法:找到具有最小误差的频率或找到最大允许的频率误差。两者都通过提供精确的参考源,如 RTC/64 信号或主动信号实现。 ( c* t( M5 e( ]9 i$ ?
* _5 D6 G9 w6 H/ ~; _1 q2 s
这两个方法都基于相同的原理:计算 RC 频率 vs. 参考频率,计算 HSI 频率误差,设置RCC_CR 寄存器中的 HSITRIM 位。
; K# g( N0 `# ^" v: e3 u* n( n
8 i) _7 v! n+ x1 J3 G
1 STM32F10xxx 的内部时钟:HSI 时钟 9 k# r7 b: _8 q0 |$ U8 H0 U
  e: f' F, ~' O
HSI 时钟信号由内部 8 MHz RC 振荡器生成,可直接用作系统时钟,或者除以 2 用作 PLL 输入。 HSI RC 振荡器的优点是成本较低 (无需使用外部组件)。它还比 HSE 晶振具有更快的启动时间。但即使校准后,频率也不如外部晶振或陶瓷谐振器的频率精度高。 HSI 信号还可作为备份时钟源 (辅助时钟)使用,以防 HSE 晶振发生故障。
4 G* @- _/ s" a/ l  j. E' Q0 g5 e2 z. F3 q5 U" U( o1 k0 Y1 L( Q
1.1 校准
' L  ~4 f' @: |/ v: B
5 G% Q1 m( V' _$ F) |" j
由于生产过程的不同,每个芯片的 RC 振荡器的频率都可能不同。因此,每个器件都由 ST做工厂校准,在 TA = 25 ℃时达到 1% 精度。 ( t- h7 V( O& [) p+ `1 ^6 G! d
$ m: D7 D( m: S
复位后,工厂校准值将加载到时钟控制寄存器 RCC_CR 的 HSICAL[7:0] 位中。 & u# ^: P6 g+ j( ?) S8 G- \
2 o+ B" e4 H, \$ w% _! y6 ]- i
通过设置 RCC_CR 寄存器中的 HSITRIM[4:0] 位进行用户校准。可对这些 位编程,以考虑电压和温度变化对内部 HSI RC 振荡器频率的影响。默认值为 16,加上 HSICAL 值,应能将HSI 微调至 8 MHz ±1%。前后两个 HSICAL 步进之间的微调步长 (Fhsitrim)约为 40 kHz。- H' h( t. b/ M! h% O9 ?( D0 l6 _
; W9 V3 E- S; W# b4 y9 k! f
2 RC 校准

4 o$ U6 E! R% T& g4 L: x

2 q8 a8 o! W% Z0 s- x3 x2.1 校准原理 5 f- L8 x; M1 C8 [6 j  |5 t5 \
3 w; y4 M0 X: H
校准的原理为首先测量 HSI 频率,然后计算频率误差,最后设置 RCC_CR 寄存器中的HSITRIM 位。
$ Z0 K! U' `- S  H- |
' k! A; o! R# ^0 NHSI 频率并不是直接测量的,而是使用定时器对 HSI 时钟沿计数方式算出,然后与理想值 8000 000 Hz 比较。为此,必须有一个非常精确的参考频率,比如由外部 32 kHz 晶振提供的RTC/64 信号或 50 Hz/60 Hz 主频 (请参考第 2.2.2 章节)。对于 RTC 时钟源的情况,参考频率等于 512 Hz (32768 Hz/64)。
+ A8 z$ i' D. H% Q4 j

1 c% O8 {2 S: @$ d7 \% C  x  d图 1 显示了怎样使用定时器计数个数测量参考信号周期。% c7 U: b" b1 r; E6 x* J
2 J, {3 Z& ]5 z7 S+ U- _

2 J: ^9 ~5 R5 H1 O$ F$ a' l  z
1.png

# v+ `' {+ a  ~) g: P在每个上升沿会发生两个中断:捕获比较 1 中断和更新事件中断。后者用于在参考信号周期对计数器溢出计数。因为在每个新周期开始时两个中断同时发生,所以会发生额外的溢出。这就是为什么我们必须对计数器溢出的数目减 1:N – 1。
! J/ p0 i  W, P+ f( {

3 t: H" D) y8 ^# B/ ~/ \
# n% h5 c8 l4 R5 C  ~, U; m9 {# G
...........
4 q1 g5 p' e( I% ?6 C) o
想了解更多,请下载原文阅读

# @+ W6 v; m7 n' I3 P
收藏 1 评论1 发布时间:2019-4-10 14:06

举报

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