STM32H7 ADC with DMA - DMA-Transfer not initiated
Hi everyone
I'm trying to get the ADC1 running with a DMA transfer on the STM32H757ZI. The goal is to measure 10 channels with 8 samples each and transfer these measurements to a separated SRAM1 buffer with DMA, each time the conversion sequence has been finished.
The problem I have is, that the ADC1 seems to work properly, since I'm reading some data in the DR, but the DMA transfer is never initiated. I have enabled the EOC and EOS interrupts, the corresponding ISR clears the EOC / EOS bits. I have set the DMNGT to DMA circular mode, which I assume enables the DMA functionality for the ADC peripheral. The transfer complete interrupt for the DMA is triggered, but no data is written to the buffer...
In addition, I have used the following DMA settings:
- DMA1 clock enable
- Set direction to peripheral to memory
- disabled FIFO mode
- Set memory size to Half Word
- Set memory increment mode to increment
- Set memory address to SRAM1 buffer address
- Set mode to dma mode circular
- Set peripheral size to Half Word
- Set peripheral increment mode to no increment
- Set peripheral request to DMAMUX1_REQ_ADC1
- Set peripheral address to address of the DR
- Enable TC interrupt
However, there's no data copied into the SRAM1 buffer... what am I missing here? Is there some additional setting I have to enable?
edit: I've set up the buffer according to this link :
https://community.st.com/s/article/FAQ-DMA-is-not-working-on-STM32H7-devices
I'm using Solution 2 - placing the buffer in a different memory region.
Regards
Daniel.
