Detección de pérdida de energía en un microcontrolador para guardar contexto

Estoy tratando de detectar una pérdida repentina de energía en mi microcontrolador para guardar su estado antes de que muera la MCU. He estado pensando en utilizar uno de mis pines GPIO para detectar el voltaje de suministro y usar un condensador grande (con un diodo para detener la alimentación inversa en el GPIO) para obtener suficiente tiempo para guardar el estado. A continuación se muestra mi solución propuesta.

esquemático

simular este circuito : esquema creado con CircuitLab

Nota: mi voltaje de caída de tensión es de 2,1 V y el voltaje de caída de tensión es de 1,67 V. He mostrado una carga en la sección de 5V para representar algunos relés y LED que funcionan con 5V (no estoy seguro de si esto es relevante). También se requieren 10uF y 22uF para AMS1117 y 100nF es un condensador de desacoplamiento.

mis preguntas son

  • ¿Es este el mejor enfoque para tales casos?
  • ¿Será mejor usar pines ADC en lugar de GPIO?
  • ¿Es IN4007 el diodo correcto para detener la alimentación inversa (3,3 V, la carga máxima es de 470 mA)?
  • ¿Alguna otra sugerencia/mejora en el circuito?
¿Dónde encontraste un condensador de 2 kilofaradios?
@Finbarr Gracias por señalarlo. lo tengo corregido.
No estoy seguro de qué tan grande es el límite que tiene, pero la única forma en que pude hacer que esto funcionara hace un tiempo fue con un límite en 12v, un dólar en 3.3v y un divisor que lleva el 12v a 3v en la entrada analógica. Cuando el A0 cayó por debajo de 2.7, escribí unos 32 bytes en SPIFFS con un 90 % de éxito. Si desea activar y desactivar wifi, necesita un límite más grande que mi 3300. He tenido la intención de volver a intentarlo con límites de 5v 4f, pero aún no lo he hecho.
Tenga en cuenta que muchas MCU (al menos las Atmel que conozco) ya proporcionan un detector de caída de tensión.

Respuestas (1)

La hoja de datos de AMS1117 muestra que tiene un voltaje de caída de 1,3 V máx. sobre el voltaje de salida.
Como indicador de falla de energía, debe detectar cuando el suministro de 5 V cae a 4,3 V o menos. Después de este punto, su salida AMS1117 puede comenzar a disminuir. No ha especificado el voltaje de caída de voltaje en su MCU y desea asegurarse de tener tiempo para guardar el estado antes de este voltaje.

Sugeriría que configure el mecanismo de detección a un voltaje más alto en el suministro de 5 V, ya que probablemente esté claramente fuera de especificación en cualquier valor por debajo de 4.7 V.

Aumentar la capacitancia en el suministro de 3,3 V o 5 V puede proporcionar tiempo extra, pero poner un diodo en serie con el AMS1117 sería una mala idea, ya que simplemente reduce los 3,3 V suministrados a la MCU.

Mi sugerencia sería usar un detector de caída de voltaje como el TC54VX42 o 43 con un divisor externo del suministro de 5 V para establecer su umbral de detección. Le muestran en la hoja de datos exactamente cómo configurarlo:ingrese la descripción de la imagen aquí

Si desea agregar capacitancia adicional para brindar un tiempo de respuesta adicional, agréguelo al suministro de 5 V o al suministro de entrada no regulada... no al suministro AMS1117.

Ahora he agregado mi voltaje de apagón (2.1V) y apagón (1.67V) a mi pregunta. Tengo algo de carga en mi lado de 5V y sin un diodo, ¿no los alimentaría el capacitor durante la falla de energía? Mi suposición era que el diodo bloqueará esto y la carga del capacitor estará disponible solo para mi MCU. De esta manera, pensé que podría hacer el condensador más pequeño. También me resulta difícil obtener TC54, por lo tanto, ¿puede recomendar algo con componentes comunes?
Hay literalmente miles para elegir en la categoría de supervisores PMIC en Digikey: digikey.com/products/en/integrated-circuits-ics/… ...no debería tener problemas para encontrar una solución adecuada.
¿Qué tal el diodo? Espero que detectar el voltaje antes del diodo sea mejor ya que aísla el capacitor.