Showing results for 
Search instead for 
Did you mean: 


Associate II
Posted on May 24, 2015 at 13:36

Hi to all

i want to trigger DMA on MEM2MEM State and use it by fsmc to run an External 12 bit DAC(AD5445) in 50ns Step. is there any way to do that without using interrupt?

#dma #memory #fsmc #timer-trigger #mem2mem #stm32f4 #stm32f4 #dma
Posted on May 24, 2015 at 22:52

To trigger or pace the transfer? For 20 MHz a TIM paced transfer might work in the non-M2M mode, but you'd probably want to clock the part at a multiple of 20 MHz, say 160 MHz or 180 MHz for the 42x devices.

M2M is going to default to transfer as fast as the bus permits, you might be able to tune that via the FSMC settings.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Associate II
Posted on May 25, 2015 at 07:48

thanks for reply

you right clive1 ,i read datasheet and found that MEM2MEM can not be triggered.

if i want to use timer trigger(Timer 6),DMA will only work in MEM2Periph or Periph2MEM mode.

is it possible to transfer data from any place in memory(RAM) to another place of memory(like PSRAM Bank1)?

or we can just transfer from a place of memory to a peripheral register who request DMA.

sorry for weak english.

Associate II
Posted on May 25, 2015 at 15:13

i solved my issue by using fsmc in LCD interface and using DMA MEM2MEM Mode and using FSMC Timing Configuration and got update rate about 50 ns sending 2 bytes data.

but it is interesting to know that by using dma in periph2mem or mem2periph is it possible to have transaction between two memory(not peripheral).