¿Cómo implementar un interruptor de alimentación suave controlable por microcontrolador?

16

Quiero diseñar un circuito de modo que el microcontrolador pueda alternar un pin GPIO y apagar todo el sistema (incluido el microcontrolador). Y cuando el usuario presiona un botón momentáneo, la energía vuelve a subir.

es posible?

cksa361
fuente

Respuestas:

11

texto alternativo

Este ejemplo usa un regulador elevador Maxim MAX1835 , pero también podría aplicarse a otros que tienen un pin de apagado.

El circuito normalmente está apagado. Cuando el usuario presiona el botón, la batería se alimenta al pin -SHDN, habilitando el regulador y encendiendo los 3.3V al microcontrolador. Luego, el microcontrolador coloca un 1 lógico en el cable de ENCENDIDO, manteniendo el encendido después de que el usuario suelta el botón. Cuando el microcontrolador quiere apagarse, establece el cable de ENCENDIDO en 0.

tcrosley
fuente
2
Muy importante, creo, es renunciar a ese cambio.
Kortuk
2
@ Kortuk, buen punto. Supuse que el micro se encendería lo suficientemente rápido como para anular el interruptor antes del primer rebote, suponiendo que conducir el pin alto era lo primero que hizo el micro. Si ese no es el caso, se podría agregar un condensador en el cable -SHDN para crear una constante de tiempo para el encendido (aunque esto también introduciría un ligero retraso en el apagado). El 10 nF probablemente deba dejarse para la supresión de ruido (se incluyó en un esquema de muestra de la hoja de datos). O se podría agregar un circuito RC adicional solo para el interruptor.
tcrosley
He visto algunos rebotes locos en los interruptores antes.
Kortuk
Un problema mayor que el rebote del interruptor es el comportamiento del procesador durante el apagado. En particular, puede ser bueno asegurarse de que el procesador solo pueda encender el suministro cuando su VDD esté por encima del punto donde se garantiza el funcionamiento correcto. Tuve que ajustar algunos circuitos de apagado automático que ocasionalmente fallaban como consecuencia de que el procesador ejecutara un código aleatorio cuando el VDD caía por debajo del voltaje de operación válido. El código aleatorio podría establecer la salida de "encendido" alta, lo que a su vez volvería a encender el dispositivo, ejecutando el código en una dirección aleatoria.
supercat
1

Una forma de hacerlo es ingresar al modo de suspensión profunda en el microcontrolador.

Muchos microcontroladores admiten ser despertados por una interrupción externa, como un borde en un pin IO.

Toby Jaffey
fuente
entonces también obtendría el consumo de corriente de reposo de la fuente de alimentación del regulador a la micro derecha?
cksa361
Si. Lo harías.
Toby Jaffey
@ cksa361, algunos micros son nano o micro amplificadores. Uso el MSP430 y lo mantenemos alrededor de 3-5 microamperios.
Kortuk
0

Sí, esto es ciertamente posible, pero la forma de lograrlo depende del tipo de carga que va a encender y apagar.

Probablemente sea tan simple como usar un relé conectado al PIN de salida del microcontrolador (a través de un transistor y un diodo de protección), y un interruptor de botón conectado a un pin configurado como entrada.

Aquí hay un diagrama de circuito de ejemplo simple: esquema del relé controlado por un microcontrolador

Cuando use un interruptor de botón momentáneo, tenga cuidado de no rebotar , sin embargo, deberá implementar un retraso en su código de microcontrolador para asegurarse de verificar el estado del botón durante un período de tiempo (por ejemplo, 1 ms) antes de cambiar su relé de nuevo en. Si no lo hace, entonces el microcontrolador puede captar múltiples señales y cambiar su relé varias veces en muy poco tiempo, y verá que su botón funciona de manera intermitente.

ACTUALIZACIÓN Acabo de ver tu edición sobre apagar el microcontrolador también. ¿Puedes dar más información sobre lo que realmente estás tratando de hacer? Es difícil responder a su pregunta sin comprender todo el sistema.

Si también desea apagar el microcontrolador, necesitaría alguna forma de devolver la energía al microcontrolador. Tal vez podría usar el relé para alimentar todo, incluido el microcontrolador, de esa manera el microcontrolador puede apagarse, pero no volver a encenderse. Luego, su botón podría conectarse a través de su interruptor de relé, para acortarlo efectivamente y darle tiempo suficiente para encender y mantener el relé abierto.

BG100
fuente