cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F4 external triggered DMA

fl
Associate II
Posted on October 30, 2014 at 16:03

We are evaluating the STM32F4 products.

For our current hardware an FPGA will generate measurement values. These values have to be transfered to an external RAM. Both are connected to the STM32 over the bus interface FMC.

The idea was, that the STM32 handles this by using DMA, to copy the measurement values from the FPGA to the RAM by using an DMA Request.

As I understood now, the STM32 only can perform DMA requests for internal hardware, or triggered from the software. Is there no possibility to solve this issue?

We can not generate an interrupt each time measurement values have to be copied, because ist are only a few bytes, but this in a very frequent way. So generating an interrupt would be to much overhead.

I am looking forward for your suggestions...

#dma-external-trigger
7 REPLIES 7
Posted on October 30, 2014 at 16:21

Use the external signal to trigger an event in some of the internal peripherals, which in turn can trigger a DMA transfer. For example, timer capture is a straighforward choice.

Get a cheap 'F4 Discovery kit and play with it a bit to get the feeling.

JW
Posted on October 30, 2014 at 17:15

We visited DMA to/from GPIO ports triggered by external signals a while back.

https://my.st.com/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Flat.aspx?RootFolder=https://my.st.com/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Data%20transfer%20from%20GPIO%20port%20to%20RAM%20buffer%20using%20DMA%20upon%20receiving%20a%20trigger%20signal%20on%20the%20timer%20capture%2...

Suggest you search the forum, or Google, for additional threads

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Posted on October 30, 2014 at 17:18

You're using an FPGA, so feed it a clock signal generated by the STM32, and have that trigger the transfer.

The DCMI is a clocked parallel interface.
Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
fl
Associate II
Posted on October 30, 2014 at 21:03

Thank you for your helpful hints so far.

Can you explain me a little more detailed what you mean with the clock feed to the FPGA or using the DCMI?

Posted on October 30, 2014 at 21:45

Yeah, I'm not sufficiently familiar with your FPGA, or the protocol here, I merely suggested you consider your interface choices. Please review the manual for DCMI interface capabilities.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
fl
Associate II
Posted on November 07, 2014 at 13:55

ok. We checked the DCMI, and it really seems to be a possibility.

But back on the topic, to trigger a DMA request by an external pin. If I would trigger the DMA request by a timer which can do this, are there limitations between the Input-Frequency?

In our system we will have to generate DMA request with a rate of 1MHz. Would this be possible?

Posted on November 07, 2014 at 14:47

I would expect 1 MHz to be viable, you will need to do your own experimentation/testing.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..