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

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

[复制链接]
STMCU小助手 发布时间:2021-11-8 14:42
概述( T; a% ^8 `( A# N; a: ]; H0 K/ u7 z
STM32时钟系统主要的目的就是给相对独立的外设模块提供时钟,也是为了降低整个芯片的耗能。8 \1 M% {4 k1 j: I! B2 s! a5 R' B2 k
系统时钟,是处理器运行时间基准(每一条机器指令一个时钟周期)8 ]1 ?7 _/ k, q: K1 r; F% K" S
时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令。4 n& E7 [9 L% D' r
一个单片机内提供多个不同的系统时钟,可以适应更多的应用场合。
. s$ J. a, H; ?( }3 N不同的功能模块会有不同的时钟上限,因此提供不同的时钟,也能在一个单片机内放置更多的功能模块。4 D7 E9 Q8 J! c- N8 R) u# M, e
对不同模块的时钟增加开启和关闭功能,可以降低单片机的功耗
4 l7 g! L7 V) @( R3 tSTM32为了低功耗,他将所有的外设时钟都设置为disable(不使能),用到什么外设,只要打开对应外设的时钟就可以, 其他的没用到的可以还是disable(不使能),这样耗能就会减少。  这就是为什么不管你配置什么功能都需要先打开对应的时钟的原因, n9 g, Q( X- K# I

. q8 {' F/ m1 F/ y4 x, t
20200419221228616.jpg

7 _6 r$ s6 F2 n6 _
8 O; _1 t5 ^- k, `$ k8 H各个时钟源    (左边的部分)& X" G$ F- A* i( }( g5 C" f
STM32G0有4个独立时钟源:HSI、HSE、LSI、LSE。
5 R) G: ]+ N- @. L5 u. P①、HSI是高速内部时钟,RC振荡器,频率为16MHz,精度不高。. G3 A! z% C2 ?/ K2 Q
②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~48MHz。7 p. T/ j* }1 _! M
③、LSI是低速内部时钟,RC振荡器,频率为32kHz,提供低功耗时钟。 
/ E6 \4 }) c+ t+ G# H9 q④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。) ^; V  A3 _. _& v2 I, V
  R2 R* Q# }+ V5 V, K( G9 J
其中LSI是作为IWDGCLK(独立看门狗)时钟源和RTC时钟源 而独立使用 ' R' L" X! y- H4 a$ E5 B* P
; d* Q1 m+ l" v0 K  z: I
而HSI高速内部时钟、 HSE高速外部时钟、 LSI低速内部时钟,这三个经过分频或者倍频 作为系统时钟来使用5 K' U" _. ]( K1 a8 Q
' b  X9 _5 _0 N7 d: f9 W
PLL为锁相环倍频输出,基于HSI16或基于HSE的时钟的频率相乘,以产生三个独立的时钟输出。允许的输入频率范围是2.66至16 MHz。分频因子可从1到8进行编程
; R" X0 W0 @2 _0 {! G9 f9 t* ~# w. A3 P" d
时钟分析
$ ~1 j8 D# y5 mLSI(低速内部时钟)2 O* B( P- |# d7 y/ h

4 p; W0 I( A/ J作为IWDG(独立看门狗)和RTC的时钟源,单独使用。2 O1 `& U2 r# H& H% e" j

" M( ?# ^9 q8 I, {8 E* y2 ^4 mLSE(低速外部时钟)
3 @! z& [# d0 F* s& P
/ [. `& f  K) H2 c/ ?可以为RTC、CEC、SYSCLK提供时钟源。
; ~- _" r1 q' k2 s1 E0 t/ r4 O& c/ H0 \
HSE(高速外部时钟); k' o& p0 R6 U1 I% }

