English
Language : 

BQ27350 Datasheet, PDF (16/33 Pages) Texas Instruments – Single Cell Li-Ion Battery Manager With Impedance Track Fuel Gauge Technology
bq27350
Single Cell Li-Ion Battery Manager
With Impedance Track Fuel Gauge Technology
SLUS754 – MARCH 2007
4.2.12 Reserved – 0x6A – 0x7F
www.ti.com
4.3 DATA FLASH INTERFACE
4.3.1 ACCESSING THE DATA FLASH
The bq27350 data flash is a non-volatile memory that contains bq27350 initialization, default, cell status,
calibration, configuration, and user information. The data flash can be accessed in several different ways,
depending on what mode the bq27350 is operating in and what data is being accessed.
Commonly accessed data flash memory locations, frequently read by a host, are conveniently accessed
through specific instructions, already described in the DATA COMMANDS section. These commands are
available when the bq27350 is either in UNSEALED or SEALED modes.
Most data flash locations, however, can only be accessed in UNSEALED mode by using the bq27350
evaluation software or by performing data flash block transfers. These locations should be optimized
and/or fixed during the development and manufacture processes. They become part of a golden pack file
and can then be written to multiple battery packs. Once established, the values generally remain
unchanged during end-equipment operation.
To access data flash locations individually, the block containing the desired data flash location(s) must be
transferred to the command register locations, where they can be read to the host or changed directly.
This is accomplished by sending the set-up command BlockDataControl( ) (code 0x61) with data 0x00. Up
to 32 bytes of data can be read directly from the BlockData( ) command locations 0x40…0x5f, externally
altered, then re-written to the BlockData( ) command space. Alternatively, specific locations can be read,
altered, and re-written if their corresponding offsets are used to index into the BlockData( ) command
space. Finally, data residing in the command space is transferred to data flash, once a correct checksum
for the whole block is written to BlockDataChecksum( ) (command number 0x60).
Occasionally, a data flash CLASS will be larger than the 32-byte block size. In this case, the
DataFlashBlock( ) command is used to designate which 32-byte block the desired locations reside in. The
correct command address is then given by 0x40 + offset modulo 32. For example, to access Terminate
Voltage in the Gas Gauging class, DataFlashClass( ) is issued 80 (0x50) to set the class. Because the
offset is 48, it must reside in the second 32-byte block. Hence DataFlashBlock( ) is issued 0x01 to set the
block offset, and the offset used to index into the BlockData( ) memory area is 0x40 + 48 modulo 32 =
0x40 + 16 = 0x40 + 0x10 = 0x50.
Reading and writing subclass data are block operations 32 bytes in length. Data can be written in shorter
block sizes, however. Blocks can be shorter than 32 bytes in length. Writing these blocks back to data
flash will not overwrite data that extends beyond the actual block length.
None of the data written to memory are bounded by the bq27350 — the values are not rejected by the gas
gauge. Writing an incorrect value may result in hardware failure due to firmware program interpretation of
the invalid data. The data written is persistent, so a Power-On-Reset does not resolve the fault.
4.4 MANUFACTURER INFORMATION BLOCKS
The bq27350 contains 96 bytes of user programmable data flash storage: Manufacturer Info Block A,
Manufacturer Info Block B, Manufacturer Info Block C. The method for accessing these memory
locations is slightly different, depending on whether the device is in UNSEALED or SEALED modes.
When in UNSEALED mode and “0x00” is written to BlockDataControl( ), accessing the Manufacturer Info
Blocks is identical to accessing general data flash locations. First, a DataFlashClass( ) command is used
to set the subclass, then a DataFlashBlock( ) command sets the offset for the first data flash address
within the subclass. The BlockData( ) command codes contain the referenced data flash data. When
writing the data flash, a checksum is expected to be received by BlockDataChecksum( ). Only when the
checksum is received and verified is the data actually written to data flash.
16
GENERAL DESCRIPTION
Submit Documentation Feedback