cancel
Showing results for 
Search instead for 
Did you mean: 

multi source address dma

mahmoud boroumand
Associate III
Posted on July 22, 2017 at 08:21

hello

I have a problem with dma .is it possible to set multi source address?

DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)&GPIOA>ODR;

DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)framedata;

DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;

DMA_InitStructure.DMA_BufferSize = BUFFER_SIZE;

DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;

DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;

DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word;

DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;

DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;

DMA_InitStructure.DMA_Priority = DMA_Priority_High;

DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;

DMA_Init(DMA2_Channel5, &DMA_InitStructure);

I want send for GPIOA,GPIOC,GPIOD at the same time and same data.

2 REPLIES 2
Posted on July 22, 2017 at 14:33

>>Is it possible to set multi source address? 

I want send for GPIOA,GPIOC,GPIOD at the same time and same data.

No, doesn't support that. You'd need to use multiple DMA, which could perhaps share a common synchronization source. I'd expect some skew.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Posted on July 24, 2017 at 16:15

Perhaps you'd want to consider an FSMC (External Bus) with a 32-bit wide data bus, and transfer to that?

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..