© 2014 Fairchild Semiconductor Corporation www.fairchildsemi.com
FFG1040UC003X • Rev. 1.4 12
FFG1040UC003X — Single-Cell Fuel Gauge
Fuel Gauge Configurations and Features
Save and Restore Feature
The FFG1040 has a feature which improves fuel-
gauging startup performance immediately after
removing and reinserting the same battery. This feature
is called the „save and restore‟ feature and allows the
fuel gauge to resume gauging from where it left off prior
to battery removal, provided the same battery is
reinserted. If the system designer chooses to use this
feature, the host processor saves off the values in the
Save and Restore registers, 0x65-0x71 at some interval.
The recommended interval is once per 1% change in
SOC state or once every 10 minutes when the gauge is
in the Active Device state and once per hour when the
gauge is in the Resting device state. After each and
every fuel gauge reset the driver configures the fuel
gauge by writing the recently stored values from system
memory back into the fuel gauge Save and Restore
registers. When started, the fuel gauge algorithm
determines if the newly inserted battery is the same
battery that was most recently gauged. If so it uses the
restored values allowing the fuel gauge to benefit from
past learning to more accurately report the RSOC of the
reinserted battery. For systems with a captive battery,
the learned battery parameters can be restored by
setting a bit in the FG_CONFIG register before starting
the gauge.
Temperature Sensing and Reporting
The FFG1040 has three possible methods to obtain
temperature information used by the fuel-gauging
algorithm. The first method is to measure an external
thermistor using the onboard ADC and the TBAT pin.
The FFG1040 supports connecting an external
thermistor and provides the appropriate bias voltage,
VTBIAS, from the TBIAS pin for the thermistor network.
The second method uses the fuel gauge‟s internal
temperature-sensing capability. In both of these cases,
the system can read the measured temperature from
the FG_TEMPERATURE register. The third method is
for the system to provide a temperature reading to the
fuel gauge by writing to the fuel gauge
FG_BATTERY_TEMP_RUNTIME_INPUT register.
By default, the FFG1040 measures the internal
temperature using its onboard temperature sensor. It
measures and reports this value once every 10 seconds
in the “Device Active” state and once every 20 seconds
in the “Device Resting” state and uses this value as an
input to the fuel gauge algorithm. For batteries or
systems with a thermistor available, the FFG1040 can
measure temperature using the thermistor as requested
by setting the appropriate bit in the FG_CONFIG
register. Additionally, the thermistor Beta value must be
set in the FG_BATTERY_THERM_TEMPCO register, to
configure temperature calculation.
Relay Master
In this mode the system level host, which controls the
FFG1040, can use a series of register to “relay” I2C read
and write commands to the relay master port. This port
contains its own Relay Master Serial Clock (RMSCL),
and Relay Master Serial Data (RMSDA). The system
host sends and receives data from a downstream
slave(s) connected to these two pins.
The relay master relies on the I2C_MSTR_ set of
registers. These registers are a subset of the registers
included in the FFG1040. The registers use the last
seven addresses of the register space (0xF9-0xFF).
Autonomous Master
In this mode, the FFG1040, utilizes its internal firmware
and controls the FFG3105 to read the battery cell
voltage and pack temperature. This is done to reduce
the system host involvement during critical times like
battery charging, where knowing the cell voltage and
temperature improve the charging process. The
FFG1040 will accept as configuration inputs a pack
alarm voltage, a pack polling rate voltage, a slow poll
rate interval in 50 ms steps, a fast poll rate interval in
50 ms steps, and a maximum battery temperature.
Once given a start signal, the FFG1040 I2C master
capability is used to trigger measurements by the
FFG3105 to read the voltage and temperature and
report them in output registers. If the voltage is below
the polling rate voltage then the next reading will occur
after the slow interval, otherwise it will occur after the
fast interval.
Polling will continue until either;
a) A stop signal is given
b) The battery temperature exceeds the maximum
temperature
c) The battery voltage exceeds the alarm voltage
d) A communication error occurs on the I2C interface
between the FFG1040 and the FFG3105
e) The FFG3105 does not respond with a valid
temperature/voltage within 100 ms of the
measurement trigger.
While polling is active the host cannot trigger I2C relay
master transactions. Host writes to the I2C master
register space will corrupt on-going transactions. A
status bit is set to indicate to the host that automatic
polling is in progress and I2C Master functionality is not
currently available.
Upon termination of polling, an interrupt is set to indicate
polling ceased due to a voltage or temperature alarm,
and a second interrupt is set to indicate polling ceased
due to a communication error or FFG3105 timeout.