botón de arranque de arduino y modo de apagado en el regulador

0

Tenemos un proyecto con un importante problema de autonomía. Utilizamos un arduino casero (atmega328), y por el momento estamos utilizando interrupciones en los botones para despertar la atmega.

así que tenemos: dormir - > (botón presionado) - > Estela - > (identificación RFID del usuario) - > (Comunicaciones RF) - > dormir.

Hemos optimizado el consumo total con suspensión avanzada, módulos aislados de la corriente con transistores, etc.

Me preguntaba si podríamos usar un regulador de voltaje con un pin de apagado y unir un botón y un pin de la atmósfera con él.

Tendríamos este ciclo: cierre - > (botón presionado) - > pin de cierre ALTO - > atmega es alimentado - > el pin de apagado de ajuste de atmósfera HIGH durante la configuración de boceto - > identificación RFID del usuario) - > (Comunicaciones RF) - > perno de cierre del conjunto de atmega LOW - > parada

Obtienes el esquema aquí: Entonces, para resumir: necesito el botón durante mi boceto, así que cuando se presiona y se coloca el pin alto en el regulador, lo primero que hace el arduino es mantenerlo alto con su pin 4. Además, restaura la configuración de pull-up del botón volviéndolo a conectar a tierra a través del transistor npn. Cuando arduino se apaga, el botón está vinculado a VIN ya que npn hace una función NOT con el estado de arduino (ALTO o BAJO).

¿Crees que podría funcionar? Si algo no está claro, no dudes en decirme :-)

¡Muchas gracias!

    
pregunta hachpai

1 respuesta

0

Lamentablemente, no puedo abrir tu esquema, pero tengo una mejora que definitivamente hará que esto funcione.

Echa un vistazo a esto:

simular este circuito : esquema creado usando CircuitLab

donde:

  • reg_shdwn es el pin de apagado del regulador
  • atm_wake_me es el pin que usas para activar ATMega
  • atm_keep_on es el pin que usaría para mantener el regulador en

Cuando se presiona SW1, los tres pines se ponen altos, C1 se cobra a \ $ V_ {cc} \ $ y el micro se enciende. Sin embargo, si el usuario suelta el botón, ATMega logró elevar atm_keep_on high, pero el sistema no se apaga, ya que el capacitor necesitará algún tiempo para descargar a través de R1. Debe dimensionar R1 y C1 para tener una constante de tiempo \ $ \ tau \ $ que le permita a su micro el tiempo que necesita para jalar el pin alto.

La desventaja es que disipa algo de potencia a través de R1 cuando el sistema está encendido, pero, por supuesto, la resistencia puede dimensionarse para minimizar esta potencia, mientras que sigue siendo más pequeña que la resistencia de entrada del arduino y el pin reg_shdwn.

Como, por supuesto, \ $ \ tau = RC \ $ podemos hacer un cálculo de ejemplo para ayudarlo. Yo diría que para R1 debería elegir algo en el rango \ $ 100 \ $ k \ $ \ Omega \ $, digamos \ $ R1 = 470 \ $ k \ $ \ Omega \ $. \ $ \ tau \ $ puede ser de \ $ 100 \ $ us, es decir, 100 ciclos de reloj a 1MHz. Esto lleva a \ $ C \ approx22 \ $ nF, un valor perfectamente razonable.

Como nota al margen, una resistencia \ $ 470 \ $ k \ $ \ Omega \ $ disiparía alrededor de 23uW si \ $ V_ {cc} = 3.3 \ $ V.

    
respondido por el Vladimir Cravero

Lea otras preguntas en las etiquetas