2017-07-21 11:21 PM
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.
2017-07-22 05:33 AM
>>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.
2017-07-24 07:15 AM
Perhaps you'd want to consider an FSMC (External Bus) with a 32-bit wide data bus, and transfer to that?