SLUSBF2C July 2013 – August 2015
PRODUCTION DATA.
The bq27741-G1 fuel gauge accurately predicts the battery capacity and other operational characteristics of a single Li-based rechargeable cell. It can be interrogated by a system processor to provide cell information, such as state-of-charge (SOC), time-to-empty (TTE), and time-to-full (TTF).
NOTE
Formatting Conventions in This Document:
Commands: italics with parentheses and no breaking spaces, for example,
RemainingCapacity().
Data Flash: italics, bold, and breaking spaces, for example, Design Capacity.
Register Bits and Flags: brackets only, for example, [TDA]
Data Flash Bits: italic and bold, for example, [XYZ1]
Modes and states: ALL CAPITALS, for example, UNSEALED mode.
Cell information is stored in the fuel gauge in non-volatile flash memory. Many of these data flash locations are accessible during application development. They cannot, generally, be accessed directly during end-equipment operation. To access these locations, use individual commands, a sequence of data-flash-access commands, or the Battery Management Studio (bqStudio) Software. To access a desired data flash location, the correct data flash subclass and offset must be known. For more information on the data flash, see the bq27741-G1 Pack-Side Impedance Track™ Battery Fuel Gauge With Integrated Protector and LDO User's Guide (SLUUAA3).
The fuel gauge provides 96 bytes of user-programmable data flash memory, partitioned into two 64-byte blocks: Manufacturer Info Block A and Manufacturer Info Block B. This data space is accessed through a data flash interface.
The key to the high-accuracy gas gauging prediction is the Texas Instruments proprietary Impedance Track algorithm. This algorithm uses cell measurements, characteristics, and properties to create state-of-charge predictions that can achieve less than 1% error across a wide variety of operating conditions and over the lifetime of the battery.
See the Theory and Implementation of Impedance Track Battery Fuel-Gauging Algorithm Application Note (SLUA364) for further details.
The wake-up comparator indicates a change in cell current while the fuel gauge is in SLEEP mode. The wake comparator threshold can be configured in firmware and set to the thresholds in Table 2. An internal event is generated when the threshold is breached in either charge or discharge directions.
RSNS1 | RSNS0 | IWAKE | Vth(SRP-SRN) |
---|---|---|---|
0 | 0 | 0 | Disabled |
0 | 0 | 1 | Disabled |
0 | 1 | 0 | 1 mV or –1 mV |
0 | 1 | 1 | 2.2 mV or –2.2 mV |
1 | 0 | 0 | 2.2 mV or –2.2 mV |
1 | 0 | 1 | 4.6 mV or –4.6 mV |
1 | 1 | 0 | 4.6 mV or –4.6 mV |
1 | 1 | 1 | 9.8 mV or –9.8 mV |
The integrating delta-sigma ADC gauges the charge or discharge flow of the battery by measuring the voltage drop across a small-value sense resistor between the SRP and SRN pins. The integrating ADC measures bipolar signals and detects charge activity when VSR = VSRP – VSRN is positive and discharge activity when VSR = VSRP – VSRN is negative. The fuel gauge continuously integrates the signal over time using an internal counter.
The fuel gauge updates cell voltages at 1-second intervals when in NORMAL mode. The internal ADC of the fuel gauge measures the voltage, and scales and calibrates it appropriately. Voltage measurement is automatically compensated based on temperature. This data is also used to calculate the impedance of the cell for Impedance Track fuel gauging.
The fuel gauge uses the SRP and SRN inputs to measure and calculate the battery charge and discharge current using a 5-mΩ to 20-mΩ typical sense resistor.
The bq27741-G1 device provides an auto-calibration feature to cancel the voltage offset error across SRN and SRP for maximum charge measurement accuracy, and performs auto-calibration before entering the SLEEP mode.
The fuel gauge external temperature sensing is optimized with the use of a high-accuracy negative temperature coefficient (NTC) thermistor with R25 = 10 kΩ ± 1% and B25/85 = 3435 kΩ ± 1% (such as Semitec 103AT for measurement). The fuel gauge can also be configured to use its internal temperature sensor. The fuel gauge uses temperature to monitor the battery-pack environment, which is used for fuel gauging and cell protection functionality.
The HDQ interface is an asynchronous return-to-one protocol where a processor sends the command code to the fuel gauge. With HDQ, the least significant bit (LSB) of a data byte (command) or word (data) is transmitted first. The DATA signal on pin 12 is open-drain and requires an external pullup resistor. The 8-bit command code consists of two fields: the 7-bit HDQ command code (bits 0 through 6) and the 1-bit RW field (MSB bit 7). The RW field directs the fuel gauge to either one of the following:
The HDQ peripheral can transmit and receive data as either an HDQ master or slave.
HDQ serial communication is normally initiated by the host processor sending a break command to the fuel gauge. A break is detected when the DATA pin is driven to a logic low state for a time t(B) or greater. The DATA pin then is returned to its normal ready logic high state for a time t(BR). The fuel gauge is now ready to receive information from the host processor.
The fuel gauge is shipped in the I2C mode. TI provides tools to enable the HDQ peripheral.
The default fuel gauge behaves as an HDQ slave-only device. If the HDQ interrupt function is enabled, the fuel gauge is capable of mastering and also communicating to a HDQ device. There is no mechanism for negotiating which is to function as the HDQ master, and care must be taken to avoid message collisions. The interrupt is signaled to the host processor with the fuel gauge mastering an HDQ message. This message is a fixed message that signals the interrupt condition. The message itself is 0x80 (slave write to register 0x00) with no data byte being sent as the command is not intended to convey any status of the interrupt condition. The HDQ interrupt function is not public and is only enabled by command.
When the SET_HDQINTEN subcommand is received, the fuel gauge detects any of the interrupt conditions and asserts the interrupt at 1-s intervals until either:
This feature works identically to SOC1. It uses the same data flash entries as SOC1 and triggers interrupts as long as SOC1 = 1 and HDQIntEN = 1.
This feature triggers an interrupt based on the OTC (Overtemperature in Charge) or OTD (Overtemperature in Discharge) condition being met. It uses the same data flash entries as OTC or OTD and triggers interrupts as long as either the OTD or OTC condition is met and HDQIntEN = 1. (See details in HDQ Host Interruption.)
The fuel gauge supports the standard I2C read, incremental read, one-byte write quick read, and functions. The 7-bit device address (ADDR) is the most significant 7 bits of the hex address and is fixed as 1010101. The 8-bit device address is therefore 0xAA or 0xAB for write or read, respectively.
The quick read returns data at the address indicated by the address pointer. The address pointer, a register internal to the I2C communication engine, increments whenever data is acknowledged by the fuel gauge or the I2C master. Quick writes function in the same manner and are a convenient means of sending multiple bytes to consecutive command locations (such as two-byte commands that require two bytes of data).
Attempt to write a read-only address (NACK after data sent by master):
Attempt to read an address above 0x7F (NACK command):
Attempt at incremental writes (NACK all extra data bytes sent):
Incremental read at the maximum allowed read address:
The I2C engine releases both SDA and SCL if the I2C bus is held low for t(BUSERR). If the fuel gauge was holding the lines, releasing them frees the master to drive the lines. If an external condition is holding either of the lines low, the I2C engine enters the low-power SLEEP mode.
The I2C engine releases both SDA and SCL lines if the I2C bus is held low for about 2 seconds. If the fuel gauge was holding the lines, releasing them frees the master to drive the lines.
To ensure the correct results of a command with the 400-kHz I2C operation, a proper waiting time must be added between issuing a command and reading the results. For subcommands, the following diagram shows the waiting time required between issuing the control command and reading the status with the exception of the checksum command. A 100-ms waiting time is required between the checksum command and reading the result. For read-write standard commands, a minimum of 2 seconds is required to get the result updated. For read-only standard commands, there is no waiting time required, but the host must not issue any standard command more than two times per second. Otherwise, the gauge could result in a reset issue due to the expiration of the watchdog timer.
The I2C clock stretch could happen in a typical application. A maximum 80-ms clock stretch could be observed during the flash updates. There is up to a 270-ms clock stretch after the OCV command is issued.
To minimize power consumption, the fuel gauge has three power modes: NORMAL, SLEEP, and FULLSLEEP. The fuel gauge passes automatically between these modes, depending upon the occurrence of specific events, though a system processor can initiate some of these modes directly.
The fuel gauge is in NORMAL mode when not in any other power mode. During this mode, AverageCurrent(), Voltage(), and Temperature() measurements are taken, and the interface data set is updated. Decisions to change states are also made. This mode is exited by activating a different power mode.
Because the fuel gauge consumes the most power in NORMAL mode, the Impedance Track algorithm minimizes the time the fuel gauge remains in this mode.
SLEEP mode performs AverageCurrent(), Voltage(), and Temperature() less frequently, which results in reduced power consumption. SLEEP mode is entered automatically if the feature is enabled (Pack Configuration [SLEEP] = 1) and AverageCurrent() is below the programmable level Sleep Current. Once entry into SLEEP mode has been qualified, but prior to entering it, the fuel gauge performs an ADC autocalibration to minimize offset.
During the SLEEP mode, the fuel gauge periodically takes data measurements and updates its data set. However, a majority of its time is spent in an idle condition.
The fuel gauge exits SLEEP if any entry condition is broken, specifically when either:
FULLSLEEP mode turns off the high-frequency oscillator and performs AverageCurrent(), Voltage(), and Temperature() less frequently, which results in power consumption that is lower than that of the SLEEP mode.
FULLSLEEP mode can be enabled by two methods:
FULLSLEEP mode is entered automatically when it is enabled by one of the methods above. When the first method is used, the gauge enters the FULLSLEEP mode when the fuel gauge is in SLEEP mode. When the second method is used, the FULLSLEEP mode is entered when the fuel gauge is in SLEEP mode and the timer counts down to 0.
The fuel gauge exits the FULLSLEEP mode when there is any communication activity. Therefore, the execution of SET_FULLSLEEP sets the [FULLSLEEP] bit. The FULLSLEEP mode can be verified by measuring the current consumption of the gauge.
During FULLSLEEP mode, the fuel gauge periodically takes data measurements and updates its data set. However, a majority of its time is spent in an idle condition.
The fuel gauge exits SLEEP if any entry condition is broken, specifically when either:
While in FULLSLEEP mode, the fuel gauge can suspend serial communications by as much as 4 ms by holding the comm line(s) low. This delay is necessary to correctly process host communication, because the fuel gauge processor is mostly halted in SLEEP mode.
The battery protector controls two external high-side N-channel FETs in a back-to-back configuration for battery protection. The protector uses two voltage doublers to drive the CHG and DSG FETs on.
The CHG or DSG FET is turned on by pulling the FET gate input up to VFETON. The FETs are turned off by pulling the FET gate input down to VSS. These FETs are automatically turned off by the protector based on the detected protection faults, or when commanded to turn off via the FETTest(0x74/0x75) extended command. Once the protection fault(s) is cleared, the FETs may be turned on again.
The battery protector has several operating modes:
The relationships among these modes are shown in Figure 10.
In this mode, the fuel gauge is not functional and only certain portions of analog circuitry are running to allow device wakeup from shutdown and low voltage charging.
In this mode, the fuel gauge is not functional. Once the charger is connected, the fuel gauge determines if low voltage charging is allowed and then transitions to low voltage charging.
In this mode, the fuel gauge closes the CHG FET by shorting the gate to the PACKP pin. Low voltage charging continues until the cell voltage (VVPWR) rises above the POR threshold.
In this mode, the voltage on VPWR pin is below VUVP and the charger is connected. As soon as the charger disconnects, the fuel gauge transitions into ANALOG SHUTDOWN mode to save power.
The fuel gauge can enter this mode from LOW VOLTAGE CHARGING mode when the battery pack is being charged from a deeply discharged state or from NORMAL mode when the battery pack is being discharged below the allowed voltage.
When the battery pack is charged above VUVPREL, the fuel gauge transitions to NORMAL mode.
In this mode, the protector is fully powered and operational. Both CHG and DSG FETs are closed, while further operation is determined by the firmware. The protector is continuously checking for all faults.
The CHG or DSG FET may be commanded to be opened via the protector register by the firmware, but it does not affect protector operation or change the mode of operation.
Firmware can also command the fuel gauge to go into SHUTDOWN mode based on the command from the host. In this case, firmware sets the shutdown bit to indicate intent to go into SHUTDOWN mode. The fuel gauge then transitions to SHUTDOWN WAIT mode.
In this mode, the shutdown bit was set by the firmware and the fuel gauge initiated the shutdown sequence.
The shutdown sequence is as follows:
In this mode, a short-circuit in discharge (SCD) or overcurrent in discharge (OCD) protection fault is detected when the voltage across the sense resistor continuously exceeds the configured VOCD or VSCD thresholds for longer than the configured delay.
The fuel gauge enables the fault removal detection circuitry, which monitors load removal. A special high resistance load is switched on to monitor load presence. The OCD/SCD fault is cleared when the load is removed, which causes the fuel gauge to transition into NORMAL mode.
In this mode, an overcurrent in charge (OCC) protection fault is detected when the voltage across the sense resistor continuously exceeds the configured VOCC for longer than the configured delay.
The fuel gauge enables the fault removal detection circuitry, which monitors the charger removal. The OCC fault is cleared once the charger voltage drops below the cell voltage by more than 300 mV, which causes the fuel gauge to transition to NORMAL mode.
In this mode, an OVERVOLTAGE PROTECTION (OVP) fault mode is entered when the voltage on VPWR pin continuously exceeds the configured VOVP threshold for longer than the configured delay.
The fuel gauge enables the fault removal detection circuitry, which monitors the charger removal. The OVP fault is cleared once the charger voltage drops below the cell voltage by more than 300 mV and the cell voltage drops below VOVPREL, which causes the fuel gauge to transition to NORMAL mode.
The firmware has control to open the CHG FET or DSG FET independently by overriding hardware control. However, it has no control to close the CHG FET or DSG FET and can only disable the FET override.
Overtemperature protection is implemented in firmware. Gauging firmware monitors temperature every second and opens the CHG and DSG FETs if Temperature() > OT Prot Threshold for OT Prot Delay. The CHG and DSG FETs override will be released when Temperature() < OT Prot Recover.