Showing results for 
Search instead for 
Did you mean: 

How to configure multi-channel ADC sampling at different trigger using STM32G4 MCU?

Associate II


I have a question regarding the use of the ADC module in the STM32G474MET6 MCU. I'm currently working on a grid-connected converter application that involves monitoring various sensing values. I've employed 3 to 4 channels within one ADC module and used DMA to acquire the converted values. However, I've encountered a significant issue related to switching noise caused by the high switching frequency (over 100 kHz) of the power devices in the system. This problem arises due to the multi-channel ADC sampling, where the sampling and conversion times become excessively long, making it difficult to avoid the effects of switching noise.

I believe the solution to this problem involves sampling only one ADC "channel" (not the module) during a single switching period to reduce the conversion time. This approach is feasible because the sensing values are required at a control frequency of up to 10 kHz, which is much lower than the switching frequency.

Here's an example: If the switching frequency is 100 kHz using the HRTIM1 module and the control frequency is 10 kHz using the TIM1 module, and there are 4 channels on the ADC1 module, the reset event of the HRTIM1 module occurs ten times within one reset event of the TIM1 module. The ADC conversion start is triggered by HRTIM1 or TIM1 reset/compare triggers. To mitigate the switching effects, only one ADC channel is sampled and converted during each switching period, such as ADC1_CH1 during the first switching period and ADC1_CH2 during the second switching period, and so on.

I'm looking for a way to configure multi-channel ADC sampling with different triggers for each channel. Currently, I can only find trigger settings for the entire ADC module. I came across triggered regular oversampling mode shown in below, but it appears to be for each bit conversion rather than each channel conversion. Is there any way to set up multi-channel ADC sampling with different triggers for each channel, or do you have any guidance or suggestions on how to minimize the impact of switching noise on ADC conversion?


Best Regards,


Lead II

Hello @wronskian 

I suggest you to take a look at this tutorial, it may give you a few ideas about your request.

Best regards.


Associate II

How about using ADC in Discontinuous mode and set the n = 1?


RM0440, rev.7, section 21.4.20, p.629