Skip to main content
ManishNair
Associate III
May 30, 2025
Question

How to synchronise DMA GPIO read/write with EXTI

  • May 30, 2025
  • 3 replies
  • 506 views

Core : STM32H743Z , STM32H753V, STM32H750 @ 480MHz

External Sync Clock (as EXTI0): 10Mhz

I tried to read/write GPIO ports with TIM2_UP and TIM3_UP events, in sync with an external clock.  Data transfer (both in and out) is taking place, but not synchronised with EXTI.

EXTIx 'events' are not triggering. Howvere EXTI 'interrupt' is working but the maximum data rate is less than 3MHZ 

Basic code initiated by CubeMX.

Is there any working example for GPIO read with DMA and EXTI ?

Thanks for your help in advance!

This topic has been closed for replies.

3 replies

TDK
May 30, 2025

So it's working but not as fast as you would like? That's due to the system architecture. The GPIO is separated from the CPU by a bus. There are other chips that would be better for this. Consider instead using an interface like QSPI or FMC if possible.

"If you feel a post has answered your question, please click ""Accept as Solution""."
ManishNair
Associate III
May 31, 2025

I am getting 150% of the required transfer speed without any missing codes. Verified with 0 to  65535 in Circualr DMA mode, (asynchronous with master). But the issue is in the syncronisation of salve with master. First few half wrods are missing (only) in start of transmisssion.

 

Pavel A.
June 1, 2025

> I tried to read/write GPIO ports with TIM2_UP and TIM3_UP events, in sync with an external clock.

Then maybe set the external clock as source for the timer?