The chip includes a 10-bit ADC which is used for measuring internal parameters. It can be used in the following measurement modes:

  • Single-shot
  • Automatic
  • Timed

Measurement request priority

When multiple measurement requests happen at the same time, the priority is as follows:

  1. VBAT
  2. Battery temperature, TBAT
  3. Battery current, IBAT
  4. Die temperature, TDIE
  5. VSYS
  6. VBUS

If a measurement has been requested but the measurement has not started, a higher priority can be requested.

When a low priority measurement is requested and the system has started the measurement, a higher priority can be requested. The system will complete the lower priority measurement before the higher priority measurement.

Single-shot measurements

Single-shot measurements are triggered by a task specific for each measurement.

Table 1. Tasks for single-shot measurements
Value Task
Battery temperature TASKNTCMEASURE
Battery voltage, Single-shot mode and Burst mode

TASKVBATMEASURE

ADCCONFIG

VSYS voltage TASKVSYSMEASURE
Battery current ADCIBATMEASEN (occurs after VBAT measurement)
VBUS voltage TASKVBUS7MEASURE
Die temperature TASKTEMPMEASURE
A VBAT measurement triggered in Burst mode performs four consecutive measurements, with each result available separately. Conversions are run back-to-back and complete in tCONV.
Note: To repeat a measurement, it must be requested once the previous request is complete. Repeat measurement requests are lost when made while the previous conversion is still ongoing. Alternate measurements can be requested, which are queued. See System Monitor for more information.

Automatic measurements

Automatic measurements for battery voltage are enabled in register ADCCONFIG. The default interval is 1024 ms.

Automatic measurements during charging

Battery temperature and die temperature are measured automatically at regular intervals when the battery is charging. The host software can read this value and returns the latest measurement.

The measurement intervals are as follows:
Note: To enable automatic thermistor and die temperature monitoring, set register TASKAUTOTIMUPDATE. This should also be set after changing the automated period.

Measurement results

Results from the ADC are stored in registers according to the following table. Some registers hold alternate results when that feature is requested. Host software must concatenate the LSB to the MSB of the result register for full accuracy.

Table 2. ADC measurements
Value/alternate result Register
VBAT ADCVBATRESULTMSB
Battery temperature ADCNTCRESULTMSB
Die temperature ADCTEMPRESULTMSB
VSYS Single-shot mode ADCVSYSRESULTMSB
LSBs for Single-shot mode VSYS, Die temperature, NTC thermistor, and VBAT ADCGP0RESULTLSBS
Burst mode VBAT0 ADCVBAT0RESULTMSB
Burst mode VBAT1 ADCVBAT1RESULTMSB

Burst mode VBAT2

Battery current IBAT

ADCVBAT2RESULTMSB

Burst mode VBAT3

Single-shot mode VBUS

ADCVBAT3RESULTMSB
LSBs for Burst mode VBAT0, VBAT1, VBAT2, VBAT3, IBAT and VBUS ADCGP1RESULTLSBS

The following equations can be used to read the results.

VBAT

The equation for VBAT is given by the following:

Here, VBATADC is the ADC value from the VBAT register and VFSVBAT is the full scale voltage for measuring VBAT.

VBUS

The equation for VBUS is given by the following:

Equation for VBUS

Here, VBUSADC is the ADC value from the VBUS register and VFSVBUS is the full scale voltage for measuring VBUS.

VSYS

Equation for VSYS is given by the following:

Equation for VSYS

Here, VSYSADC is the ADC value from the VBUS register and VFSVSYS is the full scale voltage for measuring VBUS.

Battery temperature (Kelvin)

The battery temperature TBAT (in Kelvin) is given by the following equation:

Equation for battery temperature

Here, T0 = 298.15 K, TBATADC is the ADC value from the battery temperature register ADCNTCRESULTMSB and β is the NTC beta parameter.

Die temperature in °C

The die temperature, TD (in °C), is given by the following equation:

Equation for die temperature

Here, KDIETEMP is the ADC value for the die temperature.

Battery temperature measurement

Before using a battery temperature measurement, the appropriate NTC thermistor must be configured. See Monitor battery temperature for information about suitable thermistors and how to configure.

Monitor battery state of charge

