硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2119|回复: 14
收起左侧

[DMA] DMAMUX带的evt事件信号输出可用于多个DMAMUX通道级联

[复制链接]

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
120428
QQ
发表于 2022-5-20 10:58:28 | 显示全部楼层 |阅读模式


这个功能好像一直没有操作过。

image.png
回复

使用道具 举报

5

主题

26

回帖

41

积分

新手上路

积分
41
发表于 2025-12-8 19:06:57 | 显示全部楼层
我想请教一下这个问题:https://shequ.stmicroelectronics ... d=869154&extra=
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
120428
QQ
 楼主| 发表于 2025-12-9 11:15:53 | 显示全部楼层
风沙盗影 发表于 2025-12-8 19:06
我想请教一下这个问题:https://shequ.stmicroelectronics.cn/forum.php?mod=viewthread&tid=869154&extra=

这个还真不一定行,因为同步触发和外部触发只有这几个触发源。

区分STM32H7的DMAMUX中同步触发源和外部触发源以及配套的几个实战案例
https://forum.anfulai.cn/forum.php?mod=viewthread&tid=98811

而你截图TIM2 32bit定时器是其它的触发源。
回复

使用道具 举报

5

主题

184

回帖

199

积分

高级会员

积分
199
发表于 2025-12-9 11:48:41 | 显示全部楼层
风沙盗影 发表于 2025-12-8 19:06
我想请教一下这个问题:https://shequ.stmicroelectronics.cn/forum.php?mod=viewthread&tid=869154&extra=

思路应该是你的TIM2作为LPTIM的主定时器,LPTIM作为从定时器来同步触发DMA,毕竟TIM2无法直接作为同步源进行触发
回复

使用道具 举报

5

主题

184

回帖

199

积分

高级会员

积分
199
发表于 2025-12-9 11:52:11 | 显示全部楼层
风沙盗影 发表于 2025-12-8 19:06
我想请教一下这个问题:https://shequ.stmicroelectronics.cn/forum.php?mod=viewthread&tid=869154&extra=

或者这样想 TIM2只要能直接级联到同步触发源的定时器就可以做到你想要的功能
回复

使用道具 举报

5

主题

26

回帖

41

积分

新手上路

积分
41
发表于 2025-12-11 10:16:38 | 显示全部楼层
谢谢 我再仔细看看 验证下
回复

使用道具 举报

5

主题

26

回帖

41

积分

新手上路

积分
41
发表于 2025-12-15 15:54:26 | 显示全部楼层
对应于16bit 定时器 主频240MHz 输出信号频率越高 越利好 当前频率为1KHz 设置TIM12合适的分频系数和预加载数值 能达到1ppm的效果 1s偏差1us(是非常够用的),但是由于不能使用TIM的各个CHx,信号之间的同步反而是一个新问题
figurex.png
回复

使用道具 举报

5

主题

184

回帖

199

积分

高级会员

积分
199
发表于 2025-12-15 17:30:53 | 显示全部楼层
风沙盗影 发表于 2025-12-15 15:54
对应于16bit 定时器 主频240MHz 输出信号频率越高 越利好 当前频率为1KHz 设置TIM12合适的分频系数和预加载 ...

或者使用普通DMA不可以吗?使用一个定时器触发DMA进行内存搬运(随便搬运一个uint32就行),搬运完成的DMA事件来触发你需要功能
回复

使用道具 举报

5

主题

26

回帖

41

积分

新手上路

积分
41
发表于 2025-12-15 22:17:32 | 显示全部楼层
由于我使用了SPI菊花链 我必须要使用DMAMUX的request_number(首先等间隔,然后一次触发传输多片的数据)实现多片之间的信号传输,您这边说的我也尝试了,但是我不知道哪里不好使,我使用TIM_UP来翻转GPIO(作为一个冗余的DMA是事件绑定到DMAMUX_CH0,设定产生事件),然后现在这个SPI-同步触发作为DMA_MUX_CH1,我只将原先使用HAL_DMAMUX1_SYNC_TIM12_TRGO的宏定义变为HAL_DMAMUX1_SYNC_DMAMUX1_CH0_EVT,我能观测到方波生成,但是我无法观测到是否正常事件生成了,DMAMUX也只有中断状态寄存器,反正似乎同步SPI_DMA传输有问题 真的很奇怪。有兴趣的话您能否帮忙看下:仓库如下-main分支
https://github.com/Q-DEBUG/DMAMUX.git
回复

