Вы написали –
Неясно, нарушение данных происходит в ячейках в пределах всего массива памяти, или в пределах какого-либо объема памяти, или одиночных ячеек?произвольные ячейки EEPROM меняют своё содержимое в процессе работы.
В режиме самопрограммирования памяти данных (EEPROM) в микросхеме 1887ВЕ7Т не выполняется обнуление буфера страницы при первой записи в память данных (EEPROM), что приводит к порче данных в пределах страницы, т.к. память данных имеет постраничную организацию (32 байта) с возможностью изменения как всей страницы, так и побайтно.
Пример: При изменении байта по адресу 0x008, возможно изменение других байтов данных в пределах страницы с адресом 0x000 – 0x01F. При изменении байта по адресу 0x02A, возможно изменение других байтов данных в пределах страницы с адресом 0x020 – 0x03F.
Данное поведение проявляется только при первой записи в память данных. Запись последующих байтов не приведет к порче данных EEPROM.
Для избежания искажения данных необходимо выполнить, так называемую “холостую запись”, т.е. перед первой записью информации в память данных необходимо один раз выполнить запись байта (неважно какими данными) в любую страницу (например, которую вы не используете, допустим, последнюю в массиве памяти данных с адресом 0xFE0 – 0xFFF). Таким образом, при записи байта данных по адресу в пределах данной страницы, порча данных произойдет только в области этой страницы.
Последующие записи будут выполняться корректно в любую область памяти данных.
Независимо от описанной выше ситуации рекомендуется включать монитор питания (BOD) или использовать внешний монитор питания для предотвращения непредсказуемого поведения микроконтроллера вне предельно-допустимого режима работы, которое также может приводить к искажению данных.