Oh bueno, una recompensa! Finalmente elegí este circuito de aspecto no horrible que todavía oscila con el voltaje de la batería, ¡pero estable con el voltaje de la batería por encima! Es probable que el voltaje de la batería sea de 4.5V máximo con ácido de plomo, que es el límite inferior de la especificación USB.
El problema no es la tensión de red, que puede no ser estable. Puede ser inestable por solo un instante y no es un problema. Si es realmente inestable o está fuera de especificaciones, reemplace la verruga de la pared. Puede haber muchas cosas mal con una verruga de pared que no puede mantener el voltaje. No quisiera confiar en él para alimentar microcontroladores.
El verdadero problema es el voltaje de la batería que debe cortarse una vez que cae demasiado bajo para evitar dañar permanentemente la batería. Ajuste las resistencias al gusto. El circuito es menos costoso que antes y más confiable. Schottky es mi amigo, ¡ya no me importa! Me ahorró mucho dolor de cabeza. De todos modos, el circuito que funciona con la batería debe poder funcionar a una temperatura muy inferior a 4,7 V.
PD: No me gustan las soluciones de un solo chip, juegan duro para llegar a mi lado del planeta. Además, no puedo fumarlos de ninguna manera ...
ACTUALIZACIÓN :
Aquí hay un esquema de aspecto mucho más elegante (no horrible). Como Dorian y otros han señalado, el TL431 requiere una corriente mínima para funcionar. Entonces, requiere una fuente de voltaje confiable para operar. Lo que significa que tiene que funcionar desde la batería. El TL431 realmente tiene que actuar como un comparador, de lo contrario los mosfets estarán en modo lineal y comenzarán a calentarse. El voltaje de la compuerta se acerca mucho al voltaje fuente de U2 debido a la tensión de red que entra. Esta es la causa real de las oscilaciones anteriores, no la violación de la hoja de datos del tl431. Las oscilaciones ocurrirán incluso si el tl431 se elimina por completo. El hecho de que los mosfets sean de nivel lógico tampoco ayuda. Para el circuito a continuación, los mosfets han sido reemplazados por mosfets de canal N. Sin embargo, esto provoca una caída de voltaje en la fuente cuando está completamente encendido. El voltaje a cargar varía de 2. 8V a 4.7V y el circuito funciona perfectamente sin oscilaciones. Es posible cambiar la posición de R6 y el tl431, pero luego el ánodo tl431 solo subirá a 2.5V, y los mosfets (ahora reemplazados nuevamente por mosfets del canal P) siempre permanecerán encendidos.
Pero entonces, dado que el tl431 se está utilizando como un comparador de todos modos, y también requiere una corriente de suministro para funcionar, ¿por qué no reemplazarlo por un comparador de corriente más baja como un dispositivo ... Desafortunadamente, lm358 no alcanza el riel + ve, y los mosfets son de nivel lógico. Entonces, cuando el voltaje de la red es alto, una corriente inversa fluye hacia la batería (0-60 mA cuando la batería cae de 3.85 a 3.6V). Esto cargará lentamente la batería cuando la carga esté baja. Es de esperar que sea algo bueno. El circuito funciona perfectamente en todos los voltajes de red de 2V a 5V, sin oscilación. El circuito depende de la caída de voltaje a través del diodo. Reemplazarlo con 1N4148 no garantizará que funcione sin oscilaciones si el voltaje de la batería es alto. El circuito no simuló correctamente con el LM393, que es un comparador real. Se sugiere una prueba adecuada antes de su uso.
Las oscilaciones son causadas por algún tipo de condiciones de carrera en la fuente y los voltajes de las puertas del segundo mosfet. Todavía no sé exactamente qué está pasando. Pero los circuitos modificados funcionan y resuelven mis problemas. Esta no es la respuesta perfecta. Pero es la mejor respuesta. Estoy aceptando mi propia respuesta.
más actualización!
Ajustado de nuevo, mira de cerca, los mosfets se voltean en el eje Y para que la fuente esté adentro. El circuito ahora es completamente estable en todos los voltajes de la red y la batería. Dependiendo de la diferencia de voltaje entre la red y la batería, en algunos casos puede fluir una corriente lenta a la batería (quizás 60 mA). El circuito funciona con un schottky o un 1n4148 (aunque obviamente con 1n4148 se extraerá más de la batería si el voltaje de la batería es alto). Funciona con el comparador real LM393 y LM358, sin cambios. Opamp / comparador acepta tensión de red o salida en el pin no inversor para comparar con la batería. Creo que es casi perfecto. Gracias por la generosidad!
PD: probablemente debería reemplazar 1N4148 con 1N4007, pero 1N5819 es el mejor.