English
Language : 

BQ27541-V200_17 Datasheet, PDF (19/46 Pages) Texas Instruments – Single Cell Li-Ion Battery Fuel Gauge for Battery Pack Integration
Not Recommended for New Designs
bq27541-V200
www.ti.com
SLUSA11B – FEBRUARY 2010 – REVISED SEPTEMBER 2013
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 up to 32 bytes in length. If during a write the data length
exceeds the maximum block size, then the data is ignored.
None of the data written to memory are bounded by the bq27541 — the values are not rejected by the fuel
gauge. Writing an incorrect value may result in hardware failure due to firmware program interpretation of the
invalid data. The written data is persistent, so a power-on reset does not resolve the fault.
MANUFACTURER INFORMATION BLOCKS
The bq27541 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 when and 0x00 has been 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.
As an example, the data flash location for Manufacturer Info Block B is defined as having a Subclass = 58 and
an Offset = 32 through 63 (32 byte block). The specification of Class = System Data is not needed to address
Manufacturer Info Block B, but is used instead for grouping purposes when viewing data flash info in the
bq27541 evaluation software.
When in SEALED mode or when 0x01 BlockDataControl( ) does not contain 0x00, data flash is no longer
available in the manner used in UNSEALED mode. Rather than issuing subclass information, a designated
Manufacturer Information Block is selected with the DataFlashBlock( ) command. Issuing a 0x01, 0x02, or 0x03
with this command causes the corresponding information block (A, B, or C, respectively) to be transferred to the
command space 0x40…0x5f for editing or reading by the system. Upon successful writing of checksum
information to BlockDataChecksum( ), the modified block is returned to data flash. Note: Manufacturer Info
Block A is read-only when in SEALED mode.
ACCESS MODES
The bq27541 provides three security modes (FULL ACCESS, UNSEALED, and SEALED) that control data flash
access permissions according to Table 6. Data Flash refers to those data flash locations, specified in Table 7,
that are accessible to the user. Manufacture Information refers to the three 32-byte blocks.
SECURITY MODE
FULL ACCESS
UNSEALED
SEALED
Table 6. Data Flash Access
DATA FLASH
R/W
R/W
None
MANUFACTURER INFORMATION
R/W
R/W
R (A); R/W (B,C)
Although FULL ACCESS and UNSEALED modes appear identical, only FULL ACCESS mode allows the
bq27541 to write access-mode transition keys.
SEALING/UNSEALING DATA FLASH
The bq27541 implements a key-access scheme to transition between SEALED, UNSEALED, and FULL-
ACCESS modes. Each transition requires that a unique set of two keys be sent to the bq27541 via the Control( )
control command. The keys must be sent consecutively, with no other data being written to the Control( ) register
in between. Note that to avoid conflict, the keys must be different from the codes presented in the CNTL DATA
column of Table 2 subcommands.
Copyright © 2010–2013, Texas Instruments Incorporated
Product Folder Links: bq27541-V200
Submit Documentation Feedback
19