¿Cómo almacenar un ATMEGA para una interrupción de energía de nivel de milisegundos sin un comportamiento extraño?

8

Tengo un ATMEGA328p-pu arduino con un circuito de tira de LED + registro de desplazamiento conectado a través de SPI. Cuando se enciende, aumenta una variable en EEPROM para avanzar el modo de visualización.

  • Tenemos el detector de caída de voltaje configurado en el nivel 1 (2.7V).
  • Hay un condensador de 1500 uf conectado en paralelo a los cables de alimentación para, con suerte, evitar que el arduino cambie de modo en un impacto físico, ya que los terminales de la batería pueden desconectarse ligeramente durante un milisegundo (?) Más o menos.
  • Hay un diodo en el cable positivo de la tapa para evitar que la tapa se descargue en los LED, por lo que solo amortigua el arduino.
  • También hay una resistencia de 1000 ohmios en paralelo a través de la tapa para drenarla, ya que mantenía un voltaje, lo que suponemos que estaba detrás de un problema en el que el chip no iluminaba el circuito LED a veces en el arranque.
  • El arduino pro mini y la tira tienen una potencia de 5v, pero los ejecutamos habitualmente a 3.7V para que puedan alimentarse con una sola celda de iones de litio.

A veces, después de estar sentado durante 10 o 15 segundos, el circuito no se ilumina. A veces, después de desconectar la batería y volver a conectarla varias veces seguidas, se encenderá.

¿Alguien podría recomendar una mejor manera de proporcionar un búfer de energía al ATMEGA (pero no a la tira de LED)? ¿Lo estamos haciendo correctamente en su mayor parte?

Diagrama (lo siento si es desordenado, puedo hacer que mi amigo lo vuelva a hacer en Illustrator si no está claro, solo podría tomar unas horas): Diagrama de circuito

blkmage
fuente
2
¿Puede dibujar un diagrama de circuito de la situación con el AVR, la fuente de alimentación, la resistencia, el condensador, el diodo, ...
Jippie
¿Es la única razón por la que necesita este "búfer" porque los terminales de la batería pueden desconectarse ligeramente si se golpean? Si es así, solo debe quitar el conector y soldar los cables directamente a la placa.
Garrett Fogerlie
Para hacer eco de jippie, ha comenzado con una buena descripción escrita, la adición de un esquema ayudará inmensamente. Si tiene problemas para publicar, hay ayuda disponible.
marcador de posición el
2
Su resistencia de purga es pequeña, consume mucha energía en comparación con las necesidades típicas de espera. Si puede detectar un apagón en el software, configure un programa que "cuente" en la salida UART a partir del apagón y vigílelo mientras extrae la fuente de alimentación y vea cuánto tiempo dura, calculando de nuevo a través de la velocidad en baudios. También tenga cuidado con la posibilidad de alimentar inadvertidamente periféricos a través de líneas de datos.
Chris Stratton
1
Tal vez pueda intentar darle al arduino una salida independiente (serie, sus propios LED discretos) para que pueda hacer una pequeña indicación de depuración de que el arduino se ha reiniciado, a diferencia de su éxito al hablar con la tira de LED. ¿Asumo que la tira de LED ni siquiera tiene un reinicio, distinto de la progresión normal de sus estados cada vez que accede a ella?
Chris Stratton

Respuestas:

3

Puede usar un supercondensador (1F / 5.5v) después del diodo, conectándolo directamente al VCC y GND. Esto te ayudará a amortiguar el poder.

Chetan Bhargava
fuente