Implementando el encendido / apagado a través de los pines gpio para mcu mientras se afirma durante unos segundos

1

Me gustaría saber cómo se puede diseñar un sistema de encendido / apagado para un dispositivo con batería con entradas GPIO que tenga las siguientes características:

  • Cuando la MCU está apagada, al presionar y mantener presionado un interruptor durante 4 segundos, solo debería activarlo
  • Este interruptor debe poder utilizarse como un pin de entrada GPIO para el mcu después de que se encienda
  • Al presionar y mantener presionado nuevamente el mismo interruptor durante 4 segundos, el sistema debe apagarse ya sea cortando la fuente de alimentación o controlando una señal de apagado al regulador.

La última parte se puede hacer fácilmente ejecutando un temporizador en el mcu y verifique la duración de la presión cada vez que se genere una interrupción, y luego confirme la señal de apagado del regulador de voltaje cuando esté listo. Pero no recibo ideas durante 4 segundos, y al mismo tiempo puedo usarlas como GPIO después de encenderlas. Una pulsación corta posterior en este interruptor no debe apagar el sistema. ¿Algún pensamiento?

    
pregunta Jay Aurabind

1 respuesta

1

Podrías hacerlo con algunos pasivos, un flip-flop y un disparador de schmitt, algo así:

Cuandoelinterruptorestácerrado,elcondensadorsecargalentamente.Cuandosealcanzaelvoltajedeentradadetransicióndealtoniveldeldisparadordeschmitt(aquíen~4s),lasalidadelbúferdedisparodeschmitt(puedeusarSN74xx1G17)aumenta,activandoelrelojdelflip-flop(puedeusarSN74xx1G74),queluegocambiasusalida.TengaencuentaqueelflipflopDestáconfiguradoconlasalidainversoraconectadaasuentradaD,porloquecambiadeestadoencadaflancoascendentedelreloj.

Cuandosesueltaelbotón,elcondensadorsedescarga(tardaunpocomásqueeltiempodecargadebidoalR2)yluegopuedepresionardenuevoparadesactivarlasalida.

Pararesumir,aquí,cadavezquepresionaelbotóndurantemásde4segundos,lasalida"PWREN OUT" se activará (esto puede activar directamente la entrada de habilitación de un regulador), y usted Todavía podré detectar pulsaciones más cortas de los botones de la MCU con la salida "SW OUT" .

La ventaja de esta solución es que no involucra el software en absoluto. Entonces, si hay un error en algún lugar y la MCU se cuelga, todavía puedes apagarlo.

Tenga en cuenta, sin embargo, que si la MCU está apagada, la aplicación de un voltaje en el GPIO ("SW OUT" es alto porque se presiona el botón) puede dañarlo. Verifique las clasificaciones de MCU en la hoja de datos. Para resolver esto, puede poner una resistencia de alto valor (100k o menos) en serie con la línea "SW OUT" (y finalmente un diodo que sujetará cualquier voltaje más alto que el voltaje de suministro de la MCU, pero la MCU probablemente tenga tal diodos incorporados).

    
respondido por el dim

Lea otras preguntas en las etiquetas