8.1 I/O Tokens

There are a number of I/O tokens, which may be transmitted over the Single-Wire Interface:

  • Input (to the ATECC608B-TFLXTLS):
    • Wake — Wake the device up from either the sleep or idle modes, or reset the I/O interface.
    • Zero — Send a single bit from the system to the device with a value of zero.
    • One — Send a single bit from the system to the device with a value of one.
  • Output (from the ATECC608B-TFLXTLS):
    • ZeroOut — Send a single bit from the device to the system with a value of zero.
    • OneOut — Send a single bit from the device to the system with a value of one.

The waveforms are the same in either direction, however, there are some differences in timing based upon the expectation that the host has a very accurate and consistent clock while the ATECC608B-TFLXTLS has part-to-part variability in its internal clock generator due to normal manufacturing and environmental fluctuations.

The bit timings are designed to permit a standard UART running at 230.4 kBaud to transmit and receive the tokens efficiently. Each byte transmitted or received by the UART corresponds to a single bit received or transmitted by the device.

The Wake token is special since it requires an extra long low pulse on the SDA pin, which cannot be confused with the shorter low pulses that occur during a data token (i.e., Zero, One, ZeroOut or OneOut). Devices that are either in the Idle or Sleep mode will ignore all data tokens until they receive a legal Wake token. If the processor is out of synchronization with the ATECC608B-TFLXTLS, it can send an additional Wake token to the device, which will reset the I/O channel hardware on the device.

Note: This may result in the loss of data stored in the command output buffer.