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

【经验分享】STM32G0学习手册——时钟树管理

[复制链接]
STMCU小助手 发布时间:2021-11-8 14:42
概述
- L! C$ A4 u& t8 K: _5 O2 ]STM32时钟系统主要的目的就是给相对独立的外设模块提供时钟,也是为了降低整个芯片的耗能。
; \1 ~% R5 y5 h系统时钟,是处理器运行时间基准(每一条机器指令一个时钟周期)
, `+ l- m" {/ U5 b2 G时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令。  z, I2 p. m# @
一个单片机内提供多个不同的系统时钟,可以适应更多的应用场合。
) F9 E5 ^. ]( o不同的功能模块会有不同的时钟上限,因此提供不同的时钟,也能在一个单片机内放置更多的功能模块。
; z% F* y1 V3 i: r- `7 N. q对不同模块的时钟增加开启和关闭功能,可以降低单片机的功耗
3 `7 N7 R, C8 a0 `) dSTM32为了低功耗,他将所有的外设时钟都设置为disable(不使能),用到什么外设,只要打开对应外设的时钟就可以, 其他的没用到的可以还是disable(不使能),这样耗能就会减少。  这就是为什么不管你配置什么功能都需要先打开对应的时钟的原因
- M8 e5 P5 |# p$ j6 c% S3 A0 n! L2 \  h; ?" U
20200419221228616.jpg

8 e# T* s1 |9 s5 e; }! I! e. m: E0 \; Y+ a7 B/ D2 O  m
各个时钟源    (左边的部分)
' s3 s4 o* ?1 f1 \$ kSTM32G0有4个独立时钟源:HSI、HSE、LSI、LSE。
1 _, g" i6 X- i: q' ^, L$ A①、HSI是高速内部时钟,RC振荡器,频率为16MHz,精度不高。: h' p7 `, O% B% s+ c2 {
②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~48MHz。
6 k# {7 l# C7 @7 G6 _* \③、LSI是低速内部时钟,RC振荡器,频率为32kHz,提供低功耗时钟。 
0 R6 y" o& p# O④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。' \2 z9 d) b& N1 f  w; P

