DMA synchronization

Hello guys,
i’m working with a PYNQ version 2.7 in a ZCU111 board.

In my project i’m using a custom IP to read and store data from a single ADC in to DDR4 through DMA, the project it’s working fine but now i have to synchronize the acquisition with an external trigger signal at 10/50Hz.

Now i’m acquiring the trigger in the PL and through the AXI bus i’m reading the trigger clock and in Python i synchonize the recvchannel command in the DMA, but i’m not sure that is the best way to do this.

At 10/50Hz some acquisition is not correct on time, so my question is how i can detect the rising edge of the clock trigger in Python? maybe i should do everything in the PL (DMA transaction included)?

Hi @Federico,

You can try to generate an interrupt in the PL and use this to drive the synchronization.

Mario

1 Like

Hi @marioruiz! thanks for your fast response.

I had never thought about the interrupt, sounds good i could manage in the PS the event generated from PL.

From your point of view, it is possible detect the edge of the clock in deterministic way in the PS?

Federico

Off the top of my head no.

Hi @marioruiz,
thanks for you time. I will mark Solution for this topic.

Federico

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.