19.1 Communicating as a Host in a Single Host Environment

The details of sending a message in Host mode depends on the communication protocol for the device being communicated with. Typically, the sequence of events is as follows:

  1. Assert a Start condition on SDAx and SCLx.
  2. Send the I2C device address byte to the Client with a write indication.
  3. Wait for and verify an Acknowledge from the Client.
  4. Send the first data byte (sometimes known as the command) to the Client.
  5. Wait for and verify an Acknowledge from the Client.
  6. Send the serial memory address low byte to the Client.
  7. Repeat Steps 4 and 5 until all data bytes are sent.
  8. Assert a Repeated Start condition on SDAx and SCLx.
  9. Send the device address byte to the Client with a read indication.
  10. Wait for and verify an Acknowledge from the Client.
  11. Enable Host reception to receive serial memory data.
  12. Generate an ACK or NACK condition at the end of a received byte of data.
  13. Generate a Stop condition on SDAx and SCLx.
Figure 19-1. I2Cx Block Diagram