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

NRF52840 ADC stability/precision

I need to read analog sensors and am trying to decide whether I need an external ADC or whether the NRF52840 ADC will be sufficient. I am currently evaluating using an Arduino Nano 33 BLE, and the ADC seems noisy, at least compared to AVR chips that I've used in the past. I'm getting 10-bit readings that vary by as much as 50 counts. That's compared to an Atmega32u4, where the readings only vary by 1-2 counts. I'm not sure if it's partly because of a noisy power supply on the Nano 33 BLE, but I have ordered the Nordic DK to try as well.

My goal is to read a sensor every 10-30 uS (preferably the lower end of that scale), with a stability in the range of 1-3 10-bit values. I'm actually reading 10 different sensors that will be multiplexed externally, hence the need for this speed, and why I can't average multiple readings. Would this be feasible, or am I asking too much of this ADC?

Thanks!

Parents
  • Hello,

    I'm getting 10-bit readings that vary by as much as 50 counts.

    Just to be sure, when you say 50 counts, you mean that you see a fluctuation with a value up to 50 in the 10-bit value? If so, there is definitely something wrong here.
    You should expect some LSB to be lost to noise, but nowhere near a fluctuation of 50. Could you elaborate on your test setup for me?
    How have you configured the SAADC, and how is your wiring/connections? It would be great to see a simple schematic of the setup.
    Furthermore, what is the source of the voltage you are measuring, and how have you verified this voltage's stability?

    My goal is to read a sensor every 10-30 uS (preferably the lower end of that scale), with a stability in the range of 1-3 10-bit values. I'm actually reading 10 different sensors that will be multiplexed externally, hence the need for this speed, and why I can't average multiple readings. Would this be feasible, or am I asking too much of this ADC?

    10-30 µs is definitely doable for the SAADC - the maximum sampling rate is 200 kHz. From the description above I would say this is definitely doable for the SAADC.
    If you can wait as long as 30 µs between sampling you could possibly use oversampling with burst to increase the accuracy further - note that oversampling will average the noise you are seeing, so its effectiveness will depend on the type of noise you are seeing in your measurements.

    Best regards,
    Karl

  • Thanks very much for your reply. Yes, I was seeing fluctuation up to 50 in the 10-bit value. I was just reading Vcc. However, I tried reading a more stable power supply from a Teensy, and the results are much better, so I think much of the problem is just that the power supply on the Nano 33 BLE is quite noisy. I think that combined with a small amount of oversampling the results will be adequate. Thanks again!

Reply
  • Thanks very much for your reply. Yes, I was seeing fluctuation up to 50 in the 10-bit value. I was just reading Vcc. However, I tried reading a more stable power supply from a Teensy, and the results are much better, so I think much of the problem is just that the power supply on the Nano 33 BLE is quite noisy. I think that combined with a small amount of oversampling the results will be adequate. Thanks again!

Children
  • Andrew Mowry said:
    Thanks very much for your reply.

    No problem at all, I am happy to help! :)

    Andrew Mowry said:
    I tried reading a more stable power supply from a Teensy, and the results are much better, so I think much of the problem is just that the power supply on the Nano 33 BLE is quite noisy. I think that combined with a small amount of oversampling the results will be adequate. Thanks again!

    I am glad to hear that we were able to identify the major component of the fluctuations you were seeing!

    Please do not hesitate to open a new ticket if you encounter any other issues or questions in the future.

    Good luck with your development!

    Best regards,
    Karl

Related