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

SAADC power usage with 2 channels

With SDK15.3, s140 softdevice, NRF52840 (InsightSIP ISP1807)

If I use SAADC with 2 channels then I see a 0.7mA sleep current after the call to nrfx_saadc_sample()

  • 8bit resolution
  • Oversample disabled
  • Low power mode enabled (NRFX_SAADC_CONFIG_LP_MODE = 1)
  • IRQ priority 6 (default I think)

If I use 1 channel then it's fine.

The PPK chart looks similar to the one in this post (https://devzone.nordicsemi.com/f/nordic-q-a/39856/saadc-scan-burst-oversmaple) but I'm not using burst mode.

I cannot see a mention of this in the SDK16 or SDK17 change logs.

should I call nrfx_saadc_uninit() and then re-init for each reading? I only read my 2 ADCs every few seconds so it's not a big deal to keep calling uninit and init again 

Is there a better way to fix this?

Here is my chart in case you want to see it. The average current before is 7uA. The average after is 700uA

Parents
  • I've changed my code to initialise and uninitialise and it seems to fix the problem. I'm just not sure why I need to.

    It happens even if I specify the same NRF_SAADC_INPUT_AIN for both channels and it's ok if I sample that channel on it's own.

    I cannot see anything in the NRF52840 product specification that indicates why 2 channels would have this problem. I'm not using continuous sampling.

    Also, I tried to change the acquistition time of one of my channels but I didn't see the values increase. Is it OK to specify a longer acquisition time for one channel but not the other?

    Thanks again for your help.

Reply
  • I've changed my code to initialise and uninitialise and it seems to fix the problem. I'm just not sure why I need to.

    It happens even if I specify the same NRF_SAADC_INPUT_AIN for both channels and it's ok if I sample that channel on it's own.

    I cannot see anything in the NRF52840 product specification that indicates why 2 channels would have this problem. I'm not using continuous sampling.

    Also, I tried to change the acquistition time of one of my channels but I didn't see the values increase. Is it OK to specify a longer acquisition time for one channel but not the other?

    Thanks again for your help.

Children
Related