Global Sources
EE Times-India
Stay in touch with EE Times India
EE Times-India > Amplifiers/Converters

Calibrating the Offset Register of the DS2761

Posted: 28 Jun 2003     Print Version  Bookmark and Share



1 of 3 101802


The advantages of lithium-ion (Li+) protection and high accuracy fuel gauging can be completely negated

by an assembly error or improper calibration of the device. This application note walks through an

example of how to properly calibrate the offset of the DS2761's high accuracy current A/D.


The Current A/D of the DS2761 is extremely sensitive. It is capable of measuring a voltage drop of only

15.625mV across the sense resistor. This kind of accuracy can only be achieved by calibrating the current

measurement after the cell pack is assembled. The Current Offset Register (Address 0x33h) allows the

current measurements of the DS2761 to be adjusted by 1127 LSbs (179.375mA or 11.984mV) for

accurate measurement of very small currents. This offset is subtracted internally from each current

measurement and is reflected in the Current Register and the Accumulated Current Register.

There can be slight variations in the current offset of the device across the temperature and voltage range

of the application. Therefore, it is recommended to calibrate the offset at the average temperature and

voltage of the application. For example, a cell phone or PDA would spend the majority of its time at

approximately 250C and 3.8V, which would be room temperature and the mid-range of the cell voltage.

The following example lists the steps to calibrate the DS2761 in-circuit:

1. Initialize the Offset Register

It is recommended to start by writing the Offset Register to 0x00h. The user may select a different offset

value as a starting point without effecting the accuracy of the calibration. The starting offset value will

need to be noted when determining the new offset value that is calculated in Step 4. For this example, it

will be assumed that 0x00h is used as the starting point.

2. Verify no current is flowing

In most cases, writing 0x00h to the Protection Register to disable the protection FETs will cut off any

current flowing into or out of the battery pack. However, some power supplies or loads that may be

connected across the battery pack will have small leakage currents that will affect the accuracy of the

offset calibration. This leakage can be detected by calibrating the offset with and without the load

connected. If a different value for the offset is calculated in the two tests, then the load needs to be

physically removed or disconnected through a switching relay prior to calibration.

3. Read the current register

Wait at least 100ms to make sure there are not any current samples from before the FETs were opened

and the load removed. It is recommended to take 32 readings with at least 100ms between each reading.

The 100ms delay is recommended between samples because the current register is updated every 88ms.

The updated current register is the average of 128 current samples taken at a frequency of 1456Hz. If the

current register is read any faster than 88ms, then the same register data will be read multiple times and

will not increase the accuracy of the reading. The total time for the initial delay and the 32 readings

should only take 3.2s.

Application Note 224

Calibrating the Offset Register of the



2 of 3

The number of readings recommended is 32 because that is the fewest number of readings required to

provide consistent offset values. Table 1 contains a summary of data taken on four separate DS2761s.

Each device was calibrated 50 times with 128 readings averaged, then 50 times with 64 readings

averaged, and then 50 times with 32 readings averaged, and so on down to one reading. The data is

displayed with the average current in terms of the number of LSbs in the current register from all 50

calibration cycles as well as the maximum and minimum offset LSbs that were calculated from the 50

calibration cycles.

The data shows that using fewer than 32 readings may result in some variation of the offset by a bit or

more. Reading more than 32 times does increase the accuracy of the average current, but does not affect

the value that will be stored in the Offset Register, so that is the optimum number of readings.

Table 1. Calibration Data

Number of Readings 128 64 32 16 8 4 2 1

Device 1

Average Current (LSbs) -1.341 -1.370 -1.414 -1.403 -1.510 -1.775 -2.000 -2.800

Max Offset (LSbs) -1 -1 -1 -1 -1 0 0 0

Min Offset (LSbs) -1 -1 -1 -2 -1 -1 -1 -2

Device 2

Average Current (LSbs) -0.864 -0.873 -0.858 -0.913 -1.010 -1.080 -1.240 -1.640

Max Offset (LSbs) -1 -1 -1 -1 -1 0 0 0

Min Offset (LSbs) -1 -1 -1 -1 -1 -1 -1 -2

Device 3

Average Current (LSbs) -0.386 -0.406 -0.403 -0.426 -0.460 -0.455 -0.730 -0.800

Max Offset (LSbs) 0 0 0 0 0 0 0 0

Min Offset (LSbs) 0 0 0 -1 -1 -1 -1 -2

Device 4

Average Current (LSbs) -0.347 -0.332 -0.374 -0.331 -0.373 -0.405 -0.540 -0.740

Max Offset (LSbs) 0 0 0 0 0 0 0 0

Min Offset (LSbs) 0 0 0 -1 -1 -1 -1 -2

4. Determine the new offset value

Calculate the average of the 32 readings taken in Step 3. If the decimal portion of the average current is

greater than 0.5 LSbs, then round the magnitude up to the next integer, otherwise, round down. For

example, if the average is `1.45' round down to `1' and if the average is `1.55' round up to `2'. (Or if the

average is `-1.45' round up to `-1' and if the average is `-1.55' round down to `-2'). This example uses a

starting point of 0x00h, so the new offset value is simply the rounded average. If the starting point was

something different, the rounded average would be added to the starting point to get the new offset value.

As an example, examine the data shown in Table 1 for Device 1. The starting point was 0 and the average

of 32 readings of the current register was -1.414 LSbs. The average would be rounded to -1 and the two's

compliment value of -1 which is 0xFFh would be written to the Offset Register. If the starting point was

-2 then the average of 32 readings would have given .586 LSbs. The rounded average would be +1 LSb,

which would be added to the starting point of -2, to obtain the new offset value of -1 and 0xFFh would

again be written to the Offset Register.


3 of 3

When properly calibrated, the Offset Register will typically have a value in the range of +2 LSbs to -4

LSbs (in two's complement format that range is 0x02h to 0xFCh). It is possible to offset up to 1127 LSbs,

however, if the value of the Offset Register is larger than 110 LSbs, it may be necessary to verify the

circuit for any leakage current and verify that the current is being read properly.

5. Write and copy the new offset value

The value that was calculated in Step 4 should then be written to the Offset Register in two's complement

format and copied to EEPROM.

6. Verify accuracy

With the new value in the Offset Register, Steps 2 and 3 may be repeated to verify the accuracy of the

calibration. Using 1.5 LSbs as the rounding point in Step 4, the user assures the average current of being

within 11 LSb when reading variations are taken into account.


The Current A/D of the DS2761 is capable of measuring a 15.625mV drop across the sense resistor. To

ensure this accuracy, the current offset should be calibrated after assembly into the pack. For greatest

accuracy, multiple measurements should be made over the longest acceptable period of time with the

control FETs disabled and all loads removed. This will guarantee no extraneous current is flowing in the

system during calibration and that a precise calibration may be obtained.

Comment on "Calibrating the Offset Register of t..."
*  You can enter [0] more charecters.
*Verify code:


Visit Asia Webinars to learn about the latest in technology and get practical design tips.


Go to top             Connect on Facebook      Follow us on Twitter      Follow us on Orkut

Back to Top