¿Hay alguna manera de guardar el estado en una forma de muy baja potencia?

Básicamente, quiero determinar si la alimentación se ha desconectado por completo en un dispositivo de bajo consumo que estoy fabricando y que utiliza un chip Atmega328.

La teoría es que cuando se aplica energía por primera vez, el ATmega se encenderá, calibrará y tomará algunas lecturas y luego se apagará nuevamente. El resto del circuito seguirá estando encendido hasta que el chip se active nuevamente y tome más lecturas. Lo que necesito para poder determinar es si la batería se desconectó o no. Si lo fue, necesito hacer una calibración nuevamente; si no fue así, simplemente tomo una lectura como de costumbre.

¿Hay alguna forma de hacer esto que requiera la menor cantidad de energía posible?

¿El ATmega también perderá potencia? Si es así, probablemente pueda calibrar al reiniciar. Si no, parece que desea monitorear la potencia del resto del circuito. Bien hecho, esto debería consumir muy poca corriente.
Si la potencia de ATMega es independiente del suministro principal, puede usar algunos de los consejos que se dan allí: electronics.stackexchange.com/questions/244335/…
¿Está utilizando Atmega con herramientas nativas o con herramientas Arduino? Eso puede ser importante para su estrategia, porque algunos aspectos de la operación de bajo consumo están habilitados por software.
Sí, el ATmega también perderá potencia. Los otros artículos mencionados son muy interesantes y me tomaré un tiempo para leerlos, gracias.

Respuestas (1)

La alimentación del sistema se desconecta y luego se vuelve a aplicar, el ATmega comenzará desde el vector de reinicio, como de costumbre (debido al reinicio de encendido).

Para que pueda realizar sus rutinas de inicialización en la primera parte de su main()función.

Cuando haya terminado de hacer sus mediciones periódicas, no desconecte la alimentación del ATmega. En su lugar, póngalo en modo de apagado o ahorro de energía a través de las sleepinstrucciones.

ingrese la descripción de la imagen aquí

Esto dibujará menos de 1 m A @25°C. Cuando ocurre la interrupción de activación (por ejemplo, expiración del temporizador, pin externo, etc.), la interrupción se ejecutará y el programa se reiniciará desde la siguiente instrucción sleep. De esta manera puedes evitar cualquier hardware externo.

ingrese la descripción de la imagen aquí

Gracias por esto. Desafortunadamente, no podré usar este método ya que la energía se elimina por completo de la mayor parte del circuito para ahorrar energía. Podría volver a trabajar parte del hardware para poder usar este método, que es algo que voy a considerar, ya que parece la idea más simple.
@SpeedOfSpin: una batería AA con una tasa de autodescarga 40 veces mayor que la corriente de reposo de un Atmega en reposo. Una batería AA también dura 5 años en el estante. ¿Está SEGURO de que necesita guardar el 1 microamperio?