Below, is the info and a link for low frequency idle i2c issues. We use multiple devices (ATECC508A, PIC16, ESP8266) on the same I2C bus with Mongoose OS at a 100khz frequency (ESP8266 is master with OS). We saw recently in some upgrade notes that for the ATECC508A and ATECC608A, there is a potential issue that can cause the crypto chip to send corrupted data to other devices in idle mode. This has been corrected with the ATECC608B, but we have some prototype devices built using the 508A/608A.
I understand this may be more of a hardware issue, but is this issue mitigated in anyway using Mongoose OS (I ask because some custom fixes were done with Crypto library)? We have been able to replicate the issue implementing an Arduino library and we did see some corruption appear as expected with the 508A. But, we haven’t seen it fail yet with Mongoose OS and we are worried this is a really big issue. Thank you in advance for any info regarding this that you can give.
1.2.3 Low Frequency I2C Idle Issue
The ATECC508A has an error in the I2C circuitry, where the device may respond incorrectly under the following conditions:
• Multiple I2C devices are on the same bus as the ATECC508A.
• The ATECC508A device is in Idle mode.
• The I2C frequency of operation is ≤ 300 kHz.
• A data pattern from other devices on the I2C bus could be interpreted by the ATECC508A as a wake pulse.
Under the above conditions, the ATECC508A wakes up and may corrupt data being sent to other devices on the bus.
Whether or not data are corrupted depends on the frequency of operation and the actual data being sent.
This issue has been corrected for the ATECC608B device by modifying the I2C circuitry to eliminate this issue. Note
that the ATECC608B may still wake up at low frequencies but it will not respond or cause data corruption.