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

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

[复制链接]
STMCU小助手 发布时间:2021-11-8 14:42
概述
1 e( s# ^) ?  v$ d7 aSTM32时钟系统主要的目的就是给相对独立的外设模块提供时钟,也是为了降低整个芯片的耗能。$ K4 U7 J' Y5 E0 W' W  g3 i- |
系统时钟,是处理器运行时间基准(每一条机器指令一个时钟周期)+ |* y$ x3 {; e& F, M
时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令。
3 _% f* A; o" o# d一个单片机内提供多个不同的系统时钟,可以适应更多的应用场合。
( E% G* [0 U$ G3 x( V! [不同的功能模块会有不同的时钟上限,因此提供不同的时钟,也能在一个单片机内放置更多的功能模块。
8 Z3 k# S2 W5 `% H- E对不同模块的时钟增加开启和关闭功能,可以降低单片机的功耗" s7 L0 ]/ k0 T' k. K0 Z
STM32为了低功耗,他将所有的外设时钟都设置为disable(不使能),用到什么外设,只要打开对应外设的时钟就可以, 其他的没用到的可以还是disable(不使能),这样耗能就会减少。  这就是为什么不管你配置什么功能都需要先打开对应的时钟的原因
' M7 }$ Y. x0 s" m) ?9 t3 `/ d3 U9 _  o( g
20200419221228616.jpg
; C: M6 K: J( [; c. I6 N. j

; K/ I5 r. c# a& ^1 ?4 {: A* [各个时钟源    (左边的部分)
, g- L5 y% _; K; L# z4 E; Z2 CSTM32G0有4个独立时钟源:HSI、HSE、LSI、LSE。3 S9 |! N/ r: ^6 S
①、HSI是高速内部时钟,RC振荡器,频率为16MHz,精度不高。
, ?3 ~, E% a, r②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~48MHz。2 U& n, J! `& L/ u% G
③、LSI是低速内部时钟,RC振荡器,频率为32kHz,提供低功耗时钟。 
5 b  r0 a$ z! F④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。6 Q$ {3 p2 A4 X8 a+ Y

  S2 Y3 k, i4 U+ w# Z其中LSI是作为IWDGCLK(独立看门狗)时钟源和RTC时钟源 而独立使用
1 E$ r3 w" U  _
6 C% x; i* k' |而HSI高速内部时钟、 HSE高速外部时钟、 LSI低速内部时钟,这三个经过分频或者倍频 作为系统时钟来使用+ a2 J, D9 G+ [  O$ u/ o: I
# J! I3 x) V# r' d
PLL为锁相环倍频输出,基于HSI16或基于HSE的时钟的频率相乘,以产生三个独立的时钟输出。允许的输入频率范围是2.66至16 MHz。分频因子可从1到8进行编程
3 D$ y* O+ }% O6 T( B2 p! C
: g- e+ B; ~8 p$ N. d; m时钟分析
+ f, V( e; d( E9 `! y1 r/ y9 D' `LSI(低速内部时钟)
- k4 x, B' @* m5 V& t) x$ j2 w
2 P; @( g, |' s作为IWDG(独立看门狗)和RTC的时钟源,单独使用。
9 k+ M" K( e% r4 {( A
/ l% }2 N. f: w8 j7 rLSE(低速外部时钟)$ e; }( S, }9 N. C7 {+ i, y
  t4 U, i- u8 j; |8 r+ o
可以为RTC、CEC、SYSCLK提供时钟源。
1 \7 L% W9 ?, h$ A+ M( F* e8 E; a! u- |. N7 a
HSE(高速外部时钟): ~+ H2 U. M, }" c, V% l  M$ [

  }5 T" M! v6 F* {可以为RTC、SYSCLK、PLL提供时钟源。
2 g; u0 g. R" J/ J( [
% ^6 t) N) C4 b: n! P; THSI(高速内部时钟)9 }2 u; y2 c- ~

1 T% e2 D. r( V, Z) a+ T8 S0 Y可以为PLL、HSISYS提供时钟源,HSISYS再为SYSCLK提供时钟源3 }# K4 ?3 r- ]& h: {

: z; O! q( ?% [( W3 M1 PPLL(锁相环倍频输出)8 c& t2 s: B4 `/ V
0 T/ K! G% b+ p3 j! s. i* N
由HSE、HSI输入,经过分频倍频后提供SYSCLK,还用两组时钟分别提供给TIM1/TIM15/RNG和ADC/I2S1。' E" X  C( L# r
8 E+ B8 x! `0 J5 |
其他时钟源分析
, |& [0 f+ d* @HSISYS
& b% _, O# C8 z8 r) l
  z/ C* r4 x% e9 l) {+ _从HSI16通过除以1到128的可编程因子得到的时钟( C0 s! z9 O$ h, r9 O, g

" C8 M, ]% c% a& HPLLPCLK,PLLQCLK,PLLRCLK
8 a( `4 ?2 K5 B. i3 p5 ?+ l& T# X, X) C- J! T  P( n
从PLL模块输出的时钟
( w+ z; Y) r8 G% g8 w7 J' n
. u; |- d# Y) s" k  t) kSYSCLK
% i3 l, B2 j+ {; |3 O
; F& c! Z8 F+ ]: R5 E通过选择LSE,LSI,HSE,PLLRCLK和HSISYS时钟之一获得的时钟,是整个系统时钟基准。G0系列频率最高到64MHz。
! L4 s' \, }2 D8 v* j" r  t+ s  m4 ], S# R8 ^4 `; M/ z) N
HCLK
; X* X* R+ L" _
2 n* R' p# I' S% c由SYSCLK通过除以从1到512可编程的因子得出的时钟
, M  u. j% F6 @6 s+ n$ k7 R. n7 P6 l) t& T# ~9 l, ?8 Z
HCLK8# l6 d" H$ P5 x  e$ z' x
' l' B; [$ q3 L2 Z, w  _3 h1 ^) N
由HCLK八分频得出的时钟
, e9 z* {# j8 A
0 _  z' S4 Y4 Z0 ^+ g PCLK1 z3 w, z+ V2 Y3 z

/ K- F) K" y8 M* _/ m( k" o( D从HCLK的时钟通过除以从1到16可编程的因子得出的时钟8 F, c$ i0 Y# ~. G$ ~' Y7 Y, l
3 y4 x, w# h  n6 g" @$ Y8 f& Q
TIMPCLK$ B' f+ n2 M$ b7 M' j. x

! j2 N3 `" \  ^1 _) G' b3 H% t* d 从PCLK派生的时钟,如果APB预分频器分频因子设置为1,则以PCLK频率运行,否则,以PCLK频率的两倍运行* h8 m/ u: E& B/ L7 O" ~. m7 b+ h
( ]2 ~* w9 D" N9 Y
LPTIMx_IN3 ]# ?7 B$ v: k. B, p
7 ~& R3 Z0 F/ B4 W) D( Q' `! w
LPTIMx_INx引脚提供的时钟,可为LPTIM外设选择
$ F- M8 M& `8 }( ?4 s4 `( @  b4 w
  S, `2 r. P* J' L* I3 ^MCO(微控制器时钟输出)- B6 d; T, A/ D5 M
微控制器时钟输出(MCO)功能允许将时钟输出到外部MCO引脚。 可以选择以下之一作为MCO时钟:( o; |+ J) N) l; h* g
! r- `- @8 L% ]) [) K
• LSI
7 K! a5 o& b( p* O! D' v1 X• LSE1 s, h2 R5 E0 H" Z5 j8 U/ d
• SYSCLK
: \7 N! @5 b. ]( {' Q( }• HSI16
% ]  b+ u4 E6 O4 C• HSE
$ X! E4 b& [& I% ~% y• PLLRCLK* p3 }/ @( [1 s3 {( C4 c

4 ^5 {" _# v! D$ B8 r4 L" I' h9 U: eCSS(时钟安全系统)
7 N# u2 h: i. \! C; z& k8 p* O" p时钟安全系统可以通过软件激活。一旦检测到HSE时钟故障,则系统时钟将自动切换到HSISYS,并且禁用HSE振荡器。如果HSE时钟也是PLL的时钟来源,并且发生故障时将PLLRCLK用作系统时钟,则PLL也被禁用。
1 a8 y4 x( b* ?6 N0 ?& S4 t. L
! ?5 k& r+ s; B: F3 {6 l! ]' F5 _通过CubeMX配置时钟树
& O. _# G$ A9 z* [新建工程,并且开启SWD调试
9 _( J9 t# @+ _/ s4 v7 l0 b通过在引脚视图界面,配置PC6为GPIO_Output;
% n( {" S( E) l& a3 n8 E在Pinout&Configuration中选中"RCC",在配置栏High Speed Clock(HSE)下拉菜单中选中"Crystal/Ceramic Resonator"
+ |2 c2 L4 K. b
20200419231256537.png

4 v" w" E. w; q6 i2 B- @
" M& w; @& [+ y5 C7 s. H! Q) z在Clock Configuration中 ,按下图配置,在HCLK框中输入最大64MHz,回车。cubemx软件会自动计算系数,而不用手动填写。保持激活CSS。
# O' ~5 ~1 o! r8 `
6 Q7 y9 ?! o9 R, H, u  y
20200419231756954.png
" j! R; I0 B* I) a+ q* `8 g5 ^/ R
& O3 n# U6 K" [
然后在Project Manager中,设置好参数信息。
, L4 {( `, e' M5 L& l- u2 J. R) V/ S" |, A2 [
20200419232147249.png
3 _+ c/ ?( P/ H7 |0 m
20200419232218938.png

0 N9 H6 D( k. g/ _8 b: j4 X9 G- ^
' v$ s) Z, W$ W/ A! A. W  [$ a
# m1 g4 p/ a* Q4 h3 |* e/ T, K) W! a1 l3 s3 _% Q( R& b
最后点击GENERATE CODE,生成工程文件。 打开工程项目,进入到MDK软件" ^2 u; p0 I. ~7 g6 {/ M2 H
! R3 ?) }1 _0 A- I) y
20200419232457161.png

- U) v# Q& D4 ?! Z2 g, l
7 _. M7 Q3 j4 S5 h! b$ s 打开魔术棒工具-Debug-Settings-Flash Download,勾上"Reset and Run",最后就可以编写代码,自由发挥吧。
  {; ]2 n$ S/ N7 Y$ M8 i
2 ?3 o5 c. R4 m0 [
20200419233315988.png

; Y$ }# N2 l0 W7 k7 {
, T  H7 P( N" L4 R6 @% ]. D5 ~, _. D) v0 L0 b5 v. b
赞 收藏 评论0 发布时间:2021-11-8 14:42

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版