1 d( B+ d: f! r5 V0 [其中LSI是作为IWDGCLK(独立看门狗)时钟源和RTC时钟源 而独立使用 4 J" T  J2 i6 q( R0 D

* @1 a1 m/ J2 i而HSI高速内部时钟、 HSE高速外部时钟、 LSI低速内部时钟,这三个经过分频或者倍频 作为系统时钟来使用
2 R$ z/ ^+ d8 u, Q& M
3 t; X6 E( u$ F  PPLL为锁相环倍频输出,基于HSI16或基于HSE的时钟的频率相乘,以产生三个独立的时钟输出。允许的输入频率范围是2.66至16 MHz。分频因子可从1到8进行编程% F5 A3 ?7 |3 m, r( [

# W0 o5 N$ e  y& ^% G, V! s* X时钟分析$ b6 U2 w8 X. R2 {% {7 r5 A
LSI(低速内部时钟)$ w) I1 P" M6 j1 M- z4 F1 H

6 k  c6 u9 `  V* J4 S5 }% A$ P7 ]作为IWDG(独立看门狗)和RTC的时钟源,单独使用。' J/ W' @' ^! j! i

7 F2 C: s5 l1 w/ o/ WLSE(低速外部时钟)5 I( W/ L# R0 C1 A* o1 A
- P( I: v% Q9 @2 a. v' o
可以为RTC、CEC、SYSCLK提供时钟源。
" O% N% a1 s) z( m. x( s1 K4 V8 X( C/ D1 z
HSE(高速外部时钟)
8 W- L6 ~0 l% _4 G, [
0 s7 E- I2 S, B. O6 E. F可以为RTC、SYSCLK、PLL提供时钟源。
% f/ \5 a3 r. V6 M3 t" _
. q# f: Y+ r! Q; h9 j0 nHSI(高速内部时钟)2 m7 ^$ E4 m* B

( I# ^7 L- d% }- F/ \: P$ n可以为PLL、HSISYS提供时钟源,HSISYS再为SYSCLK提供时钟源$ H: u' ~" X& \  |- l2 l" S
# n0 X/ H% R# S+ D% ^. v6 w: Y
PLL(锁相环倍频输出)5 U. E! W5 @, L% j; ^5 A
- y5 X- i* h# f- J6 K3 G, N& W
由HSE、HSI输入,经过分频倍频后提供SYSCLK,还用两组时钟分别提供给TIM1/TIM15/RNG和ADC/I2S1。
! [1 ]' z9 r9 r) P  C" D( P% X8 Q" e+ n8 }. T9 u
其他时钟源分析
$ I* W3 J, P( }HSISYS- U9 l$ V. F" S3 |
) s$ G: Y; E( e/ O4 g! J5 P
从HSI16通过除以1到128的可编程因子得到的时钟1 F2 y: A( }( r# u
6 R4 m7 B4 T* M0 [: J* e2 s
PLLPCLK,PLLQCLK,PLLRCLK
7 g* ~' l. d$ r0 j
' F* r- v1 E3 R从PLL模块输出的时钟
, C1 e0 Q# ^& i$ i7 M. J* R. n, Z( G% |5 |/ U" n8 ^9 F: X# {5 x
SYSCLK: A  U* ~; P' S3 u+ R& @8 N7 t. V' T
9 h" C  @' b/ B2 i7 P
通过选择LSE,LSI,HSE,PLLRCLK和HSISYS时钟之一获得的时钟,是整个系统时钟基准。G0系列频率最高到64MHz。
* A3 z3 k: V# i9 X5 ]5 s3 r5 X4 @" d: i8 d4 [# ?+ G" a
HCLK* G, N2 e& t: |
& I8 B0 Z8 ?. e3 b# c1 {; M3 r2 |) f
由SYSCLK通过除以从1到512可编程的因子得出的时钟
% n3 m# ^* t2 T6 v; \3 O8 N2 Y' \( [0 ?5 q
HCLK8
: R, i: |1 a0 F4 n+ ]6 d) |! P$ \- G4 T! A% `" [* j
由HCLK八分频得出的时钟
% f; [$ U0 Y5 j3 t1 ?
) ^3 U! M& l3 ?7 R: e PCLK
6 L- ]' i" @9 I/ D4 |" d1 w& L: ^5 V* |
从HCLK的时钟通过除以从1到16可编程的因子得出的时钟. J- z' h! x$ u) C1 Y" V: F

% P5 m; f0 J; |* u+ o% p- ATIMPCLK( ?' C6 z; i! G4 z

8 m# G# }' G& x/ @4 z+ |0 o 从PCLK派生的时钟,如果APB预分频器分频因子设置为1,则以PCLK频率运行,否则,以PCLK频率的两倍运行
0 U3 D3 G9 M8 p: L6 b2 |8 n
) Y5 @. ^: c# i( F+ P0 JLPTIMx_IN) q# u6 w+ C& y  n: S2 b0 r+ G6 E
9 u. f) W- o% {" R8 p
LPTIMx_INx引脚提供的时钟,可为LPTIM外设选择
, x6 d& _! `& I$ q3 E$ u! o4 w4 {# m) Z
MCO(微控制器时钟输出)
3 Y3 ^- R; f+ Q: W  s/ e微控制器时钟输出(MCO)功能允许将时钟输出到外部MCO引脚。 可以选择以下之一作为MCO时钟:
  \4 O$ a/ ?* M3 N( V0 y
5 M) x  r' B7 H* Y• LSI
# D- C5 L9 i2 j4 U1 I; g! |0 d• LSE
! K' U8 P1 X+ Z, H. U6 l• SYSCLK
/ ]' m& x0 T7 e1 h1 v: R; K• HSI162 O( ^  O+ o" d+ }9 G6 Q
• HSE
* E/ a$ D3 F6 e3 P9 B• PLLRCLK
# b! \* p% z( F9 Y. |% l9 b0 e  d2 e; u7 E, M+ }; \# T' Q' O( g6 }
CSS(时钟安全系统)
1 C: v* H% s- |( m时钟安全系统可以通过软件激活。一旦检测到HSE时钟故障,则系统时钟将自动切换到HSISYS,并且禁用HSE振荡器。如果HSE时钟也是PLL的时钟来源,并且发生故障时将PLLRCLK用作系统时钟,则PLL也被禁用。. P, o% N0 O1 c4 r' M
. v# K. P, O3 t3 m5 }% E' h
通过CubeMX配置时钟树' R" k- f& _, S  W0 d3 J6 o2 m) [
新建工程,并且开启SWD调试 3 c9 |) p, z1 S: k
通过在引脚视图界面,配置PC6为GPIO_Output;$ M/ C6 m  f7 ^) o  @
在Pinout&Configuration中选中"RCC",在配置栏High Speed Clock(HSE)下拉菜单中选中"Crystal/Ceramic Resonator"
! |- k# i% C9 l) }. F" S- S9 J
20200419231256537.png
7 K' |4 x/ F1 y+ W" Q

1 _2 u4 ?4 |% [5 k1 n! N9 A4 K0 C在Clock Configuration中 ,按下图配置,在HCLK框中输入最大64MHz,回车。cubemx软件会自动计算系数,而不用手动填写。保持激活CSS。5 x* G; C( r. X3 N7 ~  v0 \
0 u6 \+ U3 Q; Q$ P% [, L# `6 I( q
20200419231756954.png

/ L  [$ Q5 |/ w9 U+ l! l8 U0 a, i
; v0 }: |6 D9 [5 T: P然后在Project Manager中,设置好参数信息。
5 I# z' y( Y" O7 S, x* \) g# N5 \( z5 I7 |
20200419232147249.png

2 T3 p& T  Z6 B$ r- W
20200419232218938.png

1 |& e" Q; x% U  c. A2 O# w$ {4 e' v5 f, x3 M  U3 s

1 Z& g0 l+ \3 u
4 M. y3 I$ m7 H* V  l) Q5 o最后点击GENERATE CODE,生成工程文件。 打开工程项目,进入到MDK软件9 `7 q+ D" U6 a! f/ t3 [8 o% l3 A

6 h. J: `# z- S3 f. l- z
20200419232457161.png
3 ?8 ^  x% z$ B# p/ R* Q, n4 Q
( @, O% D% y. |+ w7 t+ v
打开魔术棒工具-Debug-Settings-Flash Download,勾上"Reset and Run",最后就可以编写代码,自由发挥吧。
% X& G+ ]7 V# p+ \7 G8 K% i2 V5 K: w3 s+ n
20200419233315988.png

* \* g: H, n2 d* X% _; D7 ^2 u3 H2 J& ^7 a$ |* Z& a

, h) `- H+ A% l, c7 q( b
收藏 评论0 发布时间:2021-11-8 14:42

举报

0个回答

所属标签

相似分享

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