dm00089742

AN4324
Application note
STC3115 system integration
Aurelien Mazard
Introduction
Mobile application users demand accurate battery capacity monitoring. In particular, they are interested
to know if the battery state of charge (SOC) in stressful conditions is logical and accurate. To this end,
STMicroelectronics has developed a device (STC3115) which uses its internal algorithm to provide the
user with accurate and reliable information about the battery’s SOC. This tiny chip can be used in any
handheld electronic mobile phone or tablet. The purpose of this application note is to provide the basics
of how to build an accurate fuel gauge system using the STC3115.
A complete fuel gauge system is a combination of hardware and software functions. The STC3115 has
been designed to convert the physical nonlinear measurements of lithium-ion battery models to stable
and compensated information, which can easily be reported to the final user of a mobile application.
Chipset manages the real-time aspects of the battery gauging. It combines the voltage method and
coulomb counter to provide the best accuracy in every application state. The application software is
concerned with the reporting and calculation of application-dependent information.
November 2014
DocID024963 Rev 2.0
1/31
www.st.com
Contents
AN4324
Contents
1
Architectural overview .................................................................... 4
2
STC3115 selection guide ................................................................ 5
3
2.1
STC3115 version selection ............................................................... 5
2.2
STC3115 version detection ............................................................... 6
Battery parameters .......................................................................... 7
3.1
Battery internal impedance identification........................................... 8
3.2
Battery open circuit voltage (OCV) curve measurement and
calculation ...................................................................................................... 9
4
Schematic guidelines .................................................................... 10
4.1
5
6
Sense resistor selection .................................................................. 10
4.1.1
Sense resistor impedance value ...................................................... 10
4.1.2
Sense resistance impedance accuracy ............................................ 10
4.1.3
Sense resistance power dissipation capability ................................. 10
4.1.4
Sense resistor deviation over temperature range (TCR) ................. 11
4.1.5
Sense resistor selection proposal .................................................... 11
4.2
BatD pin system integration ............................................................ 11
4.3
RSTIO pin system integration ......................................................... 14
Place and route guidelines ........................................................... 16
5.1
Vin pin connection ........................................................................... 16
5.2
External sense resistor.................................................................... 17
5.3
Temperature considerations............................................................ 18
5.4
STMicroelectronics PCB design recommendations ........................ 19
Software ......................................................................................... 20
6.1
STC3115 RAM memory organization proposal ............................... 21
6.2
Chip initialization ............................................................................. 22
6.3
STC3115 running configuration....................................................... 27
6.4
Periodic device access.................................................................... 27
6.4.1
6.5
STC3115 task procedure ................................................................ 28
6.5.1
2/31
First STC3115 access after initialization .......................................... 27
How often the STC3115 has to be called in run mode..................... 28
6.6
STOP procedure ............................................................................. 28
6.7
Power saving mode software management .................................... 29
DocID024963 Rev 2.0
AN4324
7
Contents
Revision history ............................................................................ 30
DocID024963 Rev 2.0
3/31
Architectural overview
1
AN4324
Architectural overview
The system architecture has been separated into two main parts in order to facilitate the
most flexible integration. The STC3115 takes physical measurements and reports the
battery state of charge (SOC) through I²C interface while the software layer is concerned
with battery parameter initialization and compensation using all the dedicated features of
the chipset.
Depending on the targeted accuracy of the application environment, the STC3115 can be
used alone without software compensation. In this configuration, the application software
uses only the STC3115 register information to display the battery SOC to the user. If the
temperature and aging effects need to be compensated, the software layer uses the
STC3115 dedicated features.
Figure 1: System architecture overview
4/31
DocID024963 Rev 2.0
AN4324
2
STC3115 selection guide
STC3115 selection guide
Two versions, in two different packages, of the STC3115 device currently exist. They are:
1.
2.
STC3115AIJT / STC3115AIQT
STC3115IJT / STC3115IQT
Either version can be selected to plug onto the application.
2.1
STC3115 version selection
The STC3115 can lend its functionalities to different battery types with different voltage
ranges. Depending on the battery voltage, either the STC3115AIJT / STC3115AIQT or the
STC3115IJT / STC3115IQT can be selected.
Table 1: STC3115 version selection
STC3115 version
Battery voltage (typ)
Battery voltage (max)
STC3115AIJT / STC3115AIQT
3.7 V
4.2 V
STC3115IJT / STC3115IQT
3.8 V
4.35 V
The STC3115 behavior is the same with the different versions but the device uses a
different initial internal open circuit voltage (OCV) curve to track the battery state of charge.
The table below describes the internal OCV curve of each STC3115 version.
Table 2: STC3115 internal OCV curve references
State of charge (%)
STC3115AIJT / STC3115AIQT
STC3115IJT / STC3115IQT
100
4.176
4.313
90
4.076
4.197
80
3.991
4.088
70
3.929
3.990
65
3.899
3.953
60
3.863
3.914
50
3.802
3.825
40
3.778
3.790
30
3.761
3.770
25
3.747
3.761
20
3.721
3.743
15
3.695
3.710
10
3.658
3.675
6
3.618
3.651
3
3.541
3.571
0
3.300
3.300
DocID024963 Rev 2.0
5/31
STC3115 selection guide
AN4324
If the battery to be tracked is not exactly in line with the voltages described in the tables
above, the closest STC3115 version should be selected. Then, by software, the internal
OCV curve is adjusted using the REG_OCVTAB registers (see STC3115 datasheet). The
internal curve can be fine-tuned to better fit with battery behavior, using the OCV offset e.g.
chip initialization (see Section 3.2: "Battery open circuit voltage (OCV) curve measurement
and calculation").
2.2
STC3115 version detection
This section describes how to detect which version of the STC3115 is plugged onto the
application. If the STC3115AIJT / STC3115AIQT version of the device is power supplied, a
4.2 V power supply provides 100 % state of charge information. If the STC3115IJT /
STC3115IQT version is power supplied, a 4.2 V power supply provides 90 % state of
charge information into the STC3115 REG_SOC.
6/31
DocID024963 Rev 2.0
AN4324
3
Battery parameters
Battery parameters
This section describes how to calculate the parameters of the application.
To operate properly, the STC3115 uses typical values of the battery to track the state of
charge (SOC) in the application at a given time.
The parameters can be calculated using the formulae below. This parameter set is
commonly called the "battery model". This model is an image of battery behavior against
the STC3115 principle. The parameters and their calculation are also described in the
STC3115 datasheet.
•
•
•
•
•
REG_CC_CNF: (Rsense x Nominal battery capacity) / 49.556
REG_VM_CNF: (Internal battery impedance x Nominal battery capacity) / 977.78
REG_ALARM_SOC has to be set according to the application needs
(e.g. 10 % as a typical value)
REG_ALARM_VOLTAGE has to be set according to the application needs
(e.g. 3600 mV as a typical value)
REG_CURRENT_THRES: (Battery capacity / 10), up to 200 mA
DocID024963 Rev 2.0
7/31
Battery parameters
3.1
AN4324
Battery internal impedance identification
Thanks to its internal OptimGauge algorithm, the STC3115 does not depend on the
variation of the internal battery impedance over the state of charge (SOC) range. In other
words, only one internal battery impedance value is necessary to represent internal battery
impedance behavior at a given temperature.
The internal impedance factor can be measured using several solutions which are
described in the literature. One solution is to:
•
•
•
•
measure the battery voltage at the end of several minutes discharge
(with a fixed current value)
measure the battery voltage again after 30 minutes of relaxation
calculate the voltage difference
use the discharge current value to find the internal battery impedance
To use this method successfully, a value of around 80 % SOC allows the VM_CNF
parameter (see datasheet) to be calculated with enough accuracy to track the battery SOC
correctly.
Figure 2: Internal battery impedance measurement example
8/31
DocID024963 Rev 2.0
AN4324
3.2
Battery parameters
Battery open circuit voltage (OCV) curve measurement and
calculation
The default OCV curve selected by the STC3115 version can be adjusted to fit the battery
REG_OCVTAB model. The TAB registers can be filled to define the OCV curve as in the
equation: OCV[x] = OCVinit[x] + OCVTAB[x].
The battery OCV curve can be characterized and evaluated by measuring the relaxed
voltage of the battery at a given state of charge (SOC). In the table below, column 2,
"Battery OCV (V)", should be measured using the relaxed voltages of the corresponding
"SOC (%)" values in column 1. These measured points can then be used to define the
REG_OCVTAB(0.55mV) "Value" in column 6 using the equation: REG_OCVTAB[x] =
(Battocv[x] - OCVinit[x]) / 0.55.
Table 3: OCV offset calculation table
SOC
(%)
Battery OCV in volts
(battery measurement
data)
OCV-init(V)
REG_OCVTAB(0.55mV)
STC3115AIJT /
STC3115AIQT
STC3115IJT /
STC3115IQT
Address
100
4.176
4.313
0x3F
90
4.076
4.197
0x3E
80
3.991
4.088
0x3D
70
3.929
3.990
0x3C
65
3.899
3.953
0x3B
60
3.863
3.914
0x3A
50
3.802
3.825
0x39
40
3.778
3.790
0x38
30
3.761
3.770
0x37
25
3.747
3.761
0x36
20
3.721
3.743
0x35
15
3.695
3.710
0x34
10
3.658
3.675
0x33
6
3.618
3.651
0x32
3
3.541
3.571
0x31
0
3.300
3.300
0x30
DocID024963 Rev 2.0
Value
9/31
Schematic guidelines
4
AN4324
Schematic guidelines
The STC3115 is designed to limit the external component amount versus accuracy of the
reported information. To provide the best accuracy versus flexibility, an external sense
resistor has to be selected. The STC3115 provides standard application signal interfaces
that are used to give the best accuracy in specific application-use cases.
4.1
Sense resistor selection
To use the STC3115 enhanced mixed mode, a sense resistor must be placed between the
battery minus pin and the application ground. The sense resistor should be capable of
measuring current accurately so, it is imperative not to connect any signal on the battery
minus pin except the sense resistor.
The external sense resistor measures the current which is used internally by the device
and integrated over time to provide a coulomb counter feature which tracks the battery
state of charge (SOC). The choice of sense resistor is extremely important and has a direct
impact on battery monitoring accuracy. The following points concerning the sense resistor
value and reference must be considered:
1.
2.
3.
4.
5.
4.1.1
Sense resistor impedance value
Sense resistor impedance accuracy
Sense resistor power dissipation capability
Sense resistor deviation over temperature range (TCR)
Sense resistor selection proposal
Sense resistor impedance value
The sense resistor impedance depends on the application maximum current and the
STC3115 Vin_gg input voltage range (see datasheet).
Vin_gg = Rcg x IMax
Where Rcg = sense resistor value in mΩ and IMax = application peak current in A
Vin_gg must be below 40 mV for IMax charging and above -40 mV for IMax discharging.
4.1.2
Sense resistance impedance accuracy
The precision of the sense resistor depends on the targeted accuracy of the application. An
accuracy of 1 % allows the STC3115 to attain its best accuracy.
4.1.3
Sense resistance power dissipation capability
To limit self-heating of the sense resistor due to current flow into it, the power dissipation
capability of the chosen sense reference has to be in line with the application current
consumption. Assuming a voltage drop of 40 mV on the sense resistor and in the case of a
10 mΩ resistor, the sense resistor power dissipation capability has to be at least 160 mW.
10/31
DocID024963 Rev 2.0
AN4324
4.1.4
Schematic guidelines
Sense resistor deviation over temperature range (TCR)
The sense resistor impedance value depends on ambient temperature. The generated
error from temperature deviation has to be limited in order to ensure that the impact of
temperature on current measurement accuracy is minimized. A 0.3 % impedance value
deviation at maximum temperature deviation is acceptable as it does not impact the current
measurement accuracy over the temperature range too much.
Example for a 75 ppm TCR sense of 10 mΩ, with a 40 °C maximum temperature deviation
from typical temperature:
MaxError: ((TCR x Rsense x d) / Rsense) x 100 = ((0.000075 x 0.01 x 40) / 0.01) x 100 =
0.3 %
Where d = temperature in ˚C.
4.1.5
Sense resistor selection proposal
Table 4: Proposed sense resistor references
4.2
Product reference
Manufacturer
ERJM03NF10MV
PANASONIC
WSL0603R0100FEA
VISHAY
DALE
Impedance
10 mΩ
Accuracy
Power
dissipation
Sense resistor
deviation over
temperature
range (TCR)
±1 %
250 mW
±100 ppm/°C
±1 %
100 mW
±75 ppm/°C
Package
0603
BatD pin system integration
The BatD pin detects battery removal events: either the third battery pin is an ID pin or a
thermal information pin. The following three situations describe several application cases
where the battery is removed and how the STC3115 detects such an event:
1.
2.
3.
Battery is removed during a low consumption stage: At this time, the application
consumption is low and the Vbat voltage can take time to decrease (application
capacitor discharging period). At the same time, the third battery pin is disconnected
and the BatD pin voltage is fixed by the pull-up voltage value. Battery removal is
detected rapidly by the BatD feature.
Battery is removed during a high consumption stage: At this time the application
consumption is high and the Vbat voltage decreases rapidly. The STC3115 detects
battery removal and in this case the BatD pin is not used.
Battery is removed if the charger is already connected: At this time, Vbat voltage
maintains the same value or increases slightly. The BatD pin is used to detect battery
removal as the battery voltage information cannot be used.
During battery removal, the BatD pull-up voltage should be ON and higher than 1.61 V
internal threshold.
For most applications, the pull-up voltage should always be available and above the
threshold. The best voltage to use is the Vbat voltage itself.
DocID024963 Rev 2.0
11/31
Schematic guidelines
AN4324
The following configurations can be used. In each one, the R2 resistor is mandatory. If the
STC3115 BatD pin is pulled down to ground, the BatD feature is disabled. Battery removal
and swap events are only detected using the battery voltage reference.
Figure 3: STC3115 BatD schematic if the BatD feature is disabled or not used
1.
Typical R2 value = 1 kΩ
If the third battery pin is used by the charger thermal protection signal, the STC3115 BatD
pin has to be connected to this signal to prevent an open circuit voltage (OCV)
measurement error due to a charging current at application start-up.
This protection mechanism forces the battery protection pin to disable the charger because
it indicates that the battery cannot be charged. This state is maintained during the first OCV
measurement period. The measurement is made only after battery insertion and each time
a battery insertion is detected.
Figure 4: STC3115 application integration if charger provides an internal biasing current
1.
12/31
Typical R2 value = 1 kΩ, Ru = 1 MΩ
DocID024963 Rev 2.0
AN4324
Schematic guidelines
Figure 5: STC3115 application integration if charger provides a reference voltage
1.
Typical R2 value = 1 kΩ, Ru = 1 MΩ
The application can be connected to the STC3115 BatD pin even if it has no charger or the
application charger does not manage the battery security pin. In this configuration, the
BatD feature improves battery presence detection.
Figure 6: STC3115 application integration if charger does not use the third battery pin
1.
Typical R2 value = 1 kΩ, Ru = 1 MΩ
DocID024963 Rev 2.0
13/31
Schematic guidelines
4.3
AN4324
RSTIO pin system integration
The STC3115 RSTIO is an open drain pin which, to operate, must always be pulled-up to a
VCC.
The STC3115 RSTIO feature maintains the accuracy of the first open circuit voltage (OCV)
measurement in all application start-up sequences. This feature prevents the first OCV
measurement from a fast application start-up. If the main application reset signal is
detected as low before the beginning of the first OCV measurement, it is forced low by the
RSTIO pin until the end of the measurement to guarantee measurement accuracy. In this
reset state, the application consumption is low and no battery voltage drop is implied. This
operation takes a maximum of 500 ms.
Several typical application implementations are described below.
The Vbatt voltage used to pull-up the RSTIO signal can be another system voltage such as
an IO voltage (see Figure 7: "STC3115 RSTIO schematic if the RSTIO feature is
disabled"). If the RSTIO pin is pulled-up to a fixed positive voltage or if it is grounded, this
feature is disabled.
Figure 7: STC3115 RSTIO schematic if the RSTIO feature is disabled
1.
Typical R1 value = 1 kΩ
In the architecture of Figure 8: "STC3115 RSTIO feature integration in a PMU based
application", it is assumed that the application processor (AP) consumes the most power.
Once the PMU is ready to provide the voltage and clock to the AP, the RESETN signal is
relaxed by the PMU (which informs the AP that the PMU is ready). The STC3115 RSTIO
pin relaxes this signal at the end of the first OCV measurement.
14/31
DocID024963 Rev 2.0
AN4324
Schematic guidelines
Figure 8: STC3115 RSTIO feature integration in a PMU based application
1.
Typical R1 value = 1 kΩ
Figure 9: STC3115 RSTIO feature integration in PMU and Smart reset based applications
DocID024963 Rev 2.0
15/31
Place and route guidelines
5
AN4324
Place and route guidelines
The four layout "rules" listed below should be followed to achieve the best STC3115
accuracy in an application.
1.
2.
3.
4.
5.1
Connect the Vin signal to the battery connector with a specific track and not directly
through a Vbatt+ plan.
Connect an external sense resistor if the STC3115 is used in mixed mode.
Consider the temperature with regard to the placement of the battery, the STC3115,
and the components of the application.
Use the STMicroelectronics PCB design recommendations.
Vin pin connection
The Vin pin should be connected to the battery connector with a specific track and not
directly through a Vbatt+ plan. This is to improve the voltage measurement accuracy during
the first open circuit voltage (OCV) and during the life of the application.
The voltage drop coming from track impedance and current amount is not negligible
compared to the targeted accuracy of the voltage measurement. This rule aims to minimize
the current impact on the voltage measurement by minimizing the voltage drop due to track
impedance combined with current level.
In low power mode as well as in mixed mode, the STC3115 voltage algorithm is used. In
both configurations and in every application state (sleep, normal, fast) the voltage
measurement accuracy is critical. The lower the current flowing in the Vin track is, the more
accurate the measurement is.
Rule description:
1.
2.
Minimize the track and connector impedances
Minimize the current to take into account for the voltage drop calculation
This is a priority 2 rule and is not mandatory (priority 1 indicates a mandatory rule). If low
power mode is used to track the battery state, this rule becomes a priority 1.
In the diagram below, the image on the left is the correct implementation since the single
Vin track involves a very low current level in the voltage measurement track. The maximum
value of this current is equal to the STC3115 consumption when the Vcc is also powered by
this track. This involves a quasi-null voltage drop and guarantees the best voltage
measurement accuracy in every application consumption condition. To achieve even
greater efficiency, this track should be separated from the other system power supply
tracks that come directly from the battery connector.
16/31
DocID024963 Rev 2.0
AN4324
Place and route guidelines
Figure 10: Vin track implementation (top view)
5.2
External sense resistor
If the STC3115 is used in mixed mode, an external sense resistor has to be connected
between the CG+ and the GND pin. The aim of this rule is to sense the battery flowing
current properly by connecting the STC3115 dedicated pins to the system through the
sense resistor. The protocol for doing this is as follows (priority 1 indicates a mandatory
rule):
1.
2.
3.
4.
5.
Place the sense resistor close to the battery connector with the minimum track length
to minimize the equivalent impedance. In the same logic, ensure the track wideness is
in line with the application power consumption (priority 2).
Connect the STC3115 CG pin directly to the sense resistor without any connection
with the track coming from the battery (VBat-). The CG pin connection with BATD- pin
is performed through the sense resistor pad (see Figure 11: "CG track implementation
(top view)") (priority 1).
Connect the STC3115 GND pin directly to the sense resistor with a track. The sense
resistor has to be independently connected to the ground to avoid any voltage
reference issue. The GND pin connection with application ground plane is performed
through the sense resistor pad (see Figure 12: "GND plan implementation (top view)")
(priority 1).
Connect the sense resistor to the ground plane with the minimum equivalent
impedance to minimize the sense resistor effect on the application behavior
(priority 1).
If there are multiple PCB layers with GND plane or if there is a Vbat track on a layer
other than Reg, the STC3115 CG and GND pins must be connected to the RCG pads
directly on the RCG layer.
DocID024963 Rev 2.0
17/31
Place and route guidelines
AN4324
Figure 11: CG track implementation (top view)
Figure 12: GND plan implementation (top view)
5.3
Temperature considerations
The STC3115 provides an accurate temperature sensor feature. If this internal temperature
sensor is used for battery temperature compensation, the position of the STC3115 with
respect to the battery position impacts slightly the accuracy of the temperature
measurement. The closer the STC3115 is to the battery, the more accurate the
temperature measurement and compensation is.
The other heating components of the application should be placed as far from the
STC3115 as possible to avoid big temperature measurement errors. For example, during
application charging mode, the IC charger temperature can be increased by several
degrees.
18/31
DocID024963 Rev 2.0
AN4324
5.4
Place and route guidelines
STMicroelectronics PCB design recommendations
For optimum electrical performance and highly reliable solder joints, STMicroelectronics
recommends the PCB design guidelines listed below.
Table 5: PCB design recommendations with "solder mask defined"
PCB pad design
Non solder mask defined, micro via under bump allowed
PCB pad size
Ø = 260 µm max (circular) – 220 µm recommended
Ø = 300 µm min (for 260 µm diameter pad)
Solder mask opening
Ø = 260 µm min (for 220 µm diameter pad)
PCB pad finishing
Cu – Ni (2-6 µm) – Au (0.2 µm max)
To optimize the natural self-centering effect of Flip-Chips on the PCB, the PCB pad
positioning and size have to be properly designed (see Figure 13: "PCB design
recommendations").
Figure 13: PCB design recommendations
A thick gold layer finishing on the PCB pad is not recommended (low joint reliability).
The PCB tracks close to the CSP footprint have to be designed to ensure a correct
mechanical assembly (see Figure 14: "PCB track recommendations").
Figure 14: PCB track recommendations
DocID024963 Rev 2.0
19/31
Software
6
AN4324
Software
The STC3115 hardware architecture can autonomously track the battery status. From
battery plug-in to battery plug out, a simple initialization is enough to provide an accurate
battery state of charge (SOC). From this initial point, the system can access when the SOC
has to be refreshed and displayed to the user without any real time constraints.
An additional software layer can also be used to compensate the temperature and aging
effects. This layer uses the STC3115 hardware features for accuracy and to be
independent from the host system.
The software architecture can be separated into several blocks (e.g. start, task, and API)
which are described below.
Figure 15: Software architecture overview
The STC3115 start block initializes and configures the STC3115. Effectively, this block
updates the register reset values so that the values are in line with the battery that has to
be tracked.
The STC3115 periodic task is the software block which periodically reads the STC3115
register to update the system with the new battery status. This block can be enriched to
compensate temperature and aging effects.
The STC3115 software API is the software block between the main application software
and the driver itself. This block allows communication between each layer.
20/31
DocID024963 Rev 2.0
AN4324
6.1
Software
STC3115 RAM memory organization proposal
The STC3115 device embeds a 16-byte RAM memory area.The registers of this area can
be used to periodically save the battery status. This allows battery information to be
recovered when the application is stopped but the battery is not unplugged.
The STC3115 registers can be initialized with memorized data (see Section 6.2) which is
called "restoration". The choice of whether to use a default initialization or a restoration is
based on the STC3115 CTRL_REG and on the RAM memory content.
A RAM organisation is proposed in Table 6 below. The RAM test word is a fixed word but,
the cyclic redundancy check (CRC) word has to be calculated after each RAM write
operation. The CRC calculation can be made using any standard algorithm.
Before checking if the STC3115 can be restored or not, chcek to see if the RAM data can
be used to initialize the STC3115 registers or not i.e. check if the test and CRC words
located in the RAM memory are used to secure and check the validity of the RAM content.
Table 6: STC3115 RAM stack example, 16 bytes @0x20
RAM register
Content proposal
REG_RAM0
RAM test word
REG_RAM1
Battery SOC_LOW
REG_RAM2
Battery SOC_HIGH
REG_RAM3
Battery CC_CNF_LOW
REG_RAM4
Battery CC_CNF_HIGH
REG_RAM5
Battery VM_CNF_LOW
REG_RAM6
Battery VM_CNF_HIGH
...
...
REG_RAM15
CRC
16 RAM bytes can be used to save other information/events
DocID024963 Rev 2.0
21/31
Software
6.2
AN4324
Chip initialization
The STC3115 has to be initialized from a specific value. The initialization process is
different depending on the history of the application before startup. We can identify two
main situations:
1.
2.
New battery plug-in. Full battery initialization has to be performed starting from the
default software point and using the initial battery model. The initial open circuit
voltage (OCV) measurement and state of charge (SOC) have to be used as the initial
battery state. This information can be retrieved from the STC3115 registers.
The battery has not been removed. When the battery has not been removed since the
last application switch off, the last recorded data can be recovered and stored in the
STC3115 using the data saved in the RAM memory.
At every application startup, the following steps are recommended to correctly configure
the STC3115 registers:
1.
2.
3.
4.
5.
6.
Read the chip ID in the REG_ID at address 0x18
Check the RAM memory status (test and CRC words)
If the RAM content is incorrect, initialize the RAM and the chip with default parameters
If the RAM content is correct, check the PORDET and BATFAIL bits
If BATFAIL = 1, the battery voltage was previously decreased below 2.6 V (UVLO
threshold), the Batd pin detected a battery removal/switch event, and the chip has to
be fully initialized. If PORDET = 1, the battery voltage was previously decreased
below 2 V (POR threshold), the battery was removed/switched, and the chip has to be
fully initialized. The STC3115 cannot be restored and full STC3115 initialization is
required (i.e. STC3115 initialization steps).
If the BATFAIL/PORDET = 0, the battery has not been removed and chipset
configuration can be recovered from the RAM data information (e.g. from the RAM
memory content description). STC3115 restoration is possible; the saved RAM data
can be used to restart the STC3115 from a previous application status (i.e. STC3115
restoration steps).
Once the validity of the STC3115 RAM memory and the status of the REG_CTRL register
has been checked, the STC3115 can then be initialized with default parameters or with
restored parameters (see Section 6.1 for RAM content clarification).
STC3115 initialization steps
This is the standard STC3115 initialization flow: all registers have to be initialized using
default values and the first open circuit voltage (OCV) measurement. Carry out the
following three steps when no data can be retreived from the last STC3115 running mode.
1.
2.
22/31
Read the OCV register. The first OCV measurement reflects the initial battery state of
charge (SOC). Read it and save it into a temporary variable.
Set the STC3115 parameters (ensuring first that the GG_RUN bit is set to 0). The
REG_OCVTAB registers have to be filled with their previously calculated values as
well as the values of the REG_CC_CNF and REG_VM_CNF registers. Then configure
the
application
parameters
by
setting
the
REG_ALARM_SOC,
REG_ALARM_VOLTAGE,
REG_CURRENT_THRES,
REG_RELAX_MAX,
REG_ALARM_SOC, and REG_ALARM_VOLTAGE registers as required by the
application to provide an HW interruption signal on the ALM pin when one of the
measurements is detected as being below the defined threshold. The
REG_CURRENT_THRES and REG_RELAX_MAX registers are used to configure the
internal behavior of the STC3115. Default values are enough to provide good
accuracy.
DocID024963 Rev 2.0
AN4324
Software
3.
From this point, the battery model characteristics and application threshold are
initialized and battery tracking can start. To define the battery starting point, write back
the OCV value into the REG_OCV register (16 bits) using the variable content. From
this operation, the first battery SOC is available in the REG_SOC register 100 ms
later. At this point, the provided SOC is based on the fine-tuned OCV curve defined in
Table 3 plus the initial OCV curve described in Table 2.
STC3115 restoration steps
In this case, some registers can be initialized with the recorded RAM data using the
improved battery model from the last running period. Other registers have to be initialized
with default values.
1.
2.
3.
Read the RAM memory. In this case, the last recorded state-of-charge (SOC) reflects
the initial battery SOC. Read it and save it as a temporary variable.
Set the STC3115 parameters (ensuring first that the GG_RUN bit is set to 0). The
REG_OCVTAB registers have to be filled with their previously calculated values. The
REG_CC_CNF and REG_VM_CNF registers have to be initialized using RAM
information that can be different and more accurate regarding battery aging. Then,
configure the application parameters by setting the REG_ALARM_SOC,
REG_ALARM_VOLTAGE,
REG_CURRENT_THRES,
REG_RELAX_MAX,
REG_ALARM_SOC, and REG_ALARM_VOLTAGE registers as required by the
application to provide an HW interruption signal on the ALM pin when one of the
measurements is detected as being below the defined threshold. The
REG_CURRENT_THRES and REG_RELAX_MAX registers are used to configure the
internal behavior of the STC3115. Default values are enough to provide good
accuracy.
Write the REG_SOC register. From this point, the battery model characteristics and
application threshold are initialized and battery tracking can start. To define the battery
starting point, write back the SOC value (read previously in the RAM) into the
REG_SOC register (16 bits). From this operation, the first battery SOC is available in
the REG_SOC register without delay. To start battery monitoring, set the GG_RUN bit,
as well as the VMODE bit if the power saving mode is selected (refer to Section 6.3).
Figure 16 summarizes the initialization steps and Figure 17 summarizes the initialization
and restoration flowcharts.
DocID024963 Rev 2.0
23/31
Software
AN4324
Figure 16: STC3115 initialization type selection flowchart
Applica on
start-up
Check
ID_REG=0x14
Read RAM
memory
If RAM correct
Read @I²C 0x18
Read @I²C
0x20 To 0x2F
no
yes
Read @I²C
0x00 & 0x01
Read
REG_MODE
Read REG_CTRL
If PORDET or
BATFAIL = 0
Reset RAM
no
yes
STC3115
restora on
in
Set STC3115 in
running
24/31
DocID024963 Rev 2.0
STC3115
alisa on
Write 0x00 @I²C
0x20 To 0x2F
AN4324
Software
Figure 17: STC3115 initialization and restoration flowcharts
i
STC3115
Restora on
STC3115
ali
Read
REG_OCV (16b)
Set STC3115
parameters
Read @I 2C
0x0E & 0x0D
Temporary
variable
Write
REG_OCV (16b)
Write @I 2C
0x0E & 0x0D
DocID024963 Rev 2.0
Read
RAM memory
Set STC3115
parameters
Read @I 2C 0x20
to 0x2F
RAM_SOC
variable
Write
REG_SOC (16b)
Write @I 2C
0x03 & 0x02
25/31
Software
AN4324
Figure 18: Set STC3115 parameters flowchart
Set STC3115
parameters
26/31
Write
REG_OCV_
OFFSET
Write @I²C
0x30 To 0x3F
Write
REG_CC_CNF
Write @I²C
0x10 & 0x0F
Write
REG_VM_CNF
Write @I²C
0x12 & 0x11
Write
REG_ALARM_
SOC
Write @I²C 0x13
Write
REG_ALARM_
VOLTAGE
Write @I²C 0x14
DocID024963 Rev 2.0
AN4324
6.3
Software
STC3115 running configuration
During initialization, the STC3115 is in standby mode after initialization. It has to be
configured in run mode to track the battery state of charge (SOC). The GG_RUN bit in
REG_MODE register must be set to one. At same time, STC3115 run mode has to be
selected, by setting the VMODE bit in the REG_MODE register.
•
•
If VMODE is set to 1, the STC3115 is in power saving mode and it uses only the
voltage measurement to track the battery state. This mode is recommended for low
power applications or during a low power application state.
If VMODE is set to 0, the STC3115 is set to mixed mode using the internal
OptimGauge algorithm to provide the battery SOC status using voltage and current
measurements simultaneously. This mode is recommended to provide the best
accuracy whatever the application consumption.
The IODATA bit has to be written to 1 to enable the ALM pin report using
previously initialized parameters.
After GG_RUN = 1 configuration, the REG_COUNTER register is increased every 0.5 s
and the REG_SOC, REG_VOLTAGE, REG_CURRENT, and REG_TEMPERATURE
registers are updated at the same frequency.
The REG_COUNTER register is not increased if the BatD signal is above 1.61 V.
6.4
Periodic device access
To refresh the battery state that is reported to the application, the STC3115 needs to be
accessed. The period duration and frequency accuracy do not impact the accuracy of the
report.
6.4.1
First STC3115 access after initialization
Depending on whether the STC3115 was fully initialized or restored, the state of charge
(SOC) availability can be delayed:
1.
2.
After full initialization, the REG_SOC register is updated 100 ms after the end of the
REG_OCV write operation.
After restoration, the REG_SOC register is directly available, and even the temporary
variable content can be reported to the user.
Note that a simple way to manage the SOC delay is to use the STC3115 conversion
counter information available in the REG_COUNTER register. This conversion counter is
increased by 1 every 500 ms (after setting the GG_RUN bit to 1). To ensure availability of
the first SOC, the software can wait to read a counter higher than 2.
DocID024963 Rev 2.0
27/31
Software
6.5
AN4324
STC3115 task procedure
The task software block reports the battery state. From a simple system status check to a
full battery report, the STC3115 task software block is called periodically at any frequency
to be in line with the system power consumption.
6.5.1
How often the STC3115 has to be called in run mode
A delay between two STC3115 accesses does not change the report accuracy. For
example, when the state of charge (SOC) is moving faster, an access delay can be scaled
by the application consumption to update more frequently the SOC reported to the user.
This can be achieved by using the REG_CURENT value. The STC3115 access delay can
also be decreased accordingly to the SOC level. The lower the SOC is, the lower the
access delay is.
Alternatively, the STC3115 can be accessed with a fixed period. A fixed period has to be in
line with application consumption and battery capacity. For example, the period could be
equal to a minimum delay of 1 % discharge:
(Battery capacity (mAh) / application maximum current (mA)) x 0.01 = STC3115 access
period (h).
By default, a delay of 30 seconds to 1 minute between two STC3115 accesses is
considered adequate for most standard applications.
During the periodic access to the STC3115, several simple checks have to be performed to
verify system stability. Consequently, the task function needs to read the STC3115 to
report the information to the system.
The application checks verify if any battery swaps or removal events have occurred since
checking the BATFAIL and PORDET bits. The RAM memory integrity can also be checked
to ensure chipset stability and reliability between two driver accesses. From these bits and
the RAM status, the driver can either report the updated battery status or it can restart and
reset the data in the exchange structure.
At the end of the task procedure, the exchange data structure has to be updated to report
the last battery status to the system. At this time, the RAM memory registers have also to
be updated to save their status for the next driver access.
An additional feature of this procedure is to track the application state. Based on current
and voltage measured values, charging, end of charging, idle, discharging, and low battery
status can also be reported to the system.
6.6
STOP procedure
To stop the device correctly if the application switches off, the GG_Run bit has to be
cleared. The RAM can also be updated with the last updated battery state. This information
can be used during the START procedure if the battery has not been removed.
28/31
DocID024963 Rev 2.0
AN4324
6.7
Software
Power saving mode software management
The power saving mode of the STC3115 can be set dynamically during normal application
running. To maintain the best accuracy from the device, the driver should be called to use
power saving integrated functions (see Figure 19: "STC3115 power saving mode software
management"). Power saving management can be done in parallel with the normal
application workflow.
Figure 19: STC3115 power saving mode software management
The global behavior of the driver remains the same irrespective of the STC3115 power
mode: it reports the battery state information to the system after each scheduled task.
From the application software point of view, the STC3115 VMODE bit has to set to 1 to
enter power saving mode and has to be set to 0 to go back to normal mode. The VMODE
bit can be set to power saving mode or mixed mode according to the system mode as
shown in Figure 19: "STC3115 power saving mode software management".
Even if the STC3115 power saving mode is ON by default and used as the main mode for
reporting the battery state over the application life, the STC3115 mixed mode remains
more accurate. Mixed mode allows the user to get the best performance from the
STC3115. Mixed mode must not be set if no sense resistor is connected to the CG pin.
DocID024963 Rev 2.0
29/31
Revision history
7
AN4324
Revision history
Table 7: Document revision history
Date
Revision
30-Oct-2013
1
Changes
Initial release
Added order codes STC3115AIQT and STC3115IQT
Replaced "REG_OCV_OFFSET" register with "REG_OCVTAB"
register
Section 3.1: updated text and added Figure 2
Section 3.2: updated register names
Section 4.1: The five points concerning the sense resistor value and
reference "must" be considered (and not "should" be considered).
Section 4.1.3: replaced 10 mW with 160 mW
Section 4.2: updated internal threshold of BatD pull-up voltage
from1.6 V to 1.61 V; updated title of Figure 3
Section 4.3:replaced "voltage platform" with "system voltage"
12-Nov-2014
2
Figure 10: added "top view" to title
Section 5.2: added fifth point to the protocol on how to add an
external resistor
Figure 11 and Figure 12: added "top view" to titles
Table 5: added option "Ø = 260 µm min (for 220 µm diameter pad)"
Added Section 6.1
Section 6.2 deleted the two subsections related to this section and
added them into the main section, updated text, updated Figure 16
and Figure 17, added Figure 18.
Updated Section 6.3
Section 6.4: modified section title
Section 6.5.1: modified section title
Section 6.7: updated text explaining Figure 19
30/31
DocID024963 Rev 2.0
AN4324
IMPORTANT NOTICE – PLEASE READ CAREFULLY
STMicroelectronics NV and its subsidiaries (“ST”) reserve the right to make changes, corrections, enhancements, modifications,
and improvements to ST products and/or to this document at any time without notice. Purchasers should obtain the latest relevant
information on ST products before placing orders. ST products are sold pursuant to ST’s terms and conditions of sale in place at
the time of order acknowledgement.
Purchasers are solely responsible for the choice, selection, and use of ST products and ST assumes no liability for application
assistance or the design of Purchasers’ products.
No license, express or implied, to any intellectual property right is granted by ST herein.
Resale of ST products with provisions different from the information set forth herein shall void any warranty granted by ST for such
product.
ST and the ST logo are trademarks of ST. All other product or service names are the property of their respective owners.
Information in this document supersedes and replaces information previously supplied in any prior versions of this document.
© 2014 STMicroelectronics – All rights reserved
DocID024963 Rev 2.0
31/31