2.7.3.3 Single Read

This reads a single byte from a device, from a designated register. The register is specified through the Command byte.

The read command is as follows, and it is illustrated in the timing diagram below.

  1. Send START sequence
  2. Send 7-bit target address
  3. Send the R/W bit – 0 to indicate a write operation
  4. Wait for Acknowledge from the target
  5. Send the register address that needs to be read
  6. Wait for acknowledge from the target
  7. Send START sequence again (Repeated Start condition)
  8. Send the 7-bit target address
  9. Send R/W bit – 1 to indicate a read operation
  10. Wait for Acknowledge from the target
  11. Receive the 8-bit data from the target starting from MSB
  12. Acknowledge from the host
  13. Send STOP sequence
Figure 2-14. I2C Single Read

If the Host attempts to read from an invalid register location, the MCP16503 will send out 0xFF data (all “1”).