Host generated
A
A
S
0
ADDR[6:0]
CMD [7:0]
Sr
1
ADDR[6:0]
A
DATA [7:0]
A
DATA [7:0]
P
N
. . .
(d) incremental read
A
A
S
0
ADDR[6:0]
CMD [7:0]
Sr
1
ADDR[6:0]
A
DATA [7:0]
P
N
(c) 1- byte read
A
A
S
A
0
P
ADDR[6:0]
CMD [7:0]
DATA [7:0]
(a) 1-byte write
(b) quick read
S
1
ADDR[6:0]
A
DATA [7:0]
P
N
Gauge generated
. . .
A
A
S
A
0
P
ADDR[6:0]
CMD[7:0]
DATA [7:0]
DATA [7:0]
A
A
(e) incremental write
(S = Start , Sr = Repeated Start , A = Acknowledge , N = No Acknowledge , and P = Stop).
49
SLUUBE8 – September 2018
Copyright © 2018, Texas Instruments Incorporated
Communications
Chapter 3
SLUUBE8 – September 2018
Communications
3.1
I
2
C Interface
The slave-only bq34210-Q1 fuel gauge supports the standard I
2
C read, incremental read, quick read, one
byte write, and incremental write functions. The 7-bit device address (ADDR) is the most significant 7 bits
of the hex address and is fixed as 1010101. The first 8-bits of the I
2
C protocol is, therefore, 0xAA or 0xAB
for write or read, respectively.
The “quick read” returns data at the address indicated by the address pointer. The address pointer, a
register internal to the I
2
C communication engine, increments whenever data is acknowledged by the fuel
gauge or the I
2
C master. “Quick writes” function in the same manner and are a convenient means of
sending multiple bytes to consecutive command locations (such as two-byte commands that require two
bytes of data).
The following command sequences are not supported:
Attempt to write a read-only address (NACK after data sent by master):
Attempt to read an address above 0x6B (NACK command):
3.2
I
2
C Time Out
The I
2
C engine releases SDA and SCL if the I
2
C bus is held low for
Bus Low Time
. If the fuel gauge was
holding the lines, releasing them frees them for the master to drive the lines. If an external condition is
holding either of the lines low, the I
2
C engine enters the low-power SLEEP mode.