cancel
Showing results for 
Search instead for 
Did you mean: 

Nucleo board using STM32-H743ZI ADC seems noisy. Is there any way to improve?

jbeale
Associate II

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?

1 ACCEPTED SOLUTION

Accepted Solutions
MasterT
Lead

You can get close to 12-bits if remove L1 - diconnecting ethernet IC completely. And that's about max..

View solution in original post

3 REPLIES 3
MasterT
Lead

You can get close to 12-bits if remove L1 - diconnecting ethernet IC completely. And that's about max..

jbeale
Associate II

Thank you, that is good to know about L1. We are not using the ethernet port at all. I've got my soldering iron warming up now.

EDIT: you were absolutely right. Removing L1 reduced the Nucleo-H743ZI2 board current draw from USB power at 5.14V from 155 mA down to 107 mA, and the peak-to-peak ADC noise dropped by a factor of 5.

In one before-after experiment using the "ADC 14-bit optimized" setting in CubeMX, 32 oversampling ratio, but only 3 bit shift so you get a nominal 16-bit result, it went from 414 counts with L1 installed, to 82 counts with L1 removed.  That is quite worthwhile.

MasterT
Lead

Check out UM2407, there are listed some jumpers for ethernet to remove first.

Ezernet-jumpers-H7.png