STM32F205/F405,可以有几路外设同时使用DMA?

2019-07-21 03:43发布

我在设计中,想让ADCDACRS232LCD-SPI4个设备同时使用DMA,可以吗?有什么实例可以做参考呢?谢谢各位。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
xuande
1楼-- · 2019-07-21 04:24
从逻辑上错开,或者说靠时序保证它们自动错开。我做过多个设备。

比如,用定时器输出两路相位错开的信号,每路的下降沿、上升沿分别触发不同的事件,就可以开四路DMA;再加上事件触发,又可以开几路。

必要时,要以软件辅助,比如设置不同的源地址、目标地址。
xuande
2楼-- · 2019-07-21 07:50
 精彩回答 2  元偷偷看……
haixian
3楼-- · 2019-07-21 13:30
回复【2楼】xuande:
---------------------------------
错开是自动的还是人工干预?如果是自动的,那低速的外设和高速的DMA配合,在感觉上还是连续的。也就是那些缓冲器是怎么操作的?
haixian
4楼-- · 2019-07-21 18:05
回复【4楼】xuande:
---------------------------------
非常感谢。看来不是自动的。要做好还是要比较熟悉软硬件才行。
mzwhhwj
5楼-- · 2019-07-21 23:31
回复【4楼】xuande:
---------------------------------
不需要这么麻烦,DMA不是有不同的通道跟不同的流的话,,每个外设保证都用到不同的,保证不会重叠就可以了,至于在同一个DMA上,使用了多个通道或者多个流,通过设置优先级来仲裁
haixian
6楼-- · 2019-07-22 03:39
回复【6楼】mzwhhwj:
---------------------------------
谢谢,有4级优先权。看来是干这个用的。只要估计外设总的速度加在一起DMA可以承受,在等待期间,4个FIFO做缓冲够用,那么用起来就应该和多个DMA一样。这样估计对吗?另外每个外设都要有对应的内存起始地址和数据长度这样的信息?

一周热门 更多>