STM32F4系列的DMA应用

[复制链接]
9771|11
 楼主| jiereliyi 发表于 2012-8-10 13:27 | 显示全部楼层 |阅读模式
1.请教一下STM32F4 的DMA传输速度最高多少。memory to memory.
2.我想使用STM32F4的DMA功能完成高速数据采样,外接高速ADC,采样频率>60Mhz.能不能实现,DMA有同步信号输出吗?
IJK 发表于 2012-8-10 13:52 | 显示全部楼层
1.请教一下STM32F4 的DMA传输速度最高多少。memory to memory.

估算一下,STM32F4 主频168MHz,DMA大约能到1/4速率、即40M,每次传输1 word,约相当于160M字节/秒

2.我想使用STM32F4的DMA功能完成高速数据采样,外接高速ADC,采样频率>60Mhz
采样频率60MHz,每次传16-bit (12~16位AD),那么相当于120M字节/秒,应该可以,余量不大;每次传8-bit (8位AD),那么相当于60M字节/秒,毫无问题,余量充足。
 楼主| jiereliyi 发表于 2012-8-10 16:23 | 显示全部楼层
1.DMA有同步信号输出吗? 因为需要用这个同步信号触发AD采样

回复2楼:
DMA总线带宽不是32位的吗,我一次传8位和传16位,占用时间是一样的。所以DMA速率如果满足我的要求必须达到60M。无论我采用8位AD还是16位。   (不考虑外部拼接,因为那样电路会复杂很多)
 楼主| jiereliyi 发表于 2012-8-16 12:55 | 显示全部楼层
1、请教一下,DMA的循环模式。能不能用在Memory to memory的方式下。
2、循环模式 Peripheral-to-memory ,每次传输一次,相当于启动一次DMA吗?也就是最高速度能达到全速DMA的速度吗?
airwill 发表于 2012-8-16 14:06 | 显示全部楼层
我好象记得 Memory to memory 的方式下不能 DMA 的循环模式。
 楼主| jiereliyi 发表于 2012-8-16 16:08 | 显示全部楼层
看到fsmc模块可以工作在50Mhz的频率下,想用FSMC+DMA来读取AD值,组成一个fifo,这样就可以到50Mhz,但是DMA不支持memory to memory  无法组成fifo功能。呵呵
我相用这个功能做个示波器。看来有困难。
ccontrol 发表于 2012-8-16 16:43 | 显示全部楼层
看到fsmc模块可以工作在50Mhz的频率下,想用FSMC+DMA来读取AD值,组成一个fifo,这样就可以到50Mhz,但是DMA不支持memory to memory  无法组成fifo功能。呵呵
我相用这个功能做个示波器。看来有困难。 ...
jiereliyi 发表于 2012-8-16 16:08

谁说DMA不支持memory to memory?
 楼主| jiereliyi 发表于 2012-8-16 17:31 | 显示全部楼层
写错了, 是在memory to memory下 DMA不支持 循环模式
 楼主| jiereliyi 发表于 2012-8-17 12:02 | 显示全部楼层
just do it
IJK 发表于 2012-8-17 12:07 | 显示全部楼层
1.DMA有同步信号输出吗? 因为需要用这个同步信号触发AD采样

回复2楼:
DMA总线带宽不是32位的吗,我一次传8位和传16位,占用时间是一样的。所以DMA速率如果满足我的要求必须达到60M。无论我采用8位AD还是16位。    ...
jiereliyi 发表于 2012-8-10 16:23


印象里,DMA可以进行内部拼接,有待确认。
xubeiping0930 发表于 2014-4-26 19:23 | 显示全部楼层
DMA还是有些麻烦  优点就是比不用DMA的速度快  除此之外还有什么呢
夕照 发表于 2015-4-22 18:09 | 显示全部楼层
不知道怎么判断DMA数据传输完毕啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

20

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部