cancel
Showing results for 
Search instead for 
Did you mean: 

DMA2: SRAM to GPIO

pankaj_yadav
Associate
Posted on July 24, 2015 at 12:41

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

#stm32-dma
0 REPLIES 0