OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 11150|回复: 8

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

[复制链接]

11

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2012-9-9
在线时间
6 小时
发表于 2015-3-5 20:47:56 | 显示全部楼层 |阅读模式
5金钱

我在设计中,想让ADCDACRS232LCD-SPI4个设备同时使用DMA,可以吗?有什么实例可以做参考呢?谢谢各位。

最佳答案

查看完整内容[请看2#楼]

从逻辑上错开,或者说靠时序保证它们自动错开。我做过多个设备。 比如,用定时器输出两路相位错开的信号,每路的下降沿、上升沿分别触发不同的事件,就可以开四路DMA;再加上事件触发,又可以开几路。 必要时,要以软件辅助,比如设置不同的源地址、目标地址。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

58

主题

6293

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11511
金钱
11511
注册时间
2014-4-1
在线时间
1306 小时
发表于 2015-3-5 20:47:57 | 显示全部楼层
从逻辑上错开,或者说靠时序保证它们自动错开。我做过多个设备。

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

必要时,要以软件辅助,比如设置不同的源地址、目标地址。
回复

使用道具 举报

58

主题

6293

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11511
金钱
11511
注册时间
2014-4-1
在线时间
1306 小时
发表于 2015-3-5 20:58:51 | 显示全部楼层
(仅供参考)
这个应当是分时用,只要时间段错开,开多个设备都没问题。
如果同时或者时间错不开,恐怕只能开两个——每个DMA只能开一个设备。
回复

使用道具 举报

11

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2012-9-9
在线时间
6 小时
 楼主| 发表于 2015-3-5 21:28:09 | 显示全部楼层
回复【2楼】xuande:
---------------------------------
错开是自动的还是人工干预?如果是自动的,那低速的外设和高速的DMA配合,在感觉上还是连续的。也就是那些缓冲器是怎么操作的?
回复

使用道具 举报

11

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2012-9-9
在线时间
6 小时
 楼主| 发表于 2015-3-5 22:50:07 | 显示全部楼层
回复【4楼】xuande:
---------------------------------
非常感谢。看来不是自动的。要做好还是要比较熟悉软硬件才行。
回复

使用道具 举报

58

主题

499

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1920
金钱
1920
注册时间
2013-11-18
在线时间
268 小时
发表于 2015-3-6 09:29:07 | 显示全部楼层
回复【4楼】xuande:
---------------------------------
不需要这么麻烦,DMA不是有不同的通道跟不同的流的话,,每个外设保证都用到不同的,保证不会重叠就可以了,至于在同一个DMA上,使用了多个通道或者多个流,通过设置优先级来仲裁
已经放下多年的FPGA,要重新再拾起来,却是如此的陌生
回复

使用道具 举报

11

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2012-9-9
在线时间
6 小时
 楼主| 发表于 2015-3-6 11:37:56 | 显示全部楼层
回复【6楼】mzwhhwj:
---------------------------------
谢谢,有4级优先权。看来是干这个用的。只要估计外设总的速度加在一起DMA可以承受,在等待期间,4个FIFO做缓冲够用,那么用起来就应该和多个DMA一样。这样估计对吗?另外每个外设都要有对应的内存起始地址和数据长度这样的信息?
回复

使用道具 举报

58

主题

499

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1920
金钱
1920
注册时间
2013-11-18
在线时间
268 小时
发表于 2015-3-6 12:20:20 | 显示全部楼层
回复【7楼】haixian:
---------------------------------
M4的DMA是每个DMA都都有7个流,每个流都可以设置相关的外设,如果有多个流同时申请DMA传输的话,就会根据优先级来判断那个流先传输
已经放下多年的FPGA,要重新再拾起来,却是如此的陌生
回复

使用道具 举报

11

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2012-9-9
在线时间
6 小时
 楼主| 发表于 2015-3-7 11:30:42 | 显示全部楼层
回复【8楼】mzwhhwj:
---------------------------------
谢谢啦,这下很清楚了。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-19 12:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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