🟦 u5-07 总线与 DMA:系统互联与数据传输

🟦 STM32U575 数据手册初学者精讲 · 第 7 / 10 章
🗨️ U575 的系统总线采用多主多从的 AHB 矩阵,DMA 系统分为高速 GPDMA 和低功耗 LPDMA,DMA2D 还能加速图形搬运。
这一章在干嘛? 理解总线架构和 DMA 怎么传数据,是做高性能/低功耗驱动的关键。

多 AHB 总线矩阵:谁可以访问谁

U575 内部有一个 32-bit multi-AHB bus matrix。你可以把它理解为高速公路网:

总线主设备说明
Cortex-M33 I-bus/D-busCPU 取指令和读数据
GPDMA1 / LPDMA1DMA 控制器搬运数据
SDMMCSD 卡直接读写
总线从设备说明
Flash程序代码
SRAM1/2/3/4运行时数据
AHB-to-APB 桥通往所有 APB 外设
FSMC / OCTOSPI外部存储器接口
总线矩阵允许多个主设备同时访问不同的从设备。例如 CPU 读 Flash 的同时,DMA 搬 SRAM 的数据到外设。

GPDMA1:通用 DMA,16 个通道

GPDMA1 是主力 DMA,支持:

典型用法:

使用 DCACHE 时,DMA 传输前要 SCB_CleanDCache(),传输后 SCB_InvalidateDCache(),否则 CPU 和 DMA 看到的数据可能不一致。

LPDMA1:低功耗 DMA

LPDMA1 只有 4 个通道,但它属于 低功耗域,在 Stop 模式下仍可工作,是 LPBAM 的核心。

LPBAM 的典型组合:

做电池采集、环境传感器等应用时,LPDMA + LPTIM + ADC4 是低功耗的黄金组合。

DMA2D:图形加速器

DMA2D 专门用于图形数据搬运:

如果你给 U575 配了显示屏,DMA2D 能显著降低 CPU 负担。

外设互联矩阵

U575 很多外设可以通过内部触发信号互联,而不经过 CPU:

善用外设互联,可以把很多实时控制交给硬件,CPU 只负责策略层。
🧠 小测验
GPDMA 和 LPDMA 的主要区别是什么?
GPDMA 是高速主力 DMA;LPDMA 属于低功耗域,Stop 模式下仍可工作。
为什么 DMA + DCACHE 容易踩坑?
CPU 和 DMA 可能看到不同的缓存副本,需要 clean/invalidate。
DMA2D 适合做什么?
图形数据搬运、颜色格式转换、图像混合。
← 上一篇🏠 顶层目录下一篇 →