The host runs the fuel gauge algorithm and periodically requests measurements from the ADC. These measurements update the algorithm parameters and allow the state of charge to be determined.

The algorithm must be provided with the battery model parameters for accurate fuel gauge readings. The battery model parameters can be created from the nPM PowerUP application.

Once the battery is modeled over the operating temperature range, the fuel gauge algorithm is optimized to operate over the full range of battery voltages, temperatures, and application currents.

Battery current measurement

Host software can request a IBAT measurement by setting bit IBAT.MEAS.ENABLE to 1 in register ADCIBATMEASEN. This allows consecutive VBAT and IBAT measurements. When both measurements are available in the ADC registers, the ADCIBATRDY event is generated. See register ADCIBATMEASSTATUS for more information about the IBAT measurement.

Measurements are invalid and a new measurement is needed when bit IBAT.MEASE.INVALID is set.

Direction of current flow is shown in bit BCHARGER.MODE.

A value of 01 means the battery is discharging. During a discharge, the full scale current (in Amps) is the battery discharge current limit (as configured in registers BCHGISETDISCHARGEMSB and BCHGISETDISCHARGELSB) multiplied by 1.12.

A value of 10 means the system is supplied by VBUS.

A value of 11 means the battery is charging. When charging, the full scale current (in Amps) is the charge current setting (as configured in registers BCHGISETMSB and BCHGISETLSB) multiplied by 1.25.

Electrical specification

Table 3. System Monitor electrical specification
Symbol Description Min. Typ. Max. Unit
VFSVBAT Full scale voltage for VBAT measurement 5.0 V
VBATACCUR

Accuracy of the VBAT measurement

(3 V < VBAT < 4.5 V and -10°C < TJ < +125°C)

-1 +1 %
VFSVBUS Full scale voltage for VBUS measurement 7.5 V
VBUSACCUR

Accuracy of the VBUS measurement

±1.5 %
VFSVSYS Full scale voltage for VSYS measurement 6.375 V
VSYSACCUR

Accuracy of the VSYS measurement

±1.5 %
CBATNTC Capacitance in parallel with the thermistor 0 100 pF
VFSTEMP Full scale for battery and die temperature measurements 1.5 V
tCONV Conversion time 250 μs
DNL Differential non-linearity < 0.5 LSB

Registers

Instances

Instance Base address Description
ADC 0x00000500

SAADC registers

ADC register map

Register overview

Register Offset Description
TASKVBATMEASURE 0x0

Battery voltage measurement

TASKNTCMEASURE 0x1

Battery temperature measurement

TASKTEMPMEASURE 0x2

Die temperature measurement

TASKVSYSMEASURE 0x3

VSYS measurement

TASKIBATMEASURE 0x6

Battery current measurement

TASKVBUS7MEASURE 0x7

VBUS measurement

TASKDELAYEDVBATMEASURE 0x8

Delayed battery voltage measurement

ADCCONFIG 0x9

ADC configuration

ADCNTCRSEL 0xA

Select battery NTC thermistor

ADCAUTOTIMCONF 0xB

Auto measurement intervals

TASKAUTOTIMUPDATE 0xC

Strobe for AUTOTIMCONF

ADCDELTIMCONF 0xD

Configure delay for battery voltage measurement

ADCIBATMEASSTATUS 0x10

Battery current measurement status

ADCVBATRESULTMSB 0x11

Battery voltage measurement result MSB

ADCNTCRESULTMSB 0x12

Battery temperature measurement result MSB

ADCTEMPRESULTMSB 0x13

Die temperature measurement result MSB

ADCVSYSRESULTMSB 0x14

VSYS measurement result MSB

ADCGP0RESULTLSBS 0x15

Result LSBs (VBAT, battery temperature, die temperature and VSYS)

ADCVBAT0RESULTMSB 0x16

VBAT0 burst measurement result MSB

ADCVBAT1RESULTMSB 0x17

VBAT1 burst measurement result MSB

ADCVBAT2RESULTMSB 0x18

VBAT2 burst measurement result MSB

ADCVBAT3RESULTMSB 0x19

VBAT3 burst or VBUS measurement result MSB

ADCGP1RESULTLSBS 0x1A

VBAT burst measurement result LSBs (VBAT0, VBAT1, VBAT2 and VBAT3)

