Nucleo board using STM32-H743ZI ADC seems noisy. Is there any way to improve?
I have the Nucleo-H743ZI2 board. It uses the STM32-H743ZI part which has a reasonably fast 16-bit ADC, or at least that’s how it is specified: https://www.st.com/en/microcontrollers-microprocessors/stm32h743zi.html
- 3× ADCs with 16-bit max. resolution (up to 36 channels, up to 3.6 MSPS)
When I am testing this board, running the ADC at about 58ksps in single-ended mode, the actual dynamic range of the ADC seems rather low to me. I have the ADC using DMA to fill a circular buffer. Using a 20-second period sinewave input, I see 2000 counts or more between max to min readings in each set of 4000 readings on what should be a nearly-DC value during that short 70 msec interval, only 0.3% of the sinewave period. Even when I use 8x oversampling to average 8 readings together, and actually connect the ADC input directly to ground, I still see about 120 counts of noise. So considering the full-scale range to peak-to-peak noise, this so-called 16-bit ADC looks to me like it provides less than 10 bits of true resolution.
Connecting an ADC input directly to an adjacent ground pin on the same board seems to rule out any possibility of external noise, so I gather this is internally generated. Is there some settings I can use to improve this performance?
