STM32H7 系列 MCU 相较于 F7 系列 MCU,拥有复杂的总线矩阵,这些总线矩阵直接关系到 STM32H7 时钟树的配置和内部 SRAM 的操作。这里就简单介绍一下 STM32H7 系列 MCU 的总线架构及内部 SRAM。
参考资料:RM0433STM32H742, STM32H743/753 and STM32H750 Value line advanced Arm®-based 32-bit MCUsV7.0
一、STM32H7 系列 MCU 总线架构介绍
先来看一个具体的 MCU,下图是 STM32H743xI/G 的原理框图。
虽然框图看起来很复杂,但是可以将其分为几个部分:
- M7 内核的处理器及附件(Cache 及 TCM 等),图中左上角的部分;
- STM32H7 总线矩阵部分,图中浅紫色的部分;
- 外设控制器及外设接口,图中白底黑框的部分。
M7 内核处理器要操作外设控制器及外设接口,必须要经过总线矩阵,所以需要把总线矩阵单独拉出来分析,图 2 所示,是由 AXI 和 AHBs 组成的总线矩阵。
可以看到 AXI 和 AHB 总线矩阵所外挂的外设,共分为三个域:D1 Domain,D2 Domain 和 D3 Domain。
1.1 D1 Domain
纵轴连接的是 LTDC,DMA2D,MDMA,SDMMC1,AXIM,D2-to-D1 AHB 总线;
横轴连接的是 D1-to-D2 AHB 总线,D1-to-D3 AHB 总线,Flash A,Flash B,AXI SRAM,QSPI,FMC。
注:AHB3 总线是由 AXI 总线得到;APB3 总线由 AHB3 总线得到。即 AXI 总线–AHB3 总线–APB3 总线。
1.2 D2 Domain
纵轴连接的是 D1-to-D2 AHB 总线,AHBP 总线,DMA1,DMA2,Ethernet MAC,SDMMC2,USB HS1 和 USB HS2;
横轴连接的是 SRAM1,SRMA2,SRAM3,AHB1,AHB2,APB1,APB2,D2-to-D3 AHB 总线,D2-to-D1 AHB 总线。
1.3 D3 Domain
纵轴连接的是 D1-to-D3 AHB 总线,D2-to-D3 AHB 总线,BDMA;
横轴连接的是 AHB4,SRAM4 和 Backup SRAM。
注:APB4 总线是由 AHB4 总线得到,即 AHB4 总线–APB4 总线。
注:D1 域可以到 D2、D3 域。D2 域可以到 D1、D3 域。但 D3 域无打达到 D1、D2 域。
STM32H7 的总线互联将图 2 整理成表格形式,即《STM32H7 参考手册》“Table 2. Bus-master-to-bus-slave interconnect”,可以更加直观看到互联互通关系,如图 3 所示。
表格解释:
1. 加粗字体是 64 位总线,普通字体是 32 位总线。
2. 访问通路
- 任何有数值的 = 都是可以访问的;
- “-” = 表示不可访问;
- 灰色阴影的 = 有实用价值的访问通路。
3. 表格中具体数值所代表的含义:
- D = direct;
- 1 = via AXI bus matrix;
- 2 = via AHB bus matrix in D2;
- 3 = via AHB bus matrix in D3;
- 4 = via AHB/APB bridge in D1;
- 5 = via AHB/APB bridge in D2;
- 6 = via AHB/APB bridge in D3;
- 7 = via AHBS bus of Cortex-M7;
- 多个数值组合 = 互连路径以数字的顺序经过多个矩阵或/和桥。
4. 总线访问类型
- 普通字体 = 32 位总线;
- 斜体 = 32 位总线主机端/ 64 位总线从机端;
- 粗体= 64 位总线。
二、STM32H7 系列 MCU 内部 SRAM
通过参看《STM32H7 参考手册》“2.4 Embedded SRAM”章节知道 The STM32H743/53xx and STM32H750xB 内存特性:
- Up to 864 Kbytes of System SRAM
- 128 Kbytes of data TCM RAM
- 64 Kbytes of instruction TCM RAM
- 4 Kbytes of backup SRAM
2.1 TCM SRAM
TCM : Tightly-Coupled Memory 紧密耦合内存 ,分为 ITCM 和 DTCM。 ITCM 用于运行指令,也就是程序代码,DTCM 用于数据存取,特点是跟内核速度一样,而片上 RAM 的速度基本都达不到这个速度,所以有降频处理。可供 MDMA 通过 Cortex®-M7 CPU 的 AHBS 从总线访问。
最大速度:480MHz。
DTCM 地址:0x2000 0000,大小 128KB。
ITCM 地址:0x0000 0000,大小 64KB。
2.2 AXI SRAM 区
位于 D1 域,数据带宽是 64bit,挂在 AXI 总线上。除了 D3 域中的 BDMB 主控不能访问,其它都可以访问此 RAM 区。
最大速度:240MHz。
地址:0x2400 0000,大小 512KB。
用途:用途不限,可以用于用户应用数据存储或者 LCD 显存。
2.3 SRAM1、SRAM2、SRAM3 区
位于 D2 域,数据带宽是 32bit,挂在 AHB 总线上。除了 D3 域中的 BDMB 主控不能访问这三块 SRAM,其它都可以访问这几个 RAM 区。
最大速度:240MHz。
SRAM1:地址 0x3000 0000,大小 128KB,用途不限,可用于 D2 域中的 DMA 缓冲,也可以当 D1 域断电后用于运行程序代码。
SRAM2:地址 0x3002 0000,大小 128KB,用途不限,可用于 D2 域中的 DMA 缓冲,也可以用于用户数据存取。
SRAM3:地址 0x3004 0000,大小 32KB,用途不限,主要用于以太网和 USB 的缓冲。
2.4 SRAM4 区
位于 D3 域,数据带宽是 32bit,挂在 AHB 总线上,大部分主控都能访这块 SRAM 区。
最大速度:240MHz。
地址:0x3800 0000,大小 64KB。
用途:用途不限,可以用于 D3 域中的 DMA 缓冲,也可以当 D1 和 D2 域进入 DStandby 待机方式后,继续保存用户数据。
2.5 Backup SRAM
备份 RAM 区,位于 D3 域,数据带宽是 32bit,挂在 AHB 总线上,大部分主控都能访问这块 SRAM 区。
最大速度:240MHz。
地址:0x3880 0000,大小 4KB。
用途:用途不限,主要用于系统进入低功耗模式后,继续保存数据(Vbat 引脚外接电池)。
以上即是 STM32H7 系列 MCU 总线架构及内部 SRAM 的简单介绍,后续会结合实际应用说明该部分的重要性。
扫码关注尚为网微信公众号
原创文章,作者:sunev,如若转载,请注明出处:https://www.sunev.cn/embedded/931.html