Есть ли способ сохранить состояние с очень низким энергопотреблением?

В основном я хочу определить, было ли полностью отключено питание в маломощном устройстве, которое я делаю, в котором используется чип Atmega328.

Теория заключается в том, что при первом подаче питания ATmega включится, откалибрует и возьмет некоторые показания, а затем снова отключится. Остальная часть схемы по-прежнему будет получать питание до тех пор, пока микросхема снова не проснется и не начнет считывать данные. Мне нужно определить, была ли батарея отключена или нет. Если это так, мне нужно снова сделать калибровку; если это не так, то я просто воспринимаю показания как обычно.

Есть ли способ сделать это, который потребляет как можно меньше энергии?

Будет ли ATmega терять мощность? Если это так, вы, вероятно, можете просто откалибровать при сбросе. Если нет, похоже, вы хотите контролировать мощность остальной части схемы. Если все сделано правильно, это должно потреблять очень мало тока.
Если питание ATMega не зависит от основного источника питания, вы можете воспользоваться некоторыми подсказками, приведенными здесь: electronics.stackexchange.com/questions/244335/…
Вы используете Atmega с собственными инструментами или с инструментами Arduino? Это может быть важно для вашей стратегии, потому что некоторые аспекты работы с низким энергопотреблением поддерживаются программным обеспечением.
Да, ATmega также потеряет мощность. Другие упомянутые статьи очень интересны, и мне потребуется некоторое время, чтобы просмотреть их, спасибо.

Ответы (1)

Питание системы отключается, а затем снова подается, ATmega запускается с вектора сброса, как обычно (из-за сброса при включении).

Таким образом, вы можете выполнять процедуры инициализации в самой первой части вашей main()функции.

По окончании периодических измерений не отключайте питание ATmega. Вместо этого по инструкции переведите его в режим пониженного энергопотребления или энергосбережения sleep.

введите описание изображения здесь

Это потянет меньше, чем 1 мю А при 25°С. Когда происходит прерывание пробуждения (например, истечение времени таймера, внешний вывод и т. д.), прерывание будет выполнено, и программа перезапустится с инструкции, которая следует за ним sleep. Таким образом, вы можете избежать любого внешнего оборудования.

введите описание изображения здесь

Спасибо тебе за это. К сожалению, я не смогу использовать этот метод, так как питание полностью отключено от большей части схемы для экономии энергии. Я мог бы переработать часть оборудования, чтобы использовать этот метод, который я собираюсь рассмотреть, поскольку он кажется самой простой идеей.
@SpeedOfSpin: батарея AA со скоростью саморазряда в 40 раз выше, чем ток сна Atmega в спящем режиме. Батареи AA также хватает на 5 лет на полке. Вы УВЕРЕНЫ, что вам нужно сохранить 1 микроампер?