2024-12-15 08:29 AM
Hi everyone,
I’m working on a project using an STM32 microcontroller (STM32H745IITx), and I’m trying to set up a DMA transfer for an external 12-bit, 20 MSPS ADC with a 12-bit parallel interface. On my custom board, the data pins of the ADC are routed to the GPIOF port. The ADC clock is generated using Timer 3's PWM output (running at approximately 18 MHz). Additionally, I have an external interrupt (Trigger) that I use to start a measurement.
I want to achieve the following:
I’ve done some research and found that the DMA must be set to Memory-to-Memory mode to achieve this. However, it’s not clear to me:
Any help or clarification would be greatly appreciated
2024-12-15 09:51 AM
Since you want the transfer to happen in response to a trigger, the DMA should be in peripheral-to-memory mode. Then, if the correct trigger happens (presumably TIM3_TRGO or similar), it will transfer.
In memory-to-memory mode there are no triggers--the entire buffer will transfer as fast as possible once it is started.
It may be difficult to set this up in STM32CubeMX but the hardware can certainly support it given the correct setup.