Estoy construyendo un dispositivo simple con un microcontrolador y me gustaría poder encenderlo y apagarlo con el truco "mantener presionado un pulsador durante 2 segundos" que se encuentra en muchos dispositivos de consumo en la actualidad (auriculares bluetooth , USB powerbank, smartphone .. vienen a la mente). Esta característica parece llamarse "enclavamiento de potencia suave", pero todos los esquemas que puedo encontrar para implementarla tienen inconvenientes que los hacen poco prácticos para dicha aplicación, como:
- excesivamente complicados, demasiados componentes para una PCB pequeña como la que se encuentra en un auricular manos libres Bluetooth
- comportamiento a veces errático en algunos casos de uso en el límite, como un pico del dibujo actual
- necesita dos botones separados para activar y desactivar, o actuar como respuesta inmediata y no permitir un retraso de 2 segundos.
- se consume una cantidad no despreciable de corriente en el estado activado o desactivado, o en ambos.
Pensé que tal característica se encontraría fácilmente implementada en un IC pequeño para tales aplicaciones, por ejemplo, una con una entrada desplegada para el pulsador, una resistencia / capacitor externo para configurar el retraso y una salida de drenaje abierto para controlar un transistor de paso o un pin EN. También sería necesario en mi caso un pin de entrada claro para permitir el cierre del software, una forma de poder usar el botón pulsador del microcontrolador como una entrada del usuario y una forma de detectar un cierre inminente para realizar una rutina de limpieza. Sin embargo, no consigo encontrar ese chip (dado que es posible que no esté usando las palabras clave adecuadas). Lo más cercano que he encontrado es el MAX16054 pero es un poco caro para dicha función y no lo hace. permita la demora de retención de 2 segundos (agregar un capacitor al lado del botón parece un poco complicado porque dependería del voltaje de activación del pin IN).
Por lo tanto, he imaginado un circuito más simple / más pequeño / más barato que parece cumplir con todos los requisitos, pero me gustaría tener una opinión externa al respecto, porque no parece correcto que no pueda encontrar algo similar. documentado en cualquier lugar para una característica tan útil y extendida:
Funcionaasí:
- elENdelLDOesbajadoporR3yelQ1espuestoenestadodebloqueoporelR2,loquegarantizaqueelLDOestédesactivadodeformapredeterminada
- cuandosepresionaelbotónQ1seretiralarejilladelQ1,loquelahaceconductorayjalalaENalta,queenciendeelmicrocontrolador
- laMCUesperadossegundosyluegomuestraunestadobajoensuPIN0parahabilitarpermanentementeelLDOinclusosisesueltaelbotón,loquepermiteelcomportamientoderetardo(sisesueltaelbotónantesdelretraso,nohayenclavamiento:elLDOsedesactivainmediatamente)
- elvoltajeatravésdelbotóneselevadonuevamenteporR1yseindependizadelareddeQ1porD1,loquepermitequeMCUlouseatravésdePIN1
- elsoftwareesresponsabledeimplementarelcomportamientodeapagadosegúnserequierealleerelPIN1yliberarelPIN0paraqueseapagueporsísolodespuésderealizarlalimpiezarequerida
Porlotanto,mispreguntasson:
- ¿Funcionaríaestecircuitoyhayinconvenientesenlosquenoestoypensando?
- ¿PorquéestetipodeICsimpleyútilnoexisteycómoseimplementaenlosdispositivosdelosconsumidores?(o,alternativamente,¿soymaloenlabúsqueda?)
Editar:elcircuitoanteriornofuncionaráporquelosdiodosESDenelmicrocontroladortirarándelaslíneasbajascuandoelLDOestédesactivado(graciasa@ElliotAldersonporseñalarlo).Aquíhayunaversiónactualizadaquedeberíasolucionarelproblema: