7.5 I2C Transmission from the ATECC608B-TNGTLS
When the ATECC608B-TNGTLS is awake and not busy, the host can retrieve the current output buffer contents from the device using an I2C read. If valid command results are available, the size of the group returned is determined by the particular command that is run. Otherwise, the size of the group (and the first byte returned) will always be four: count, status/error and 2-byte CRC.
Name | I2C Name | Direction | Description |
---|---|---|---|
Device Address | Device Address | To Client | This byte selects a particular device on the I2C interface and the ATECC608B-TNGTLS will be selected if bits 1 through 7 of this byte match bits 1 through 7 of the I2C_Address byte in the Configuration zone. Bit 0 of this byte is the standard I2C R/W pin and must be one to indicate that the bytes following the device address travel from the client to the host (read). |
Data | Data1, N | To Host | The output group, consisting of the count, status/error byte or the output packet followed by the 2-byte CRC. |
The status, error or command outputs can be read repeatedly by the host.
Each time a Read
command is sent to the ATECC608B-TNGTLS along the I2C interface, the device transmits the next sequential byte in
the output buffer. See the following section for details on how the device handles the
address counter.
If the ATECC608B-TNGTLS is busy, idle or asleep,
it will NACK the device address on a read sequence. If a partial command is sent to the
device and a read sequence [Start + DeviceAddress(R/W == R)]
is sent to
the device, the ATECC608B-TNGTLS will NACK the device address to
indicate that no data are available to be read.