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

STM32 DMAMUX:DMA 请求路由器

[复制链接]
STMCU小助手 发布时间:2022-7-21 19:17
引言/ F  v' Y; L" O! i$ f- M
为了从 CPU 减荷某些数据传输任务,STM32 微控制器嵌入了直接存储器访问(DMA)控制器。DMA 可以在外设请求或软件触发时执行面向块的数据传输。
4 h6 {' N: g7 {每个 DMA 通道都有一个软件可配置的外设选择,用于请求其服务。在传统 STM32 产品上,通道请求选择在 DMA 控制器内实现,该控制器带有面向给定通道的受限外设请求列表。软件应用程序不能自由地将任何外设请求映射到任何通道。
3 q! S& ?6 m2 X% }DMA 请求复用器(DMAMUX 外设)增强了 STM32 DMA 请求路由功能。DMAMUX 增加了更多灵活性,可以提供完全动态的DMA 外设请求映射,而不是伪动态映射。它提供从给定外设到任何 DMA 控制器和/或控制器 DMA 通道的任何 DMA 请求完全可配置路由。
( X: o8 e9 P/ o5 q$ E$ x$ w本应用说明解释了下表中所列产品的各种 DMAMUX 特性:如何配置 DMAMUX,以及如何使用新的同步和请求生成功能。
3 y1 y* o9 N4 j. D; j3 I- E# v  Z0 f. n; d: m6 n
0UE[11Z)A%LZ2S[E`F32A1L.png 1 DMAMUX 描述: k5 O$ J  S2 Z& s* w- b
外设通过设置其 DMA 请求信号来指示 DMA 传输请求。DMA 控制器会处理 DMA 请求并生成 DMA 确认信号,而且相应的 DMA 请求信号也将变为无效,但在此之前 DMA 请求一直处于挂起状态。
+ V' l  y" n! C" e本文档中并未明确描述 DMA 请求/确认协议所需的控制信号组,而是将其称作外设 DMA 请求线。1 i3 L; f  u3 n, f8 v4 ?% j
DMA 请求路由器可以看作是 DMA 控制器的扩展。它将 DMA 外设请求路由到 DMA 控制器本身。
8 ]/ V! e; p) @DMAMUX 请求复用器可将外设的 DMA 请求线路由到产品 DMA 控制器。该路由功能通过可编程的多通道 DMA 请求线复用器来确保实现。每个通道(下图示例中的 DMAMUX 通道 0)选择一个唯一的 DMA 请求线转发(无条件或同步地)到关联的 DMA 控制器通道(下图示例中的 DMA 通道 0)。这就允许高度灵活地管理 DMA 请求,使并发运行的 DMA 请求数量最大化。- e3 c8 o& C/ [2 N

: T! n; j6 O- a' k! y4 K' a- o; g8 d& u4 q' m7 s$ a! Z6 d- I4 H! d
UB~144@5{3L6V3R9(_R2S45.png
' p+ p1 x5 ?" @8 U) W0 a
! s) o- C- m8 _6 q1 t2 DMAMUX 功能5 B/ D0 A8 p# L1 E. ?
下图是一个简化的 DMAMUX 框图。根据 DMAMUX 管理的 DMA 通道数量,“请求复用器”结构被重复 N 次
+ C& I4 P0 c0 t9 b+ |4 D5 u# J# S: m0 C  f" K$ d" \
(P{CR`D`)WC$}_D@WVFSNLH.png ; S: u6 S: f* [3 C; o9 H3 ]
# q5 J+ g' G1 c
– dmamux_reqx:来自外设的 DMA 请求(dmamux_req_inx)或来自请求生成器(dmamux_req_genx) 的 DMA 请求
+ q0 Q/ \, |# ]2 zdmamux_req_gen[0..n]分别受 dmamux_req[1..n+1]的影响;而 dmamux_req_inx 受 dmamux_req[n+2]+ r& g' o  o. n" e! B) J0 S
的影响。/ Y( Q8 g3 [7 j% m! W
– dmamux_syncx:可选同步事件
5 c0 \4 B' _, e/ a; O, z• 输出:
1 u- P& {% n. {– dmamux_req_outx:DMA 请求 dmamux_reqx 从输入转发到输出
2 y. }  j& b$ q0 l6 E" l– dmamux_evtx:可选的生成事件,可用于触发/同步其他 DMAMUX 通道
+ S+ A: l0 _4 b% R9 b5 I' z/ P请求生成器允许根据中断信号或事件生成 DMA 请求,输入/输出如下:' e* Q) R. a4 d. m- u
• 输入:dmamux_trgx,请求生成器子块的触发事件输入
% I, y$ w7 b9 }3 [4 i9 J! F& X1 [. {• 输出:dmamux_req_genx,从请求生成器子块到 DMAMUX 请求复用器通道的 DMA 请求
- m' V, X& u+ S5 n* n# W/ j/ d请求复用器块的数量取决于 DMAMUX 管理的 DMA 通道数量。
+ T% \8 O* p& f  X/ S7 Y( V例如:6 a: a4 g. G: W% o& P: ?
• 如果是 8 通道 DMA,必须有 8 个请求复用器通道。
1 m0 I: r$ b- w- j7 _• 如果某产品有两个 DMA 控制器(每个 DMA 控制器各有 8 个通道),则必须有 16 个请求复用器通道。: ^2 ]! z2 o. v% I) `
一旦请求生成器由 DMAMUX 实例化。它包含 N 个能够生成 DMA 请求的通道(取决于产品)。有关详细信息,请参阅产品参考手册中的“DMAMUX 实现”部分。9 L, Q6 K; O+ k
因为有请求生成器块,用户软件可以基于未实现 DMA 请求的外设发出的信号触发 DMA 传输。1 }3 e$ V* \* F7 A' n

, z& `+ _, D3 |5 _现 DMA 请求的外设发出的信号触发 DMA 传输。0 F0 Z) ]5 @9 v6 ~
$ s3 t, ]9 z4 N0 X" i3 p$ ]
2.1 请求路由与同步* r! w3 @3 |' r0 W
2.1.1 无条件请求转发7 S/ N. |+ d9 t3 ], D5 o" e
为了执行外设到内存或内存到外设的传输,DMA 控制器通道每次都需要一个外设 DMA 请求线。每次发生请求时,DMA 通道将数据传入/传出外设。DMAMUX 请求复用器通道 X 允许选择/路由外设 DMA 请求线到 DMA 通道 X。
- x7 u8 Y6 `- j' m6 l9 Q; y当复用器设置之后(DMAREQ_ID 不等于零),它确保 DMA 请求线的实际路由。通过通道控制寄存器(DMAMUX_CxCR)的 DMAREQ_ID 位中的编码 ID 选择外设 DMA 请求到复用器通道输出的连接。
6 b( N- \' @, U) V+ @+ l对于产品中的每个外设 DMA 请求线,都会影响唯一的 ID。值 0(DMAREQ_ID = 0x00)对应于没有选择 DMA 请求线。
2 t! D. Q2 L$ G# C: e6 ]- P在配置 DMAMUX 通道之后,可以依次配置相应的 DMA 控制器通道。不能将两个不同的 DMAMUX 通道配置为选择相同的外设 DMA 请求线作为源。 $ e$ ]2 Y2 i- X! |3 F4 @9 d7 }

4 T( K7 V+ m" S8 z0 [. y6 u完整版请查看:附件
. b. d5 u3 ^" Y2 K- `! S: i7 N
0 j; i8 m7 f7 ?- ^( ?
7 |9 z* d: X8 m4 A

DM00535045_ZHV2.pdf

下载

371.91 KB, 下载次数: 13

收藏 评论0 发布时间:2022-7-21 19:17

举报

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