使用道具 举报

5

主题

26

回帖

41

积分

新手上路

积分
41
发表于 2025-12-16 08:01:05 来自手机 | 显示全部楼层
我其实不太明白TIM_up事件和TIM_up引起的搬运完成DMA传输事件之间区别
回复

使用道具 举报

5

主题

26

回帖

41

积分

新手上路

积分
41
发表于 2025-12-16 10:27:45 | 显示全部楼层
我其实不太懂 搬运完成的DMA事件和TIM_CCx事件的区别,ST的FAE也说了类似的话,始终有点不理解,我认为事件就是芯片内部特殊线路上的脉冲,作为驱动芯片内部状态机启动的一个边沿信号
芯片手册上写DMA仲裁器前的请求信号dma_strx很抽象(他可以来自于DMAMUX的输出信号dmamux_req_outx-15.3.1节图70,也可以直接是外设源的DMA请求),不知道我理解的对不对
1.TMUP触发内存到GPIO->BSRR寄存器的传输生成PWM为例 (内存->外设传输),写BSRR无时序要求,TIMUP事件直接作为请求信号,标识GPIO内部接收/发送就绪,进行NDTR个数据传输,所以传输频率就是定时器的更新周期
2.以我现在这种情况为例,SPI_TX外设信号连接到DMAMUX输入端dmamux_req_inx,标识SPI外设能够立即发送数据,但是我的需求不是持续发送数据,而是定时发送数据,所以需要TIM12_TRGO同步,类似一个逻辑“and”的关系,均满足时刻,生成一个有效DMA请求,产生一次DMA传输,所以我的传输频率就是TIM12的更新周期

figure2.bmp
figure1.bmp
回复

使用道具 举报

5

主题

26

回帖

41

积分

新手上路

积分
41
发表于 2025-12-16 10:54:13 | 显示全部楼层
我忽然明白您和ST官方FAE的意思了,您们这边的意思是这样吗? 软件方式级联:构建一个冗余的定时DMA搬运。就像上面说的例程1:定时翻转BSRR生成PWM,传输完成后会进行回调DMA完成传输中断函数,在中断回调函数中启动UART和SPI的DMA传输,实现同步触发效果(这种思路我在别家电机FOC算法 ADC_EOF采样三相电流后进行SVPWM算法更新PWM波CCR寄存器中见过),但是不适合我现在这个场景,我认为软件中断引起的jitter抖动更为强烈,是不可控的。我现在的场景对时序抖动非常敏感,我只能使用HAL_DMAMUX1_SYNC_DMAMUX1_CH0_EVT这样级联同步触发的硬件同步
回复

使用道具 举报

5

主题

184

回帖

199

积分

高级会员

积分
199
发表于 2025-12-17 11:42:11 | 显示全部楼层
风沙盗影 发表于 2025-12-16 10:54
我忽然明白您和ST官方FAE的意思了,您们这边的意思是这样吗? 软件方式级联:构建一个冗余的定时DMA搬运。 ...

你这样操作,将定时器TIM12设置触发模式,触发源选择ITR0(也就是定时器TIM1),然后设置TIM1的TRGO输出,这样你就完成了定时器直接的级联,你触发TIM1就可以通过TIM12触发DMAMUX的同步事件,同时你可以设置TIM1的通道多个通道触发DMA的功能,这样就可以满足你的同步需求了。
6386ceb5-5a47-42b9-ba89-3d603980712b.png
d32ae61e-6f03-474b-92da-2176ce275a6a.png
回复

使用道具 举报

25

主题

209

回帖

284

积分

高级会员

积分
284
发表于 5 天前 | 显示全部楼层
DMA的外设和内存设置不一样的位宽的时候,dma传输长度的NDT,指的是哪边,算传输总长度是哪边位宽×NDT
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
120428
QQ
 楼主| 发表于 4 天前 | 显示全部楼层
yuanzhongda 发表于 2026-1-5 14:45
DMA的外设和内存设置不一样的位宽的时候,dma传输长度的NDT,指的是哪边,算传输总长度是哪边位宽×NDT

123.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2026-1-10 08:02 , Processed in 0.076206 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表