AnsweredAssumed Answered

DMA2: SRAM to GPIO

Question asked by yadav.pankaj on Jul 24, 2015
Hi All,


I am using STM32F429 running at 180Mhz.
I am trying to transfer data from SRAM Location 0x20005000 to GPIO I
using Timer1 Ch1 as capture through external Clock of 20Mhz


Data Size is 8 Bits
Using Direct Mode
FIFO Interrupt is not enabled
I have defined 
DMA_Memory0BaseAddr as 0x20005000
Memory Increment Enabled
FIFO Mode Disabled
Memory Data Size = Byte
DMA_PeripheralBaseAddr as (uint32_t)&GPIOI->ODR
Peripheral Increment Disabled
FIFO Mode Disabled
Peripheral  Data Size = Byte

Direction =  Memory to Peripheral
Using DMA2 Stream6

When I use the Above configuration , I do get the Transfer Complete and Half Transfer Interrupts but also FIFO Error Interrupt Flag.
Scope not showing any data transfer on Port I 

But when I interchange the Memory and Peripheral Addresses 
with the corresponding changes

DMA_Memory0BaseAddr as (uint32_t)&GPIOI->ODR (previously 0x20005000)
Memory Increment Disabled ( Previously Enabled)
DMA_PeripheralBaseAddr as  0x20005000 (previously (uint32_t)&GPIOI->ODR )
Peripheral Increment Enabled (previously Disabled)
Direction =  Peripheral to Memory (previously Memory to Peripheral)
Other parameter being unchanged.

Results: 

FIFO Error Interrupt flag is not seen.
TCIF and HTIF are set.
Data is also visible on the Port I.

Can someone explain this behavior

Regards,
Pankaj







Outcomes