I2C Transmission from the ECC608-TNGHNT

When the ECC608-TNGHNT 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.

Table 1. I2C Transmission from the ECC608-TNGHNT
Name I2C Name Direction Description
Device Address Device Address To Client This byte selects a particular device on the I2C interface and the ECC608-TNGHNT 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 ECC608-TNGHNT 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 ECC608-TNGHNT 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 ECC608-TNGHNT will NACK the device address to indicate that no data are available to be read.