Status/Error Codes

The device does not have a dedicated STATUS register, so the output FIFO is shared among status, error, and command results. All outputs from the device are returned to the system as complete groups which are formatted identically to input groups:

After the device receives the first byte of an input command group, the system cannot read anything from the device until the system has sent all the bytes to the device.

After the wake and execution of a command, there will be error, status, or result bytes in the device’s output register that can be retrieved by the system. For a four bytes length of that group, the codes returned are detailed in Table 1. Some commands return more than four bytes when they execute successfully. The resulting packet description is listed in Section Device Commands .

CRC errors are always returned before any other type of error. They indicate that an I/O error occurred, and that the command may be resent to the device. No particular precedence is enforced among the remaining errors if more than one occurs.

Table 1. Status/Error Codes in Four Byte Groups
State Description Error/Status Description
Successful Command Execution 0x00 Command executed successfully.
Checkmac or Verify Miscompare 0x01 The CheckMac or Verify command was properly sent to the device, but the input response did not match the expected value.
Parse error 0x03 Command was properly received but the length, command opcode, or parameters are illegal regardless of the state (volatile and/or EEPROM configuration) of the ATECC608A-TNGTLS. Changes in the value of the command bits must be made before it is re-attempted.
ECC Fault 0x05 A computation error occurred during ECC processing that caused the result to be invalid. Retrying the command may result in a successful execution.
Self Test error 0x07 There was a Self Test error and the chip is in Failure mode waiting for the failure to be cleared.
Health Test error 0x08 There was a random number generator Health Test error and the chip fails subsequent commands requiring a random number until it is cleared.
Execution error 0x0F Command was properly received but could not be executed by the device in its current state. Changes in the device state or the value of the command bits must be made before it is re-attempted.
After Wake, 
Prior to First command 0x11 Indication that ATECC608A-TNGTLS has received a proper Wake token.
Watchdog About to Expire 0xEE There is insufficient time to execute the given command before the Watchdog Timer expires. The system must reset the Watchdog Timer by entering the Idle or Sleep modes.
CRC or Other Communications error 0xFF Command was not properly received by ATECC608A-TNGTLS and should be 
retransmitted by the I/O driver in the system. No attempt was made to parse or execute the command.