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

【经验分享】STM32H7时钟树RCC分析---原理讲解(一)

[复制链接]
STMCU小助手 发布时间:2022-3-23 14:00
F1 代表了基础型,基于Cortex-M3 内核,主频为 72MHZ,F4 代表了高性能,基于 Cortex-M4 内核,主频 180M,F7 代表了高性能,基于 Cortex-M7 内核,主频 216M。H7 代表了超高性能,基于 Cortex-M7 内核,主频400M/ [4 }/ |) J) E+ L: Z0 S: _! r

5 d( p1 y0 D3 k1 `) ^' m% a0 d c7d0df1ddff1486885cef4699de65b12.png
$ m3 H7 c& ]' c$ d: L( m: e7 l9 y7 \  q0 e$ A6 f) E. o. c
我们今天说的就STM32H7超高性能系列的这个MCU) ?1 Y4 w3 s, h3 }; Q9 G- k
* R8 d! Q7 H; x! w( |7 q$ F& v; w
如果您是初学者的话,建议先看下这篇,会对时钟树有一个基本的认识- B+ }+ g5 V' _/ \* M. N1 E) q

2 x( v4 F% P& B首先我们来看下H7的时钟树,乍一看很大,比F1多了太多东西,那我们仔细看,发现也还是很多,别担心,那么接下来我将带你了解下整体的时钟树原理以及各个模块的分析。3 P+ q2 d# O  N- x! \
# m% y3 A1 e* G' F1 _# T3 B' M
a92d9f25d96d4fc383eb017701f1a77f.jpg 9 W( ]. {/ j9 Z/ b3 X- e: k

1 u# d9 f- Y; x' r因为整体框图太大,所以我们把他分成几部分来分析,首先看下外部输入的时钟源:
- T$ `. @$ }" P1 b! a9 [. [: @$ e% K* x% H* J
外部时钟源
) ?& [' \% b- b2 B8 }STM32H7共有6个外部时钟源,分别是:1 F- t# Y! u+ @) T1 T
$ R; g5 s4 {# }1 b
HSI(高速内部振荡器)时钟:~ 8 MHz、16 MHz、32 MHz 或 64 MHz! O, |8 ]* X( f
HSE(高速外部振荡器)时钟:4 MHz 到 48 MHz* O3 [% W! Y, q4 [# e" B6 j
LSE(低速外部振荡器)时钟:32 kHz
* X6 q4 r+ J, h: E! Y1 ~LSI(低速内部振荡器)时钟:~ 32 kHz! m+ g$ d7 {% [' _( }; e
CSI(低功耗内部振荡器)时钟:~ 4 MHz, r8 _% Y) ?( C8 d6 |' Z
HSI48 (高速 48 MHz 内部振荡器)时钟:~48 MHz
' ?3 M3 Y- f# M$ }LSI
2 }1 {3 f3 G: G6 {5 fLSI 属于 STM32H7 内部低速时钟源,频率约为 32Khz。# S3 Q! i; J" e7 T2 I& V$ c
LSI 可作为低功耗时钟源保持运行,供独立看门狗 (IWDG) 和 RTC时钟/自动唤醒单元 (AWU) 使用
3 j' u$ j  y5 t" O2 W( E2 w2 E& s
; F- O6 m6 Z! tLSE5 y8 Q* a0 p& H+ v! k
LSE 则是外部低速时钟源,常用为 32.768Khz(使用 32.768Khz 晶振或陶瓷谐振器生成)
* F( {' u. E* X6 I* H可作为实时时钟 (RTC) 的时钟源来提供时 钟/日历或其他定时功能,具有功耗低且精度高的优点
5 ?1 C/ {( R% m% C  ~9 `1 C! q9 r& l1 }' g, M
HSE
$ U# u9 }, y) ^# F' |& QHSE 是外部高速时钟,正常我们都用HSE来作为系统时钟输入,常用25Mhz的外部晶振。
8 _) O  Y2 z% T, m6 P系统进入停止或待机模式时,HSE 会自动由硬件禁止
# S" h4 l9 a; o+ ?1 I! RHSE 时钟可被驱动到 MCO1 和 MCO2 输出,以及用作其他应用组件的时钟源
3 `- k2 B5 y% k# t6 U7 U) B5 H, u) B  r$ w/ r
; `; T: b! o& n1 W4 A
HSI% q( O8 p) B5 X6 Q* C. j' k
HSI 是内部高速时钟,频率为 64Mhz;
0 D1 z0 U0 W% @3 [; I, x8 H可直接用作系统时钟、外设时钟或 PLL 输入
9 H  j+ M/ I- U; b- r/ u$ ~可使用 HSIDIV预 分频器来选择 8 MHz、16 MHz、32 MHz 或 64 MHz 的 HSI 输出频率
  i; L* d- i. n6 i/ D
/ f/ o" {# D3 _) m' Z5 s, G2 n% f" Y
9 p* L# ]1 [7 i5 Q; r/ ^( r0 B0 RCSI# c/ F2 e0 i$ S0 B" x
CSI 是低功耗内部时钟,频率为 4Mhz;  u# K$ Q5 O  f2 S
可直接用作系统时钟、外设时钟或 PLL 输入
2 j" D5 o) k6 f8 U+ ]2 oCSI的频率极低,即使经过频率校准后,CSI 频率也不如外部晶振或陶瓷谐振器的频率精度高,其优点就是功耗低。5 K) g6 d" k' \7 ~9 Z

1 }, N6 Y+ L/ i2 GCSS (Clock security system)
  W8 I$ M1 z$ k6 }- H4 \时钟安全系统,也就是监控系统,H7的HSE和LSE两个外部时钟源带有安全监控,一旦使能后,如果 HSE 或LSE启动失败,系统时钟将切换到 HSI。如果使能了中断的话,将进入不可屏蔽中断 NMI。5 g7 k* R- Y; K: v2 {5 ^; q0 N7 g! L
' \* W' d  X; e$ j
HSI48
% ]* l8 d; w# v6 YHSI48 是内部高精度时钟源,频率为 48Mhz;% ^. g9 X0 m, V1 R+ Y3 I% W
其提供的 48 MHz 时钟可直接用作某些外设的内核时钟- g  m( A/ a+ G  |& q" X- @0 Y4 Z  Q
主要用于通过特殊时钟恢复系统 (CRS) 电路为 USB 外设的时钟源使用
; b' G, C. k3 R! g( V3 |4 B# Q6 c7 Q, I1 L' V  ^
好的,通过上述的介绍,你应该明白了H7的几大时钟源,那么这些时钟源后续要被用在哪里,我们再来分析" c! V: l' t0 T' D7 V
! X, c5 a8 d; N2 ?  i2 m* v( Q
IWDG, RTC,AWU
7 J: O2 x: b/ ]2 M/ @' x上半部紫罗兰色框的部分,就是独立看门狗 (IWDG) 和 RTC时钟/自动唤醒单元 (AWU)8 ^1 e5 c! O! k/ C
独立看门狗 (IWDG)只能由LSI 提供$ _. H% }' s1 c% r) k1 D
RTC和AWU可以由LSE LSE 和 HSE的1M分频来作为时钟源
2 o0 h% m; p+ a4 L" Q% X! t2 G* b6 B$ k9 g" y. A* G; D
锁相环PLL5 ?- E" z1 O6 A/ A& j" K
PLL(Phase Locked Loop): 为锁相回路或锁相环。总体上起到晶振频率倍频的作用,为系统高速率运行提高必要条件。
6 T. r9 e3 Y5 v- w7 X8 {' D1 c0 A0 T2 |# h7 g2 h: W$ B5 I
VCO(voltage-controlled oscillator):压控振荡器,是PLL 里的一个构成部件" @: `5 G0 S. a# q
" V/ k) p( L+ m- @% |# f# {
b1d645b0b7314267b3156c0ad28f17e5.png
/ U1 h7 c  C) {! W8 |) G: F+ f" M; Q* }; G* x+ s: `3 G- ]1 k+ d7 k1 t
STM32H7一共有三个PLL锁相环:( k& v0 l( Y/ y$ ^( y5 G
一个主 PLL (PLL1),通常用于为 CPU 和某些外设提供时钟。
; E0 n* k+ y  h% v+ t1 o两个专用 PLL(PLL2 和 PLL3),用于为外设生成内核时钟。- I: T0 m5 _- i$ |3 }
$ U4 S9 n9 u( R2 M# k
PLL的输入时钟源为refx_ck,并且为 PLL 提供的参考时钟的频率 (refx_ck) 必须介于 1 MHz 到 16 MHz 范围内( X5 ]) U$ q8 L7 s1 i8 C( v5 a
9 l9 N0 V: B9 Y" g& c
其中HSI CSI HSE三个时钟源可以作为输入,然后经过PLL时钟源选择器PLLSRC,该选择器主要选择使用哪一个振荡器作为时钟源,再经过DIVMx分频得到1 MHz 到 16 MHz 的时钟频率,我们一般选择 PLL 时钟源来自 hse_ck,一般为 25Mhz% Q7 ~; g7 d3 t. y/ V: L$ g
8 \: t5 x5 ?. s) f& `" Q
DIVMxLLx时钟源预分频器,用于对PLLSRC选择的时钟源进行分频,取值范围是:2~63
2 z+ d! Q1 y" w$ G2 r2 D6 \% q
: Q! R5 u. V/ ~/ HPLL1
0 A" P6 P* _6 C. a, _4 ~$ JPLL1 锁相环,该 PLL 主要用到两路输出:pll1_p_ck 和 pll1_q_ck,其中:pll1_p_ck一般用于 sys_ck 系统时钟的时钟源,最终作为 CPU、SysTick、AXI、AHB1~4 和 APB1~4 等的时钟源;而 pll1_q_ck 则可以通过 PKSU 选择作为部分外设的内核时钟(perx_ker_ck),如 FMC、QSPI、SDMMC1/2 等,至于图中的 pll1_r_ck,并没有用到。
! D0 o8 v. _8 d
$ `: `7 a8 O0 i6 P, R5 }' [' y) l1 ADIVN1 是主 PLL1 vco 的倍频系数,其取值范围是:4~512;; Y6 e7 s0 F2 h
DIVP1 是 PLL1 的 P 分 频,用于得到 pll1_p_ck 的频率,其取值范围是:2、4、6…128(必须是偶数);6 M9 j& j& ?. D! }. n
DIVQ1 是 PLL1的 Q 分频,其取值范围是:1~128;. \7 E' Z# g9 K* x6 W4 _
DIVR1 则没有用到;
/ g, P, d& h* f- j& S$ B& ^FRACN1 是分数倍频系数,它和 DIVN1一起组成 PLL1 的倍频系数,但是我们一般并不需要用到分数倍频
2 v% ?! k: y1 d& \5 _5 t* ^8 C) D6 p4 V
: j: i2 k6 @7 L% H
这里以 pll1_p_ck为例,简单介绍下 PLL 输出频率的计算公式(时钟 PLL 输入频率为 hse_ck):, [4 c+ x! @7 Y  F, Y( i
4 P9 U2 e; d1 |  p! l$ E5 _
LGN42T%T]VE`XLKBFZCO($B.png
  A4 S( [0 s4 _) Z3 T, e* b) ?- O' c( B7 {" i' l# H7 h
假设外部晶振为 25Mhz,我们需要得到 400Mhz 的 pll1_p_ck 频率来作为系统时钟,则可以设置:DIVM1=5,DIVN1=160,DIVP1=2 即可4 {& q  X7 A$ g/ O- A

7 `0 t3 r3 k, OPLL2和PLL3跟PLL1类似,这里我们不再赘述。
6 c. Z5 A2 l% c) J0 f/ @
: M, Z2 k8 F1 z. F) n$ J% w3 l系统时钟
4 _6 F! M$ D# ]6 a" m1 q
系统复位后,会自动将 HSI 选作系统时钟,并且所有 PLL 均将关闭。 ,也就是每次系统复位,都会用HSI作为系统时钟,当系统稳定后,可以配置好 PLL1 ,将系统时钟可以切换为 plll1_q_ck(400Mhz),以得到最高性能
, ^$ P- Q% ~; p% E# K' O9 }. R- x. o; Y
当时钟源用于系统时钟时,软件无法关闭所选时钟源,也就是系统时钟软件无法禁止
# ~) a/ |/ _$ [1 u7 X
& i6 n4 |6 N7 p/ k 0f5ab7e90ed548f5a029c66ecf973afa.png 6 l6 F6 Z8 C* s! q# s
& T4 c! R& }% t% O
SCGU(System Clock Generation Unit,系统时钟生成单元),用于将 sys_ck 分成各种% B# P6 O8 V4 `' s: z1 C
时钟频率,比如:CPU 频率、SysTick、AXI、AHB1~4 和 APB1~4 等。" a, P; ^' j* b  t8 N7 I! }1 C
SCEU(System Clock Eable Unit,系统时钟使能单元),用于使能各个外设、总线等的时钟,是一个时钟开关。+ V* O. m/ o' F# u7 J3 ~1 Z
下面我们来对系统时钟的生成做一个详细的介绍:
6 I4 z  l# d$ `& ]# w: L$ U7 ^+ T/ ^. j+ w
f8187749cf1a4769878e20231dd956f7.png 6 U, l9 K6 G) S1 s* c1 S

) Z7 N( `# C% t' Q; R- O' d* u上图主要列出了 STM32H743 系统时钟的生成原理,包括 CPU 时钟、SysTick 时钟、AXI时钟、AHB1~4 和 APB1~4 等,这些时钟对整个系统运行来说非常重要,图中,D1、D2 和 D3 域是 ST 为了支持动态能效管理,所设计的 3 个独立的电源域,每个域都能独立开启/关闭。系统时钟由 SCGU 产生,然后经过 SCEU 做开关,最终输出到各个时钟域(D1、D2 和 D3),从而能够控制和访问各类外设,保证系统的正常运行。
! G8 A  I* `9 O- Z" T: N
6 [4 p$ i9 b( n0 H. ]SCGU 输入时钟(sys_ck),该时钟我们一般选择来自 pll1_p_ck,频率为 400Mhz
- E9 _% X1 Y) E$ y" q4 JDICPRE:sys_d1cpre_ck 时钟的分频系数,取值范围为 1~512,通过 RCC_ D1CFGR 寄存器的D1CPRE[3:0]位设置,我们一般设置为 1 分频,以得到最高的 sys_d1cpre_ck 频率,400Mhz
9 G+ w7 _' A8 k经过HPRE分频后给AXI时钟等外设使用,注意这里最高频率为200Mhz,也就是大部分外设的最高频率为200Mhz,所以sys_ck为400Mhz时,HPRE最少为2分频。
% x% K- y3 g, @8 R+ f- {( z8 [给HRTIM做时钟使用,频率可达400Mhz  |5 N+ F# P/ Z: P, |3 p
CPU 时钟(rcc_c_ck、rcc_fclk_c),CPU 时钟是直接来自 sys_d1cpre_ck,没有分频器,频率为 400Mhz
! J0 v+ c% ]; A8 [" P8 a/ o5 dSysTick 时钟分频器(固定 8 分频),这个在图中是有错误的,实际上这个分频器是没有的(硬件 bug),因此 SysTick 的时钟频率,直接来自 sys_d1cpre_ck,频率为 400Mhz系统时钟
" e+ m- M7 D' q# h; X使能单元(SCEU),它能够对 D1、D2 和 D3 域内的所有外设时钟进行开/关控制,所以在使用外设的时候,必须设置 SCEU,使能其时钟,否则外设无法使用,也就是配置各个外设时钟的使能ENR9 I1 ]/ v: Y4 P9 N: V
D1 域,是高性能域,主要为CPU时钟和AXI外设,AHB3外设& P1 z. J" [6 ~% B7 y# v
D2 域,通信接口域,主要进行数据通信工作,减轻 CPU 的负担。此域包括:AHB1、AHB2、APB1 和 APB2 等时钟部分。
+ a3 p% o" R7 N7 [+ J9 Z/ ?D3 域,数据批处理域,此域包括 AHB4 和 APB4 等时钟部分. m  q5 }+ a) f8 }& K
  l0 F& H! ^$ s4 ~% ^- J6 _# F

3 d) v+ a1 ~0 [% N0 G: YMOC1/MOC2
) R! f+ g+ q- u$ }6 }两个时钟输出 (MCO) 引脚可供使用,分别为 MCO1 和 MCO2。可以为每个输出选择一个时钟源。8 {6 g# ~4 ]4 t( I5 q. U) W
GPIO 端口必须在复用功能模式下使用MCO。' G" z$ G( K0 ]1 n' ]
MCO 输出提供的时钟频率不能超出最大引脚速度4 W6 c& E$ [& o
MCO1 可以在 PA8 引脚输出& W) V3 x8 Z& l- {3 ^
MCO2 可以在 PC9 引脚输出
. U2 {# U9 k4 m5 Y* c  r$ I* y4 j+ r! Q
PKSU/PKEU1 n# I  {, O& A3 O
SCEU :用于控制外设的访问时钟(访问寄存器)
/ H. A0 ^. M8 \+ q8 PPKEU: 用于控制外设的内核时钟(生成控制时序,如波特率等)
3 j* ^4 p1 x) e, K7 J1 a9 y- c' ~
并不是所有的外设都需要用到 PKEU,因为有些外设并不需要生成时序,没有所谓的外设内核时钟,比如 DMA、OPAMP 等,这些外设只需要在SCEU 进行使能即可3 a$ l* P, D5 d) H

8 h/ ~! b# ?( z2 P! k下图是详细的外设时钟使能框图/ P/ T- i3 `/ ], j4 V

, A5 m7 V8 f9 [* I 4911c60431a34b999f4fafe604414df6.png 6 J  j7 `' a' z9 ~- d
, r1 R+ m* Z/ j( M* q9 u
上半部分的SCGU跟SCEU已经讲过,这里我们只说下下半部分:, x! [/ K1 E. v% s
外设内核时钟选择单元(PKSU,即:Peripheral Kernel clock Selection Unit),用于选择某个外设的内核时钟来源,具体的选择关系。8 l0 n; Z: m+ a5 _, H
外设内核时钟使能单元(PKEU,即:Peripheral Kernel clock Enable Unit),此部分将PKSU处选择的外设内核时钟进行使能/禁止操作,最终控制是否输出内核时钟(rcc_perx_ker_ck)给外设。% {$ I( o5 v+ e8 c2 X% G
内核控制逻辑(Kernel Control Logic),用于控制 PKEU 是否输出内核时钟给外设,它有很多控制信号,其中我们常用的是 PERxEN,通过这个位的设置就可以控制具体外设内核时钟的开/关。* g: I, B: l, o% \+ d6 a
外设内核时钟(rcc_perx_ker_ck),该时钟用于驱动外设产生时序,如波特率、时钟脉冲等。大部分外设都需要用到 rcc_perx_ker_ck,比如串口、SPI、IIC、FMC、SAI、LTDC 和CAN 等。
' w' G2 F! t( d2 d6 {) q7 }# O% D9 o
0 H6 T6 |* Q7 e" x: W$ A8 o
7 k1 q: f; r. ]' q" t1 Q这里推荐一张STM32H7 的数据手册里面非常棒的框图(在数据手册里面检索 Figure 1 就可以找到),可以对H7的整体架构有一个直观的了解,可以看到每个外设所挂的总线,和各个总线的最大时钟频率。
& I1 x3 E  A0 f, j" i  p% S
. C! O9 k+ R; h7 X5 F$ ~AHB (Advanced High-performance Bus) 高级高性能总线
7 O5 d6 f, u& m8 B( z2 VAPB (Advanced Peripheral Bus) 高级外围总线+ o0 y! h: ^0 O% @
AXI (Advanced eXtensible Interface) 高级可拓展接口
3 S" W' x( K/ P1 ]+ h( h. L9 j( b9 `& C4 |' }
AHB主要是针对高效率、高频宽及快速系统模块所设计的总线,它可以连接如微处理器、芯片上或芯片外的内存模块和DMA等高效率模块。3 b& \# J# o; d: {

5 v% }3 l2 _3 L8 _" I4 W- z& [APB主要用在低速且低功率的外围,可针对外围设备作功率消耗及复杂接口的最佳化。APB在AHB和低带宽的外围设备之间提供了通信的桥梁,所以APB是AHB或ASB的二级拓展总线。
2 c0 U  b7 b% H5 I) h0 v6 g4 s7 H8 }& ]9 X  l
AXI:高速度、高带宽,管道化互联,单向通道,只需要首地址,读写并行,支持乱序,支持非对齐操作,有效支持初始延迟较高的外设,连线非常多。9 O- b% B" K/ O7 P

9 @9 h3 V& A1 B% Q- x/ g- l这些内容加起来就定义出一套为了高性能SoC而设计的片上通信的标准。
5 B1 U- ?% B$ P
4 Q% F; j  J: M4 Q- u( F2 _ 1111.png
4 S7 v# E' R0 E$ m7 [2 p5 u* A2 M* i+ d+ F) V( G' q
比如你可以看到SYSCLK(Hz) = 400MHz (CPU Clock) 也就知道上述CPU框图初的错误: `! Y/ r. Y  ^1 w

+ p# }7 A% a9 u8 ~# z' W可以看到CPU外挂了一个 64bit的 AXI BUS 还有一个32bit的 AHB BUS
# N9 k# }0 }: x/ {- r5 D4 o. v( e  N& j1 }, p& \- f- S9 y0 V
FLASH FMC QSPI 这些都是在AXI总线上的5 E) d" `: V7 r
常用的 TIM UART SPI IIC挂在AHB总线上1 s+ e) I2 v5 U; o
$ P3 _3 R6 X, Y6 ?! ^# C; j
64位的AXI总线又分出了一个32位的 AHB4 等等
0 t0 P6 G- g  n6 c% Z0 Q( I" L6 Z
4 l4 m( C. _6 n, b, D右下角的是时钟的框图,可以看到RTC时钟 看门狗时钟' B$ J/ H2 C% Z. z7 @; Z# h+ b+ R

8 z# N) C% W! v5 K6 Y可以看到HSE的时钟是4-48Mhz 然后给APB4总线外挂 经过三个PLL锁相环 再做外部输出
* E$ j+ z# `2 Y- M$ C
" h6 `# s) g3 d1 A ]V})_607HGDVD(Q@C1T1%]2.png
, f, [' T9 y: `; w: g& ~+ C* M9 t5 t
再比如200Mhz的AHB4经过分频生成了APB4最高位100Mhz0 r, L! C1 \) \( f& q$ e7 W

3 P/ z6 J$ g/ g6 R% ~ 9_~6DV(3U[]N0315QW9[S[T.png
( t) ^# @  L( Z6 b3 Z) Q" l
6 A. X9 F  r3 X0 S9 q: t+ hAPB1 定时器有 TIM2, TIM3 ,TIM4, TIM5, TIM6, TIM7, TIM12, TIM13, TIM14,LPTIM1, i! M4 N* U5 P$ B1 c( _4 h5 {$ z
APB2 定时器有 TIM1, TIM8 , TIM15, TIM16,TIM17
+ V6 m8 m* V2 @APB3 上有 LCD-TFT FIFO
; b0 G1 q4 _" h: OAPB4 定时器有 LPTIM2,LPTIM3,LPTIM4,LPTIM50 c: f, m/ o% J7 k5 k* }, y' D
) v3 E* F8 e; V; w* m
还有下面的总线系统框架* I# F4 |+ X+ m+ X# R. o: a! a

1 w  h. C* \6 _( @) _ SWA]V0DDFM@IPTU@3BUX.png - ?) q" ^) u! w7 C8 M' X2 p5 y. z
) N3 B6 e" c6 @1 ?) o. T
可以很清楚的看到外设共分为三个域:D1 Domain,D2 Domain 和 D3 Domain。  v0 d( ?2 V. u! O. r- o' x3 B
◆ D1 Domain% h7 X" A% o% M: w* B0 m
D1 域中的各个外设是挂在 64 位 AXI 总线组成 6*7 的矩阵上。
  G3 I" A  C- o* v6 b' A. e5 D% b; W: a: G: r% l
6 个从接口端 ASIB1 到 ASIB6$ g1 n/ \& Z# \& E
外接的主控是 LTDC,DMA2D,MDMA,SDMMC1,AXIM 和 D2-to-D1 AHB 总线。8 q5 C2 P2 ^3 ^3 ^0 V% ]

, W! R+ w$ r' Q; [: {' u6 j6 [+ |7 X
7 个主接口端 AMIB1 到 AMIB7* O* P3 B8 a" V' c' B+ N
外接的从设备是 AHB3 总线,Flash A,Flash B,FMC 总线,QSPI 和 AXI SRAM。2 J" M# C% c0 q( k
AHB3也是由 AXI 总线分支出来的,然后再由 AHB3 分支出 APB3 总线。
7 }, J, h' E& n/ r4 ]1 g) P2 B
+ h) [: D- D/ D. a* O: Y
9 ?6 j: ~$ A6 S4 V. `  l4 O0 p: R◆ D2 Domain4 b3 y* O7 c& U& p0 O; c; z' h
D2 域的各个外设是挂在 32 位 AHB 总线组成 10*9 的矩阵上。
. e6 [6 }) @0 W8 `: G+ I10 个从接口外接的主控是 D1-to-D2 AHB 总线,AHBP 总线,DMA1,DMA2,Ethernet MAC,SDMMC2,USB HS1 和 USB HS2。8 R+ [+ h0 Y# m, S
9 个主接口外接的从设备是 SRAM1,SRMA2,SRAM3,AHB1,AHB2,APB1,APB2,D2-to-D1 AHB总线和 D2-to-D3 AHB 总线。
& S' u" Z! P1 B, }8 q3 O% @4 Y+ n/ V8 C1 p
◆ D3 Domain( k# O9 U& O  q. A
D3 域的各个外设是挂在 32 位 AHB 总线组成 3*2 的矩阵上。4 f, F8 C$ X5 P. N' d) c
3 个从接口外接的主控 D1-to-D3 AHB 总线,D2-to-D3 AHB 总线和 BDMA。* e. L- |; r: O5 m
2 个主接口外接的从设备是 AHB4,SRAM4 和 Bckp SRAM。另外 AHB4 也是这个总线矩阵分支出来的,然后再由 AHB4 分支出 APB4 总线。
% `( e; q+ M5 c, A  v6 S4 H, `: j8 q* f- \

7 b9 \/ Y. q- K3 q6 E; p
收藏 评论0 发布时间:2022-3-23 14:00

举报

0个回答

所属标签

相似分享

官网相关资源

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