7.2 I2C Transmission to ATECC608B-TNGTLS
The transmission of data from the system to the ATECC608B-TNGTLS is summarized in the table below. The order of transmission is as follows:
- Start Condition
- Device Address Byte
- Word Address Byte
- Optional Data Bytes (1 through N)
- Stop Condition
SDA is driven low by the ATECC608B-TNGTLS ACK periods.
The following tables label the bytes of the I/O transaction. The column labeled “I2C Name” provides the name of the byte as described in the AT24C16 data sheet.
Name | I2C Name | Description |
---|---|---|
Device Address | Device Address | This byte selects a particular device on the I2C interface. The ATECC608B-TNGTLS is 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 bit and must be zero to indicate a write operation (the bytes following the device address travel from the host to the client). |
Word Address | Word Address | This byte must have a value of 0x03 for normal operation. |
Command | Data1, N | The command group, consisting of the count, command packet and the 2-byte CRC. The CRC is calculated over the size and packet bytes. |
Because the device treats the command input buffer as a FIFO, the input group can be sent to the device in one or many I2C command groups. The first byte sent to the device is the count, so after the device receives that number of bytes, it will ignore any subsequently received bytes until the execution is finished.
The system must send a Stop condition after the last command byte to ensure that ATECC608B-TNGTLS will start the computation of the command. Failure to send a Stop condition may eventually result in a loss of synchronization; see 7.2.2 I2C Synchronization for recovery procedures.