This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

NRF52840 ADC noise

I am currently evaluating nrf52840 - CDSENET E73-2G4M08S1C module with installed CircuitPython 7.0.0-alpha.3. Unfortunately the ADC readings are quite noisy. For example for 256 consecutive readings of a DC signal (0.120V) from a potentiometer the stdev = 39.


Any way to improve this ?

  • Switched to Micropython, as well as disabled the int. DC-DC regulator and used the following settings:

    .burst = NRF_SAADC_BURST_ENABLED

    …..

    nrfx_saadc_simple_mode_set((1 << adc_obj->id), NRF_SAADC_RESOLUTION_14BIT, SAADC_OVERSAMPLE_OVERSAMPLE_Over8x, NULL);

    The results (measuring 1.406 V) seems better – stdev = 4. The mainstream micropython ADC implementation adc.c is not using oversampling, calibration … As well as I was not able to find more advanced example configurations. Wondered if you could recommend some ?

  • Hello,

    I am glad to hear that you are able to reduce the noise you are seeing when switching to Micropython, though I have never heard about Micropython personally.
    Are you now measuring the reference voltage with an oscilloscope?

    Enabling burst and oversampling should decrease the effects of noise on your output, since it then takes multiple samples in a row and averages them before outputting a single sample.

    Mtk said:
    The mainstream micropython ADC implementation adc.c is not using oversampling, calibration

    It is recommended to perform calibration upon initializing the SAADC, and whenever the ambient temperature has changed by more than 10 C since the last calibration. 

    Mtk said:
    … As well as I was not able to find more advanced example configurations. Wondered if you could recommend some ?

    I am not exactly sure what I should point you to when you ask for more advanced configurations, but please have a look at this repository for multiple SAADC examples using different configurations.

    Best regards,
    Karl

Related