Datasheet

bq27541-G1
www.ti.com
SLUSAL6C NOVEMBER 2011REVISED OCTOBER 2012
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 67, it must reside in
the third 32-byte block. Hence, DataFlashBlock( ) is issued 0x02 to set the block offset, and the offset used to
index into the BlockData( ) memory area is 0x40 + 67 modulo 32 = 0x40 + 16 = 0x40 + 0x03 = 0x43.
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-G1 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-G1 contains 64 bytes of user programmable data flash storage: Manufacturer Info Block A and
Manufacturer Info Block B, . 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 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-G1 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 or 0x02 with this
command causes the corresponding information block (A or B 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-G1 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, , that are
accessible to the user. Manufacture Information refers to the two 32-byte blocks.
Table 6. Data Flash Access
SECURITY MODE DATA FLASH MANUFACTURER INFORMATION
FULL ACCESS R/W R/W
UNSEALED R/W R/W
SEALED None R (A); R/W (B)
Although FULL ACCESS and UNSEALED modes appear identical, only FULL ACCESS mode allows the
bq27541-G1 to write access-mode transition keys stored in the Security class.
Copyright © 2011–2012, Texas Instruments Incorporated Submit Documentation Feedback 19
Product Folder Links: bq27541-G1