0x00 ManufacturerAccess() and 0x44 ManufacturerBlockAccess()
98
SLUUBD3D – September 2015 – Revised September 2018
Copyright © 2015–2018, Texas Instruments Incorporated
SBS Commands
17.2 0x00 ManufacturerAccess() and 0x44 ManufacturerBlockAccess()
The
ManufacturerAccess()
and
ManufacturerBlockAccess()
commands make available a variety of data:
•
ManufacturerAccess()
provides access to the data through the Smart Battery data set standard,
including when in SEALED mode, using a sequence of a
ManufacturerAccess()
write word and a
ManufacturerData()
block read.
•
The
ManufacturerBlockAccess()
is an extended command that enables access to the same data, but
through a simpler block write/read sequence to the same command.
ManufacturerAccess()
example to read
LifetimeDataBlock1()
:
a. Send
LifetimeDataBlock1()
command through the
ManufacturerAccess()
: SMBus Write Word of
0x0060 to command 0x00.
b. SMBus Read Block of command 0x23: The first two bytes of the return block will be the data length
and the next bytes will be the data of the command.
ManufacturerBlockAccess()
example to read
LifetimeDataBlock1()
:
a. Send
LifetimeDataBlock1()
command through the
ManufacturerBlockAccess()
: SMBus Write Block of
0x60 + 0x00 to command 0x44. (Data must be sent in Little Endian.)
b. SMBus Read Block of command 0x44: The first two bytes of the return block will be the Manufacturer
Access command, followed by return data of the command.
Each data entity read/write through
ManufacturerBlockAccess()
is in Little Endian. For example, a 2-byte
data 0x1234 should be read/write as 0x34 + 0x12; a 4-byte 0x12345678 data should be read/write as
0x78+ 0x56+ 0x34 + 0x12.
There are two exceptions:
1. 0x0035
SecurityKeys()
: This Manufacturer Access command allows the user to read or change the
Unseal/Full Access keys. The above description is applied when reading the security keys. However,
only the
ManufacturerBlockAccess()
can be used to change the security keys.
To write data through
ManufacturerBlockAccess()
, follow the SMBus write block protocol with the first
two bytes being the
SecurityKeys()
, followed by the desired new keys' values. See
ManufacturerAccess() 0x0035 Security Keys
for details.
2. 0x0037
AuthenticationKey()
: This Manufacturer Access command allows users to change the
authentication key. Sending the new authentication key through
ManufacturerBlockAccess()
is
supported. Additionally, the gauge also supports the approach of updating the authentication keys by
sending the new keys to
ManufacturerInput()
. See
for details.
Table 17-2. ManufacturerAccess() Command List
Command
Function
Access
Format
Data Read on
0x44 and 0x23
DATA
READ on
0x2F
Not Available in
SEALED Mode
Type
Unit
0x0001
DeviceType
R
Block
√
—
—
Hex
—
0x0002
FirmwareVersion
R
Block
√
—
—
Hex
—
0x0003
HardwareVersion
R
Block
√
—
—
Hex
—
0x0004
IFChecksum
R
Block
√
—
—
Hex
—
0x0005
StaticDFSignature
R
Block
√
—
—
Hex
—
0x0006
ChemID
R
Block
√
—
—
Hex
—
0x0008
StaticChemDFSignature
R
Block
√
—
—
Hex
—
0x0009
AllDFSignature
R
Block
√
—
—
Hex
—
0x0010
ShutdownMode
W
—
—
—
—
Hex
—
0x0011
SleepMode
W
—
—
—
√
Hex
—
0x0012
DeviceReset
W
—
—
—
√
Hex
—
0x001B
CellBalanceToggle
W
—
—
—
√
Hex
—
0x001C
AFEDelayDisable
W
—
—
—
√
Hex
—
0x001D
SAFEToggle
W
—
—
—
√
Hex
—
0x001E
PrechargeFET
W
—
—
—
√
Hex
—
0x001F
ChargeFET
W
—
—
—
√
Hex
—
0x0020
DischargeFET
W
—
—
—
√
Hex
—
0x0021
Gauging
W
—
—
—
√
Hex
—