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

ADC reading from NTC thermistor

Hi Guys,

I'm using nRF52832 DK and trying to read analog values from the NTC thermistor.i'm using SAADC example.

i have used to this circuit to connect nRF52 with NTC sensor.

what im reading in terminal is this

When i short A0 pin directly with 5V,what i get is 

whats this mean??can someone elaborate how SAADC is working in nRF52???

and what are all the changes i have to do get the temperature?

Parents
  • Hi,

    The absolute maximum voltage on any pin is <VDD+0.3V, the maximum VDD is 3.6V. If you have supplied 5V to an input, then you may have damaged the chip.

    If you use internal reference as reference (0.6V), then the measured signal must be between 0V and 0.6V. You have a gain control register that can divide the input voltage by 1/6 to for instance support up to 3.6V analog input.

    Example:

    If you measure on a 3V input signal, using internal reference (0.6) and 1/6 gain, then the measurement should be about (3/6)/0.6 = 0.833 of the max ADC value. The max ADC value depend on how many bit resolution you have configured, but for instance with 10-bit resolution the max value is 2^10 = 1024. So in that case the ADC measurement will be 0.833 * 1024 = 853 decimal value when a 3V input is applied.

    For best accuracy of all measurements you should start the HFCLK by calling 'NRF_CLOCK->TASKS_HFCLKSTART = 1;' in the beginning of main.

    Best regards,
    Kenneth

Reply
  • Hi,

    The absolute maximum voltage on any pin is <VDD+0.3V, the maximum VDD is 3.6V. If you have supplied 5V to an input, then you may have damaged the chip.

    If you use internal reference as reference (0.6V), then the measured signal must be between 0V and 0.6V. You have a gain control register that can divide the input voltage by 1/6 to for instance support up to 3.6V analog input.

    Example:

    If you measure on a 3V input signal, using internal reference (0.6) and 1/6 gain, then the measurement should be about (3/6)/0.6 = 0.833 of the max ADC value. The max ADC value depend on how many bit resolution you have configured, but for instance with 10-bit resolution the max value is 2^10 = 1024. So in that case the ADC measurement will be 0.833 * 1024 = 853 decimal value when a 3V input is applied.

    For best accuracy of all measurements you should start the HFCLK by calling 'NRF_CLOCK->TASKS_HFCLKSTART = 1;' in the beginning of main.

    Best regards,
    Kenneth

Children
Related