9 {. i, G4 V# ?  P; t6 K可以为RTC、SYSCLK、PLL提供时钟源。
" C% @5 u, e6 Z9 U
9 n; [$ S  d: s4 d* b* P  MHSI(高速内部时钟)6 Y* F. N% X2 M5 z* h) f
6 a& ~* _8 M+ v. O. z
可以为PLL、HSISYS提供时钟源,HSISYS再为SYSCLK提供时钟源# l5 H6 m' ~  W

1 D+ y4 s. t. N6 c* B( xPLL(锁相环倍频输出)9 K! ~! F% a- s% Y6 j
7 E! L( m4 {. {: Q; C
由HSE、HSI输入,经过分频倍频后提供SYSCLK,还用两组时钟分别提供给TIM1/TIM15/RNG和ADC/I2S1。8 Z# z9 }, t  J  |0 g# e$ C
, g' z+ `5 q. Y5 d9 O" _. f6 J& T0 F
其他时钟源分析
5 M+ Y4 k' Z2 n9 V7 s& eHSISYS* ^$ Z( L2 s0 n3 \' c

) \6 F$ ~) n& G% D1 j) n) J从HSI16通过除以1到128的可编程因子得到的时钟
4 p- Z: d+ I+ S! d3 b+ J: g; d# \1 ]
PLLPCLK,PLLQCLK,PLLRCLK" U3 P- Q; M3 E5 H. ~- q% P4 K* }
5 t/ A1 P( T( q  v3 ?. A
从PLL模块输出的时钟
5 ]- k5 J& o1 O/ R# K% A- Y0 L' I6 ~% g- q) n  M
SYSCLK3 i" o& Z; d/ B& W3 g6 o5 Q9 T: Y
0 ~1 a* @, G% C: ^( h3 w$ Q% k
通过选择LSE,LSI,HSE,PLLRCLK和HSISYS时钟之一获得的时钟,是整个系统时钟基准。G0系列频率最高到64MHz。* {5 x8 d2 b- G, K
% T+ q1 q2 O! E) {2 V
HCLK
5 H; P! C/ L$ k6 @9 g3 C( W
4 |" r( L5 C+ O. K# m由SYSCLK通过除以从1到512可编程的因子得出的时钟% }$ C, Y  ?" E2 g/ m

5 f% Q& {. G2 |, [# p$ N$ Y" ~HCLK8: J7 z+ o* `5 A& r; J9 R: Q! E" O

8 f; n* [! a4 H6 K4 h5 Y 由HCLK八分频得出的时钟
- `" ^9 d$ W, n& }3 d1 P3 r: ~2 |: M- d1 y7 C& Q( _) n
PCLK/ ~! g5 c, o. c  S) V
2 @$ ^4 P, _- q5 y
从HCLK的时钟通过除以从1到16可编程的因子得出的时钟( d% Q% J2 J6 E# u

( ^  G# R# }% j- v$ m+ e$ _TIMPCLK  T, s8 w& a$ n/ M# P; c

) d3 u- H' a3 D% q7 E/ |0 C 从PCLK派生的时钟,如果APB预分频器分频因子设置为1,则以PCLK频率运行,否则,以PCLK频率的两倍运行4 r5 R5 Z! ~6 a

4 N$ E: d1 R8 j0 SLPTIMx_IN
6 E9 U6 M& ]: B  l  q  \' F8 S+ n5 v5 i- M2 q4 }; \, P( c8 Z
LPTIMx_INx引脚提供的时钟,可为LPTIM外设选择4 b* _: q9 R1 G4 D* L' ^
7 m# V7 L6 X+ [- `4 _
MCO(微控制器时钟输出)# j# U, I* n$ P- n' \
微控制器时钟输出(MCO)功能允许将时钟输出到外部MCO引脚。 可以选择以下之一作为MCO时钟:7 N$ H3 U# {9 N

% _2 k# {( `7 Y3 M4 F9 e, A! |• LSI
: g; i7 w  o2 d7 e• LSE5 ?1 v7 l9 e  B3 i6 c, F
• SYSCLK
- x/ g' P' R6 `) ^5 {8 E• HSI16$ b/ P6 E+ `* v
• HSE4 U3 `% [9 M) a) ?& A
• PLLRCLK) Y$ c) \, g, L7 w5 ]
- w2 ^0 W% V- T: R4 r0 b, s
CSS(时钟安全系统)
# z+ J7 a% L* S; h1 |2 T+ c6 B3 s时钟安全系统可以通过软件激活。一旦检测到HSE时钟故障,则系统时钟将自动切换到HSISYS,并且禁用HSE振荡器。如果HSE时钟也是PLL的时钟来源,并且发生故障时将PLLRCLK用作系统时钟,则PLL也被禁用。/ q% A3 M' `' l% \( A

" m" d& Y& _3 u& U( Z通过CubeMX配置时钟树
* J4 y* W6 c" l/ v2 H新建工程,并且开启SWD调试
# ?' f, d0 f8 Y% w0 ~: A+ T- F通过在引脚视图界面,配置PC6为GPIO_Output;
9 m* r8 q' s9 R4 G在Pinout&Configuration中选中"RCC",在配置栏High Speed Clock(HSE)下拉菜单中选中"Crystal/Ceramic Resonator"# M5 H& _$ H' l4 p
20200419231256537.png
1 d8 T: z" @( s5 d: P* Q3 N4 V

4 S/ @7 k; b1 I' ?2 y0 q在Clock Configuration中 ,按下图配置,在HCLK框中输入最大64MHz,回车。cubemx软件会自动计算系数,而不用手动填写。保持激活CSS。: Z, r" }0 r, D. h; K# h

+ c. s7 A; W+ q& a: K
20200419231756954.png
, t- Z3 Q. v, j

+ \1 M! a+ K4 ]% s然后在Project Manager中,设置好参数信息。
6 b# h! t' P2 W9 v' Q# e2 u( E. ]! A& q2 S/ t7 f; \" A. A# g! e
20200419232147249.png
& C+ Q9 E8 S6 n4 \) T$ M; `
20200419232218938.png

3 c' I0 B7 s& b& i# f# e
# v7 s) _7 \6 x# a( [0 u9 f  p4 Q' Q& {: m" m7 _% `( w
7 D, k+ d9 e* u1 G
最后点击GENERATE CODE,生成工程文件。 打开工程项目,进入到MDK软件
1 i. F2 A, n6 [5 ]! m3 u) j, ^5 n( @: \) a( p7 o" B7 Y2 {
20200419232457161.png

$ O: b% m! |) P8 D+ d
7 p' H; E) j; d) G- p 打开魔术棒工具-Debug-Settings-Flash Download,勾上"Reset and Run",最后就可以编写代码,自由发挥吧。
' d. m" U$ r+ i& q, I5 ^; ?7 `& o; m7 y
20200419233315988.png

( |$ O1 F" u$ N' {3 O0 r. O+ c7 ]! M  U0 ~/ m

0 Q9 a+ R. H3 h) E$ M/ p
收藏 评论0 发布时间:2021-11-8 14:42

举报

0个回答

所属标签

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