The following procedure should be followed to write data to TDP1204 I2C registers (refer to Figure 8-11):
- The controller initiates a write operation by generating a start condition (S),
followed by the TDP1204 7-bit address and a zero-value “W/R”
bit to indicate a write cycle.
- The TDP1204 acknowledges the address cycle.
- The controller presents the register offset within TDP1204 to be
written, consisting of one byte of data, MSB-first.
- The TDP1204 acknowledges the sub-address cycle.
- The controller presents the first byte of data to be written to the
I2C register.
- The TDP1204 acknowledges the byte transfer.
- The controller may continue presenting additional bytes of data to be written,
with each byte transfer completing with an acknowledge from the TDP1204.
- The controller terminates the write operation by generating a stop condition
(P).
The following procedure should be followed to read
the TDP1204 I2C registers without a repeated Start (refer
to Figure 8-12).
- The controller initiates a read operation by generating a
start condition (S), followed by the TDP1204 7-bit address and
a zero-value “W/R” bit to indicate a read cycle.
- The TDP1204 acknowledges the 7-bit address
cycle.
- Following the acknowledge the controller continues sending
clock.
- The TDP1204 transmit the contents of the
memory registers MSB-first starting at register 00h or last read register
offset+1. If a write to the I2C register occurred prior to the
read, then the TDP1204 shall start at the register offset
specified in the write.
- The TDP1204 waits for either an acknowledge
(ACK) or a not-acknowledge (NACK) from the controller after each byte
transfer; the I2C controller acknowledges reception of each data
byte transfer.
- If an ACK is received, then the TDP1204
transmits the next byte of data as long as controller provides the clock. If
a NAK is received, then the TDP1204 stops providing data and
waits for a stop condition (P).
- The controller terminates the write operation by
generating a stop condition (P).
The following procedure should be followed to read
the TDP1204 I2C registers with a repeated Start (refer to
Figure 8-13).
- The controller initiates a read operation by generating a
start condition (S), followed by the TDP1204 7-bit address and
a zero-value “W/R” bit to indicate a write cycle.
- The TDP1204 acknowledges the 7-bit address
cycle.
- The controller presents the register offset within TDP1204 to be written, consisting of one byte of data,
MSB-first.
- The TDP1204 acknowledges the register offset
cycle.
- The controller presents a repeated start condition
(Sr).
- The controller initiates a read operation by generating a
start condition (S), followed by the TDP1204 7-bit address and
a one-value “W/R” bit to indicate a read cycle.
- The TDP1204 acknowledges the 7-bit address
cycle.
- The TDP1204 transmit the contents of the
memory registers MSB-first starting at the register offset.
- The TDP1204 shall wait for either an
acknowledge (ACK) or a not-acknowledge (NACK) from the controller after each
byte transfer; the I2C controller acknowledges reception of each
data byte transfer.
- If an ACK is received, then the TDP1204
transmits the next byte of data as long as controller provides the clock. If
a NAK is received, then the TDP1204 stops providing data and
waits for a stop condition (P).
- The controller terminates the read operation by generating
a stop condition (P).
The following procedure should be followed for setting a starting sub-address for I2C reads (refer to Figure 8-14).
- The controller initiates a write operation by generating a start condition
(S), followed by the TDP1204 7-bit address and a zero-value
“W/R” bit to indicate a write cycle.
- The TDP1204 acknowledges the address cycle.
- The controller presents the register offset within TDP1204 to be
written, consisting of one byte of data, MSB-first.
- The TDP1204 acknowledges the register offset cycle.
- The controller terminates the write operation by generating a stop condition
(P).
Note: Figure 8-12 that if no register offset is included for the read procedure after initial
power-up, then reads start at register offset 00h and continue byte by byte through
the registers until the I2C controller terminates the read operation. During a read
operation, the
TDP1204 auto-increments the I
2C internal
register address of the last byte transferred independent of whether or not an ACK
was received from the I2C controller.