¿Cómo mejorar este circuito de encendido / apagado?

2

Estoy trabajando en un pequeño dispositivo para teléfonos móviles y estoy tratando de implementar un botón de encendido táctil momentáneo que se puede controlar desde la MCU (presione para encender, presione nuevamente para apagar). Me cuesta encontrar un circuito sencillo y elegante para esto. Este está casi allí, pero no se puede usar para apagar el gadget sin un interruptor de doble polo.

PWR_ENABLEesunaseñalaltaactivaqueenciendelaMCU.

Cuandolaalimentaciónestáapagada,PWR_ENABLEsebajacuandoQ20sehabilita(R32mantienealtalacompuertadeQ20,lacompuertadeQ19esbajaporquelaMCUnotienealimentación).CuandosepresionaelbotónSW4,Q20sedesactiva,loquepermitequePWR_ENABLEseaelevado.TanprontocomoaparecelaMCU,seestableceelpinPOWER_HOLDenalto,loquemantienelacompuertadelQ20puestaatierra.Paraapagarlaalimentación,laMCUestablecePOWER_HOLDbajo,lacompuertadelQ20vuelveaestaralta,alponerPWR_ENABLEbajo,laalimentaciónseapaga.

Todoestoestábien,sinembargo,megustaríapermitirqueelusuarioapagueeldispositivoconunapulsaciónlargaenSW4.LomejorseríaunaseñaldeSW4paraquelaMCUpuedahacerelmantenimientoantesdeapagarse.ElproblemaesquelacompuertadelQ20estáaunpotencialdetierracuandolaalimentaciónestáencendida,porloquenopuedosimplementedevolverunaseñaldirectamentedesdeSW4.

EnestadoDESACTIVADO,unapresióndebepresionarPWR_ENABLEalto.EnestadoON,unapulsaciónNOdebetirarPWR_ENABLEbajo,sinoquedebeactivarlaMCU,queasuveztiraPWR_ENABLEbajo(despuésdeguardarlaconfiguración,etc.).

Heideadoelcircuitoacontinuación,peroparecedemasiadocomplicado.¿Alguienpuedeverunamaneraelegantedesimplificar?ElobjetivoesdevolverunaseñalalaMCUdequeelusuariosolicitaunapagado.

    
pregunta morten

5 respuestas

3

Creo que esto se puede hacer con solo un par de diodos y una resistencia.

Al presionar el botón con la alimentación apagada se habilita PWR_ENABLE para encender el micro (o fuente de alimentación o lo que sea). El micro afirma POWER_HOLD para mantener el poder encendido. El micro luego monitorea PWR_DOWN_REQUEST para ver cuando el usuario ha presionado el botón nuevamente. Si VBATT está por encima del nivel que se puede alimentar a una entrada del micro, se puede agregar un divisor de voltaje.

    
respondido por el tcrosley
1

No lo he intentado ni lo he simulado, pero parece correcto.
 Esto proporciona un empuje corto, un empuje largo.
 Otra mirada después de haberlo publicado sugiere que tal vez un resistor de valor muy alto (por ejemplo, rango 1M - 10M) de C1 + a V + puede ayudar a establecer condiciones iniciales, pero probablemente no sea necesario.

No se muestra el control del procesador, pero se puede agregar fácilmente tocando los puntos correspondientes según sea necesario.

Q1 / Q2 y R1 / R2 forman un cierre SCR clásico.
 Inicialmente, Q1 y Q2 están desactivados.
 El cierre de PB1 enciende momentáneamente Q1 a través de R2, que gira en Q2 a través de R1 que habilita el pestillo Q1 / Q2.  Al liberar PB1 las hojas Q1 / Q2 están enganchadas.

C1 comienza a asumir la carga, ya sea a través de Q1-be R2 D1 o vía R4, no se muestra como se muestra arriba.

Cuando PB1 se cierra brevemente, C1 comienza a descargarse a través de R3, pero siempre y cuando la constante de tiempo R3.C1 sea prolongada, PB1 a la hora C1 permanece cargada.

Una pulsación larga de PB1 descarga C1 a través de R3 desactivando Q2 a través de Shottky D2.
 R3 debe ser mucho más pequeño que R1 para que la base de Q2 esté adecuadamente conectada a tierra a través de D1. Esto es totalmente factible siempre que los requisitos del circuito sean conocidos y diseñados para.

Con Q2 apagado, la liberación de PB1 recarga C1. La corriente de recarga debe ser lo suficientemente pequeña como para no reactivar el Q1 a través de R2.

En general, sería necesario diseñar para cumplir con varios requisitos de alta o baja unidad, pero debería ser factible. Añadir un transistor más en la ruta de tiempo probablemente facilitaría el esfuerzo de diseño.

Yee ha !! :-)

Sólo pensé en esto.
 Algo arcano.   Diagrama más tarde tal vez.

