NACK by transmitting a one during the ninth bit. Timing
for the ACK and NACK is identical to all other bit writes
(Figure 2). An ACK is the acknowledgment that the device
is properly receiving data. A NACK is used to terminate a
read sequence or as an indication that the device is not
receiving data.
Byte Write: A byte write consists of 8 bits of information
transferred from the master to the slave (most significant
bit first) plus a 1-bit acknowledgement from the slave to
the master. The 8 bits transmitted by the master are done
according to the bit-write definition, and the acknowledge-
ment is read using the bit-read definition.
Byte Read: A byte read is an 8-bit information transfer
from the slave to the master plus a 1-bit ACK or NACK
from the master to the slave. The 8 bits of information that
are transferred (most significant bit first) from the slave
to the master are read by the master using the bit-read
definition above, and the master transmits an ACK using
the bit write definition to receive additional data bytes.
The master must NACK the last byte read to terminated
communication so the slave will return control of SDA to
the master.
Slave Address Byte: Each slave on the I2C bus responds
to a slave address byte sent immediately following a
START condition. The slave address byte contains the
slave address in the most significant 7 bits and the R/W
bit in the least significant bit. The DS4422/DS4424 slave
address is determined by the state of the A0 and A1
address pins. Table 1 describes the addresses corre-
sponding to the state of A0 and A1.
When the R/W bit is 0 (such as in A0h), the master is indi-
cating that it will write data to the slave. If R/W = 1 (A1h
in this case), the master is indicating that it wants to read
from the slave. If an incorrect slave address is written, the
DS4422/DS4424 assume the master is communicating
with another I2C device and ignore the communication
until the next START condition is sent.
Memory Address: During an I2C write operation, the
master must transmit a memory address to identify the
memory location where the slave is to store the data. The
memory address is always the second byte transmitted
during a write operation following the slave address byte.
I2C Communication
Writing to a Slave: The master must generate a START
condition, write the slave address byte (R/W = 0), write
the memory address, write the byte of data, and gener-
ate a STOP condition. Remember that the master must
read the slave’s acknowledgement during all byte-write
operations.
Reading from a Slave: To read from the slave, the
master generates a START condition, writes the slave
address byte with R/W = 1, reads the data byte with a
NACK to indicate the end of the transfer, and generates
a STOP condition.
Figure 2. I2C Communication Examples
SLAVE
ADDRESS*
START
START
A1 A0 1 0 0 0 0 R/WSLAVE
ACK
SLAVE
ACK
SLAVE
ACK
MSB LSB MSB LSB MSB LSB
b7 b6 b5 b4 b3 b2 b1 b0
READ/
WRITE
REGISTER/MEMORY ADDRESS
b7 b6 b5 b4 b3 b2 b1 b0
DATA
STOP
SINGLE BYTE WRITE
-WRITE REGISTER
F9h TO 00h
SINGLE BYTE READ
-READ REGISTER F8h START REPEATED
START
21h
MASTER
NACK STOP
00100000 11111 000
F8h
00100 001
00100000 11111 001
20h F9h
STOP
DATA
EXAMPLE I2C TRANSACTIONS (WHEN A0 AND A1 ARE GROUNDED)
TYPICAL I2C WRITE TRANSACTION
*THE SLAVE ADDRESS IS DETERMINED BY ADDRESS PINS A0 AND A1.
00000 000
20h
A)
B)
SLAVE
ACK
SLAVE
ACK
SLAVE
ACK
SLAVE
ACK
SLAVE
ACK
SLAVE
ACK
DS4422/DS4424 Two-/Four-Channel, I2C, 7-Bit Sink/Source
Current DAC
www.maximintegrated.com Maxim Integrated
│
8