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

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

[复制链接]
STMCU小助手 发布时间:2021-11-8 14:42
概述* j$ _- v: G( v9 E/ x! w
STM32时钟系统主要的目的就是给相对独立的外设模块提供时钟,也是为了降低整个芯片的耗能。
* ]/ n, x8 E2 N% o9 d系统时钟,是处理器运行时间基准(每一条机器指令一个时钟周期)- }' Y; s2 |) E4 p2 _  T" U/ |
时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令。, I* ~7 N5 n: a  t; P
一个单片机内提供多个不同的系统时钟,可以适应更多的应用场合。
7 _! c8 P! G1 C' \& Z不同的功能模块会有不同的时钟上限,因此提供不同的时钟,也能在一个单片机内放置更多的功能模块。
0 J4 Q, q4 D; S对不同模块的时钟增加开启和关闭功能,可以降低单片机的功耗' C& c* g( i! m+ W& s" f
STM32为了低功耗,他将所有的外设时钟都设置为disable(不使能),用到什么外设,只要打开对应外设的时钟就可以, 其他的没用到的可以还是disable(不使能),这样耗能就会减少。  这就是为什么不管你配置什么功能都需要先打开对应的时钟的原因
& D9 p4 j" e2 I2 q+ m$ }; B1 @8 @6 U. Y: n) ^) Z: q
20200419221228616.jpg

% y( b' i5 J* v% f, m! U, u- Q: i' x& c% y
各个时钟源    (左边的部分)+ T1 P5 ~! j" T
STM32G0有4个独立时钟源:HSI、HSE、LSI、LSE。0 [$ N" A: e# Q+ t) Y+ c0 H0 h
①、HSI是高速内部时钟,RC振荡器,频率为16MHz,精度不高。- _  e( Y) t$ C6 I- ]2 i4 Z
②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~48MHz。6 r6 P- |1 e6 `" w' i
③、LSI是低速内部时钟,RC振荡器,频率为32kHz,提供低功耗时钟。  $ Z/ B0 F7 N6 Y; I7 D; o0 O9 a" O
④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。$ e7 C: H2 a5 |1 E& `7 N! e. o! d- D

; c- h1 H- N1 J" D其中LSI是作为IWDGCLK(独立看门狗)时钟源和RTC时钟源 而独立使用
  {# x/ b) `8 r) ]4 m- |& l# o
而HSI高速内部时钟、 HSE高速外部时钟、 LSI低速内部时钟,这三个经过分频或者倍频 作为系统时钟来使用0 V. m2 N- p1 r5 J# s
4 `* x" v4 K( d" p
PLL为锁相环倍频输出,基于HSI16或基于HSE的时钟的频率相乘,以产生三个独立的时钟输出。允许的输入频率范围是2.66至16 MHz。分频因子可从1到8进行编程
. F3 E( O# Q8 y5 A1 M8 a- y9 D' `2 Y* m: K8 m  D
时钟分析8 s- N! @) D. o- T3 J& K
LSI(低速内部时钟)
* ?+ w' H( X6 ?4 G2 k1 }$ W
# s7 d# j$ {9 F/ f  ]5 f作为IWDG(独立看门狗)和RTC的时钟源,单独使用。
* c4 P$ w5 o* j7 t8 r( n1 u$ D& f% N: }+ Z% G3 ^
LSE(低速外部时钟)
5 N* d/ U4 x/ A0 z& [" O
  |5 N) J4 Y4 b% h, d( Y/ m可以为RTC、CEC、SYSCLK提供时钟源。& c1 N& A4 K5 X3 E

  y! w1 H, }1 o& Y3 BHSE(高速外部时钟)) t! p2 e' b* l6 E
* Z' ^+ i, j6 j+ f1 ?7 B
可以为RTC、SYSCLK、PLL提供时钟源。$ |' A9 [" E# ^' ^5 h
4 t) N: ]6 p( X0 `
HSI(高速内部时钟)  p9 V; i/ P8 f) G( p, R- g& O

) ~; f$ L6 F/ E' ~& s0 E" ]可以为PLL、HSISYS提供时钟源,HSISYS再为SYSCLK提供时钟源3 D# J9 K% r1 M3 _( \

) `  y9 _% q+ u7 m! b- N1 nPLL(锁相环倍频输出)
" K! a* H$ _1 ?. |; U/ o7 r+ R: m! E( Y2 g# B
由HSE、HSI输入,经过分频倍频后提供SYSCLK,还用两组时钟分别提供给TIM1/TIM15/RNG和ADC/I2S1。' W# o" U$ Y3 v2 P: Q1 g8 J

. n" o/ J+ ~' B0 {; k其他时钟源分析
! |' v2 l' H. F1 P! M; k. NHSISYS
6 i6 a5 C7 o$ }: l; O4 X8 }) c; t  {, _+ C+ `. ~9 b
从HSI16通过除以1到128的可编程因子得到的时钟) l8 e2 Q) `0 ~8 E: i1 z
9 w: x- g& }* q& j
PLLPCLK,PLLQCLK,PLLRCLK& Y  C2 s7 B- P) h3 B

