打印

DMA1和DMA2的传输能同时从2个RAM区域向同一个GPIO进行传送吗?

[复制链接]
3610|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
vivi2010|  楼主 | 2010-2-11 10:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在做一个块子,需要循环传送2*65536长度的数组数据到GPIO,能进行这样的操作吗?若能请教怎样设置才行?
沙发
vivi2010|  楼主 | 2010-2-11 10:53 | 只看该作者
用DMA1从RAM传送数据到GPIO如下:
  DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)&GPIOG->ODR;
  DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t) Parallel_Data_Buffer;
  DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;//DMA_DIR_PeripheralSRC;
  DMA_InitStructure.DMA_BufferSize = 65536;
  DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
  DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
  DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
  DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
  DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
  DMA_InitStructure.DMA_Priority = DMA_Priority_VeryHigh;
  DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
  DMA_Init(DMA1_Channel3, &DMA_InitStructure);

  /* Enable DMA Channel6 */
  DMA_Cmd(DMA1_Channel3, ENABLE);

使用特权

评论回复
板凳
vivi2010|  楼主 | 2010-2-11 11:49 | 只看该作者
DMA1和DMA2同时传送,是指DMA同时工作,分时向同一个GPIO传送.不知道行不行,请香版主出马!

使用特权

评论回复
地板
香水城| | 2010-2-11 13:46 | 只看该作者
DMA1和DMA2可以同时传送到同一个目标地址,但你无法控制传送的顺序,即2个DMA通道的数据会互相交错出现在同一个GPIO端口,这样得到的结果是不确定的;除非一个DMA通道传送结束后,再启动另一个通道,如果是这样,似乎又没有必要使用2个DMA通道了。

使用特权

评论回复
5
vivi2010|  楼主 | 2010-2-11 18:10 | 只看该作者
感谢香版主在非常时刻的指点!
用2路DMA是为了解决单路DMA循环传送时最大长度为65536这一限制!
2*65536长度的数组用一个DMA好像不行吧!

使用特权

评论回复
6
vivi2010|  楼主 | 2010-2-11 18:12 | 只看该作者
构思正如香版主所说的,用TIMX_UPDATE启动DMA1,用TIMX_CCR1启动DMA2,二者交替进行传送.

使用特权

评论回复
7
vivi2010|  楼主 | 2010-2-11 18:16 | 只看该作者
还有一疑惑,应该说是不清楚吧,
用STM32F103,72MHz HCLK下,按上述二个DMA向同一GPIO传送数据时,GPIO端数据更新最快能到多少?不知道怎样计算,还得烦请香版主出手帮助!

使用特权

评论回复
8
香水城| | 2010-2-12 08:27 | 只看该作者
这个不好计算,影响的因素比较多,你可以看看ST网站上的这篇应用笔记:AN2548 Using the STM32F101xx and STM32F103xx DMA controller

使用特权

评论回复
9
vivi2010|  楼主 | 2010-2-14 14:01 | 只看该作者
感谢香版主.

使用特权

评论回复
10
司徒老鹰| | 2010-2-16 15:33 | 只看该作者
只知道可以同时传送到同一个目标地址

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

12

帖子

1

粉丝