The Device ID is a 24-bit (3-byte) read-only value containing the following fields:
- 12 bits: manufacturer identifier (unique per manufacturer, for example, TI)
- 9 bits: part number (assigned by the manufacturer)
- 3 bits: die revision (assigned by the manufacturer)
The Device ID is hardwired and accessible using the following procedure:
- Send a START command.
- The controller transmits the Reserved Device ID I²C address (1111 1000) with R/W = 0 (write).
- The controller sends the target device address, with the LSB as “don’t care.” Only the matching device acknowledges.
- Issue a Repeated START condition.
- A STOP command followed by a START command resets the target state machine and the Device ID read cannot be performed. Also, a STOP command or a Re-START command followed by an access to another target device resets the target state machine and the Device ID Read cannot be performed.
- The controller sends the Reserved Device ID I²C address (1111 1001) with R/W = 1 (read).
- The device transmits the Device ID in the following order:
- First byte + 4MSBs of second byte: Manufacturer ID (12 bits)
- 4LSBs of second byte + 5MSBs of third byte: Part Identification (9 bits)
- 3LSBs of third byte: Die Revision (3 bits)
- The controller completes the read by sending a NACK after the last byte, resetting the device internal state machine and then issuing a STOP command.
If the controller sends additional acknowledgments after the third byte, the device restarts the data sequence from the first byte.