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

STM32 DMAMUX:DMA 请求路由器

[复制链接]
STMCU小助手 发布时间:2022-7-21 19:17
引言, c% P/ v6 ?7 K0 S# ^
为了从 CPU 减荷某些数据传输任务,STM32 微控制器嵌入了直接存储器访问(DMA)控制器。DMA 可以在外设请求或软件触发时执行面向块的数据传输。, y+ A- }$ G8 x
每个 DMA 通道都有一个软件可配置的外设选择,用于请求其服务。在传统 STM32 产品上,通道请求选择在 DMA 控制器内实现,该控制器带有面向给定通道的受限外设请求列表。软件应用程序不能自由地将任何外设请求映射到任何通道。% F# X* a! C6 e; q8 c, [
DMA 请求复用器(DMAMUX 外设)增强了 STM32 DMA 请求路由功能。DMAMUX 增加了更多灵活性,可以提供完全动态的DMA 外设请求映射,而不是伪动态映射。它提供从给定外设到任何 DMA 控制器和/或控制器 DMA 通道的任何 DMA 请求完全可配置路由。
/ ^8 P3 V  ]0 t+ r+ i% O9 v. V本应用说明解释了下表中所列产品的各种 DMAMUX 特性:如何配置 DMAMUX,以及如何使用新的同步和请求生成功能。/ ~6 H  |/ c! P- [* G

" b8 ^. l1 [( i8 H
0UE[11Z)A%LZ2S[E`F32A1L.png 1 DMAMUX 描述: S6 B* G3 v0 i, x7 F8 v6 c
外设通过设置其 DMA 请求信号来指示 DMA 传输请求。DMA 控制器会处理 DMA 请求并生成 DMA 确认信号,而且相应的 DMA 请求信号也将变为无效,但在此之前 DMA 请求一直处于挂起状态。3 |) e$ w( F9 F
本文档中并未明确描述 DMA 请求/确认协议所需的控制信号组,而是将其称作外设 DMA 请求线。
# v3 }; }  ?. D8 l$ vDMA 请求路由器可以看作是 DMA 控制器的扩展。它将 DMA 外设请求路由到 DMA 控制器本身。; E/ D' S1 N- h. t0 X
DMAMUX 请求复用器可将外设的 DMA 请求线路由到产品 DMA 控制器。该路由功能通过可编程的多通道 DMA 请求线复用器来确保实现。每个通道(下图示例中的 DMAMUX 通道 0)选择一个唯一的 DMA 请求线转发(无条件或同步地)到关联的 DMA 控制器通道(下图示例中的 DMA 通道 0)。这就允许高度灵活地管理 DMA 请求,使并发运行的 DMA 请求数量最大化。9 V# }) I. Y5 L9 X7 ~
' t" r. j3 @/ H: F% S8 _6 j: J8 f
8 N1 I* C! C% s8 H7 @) d: Q
UB~144@5{3L6V3R9(_R2S45.png 1 ^  _% H! K0 p- [( T* V, B

5 l0 D9 d; t8 q# g- Q- }% t2 DMAMUX 功能
3 `9 t7 L: H+ y9 n  V3 N/ p4 ?下图是一个简化的 DMAMUX 框图。根据 DMAMUX 管理的 DMA 通道数量,“请求复用器”结构被重复 N 次
) i/ x8 a, M6 v4 ]- j
- N/ U, b9 f' }, ~) w
(P{CR`D`)WC$}_D@WVFSNLH.png
$ i& H: B3 Z4 j- S( D5 r% F/ b9 T3 p4 j, Y! b3 P( F% ?
– dmamux_reqx:来自外设的 DMA 请求(dmamux_req_inx)或来自请求生成器(dmamux_req_genx) 的 DMA 请求
$ ~3 G- h% R, G5 P0 gdmamux_req_gen[0..n]分别受 dmamux_req[1..n+1]的影响;而 dmamux_req_inx 受 dmamux_req[n+2]2 E- w& Q% g6 X# W% `
的影响。
) {4 l$ [) M/ O! a: ?# }' D– dmamux_syncx:可选同步事件$ O/ F. x# @2 I0 o
• 输出:, p8 g2 w  w- L% ~8 w+ p
– dmamux_req_outx:DMA 请求 dmamux_reqx 从输入转发到输出9 `. t( v: R; m6 q0 ^* h& a' P
– dmamux_evtx:可选的生成事件,可用于触发/同步其他 DMAMUX 通道! o! A# I+ n; x$ F2 k9 x9 o
请求生成器允许根据中断信号或事件生成 DMA 请求,输入/输出如下:
6 K. P1 Q% M; ~; Q2 ~0 ~! R• 输入:dmamux_trgx,请求生成器子块的触发事件输入
% Y& `7 o; w% |4 e+ ]2 Q. m5 [; J3 ~• 输出:dmamux_req_genx,从请求生成器子块到 DMAMUX 请求复用器通道的 DMA 请求. p) m. ~+ U$ q, l4 I
请求复用器块的数量取决于 DMAMUX 管理的 DMA 通道数量。
8 i, A, ^" P' \7 ]4 v2 ~例如:3 D/ U1 p) f+ C3 \8 s
• 如果是 8 通道 DMA,必须有 8 个请求复用器通道。1 p, ^+ P; g) J' r( o* ~
• 如果某产品有两个 DMA 控制器(每个 DMA 控制器各有 8 个通道),则必须有 16 个请求复用器通道。
4 B0 ]$ T% U7 n$ ?# I' {# L一旦请求生成器由 DMAMUX 实例化。它包含 N 个能够生成 DMA 请求的通道(取决于产品)。有关详细信息,请参阅产品参考手册中的“DMAMUX 实现”部分。7 {' E/ w3 m5 r8 D' t9 h0 ~6 V- @
因为有请求生成器块,用户软件可以基于未实现 DMA 请求的外设发出的信号触发 DMA 传输。
3 ], H4 ?: y9 W8 R: ]9 u3 S. E& X( e, b6 p2 n$ `: t" i
现 DMA 请求的外设发出的信号触发 DMA 传输。/ m* r; _: f9 n' J6 A, o
: r+ _1 K2 \6 P& g* P# i! c
2.1 请求路由与同步
$ \) P& ?8 M4 L4 R2.1.1 无条件请求转发$ D- P: C6 j% j
为了执行外设到内存或内存到外设的传输,DMA 控制器通道每次都需要一个外设 DMA 请求线。每次发生请求时,DMA 通道将数据传入/传出外设。DMAMUX 请求复用器通道 X 允许选择/路由外设 DMA 请求线到 DMA 通道 X。
) e* C! |9 D5 J: B2 O( y& b% u  @当复用器设置之后(DMAREQ_ID 不等于零),它确保 DMA 请求线的实际路由。通过通道控制寄存器(DMAMUX_CxCR)的 DMAREQ_ID 位中的编码 ID 选择外设 DMA 请求到复用器通道输出的连接。+ L3 R: h% b9 K3 G) ?. G0 t' @
对于产品中的每个外设 DMA 请求线,都会影响唯一的 ID。值 0(DMAREQ_ID = 0x00)对应于没有选择 DMA 请求线。/ i" d) y) I0 f
在配置 DMAMUX 通道之后,可以依次配置相应的 DMA 控制器通道。不能将两个不同的 DMAMUX 通道配置为选择相同的外设 DMA 请求线作为源。
, ]: h; R9 `* g& E3 \4 k# M6 d8 U2 ~/ S" H
完整版请查看:附件  l3 P; L6 J8 M4 Z! M) K

0 X2 Q8 J8 @; J% f6 [% C  s7 O/ d3 B1 Z/ Z

DM00535045_ZHV2.pdf

下载

371.91 KB, 下载次数: 13

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

举报

0个回答

所属标签

相似技术帖

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