К сожалению, у EEPROM-памяти есть один недостаток: во время работы при пониженном напряжении питания хранящиеся в ней данные могут быть повреждены. Это может произойти по двум причинам:
1. Обычная процедура записи в EEPROM требует некоторого минимального напряжения питания; если напряжение питания ниже этой величины, запись не может быть выполнена.
2. Микроконтроллер сам может выполнять команды некорректно, если напряжение питания будет ниже некоторой величины. Чтобы избежать повреждения данных, хранящихся в EEPROM, достаточно воспользоваться одним из трех следующих решений:
- удерживать микроконтроллер в состоянии сброса все время, пока напряжение питания находится ниже нормы. Это решение реализуется внешней схемой защитного сброса - супервизоора питания. В некоторых моделях семейства AVR уже имеется встроенный детектор пониженного напряжения питания (Brown-out Detector).
- удерживать микроконтроллер в «спящем» режиме (Power Down), пока напряжение питания находится ниже нормы. Поскольку в этом режиме микроконтроллер не может выполнять никаких команд, такое решение эффективно защищает служебные регистры EEPROM от непреднамеренной записи.
- хранить константы во FLASH-памяти программ, если они не должны меняться во время работы программы. Микроконтроллер не может самостояельно производить запись в FLASH-память, соответственно, при напряжении питания ее содержимое не будет повреждено.
Последовательный периферийный интерфейс SPI