& p6 a/ L0 j9 N+ d8 f从PLL模块输出的时钟% a9 [0 g, T% u( l* }, b

& Y5 K. x8 ~7 y) i+ b* W6 ]# c. mSYSCLK
$ k: ~. _& F4 m* _8 w" s& C" |/ j5 R2 Y7 {( P
通过选择LSE,LSI,HSE,PLLRCLK和HSISYS时钟之一获得的时钟,是整个系统时钟基准。G0系列频率最高到64MHz。( x6 ~" n- P1 W$ j- c2 v* ^
- c6 C4 n3 J1 H$ F
HCLK
! A) ^8 W( n/ z9 W6 I5 f
3 c# i0 ^( c* w) f由SYSCLK通过除以从1到512可编程的因子得出的时钟
' X$ k: R* S3 \0 T* S1 \2 c" \' @. w) @- n' |
HCLK8
! x5 A! z: j" h7 p9 _; m. q# w) k% A+ Z* x7 o. [: ?. O5 l
由HCLK八分频得出的时钟
- a% c4 s7 f" b
, Z! o9 V' d' @4 A# p. S, T PCLK
+ N, S: _. _* l3 N1 _  ~1 f- H3 Q1 R2 y( ?
从HCLK的时钟通过除以从1到16可编程的因子得出的时钟
  y( p3 c" f% }$ y& a5 C  [8 l" q2 n2 |, k' i
TIMPCLK7 Z$ o- B. z4 e' [! `
  o) w5 {; d  C3 L0 V
从PCLK派生的时钟,如果APB预分频器分频因子设置为1,则以PCLK频率运行,否则,以PCLK频率的两倍运行& j+ \4 b+ a( G3 }

/ l' f2 F6 q) X/ kLPTIMx_IN
& T* _* y2 N: h0 i: X5 Y8 A( u0 y) M/ }
LPTIMx_INx引脚提供的时钟,可为LPTIM外设选择1 C& T( v) m& k3 G% f5 I
9 u% L1 |. A/ F
MCO(微控制器时钟输出)
8 D. t6 e; _& S9 r+ h% m3 b微控制器时钟输出(MCO)功能允许将时钟输出到外部MCO引脚。 可以选择以下之一作为MCO时钟:) q( V; w. U, B4 d; W9 f' T& i; B' M

: c6 f" e+ R  L. z6 H6 o& l• LSI
- v8 z; h6 h4 y1 f6 y/ r1 P* H9 W3 W1 t• LSE
- n6 E' K6 O: K• SYSCLK: L; E) z$ m4 ~3 i% {( y7 x- V
• HSI16
5 r2 e' f, N( E! f9 A% s% y- z• HSE$ h$ a# E! m  F; R
• PLLRCLK6 s6 D3 N6 L, u' s- H6 `6 p

; _0 V  ~- Y+ f2 U0 QCSS(时钟安全系统)  P0 v9 l+ h/ V# t( J6 E
时钟安全系统可以通过软件激活。一旦检测到HSE时钟故障,则系统时钟将自动切换到HSISYS,并且禁用HSE振荡器。如果HSE时钟也是PLL的时钟来源,并且发生故障时将PLLRCLK用作系统时钟,则PLL也被禁用。
5 B: _, t1 ~2 w$ Z% h" [+ z0 v
$ I/ Z1 Z; U% w8 n% a+ f通过CubeMX配置时钟树
7 A/ }" X0 t! `' S新建工程,并且开启SWD调试 - S' }% {1 n5 p6 m/ J& S8 C
通过在引脚视图界面,配置PC6为GPIO_Output;$ _; @/ U8 L# S( H% A1 e
在Pinout&Configuration中选中"RCC",在配置栏High Speed Clock(HSE)下拉菜单中选中"Crystal/Ceramic Resonator"
7 {5 H& P- _1 D
20200419231256537.png
9 n- v2 o  `& [4 u/ r; Q7 O( R
6 b5 O- V4 O/ [, Y" j
在Clock Configuration中 ,按下图配置,在HCLK框中输入最大64MHz,回车。cubemx软件会自动计算系数,而不用手动填写。保持激活CSS。
) W, |6 K1 i$ r" }* |  ?8 l# V$ Q$ r$ Z, x% N6 ^
20200419231756954.png

1 o7 @0 I$ O3 p; h- e8 m% l% b: P7 o- I0 ]$ I9 P) M1 U  {
然后在Project Manager中,设置好参数信息。2 h; h! d' a5 m5 ]" \, {$ U" T
! ?0 T/ v& P  I# s1 b; E7 j
20200419232147249.png

+ o3 k% m1 D( i' j/ j
20200419232218938.png
% e1 b, w* [8 ^

& k% @$ R. n: J
; n5 Z  s8 a, ^8 E9 j5 D  {  K: t  g6 d: Z; ^
最后点击GENERATE CODE,生成工程文件。 打开工程项目,进入到MDK软件( B1 _8 B2 b# ^( v7 c# \5 x# c5 s
  @; q% Y2 \8 i1 Y/ P' U
20200419232457161.png

/ t( B/ Z3 u. T
# D# @5 ]" b- r$ i+ K( x 打开魔术棒工具-Debug-Settings-Flash Download,勾上"Reset and Run",最后就可以编写代码,自由发挥吧。2 ^6 k* ?# B- }" W
3 ?, G) g* o: s& I* I/ J
20200419233315988.png

/ v% M9 v* }; G0 V$ s5 j& W" x+ p# C8 @
' k( ]: v8 C  R: o% ^4 S+ w
收藏 评论0 发布时间:2021-11-8 14:42

举报

0个回答

所属标签

相似分享

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