www.ti.com
bq27500
bq27501
System-Side Impedance Track™ Fuel Gauge
SLUS785 – SEPTEMBER 2007
4.1.2.7 DeviceNameLength( ): 0x62
UNSEALED and SEALED Access: This byte contains the length of the Device Name.
4.1.2.8 DeviceName( ): 0x63 …0x69
UNSEALED and SEALED Access: This block contains the device name that is programmed in DeviceName.
4.1.2.9 ApplicationStatus( ): 0x6a
This byte function allows the system to read the Application Status register of the bq27500/01. SeeSection 6.1.3 for specific bit definitions.
4.1.2.10 Reserved – 0x6b – 0x7f
The bq27500/1 data flash is a non-volatile memory that contains bq27500/1 initialization, default, cellstatus, calibration, configuration, and user information. The data flash can be accessed in several differentways, depending on what mode the bq27500/1 is operating in and what data is being accessed.
Commonly accessed data flash memory locations, frequently read by a system, are convenientlyaccessed through specific instructions, already described in Section 4.1 DATA COMMANDS. Thesecommands are available when the bq27500/1 is either in UNSEALED or SEALED modes.
Most data flash locations, however, are only accessible in UNSEALED mode by use of the bq27500/1evaluation software or by data flash block transfers. These locations should be optimized and/or fixedduring the development and manufacture processes. They become part of a golden image file and canthen be written to multiple battery packs. Once established, the values generally remain unchanged duringend-equipment operation.
To access data flash locations individually, the block containing the desired data flash location(s) must betransferred to the command register locations, where they can be read to the system or changed directly.This is accomplished by sending the set-up command BlockDataControl( ) (0x61) with data 0x00. Up to 32bytes of data can be read directly from the BlockData( ) (0x40 …0x5f), externally altered, then re-written tothe BlockData( ) command space. Alternatively, specific locations can be read, altered, and re-written iftheir corresponding offsets are used to index into the BlockData( ) command space. Finally, the dataresiding in the command space is transferred to data flash, once the correct checksum for the whole blockis written to BlockDataChecksum( ) (0x60).
Occasionally, a data flash CLASS will be larger than the 32-byte block size. In this case, theDataFlashBlock( ) command is used to designate in which 32-byte block the desired locations resides.The correct command address is then given by 0x40 + offset modulo 32. For example, to accessTerminate 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 issued0x01 to set the block offset, and the offset used to index into the BlockData( ) memory area is 0x40 + 48modulo 32 = 0x40 + 16 = 0x40 + 0x10 = 0x50.
Reading and writing subclass data are block operations up to 32 bytes in length. If during a write the datalength exceeds the maximum block size, then the data is ignored.
None of the data written to memory are bounded by the bq27500/1– the values are not rejected by thefuel gauge. Writing an incorrect value may result in hardware failure due to firmware programinterpretation of the invalid data. The written data is persistent, so a Power-On-Reset does resolve thefault.
GENERAL DESCRIPTION16 Submit Documentation Feedback