ADCIBATMEASEN 0x24

Enable automatic battery current measurement

TASKVBATMEASURE

Address offset: 0x0

Battery voltage measurement

Bit number 7 6 5 4 3 2 1 0
ID A
Reset 0x00 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A

W

TASKVBATMEASURE

Start VBAT measurement

NOEFFECT

0

No effect

TRIGGER

1

Trigger task

TASKNTCMEASURE

Address offset: 0x1

Battery temperature measurement

Bit number 7 6 5 4 3 2 1 0
ID A
Reset 0x00 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A

W

TASKNTCMEASURE

Start battery NTC thermistor measurement

NOEFFECT

0

No effect

TRIGGER

1

Trigger task

TASKTEMPMEASURE

Address offset: 0x2

Die temperature measurement

Bit number 7 6 5 4 3 2 1 0
ID A
Reset 0x00 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A

W

TASKTEMPMEASURE

Start die temperature measurement

NOEFFECT

0

No effect

TRIGGER

1

Trigger task

TASKVSYSMEASURE

Address offset: 0x3

VSYS measurement

Bit number 7 6 5 4 3 2 1 0
ID A
Reset 0x00 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A

W

TASKVSYSMEASURE

Start VSYS measurement

NOEFFECT

0

No effect

TRIGGER

1

Trigger task

TASKIBATMEASURE

Address offset: 0x6

Battery current measurement

Bit number 7 6 5 4 3 2 1 0
ID A
Reset 0x00 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A

W

TASKIBATMEASURE

Start IBAT measurement

NOEFFECT

0

No effect

TRIGGER

1

Trigger task

TASKVBUS7MEASURE

Address offset: 0x7

VBUS measurement

Bit number 7 6 5 4 3 2 1 0
ID A
Reset 0x00 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A

W

TASKVBUS7MEASURE

Start VBUS measurement

NOEFFECT

0

No effect

TRIGGER

1

Trigger task

TASKDELAYEDVBATMEASURE

Address offset: 0x8

Delayed battery voltage measurement

Bit number 7 6 5 4 3 2 1 0
ID A
Reset 0x00 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A

W

TASKDLYDVBATMEASURE

Start delayed VBAT measurement

NOEFFECT

0

No effect

TRIGGER

1

Trigger task

ADCCONFIG

Address offset: 0x9

ADC configuration

Bit number 7 6 5 4 3 2 1 0
ID B A
Reset 0x00 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A

RW

VBATAUTOENABLE

Enable VBAT Auto measurement every 1 s

NOAUTO

0

No automatic measurements

AUTOENABLE

1

Trigger measurement every 1 s

B

RW

VBATBURSTENABLE

Enable VBAT burst mode VBAT0, VBAT1, VBAT2, VBAT3

SINGLEMODE

0

Trigger a single measurement

BURSTMODE

1

Trigger 4 consecutive measurements

ADCNTCRSEL

Address offset: 0xA

Select battery NTC thermistor

Bit number 7 6 5 4 3 2 1 0
ID A A
Reset 0x01 0 0 0 0 0 0 0 1
ID R/W Field Value ID Value Description
A

RW

ADCNTCRSEL

Select thermistor value

Hi_Z

0

No thermistor

10K

1

NTC 10 kOhm

47K

2

NTC 47 kOhm

100K

3

NTC 100 kOhm

ADCAUTOTIMCONF

Address offset: 0xB

Auto measurement intervals

Bit number 7 6 5 4 3 2 1 0
ID B B A A
Reset 0x03 0 0 0 0 0 0 1 1
ID R/W Field Value ID Value Description
A

RW

NTCAUTOTIM

Battery thermistor measurement interval when charging

4MS

0

4 ms

64MS

1

64 ms

128MS

2

128 ms

1024MS

3

1024 ms

B

RW

TEMPAUTOTIM

Die temperature measurement interval when charging

4MS

0

4 ms

8MS

1

8 ms

16MS

2

16 ms

32MS

3

32 ms

TASKAUTOTIMUPDATE

Address offset: 0xC

Strobe for AUTOTIMCONF

Bit number 7 6 5 4 3 2 1 0
ID A
Reset 0x00 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A

W

