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

Battery level measurement without SAADC

Hi!

The nRF52820 chip does not have the SAADC module used to estimate the battery life in its larger counterparts (nrf52840 and nrf52833).
Is there a different way to estimate battery life without an SAADC?
I'm hoping for a method which does not include adding external components, and is measurement based rather then estimation based.

We had considered an estimation method which is a summation of the current estimate per 'time used', 'advertisement cycles' passed, 'connection cycles passed' etc. The problem here is that a. I would need to estimate all possible parameters (TX power for example, time until advertisement is caught etc)
b. I would not be able to catch leaking parts, as the leak is not part of my estimation.

Adding an external ADC is a possibility, but would require us to change our PCB which is not something we want.

we're using the VDD tied to VDDH and expect the Vin to be 1.8-3.3V.

Any other ideas?

Parents Reply
  • You can be creative and measure the voltage by charging or discharging a capacitor and measuring the time taken to hit the comparator trigger voltage. Two pins can be used, one as the charge pin and one as the sense pin, or better use a single pin as I show here:

    //                 +---------------------------------
    //                 |                 nRF52832
    //                 |
    //                 |    VDD
    //                 |   --#--
    //                 |     |
    //                 |     |
    //                 |     +-|
    //                 |       |<- High
    //                 |     +-|
    //                 |     |
    //   #-------#-----O-----#--------------#--> P0.nn COMP
    //   |       |     |     |              |    Ref = VDD/n
    //  +++      |     |     +-|            |
    //  | |    -----   |       |<- Low    -----
    //  | |    -----   |     +-|          -----
    //  | |      |     |     |              |
    //  +++      |     |     |              |
    //   |       |     |   =====          =====
    // =====   =====   |    ===            ===
    //  ===     ===    |     =              =
    //   =       =     |
    //                 +----------------------------------
    

    Conceptual Steps:

    Set the port pin to an output, drive high to charge the capacitor

    start a timer

    set up comparator to detect voltage falling below a threshold, which releases the pin drive

    comparator trip captures timer value

    Vo = Vi.e^(-t/CR) where Vi is your Vdd voltage and Vo the comparator trip voltage

    Use a lookup table to map result

    The above example is charge-measure discharge time, but you can also discharge-measure charge time. The comparator options will probably make one of these easier.

    Maybe study the Capsense examples for help in driving the peripherals

Children
Related