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

Temperature, SAADC and PWM

Hello,

I am using nrf52832 and I just have 3 questions regarding it.

1) SAADC change over temperature. According to the datasheet, it has a change of 0.02%/C but I only got 3 LSB change over a period of 50C. I heated with a hot air blower and checked the temperature with a thermocouple externally. Does the SAADC definitely increase over temperature and is it absolutely necessary to calibrate for every 4 degree increase in temperature.

2) Like the SAADC, does the PWM frequency also change over temperature. It's not mentioned in the data sheet.

3) Is there any relation between die temperature (peripheral whose value is obtained with sd_temp_get()) and the ambient temperature. If yes, what is it?

Thanks in advance

Parents
  • 1) SAADC change over temperature. According to the datasheet, it has a change of 0.02%/C but I only got 3 LSB change over a period of 50C. I heated with a hot air blower and checked the temperature with a thermocouple externally. Does the SAADC definitely increase over temperature and is it absolutely necessary to calibrate for every 4 degree increase in temperature.

    These are typical numbers so they will vary, but with 10-bit resolution (0...1024) I would expect that typically change with 0.2LSB/C, so that becomes about 10LSB over 50C. 

    2) Like the SAADC, does the PWM frequency also change over temperature. It's not mentioned in the data sheet.

     No, only analog circuitry are affected by temperature (e.g. sleep currents increase when temperature rise). 

    3) Is there any relation between die temperature (peripheral whose value is obtained with sd_temp_get()) and the ambient temperature. If yes, what is it?

    Ideally they are the same, but if ambient temperature changes fast, it may take some time for the PCB and circuitry change as much.

  • Hello, Thank you for your response.

    I would expect that typically change with 0.2LSB/C, so that becomes about 10LSB over 50C. 

    Does this always happen or does this happen rarely??

    Also,

    I am using two channels of SAADC in scan mode with a sampling interval of 10ms. It looks like it doesn't work without double buffering the SAADC. What exactly is double buffering? Why is the SAADC double buffered while initialisation while the buffer_convert happens only for the p_buffer in the SAADC event

  • GOAA said:
    Does this always happen or does this happen rarely??

    These are typical values, so it could be more or less between chips. 

    GOAA said:
    I am using two channels of SAADC in scan mode with a sampling interval of 10ms. It looks like it doesn't work without double buffering the SAADC. What exactly is double buffering? Why is the SAADC double buffered while initialisation while the buffer_convert happens only for the p_buffer in the SAADC event

    Honestly speaking the double buffering is not that useful unless you need to sample very quick (with only a few us between sampling), in that case it may make sense to prepare the next buffer while the current buffer is in use by the SAADC.

    You may find these examples useful in general (these also include calibration of the saadc):
    https://github.com/NordicPlayground/nRF52-ADC-examples/tree/master/nrfx_saadc_simple_low_power_app_timer_multichannel_oversample

    https://devzone.nordicsemi.com/f/nordic-q-a/70921/how-to-get-nrf_drv_saadc_evt-_calibratedone/291601#291601 

Reply Children
No Data
Related