SmarTrunk писал(а):От момента окончания записи в EEPROM (при еще нормальном напряжении питания) до момента уменьшения напряжения питания до нуля, что надо делать
Если была запущена запись в EEPROM, значит питание на входе стабилизатора опустилось. Всё выключаем, записываем данные и ждем восстановления сигнала детектора питания. Если не дождались (сбросились BOD-ом), то стартуем, как обычно. Если же питание восстановилось, и BOD не срабатывал, включаем, что надо, и продолжаем работать.
SmarTrunk писал(а):к сожалению, встроенной системы BOD не достаточно
Не было достаточно внутренней схемы сброса у ранних кристаллов, которые не имели BOD (например, AT90S2313). Хоть там тоже имелся некий порог для формирование сигнала RESET, но он был неправильным. В новых кристаллах, где есть BOD, его вполне достаточно. По крайней мере, в моей практике не был ослучаев порчи EEPROM у AVR, работающих с внутренним BOD. Скажу больше, внешний BOD может быть даже вреден. Сталкивался со следующим: внешний BOD был неудачно разведен на плате (далеко от процессора). При коммутации мощной нагрузки помехи попадали на линию RESET, что иногда приводило к порче FLASH (памяти программ). Вероятно, процессор входил в режим последовательного программирования. Проблема решилась установкой внешнего BOD рядом с корпусом процессора. Были и другие проблемы с внешним BOD, когда он чувствовал короткие помехи на линии питания, решилось установкой конденсатора 0.1 мкФ прямо на выводы питания внешнего BOD. Скорее, надежность хранения данных в EEPROM связана с правильной разводкой платы, особенно в части тактового генератора и блокировки и фильтрации питания.