Skip to main content
Explorer II
February 22, 2024
Solved

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

  • February 22, 2024
  • 3 replies
  • 2346 views

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?

    This topic has been closed for replies.
    Best answer by MasterT

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

    3 replies

    MasterTAnswer
    Explorer
    February 23, 2024

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

    jbealeAuthor
    Explorer II
    February 23, 2024

    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.

    Explorer
    February 23, 2024

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

    Ezernet-jumpers-H7.png