Skip to main content
Graduate II
May 30, 2025
Question

How to synchronise DMA GPIO read/write with EXTI

  • May 30, 2025
  • 2 replies
  • 472 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.

    2 replies

    Super User
    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.

    Graduate II
    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.

     

    Super User
    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?