2 ATECC608C Migration
The ATECC608C has the same form, fit and function as the ATECC608B. The packages and pinouts are the same, the device structure is the same and so are the commands and command structure. This makes the ATECC608C a functional drop-in replacement of the ATECC608B. If the users implement their design utilizing the Microchip CryptoAuthLib (CAL), this further simplifies the migration process.
If a previous design implemented special measures to avoid or recover from the cold temp lockup issue, these may be removed as a way to simplify the firmware. Removing them, however, is not required and the device operation will not be harmed by leaving these measures in place.
An additional factor that has to be considered is the timing differences between the ATECC608B and the ATECC608C for a specific design. This really depends on how the software was implemented. There are two cases that require consideration:
Fixed Timing Implementation
If the code is written assuming hardwired timing parameters, an analysis must be undertaken to evaluate the impact of changing from the ATECC608B to the ATECC608C. Under this method, after a command is issued, the microcontroller will wait a fixed period of time before reading the response data back. If the delay required is greater than what is required by the ATECC608C, the command may fail. The timing implemented in the CAL library is broad enough to accommodate worst case conditions and are conservative to the worst case timing values. As noted in 1 Device Differences, the timing changes of the ATECC608C and ATECC608B are minor. Also, these are representative times for the specific command modes, and there are other items (as noted in the data sheet) that could cause these values to step out further.
- Migrate the code to use the latest version of the CryptoAuthLib library.
- Migrate the code to use polled timing. See the Polled Timing Implementation section below.
- If a custom library with fixed timing is used, update the library timing parameters needed for the ATECC608C.
- Implement redundancy by trying to read back data a second time upon receiving a failure code that indicates the response was not yet ready.
Polled Timing Implementation
Polled timing is set as the default mode of operation when using the CryptoAuthLib library. If the code is written using polling, there will be no issues with migrating to the ATECC608C. In this scenario, the microcontroller would poll the ATECC608C to determine when data are available to be read. Minor timing differences would be absorbed by the polling command. These differences can be fully absorbed by the ATECC608C device because none of the execution times of the commands have stepped out significantly.