Dos bipolares NPN.
 Ambos tienen resistencias colectoras a V +.
 Bothe tiene resistencias de base desde su propia base hasta el colector opuesto.
 = pestillo clásico de acoplamiento cruzado.

Ahora el extra - probablemente inventado hace 50 años :-).
 Nombra un transistor Q1.  Condensador C1 -ve extremo a tierra.  Resistencia R1 del colector Q1 a C1 +  PB1 desde C1 + a base Q1.

Operación:
 Pulsaciones cortas en PB1 activarán el bloqueo.
 La operación puede hacerse sincronizándose el tiempo con el pensamiento.  Tenga en cuenta que como se describe anteriormente, una pulsación larga puede poner el sistema en oscilación.  El resistor R1 en serie con PB1 puede ser deseable para aumentar la descarga en Q1_b.

Cuando Q1 está en su colector es bajo, C1 se carga a bajo.
 La base Q1 es alta (ya que está encendida).
 Al presionar PB1 se conecta el nivel bajo a la base Q1, de modo que Q1 se desactiva.
 Latch alterna.

Cuando Q1 está desactivado, su colector es alto.
 La base Q1 es baja.
 C1 carga al recolector Q1 = alto.
 Al presionar PB1 se conecta la base alta a Q1 para encenderlo.
 Latch alterna

QED

El tiempo de presión de PB1 debe ser inferior a la constante de tiempo R1.C1.
 El siguiente cambio no se producirá hasta que > R1.C1 constante de tiempo.

    
respondido por el Russell McMahon
1

Dice que quiere un botón que se pueda "controlar desde la MCU", pero otras partes de su pregunta parecen estar preguntando sobre el encendido / apagado de un botón momentáneo. Asumiré que la primera es solo una mala redacción de preguntas e incluso una corrección peor, y responderé a la última.

Es posible hacer un cambio de activación / desactivación con electrónica discreta, pero es bastante complicado. Uno de los problemas es el botón de rebote. Dado que un botón se activa / desactiva muchas veces al presionar una sola vez, el resultado final puede ser indeterminado. Esto significa que necesita agregar algo de tiempo, lo que lo hace aún más complejo.

Hoy en día, la respuesta mucho más fácil es dejar el microcontrolador encendido todo el tiempo pero apagarlo. Los micros ahora están disponibles con 1 µA y menos corriente de retención. Eso es "off" para los propósitos más prácticos. La ventaja es que se pueden despertar rápidamente presionando un botón. Luego, el micro puede hacer el rebote y activarse o desactivarse según lo apropiado. Incluso si solo quieres un botón de encendido / apagado, un micro pequeño es la forma más sencilla de hacerlo de manera confiable.

    
respondido por el Olin Lathrop
1

Creo que podría usar un restablecimiento de conjunto CMOS biestable con entradas altas activas (puede ser la mitad de un chip de 74HC adecuado). Resistencias desplegables en ambas entradas. Una de las entradas puede hacerse alta mediante el cambio a la alimentación eléctrica, y también se ingresa al microcontrolador. La otra entrada puede ser elevada por el microcontrolador para desactivar la alimentación. El biestable es alimentado directamente por la batería, pero su consumo debería ser mínimo.

Tenga en cuenta que las entradas deben ser bajas en reposo para evitar alimentar el microcontrolador a través de los diodos de protección de entrada.

    
respondido por el Wouter van Ooijen
1

Mi recomendación sería tener el botón "encendido" en el mismo transistor que el procesador, y usar el mismo pin de procesador para las funciones "mantener encendido" y "sentido de botón". Cuando el procesador desea que la unidad permanezca encendida, debe conducir el pin alto el 99% del tiempo; sin embargo, ocasionalmente puede hacer flotar el pasador muy brevemente para verificar si se está presionando el botón. Si no le importa la posibilidad de alimentar una pequeña cantidad de corriente por encima del riel en el pin de la CPU, debería poder sobrevivir con cuatro resistencias y dos MOSFET. Si desea evitar cualquier posibilidad de corriente por encima del riel, un diodo Zener podría ser la forma más sencilla de hacerlo.

Una cosa a tener en cuenta, por cierto, es garantizar que un "alto" de la CPU solo pueda encender el circuito cuando la tensión de la CPU esté por encima de su especificación operativa mínima. De lo contrario, es posible que la CPU ejecute un código arbitrario tan pronto como su voltaje caiga por debajo de su especificación de operación, y que ese código arbitrario intente volver a encender el circuito. El problema me ha mordido en el pasado, pero se puede evitar asegurándome de que la relación de resistencia entre la resistencia desplegable en la compuerta NFET y la resistencia en serie proveniente del pin de la CPU sea tal que la compuerta no gane. No se enciende a menos que la CPU esté emitiendo un voltaje "alto" muy bueno.

    
respondido por el supercat

Lea otras preguntas en las etiquetas