English
Language : 

BQ34Z100 Datasheet, PDF (15/50 Pages) Texas Instruments – Wide Range Fuel Gauge with Impedance Track™ Technology
bq34z100
www.ti.com
SLUSAU1 – MAY 2012
MANUFACTURER INFORMATION BLOCK
The bq34z100 contains 32 bytes of user programmable data flash storage: Manufacturer Info Block. 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 Block 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 is defined as having a Subclass = 58 and an
Offset = 0 through 31 (32 byte block). The specification of Class = System Data is not needed to address
Manufacturer Info Block, but is used instead for grouping purposes when viewing data flash info in the bq34z100
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 host. 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 bq34z100 provides three security modes which control data flash access permissions according to Table 7.
Public Access refers to those data flash locations, specified in Table 20 that are accessible to the user. Private
Access refers to reserved data flash locations used by the bq34z100 system. Care should be taken to avoid
writing to Private data flash locations when performing block writes in Full Access mode by following the
procedure outlined in ACCESSING DATA FLASH.
Security Mode
BOOTROM
FULL ACCESS
UNSEALED
SEALED
Table 7. Data Flash Access
DF—Public Access
N/A
R/W
R/W
R
DF—Private Access
N/A
R/W
R/W
N/A
Although FULL ACCESS and UNSEALED modes appear identical, FULL ACCESS mode allows the bq34z100 to
directly transition to BOOTROM mode and also write access keys. The UNSEALED mode lacks these abilities.
SEALING/UNSEALING DATA FLASH ACCESS
The bq34z100 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 bq34z100 via the Control()
command (these keys are unrelated to the keys used for SHA-1/HMAC authentication). 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 3 subcommands.
When in SEALED mode the [SS] bit of Control Status() is set, but when the UNSEAL keys are correctly received
by the bq34z100, the [SS] bit is cleared. When the full access keys are correctly received then the Flags() [FAS]
bit is cleared.
Both the sets of keys for each level are 2 bytes each in length and are stored in data flash. The UNSEAL key
(stored at Unseal Key 0 and Unseal Key 1) and the FULL-ACCESS key (stored at Full Access Key 0 and Full
Access Key 1) can only be updated when in FULL-ACCESS mode. The order of the bytes entered through the
Control() command is the reverse of what is read from the part. For example, if the 1st and 2nd word of the
UnSeal Key 0 returns 0x1234 and 0x5678, then Control() should supply 0x3412 and 0x7856 to unseal the part.
Copyright © 2012, Texas Instruments Incorporated
Product Folder Link(s): bq34z100
Submit Documentation Feedback
15