4.3 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:
- Count
- Packet
- Two byte CRC
After the device receives the first byte of an input command group, the system cannot read anything from the device until the system sends 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 4-3. Some commands return more than four bytes when they execute successfully. The resulting packet description is listed in 5 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.
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 ATECC608B-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 the ATECC608B-TNGTLS has received a proper Wake token. |
Watchdog About to Expire | 0xEE | There is insufficient time to execute the given command before the WDT expires. The system must reset the WDT by entering the Idle or Sleep modes. |
CRC or other Communications Error | 0xFF | Command was not properly received by the ATECC608B-TNGTLS and must be retransmitted by the I/O driver in the system. No attempt was made to parse or execute the command. |