AnsweredAssumed Answered


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.


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