TASKAUTOTIMUPDATE

Update NTCAUTOTIM and TEMPAUTOTIM measurement intervals

NOEFFECT

0

No effect

UPDATEAUTOTIM

1

Update

ADCDELTIMCONF

Address offset: 0xD

Configure delay for battery voltage measurement

Bit number 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A

RW

VBATDELTIM

Delay from 4 ms (value 0) to 514 ms (value 255) in 2 ms steps

ADCIBATMEASSTATUS

Address offset: 0x10

Battery current measurement status

Bit number 7 6 5 4 3 2 1 0
ID C B B A A
Reset 0x00 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A

R

BCHARGERICHARGE

Scaling factor for charging current (00=10%, 01=50%, 11=100%)

B

R

BCHARGERMODE

Battery charger mode (01=discharging, 10=idle, no battery current, 11=charging)

C

R

IBATMEASEINVALID

IBAT measurement invalid

ADCVBATRESULTMSB

Address offset: 0x11

Battery voltage measurement result MSB

Bit number 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A

R

VBATRESULTMSB

Battery voltage measurement result MSB

ADCNTCRESULTMSB

Address offset: 0x12

Battery temperature measurement result MSB

Bit number 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A

R

NTCRESULTMSB

Battery temperature measurement result MSB

ADCTEMPRESULTMSB

Address offset: 0x13

Die temperature measurement result MSB

Bit number 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A

R

TEMPRESULTMSB

Die temperature measurement result MSB

ADCVSYSRESULTMSB

Address offset: 0x14

VSYS measurement result MSB

Bit number 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A

R

VSYSRESULTMSB

VSYS measurement result MSB

ADCGP0RESULTLSBS

Address offset: 0x15

Result LSBs (VBAT, battery temperature, die temperature and VSYS)

Bit number 7 6 5 4 3 2 1 0
ID D D C C B B A A
Reset 0x00 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A

R

VBATRESULTLSB

Battery voltage measurement result LSBs

B

R

NTCRESULTLSB

Battery temperature measurement result LSBs

C

R

TEMPRESULTLSB

Die temperature measurement result LSBs

D

R

VSYSRESULTLSB

VSYS measurement result LSBs

ADCVBAT0RESULTMSB

Address offset: 0x16

VBAT0 burst measurement result MSB

Bit number 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A

R

VBAT0RESULTMSB

VBAT0 burst measurement result MSB

ADCVBAT1RESULTMSB

Address offset: 0x17

VBAT1 burst measurement result MSB

Bit number 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A

R

VBAT1RESULTMSB

VBAT1 burst measurement result MSB

ADCVBAT2RESULTMSB

Address offset: 0x18

VBAT2 burst measurement result MSB

Bit number 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A

R

VBAT2RESULTMSB

ADC VBAT2 burst measurement result MSB

ADCVBAT3RESULTMSB

Address offset: 0x19

VBAT3 burst or VBUS measurement result MSB

Bit number 7 6 5 4 3 2 1 0
ID A A A A A A A A
Reset 0x00 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A

R

VBAT3RESULTMSB

If TASKVBATMEASURE is triggered in burst mode, this register will contain ADC VBAT3 burst measurement result MSB If TASKVBUS7MEASURE is triggered, this register will contain VBUS measurement result MSB

ADCGP1RESULTLSBS

Address offset: 0x1A

VBAT burst measurement result LSBs (VBAT0, VBAT1, VBAT2 and VBAT3)

Bit number 7 6 5 4 3 2 1 0
ID D D C C B B A A
Reset 0x00 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A

R

VBAT0RESULTLSB

Burst VBAT0 measurement result LSBs

B

R

VBAT1RESULTLSB

Burst VBAT1 measurement result LSBs

C

R

VBAT2RESULTLSB

Burst VBAT2 measurement result LSBs

D

R

VBAT3RESULTLSB

Burst VBAT3 measurement result LSBs

ADCIBATMEASEN

Address offset: 0x24

Enable automatic battery current measurement

Bit number 7 6 5 4 3 2 1 0
ID A
Reset 0x00 0 0 0 0 0 0 0 0
ID R/W Field Value ID Value Description
A

RW

IBATMEASENABLE

Enable IBAT measurement after VBAT measurement