cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H743 Timers + ADC + DMA

ICT_TAN
Visitor

Hi you all,
as a breef summary; I set up a timer to trigger an adc that should than use the DMA to transfer the data to memory, i need 111 samples at a time. Sadly for some reason this only works for one sample so if i check 

__HAL_DMA_GET_COUNTER(g_hadc1->DMA_Handle) it will get stuck at 110.
and subsequently my 
HAL_ADC_RegisterCallback(g_hadc1, HAL_ADC_CONVERSION_COMPLETE_CB_ID, ADC_LineScanComplete_Callback); is never called.

Though the timer and ADC for sure triggeres as i can the see the DR register updating its value.
And as far as the reference manual goes (Page 961 DMA One-shot) it should be possible to use 
HAL_ADC_Start_DMA(g_hadc1, (uint32_t*)dest, 111); to get like 111 sequential timer triggered samples, that are transfered to memory via DMA 

I tried various combinations of all possible adc settings, and all of them keep beeing stuck on 110 remaining DMA cycles. As well as trying to look up the resgisters for any errors that might have been accured, but i was unable o find anything suspicious.
It just seems that there is like no new DMA request generated after the first one.
For like testing I've chosen a reasonable 5 us cycle time for the timer(though for prodution this would need to go down to ~ 500ns at this point i will prob have to step away from HAL drivers).
But the timers is as far as i am concerned the only viable way of properly time ADC and signalgenerator in the fastes reliable way.
My assumption of the correct config would be 
ICT_TAN_0-1768226675241.png

 

ICT_TAN_1-1768226694036.pngICT_TAN_2-1768226722687.png

on a LQFP176 Package

Did anyone observe something simelar or has any help at hand ?
If you need further information I'll happyly provide it ! 
Greetings 
Tan

1 REPLY 1
TDK
Super User

Does the first value in the buffer get populated?

Is the buffer somewhere where DMA can access?

DMA is not working on STM32H7 devices - STMicroelectronics Community

 

Including the full compileable project code would be helpful.

If you feel a post has answered your question, please click "Accept as Solution".