En mi aplicación, la frambuesa pi (A +) se ubica de forma remota y se alimenta mediante Powerboost 1000c . El powerboost está conectado a una batería (lipo) y un panel solar. La batería es recargable y se carga mediante energía solar. En el caso ideal, me encantaría que mi Rpi funcionara las 24 horas del día, los 7 días de la semana, pero como tengo una batería limitada y la energía solar solo funciona durante el día, necesito apagar la Pi siempre que ya no sea posible ejecutarla.
En mi opinión, el chip de powerboost funciona de la siguiente manera:
Si V_usb == ENCENDIDO (es decir, la energía solar está ENCENDIDA), entonces alimenta el pi y carga la batería (si es necesario).
Si V_bat > 3.2v (voltaje crítico), LBO se muestra como ALTO. Pero si V_bat cae por debajo de 3.2v, se reduce a LOW
Podemos clasificar la operación en los siguientes casos:
Caso 1: V_usb (energía solar) == ON y LBO == HIGH - Trivial
Rpi funciona con energía solar
Caso 2: V_usb == ON y LBO == LOW - Trivial
Rpi funciona con energía solar y la batería también se carga simultáneamente.
Caso 3: V_usb == OFF y LBO == HIGH
Rpi se alimenta de la batería.
Caso 4: V_usb == OFF y LBO == LOW
Apague el Rpi y espere a que el panel solar vuelva a cargar la batería.
Hasta ahora, con la ayuda de la comunidad, se me ocurrió el siguiente circuito:
La idea detrás del circuito es la siguiente:
Los diodos (A, B) se usan en paralelo para crear una compuerta OR lógica. El propósito es mantener la alimentación en ON si V_usb == ON o LBO == High. La salida de la compuerta OR lógica se alimenta al circuito de descarga del condensador + resistencia, que tarda unos 10 segundos en descargarse después de apagar la alimentación (es decir, V_usb == APAGADO y LBO == Baja), que es tiempo suficiente para ejecutar un script de apagado en el PI.
Hasta ahora, el circuito funciona como se espera, es decir, mantenga el Pi en ON si V_usb == ON o LBO == High, de lo contrario, ejecute el apagado completo.
Pero, dado que el chip powerboost no se desactiva después del cierre completo, continúa consumiendo la energía que puede dañar la batería. Para manejar este problema, lo que hice fue alimentar el voltaje del capacitor a la base de un transistor PNP, donde el colector está conectado a tierra y el emisor está conectado al pin de Habilitación de Powerboost. La idea es conectar a tierra el pin En tan pronto como el condensador esté completamente descargado (para deshabilitar el chip de powerboost).
Ahora, lo que sucede es después de que el condensador se haya descargado completamente (10 segundos después de que se detecte LBO == LOW y V_usb == OFF), el chip se desactiva con la ayuda de la lógica anterior. Pero justo después de eso, el pin LBO se detecta como Alto (no estoy seguro de por qué sucede esto, pero creo que es porque no hay carga en el chip de powerboost y es por eso que LBO vuelve a subir). Esto hace que pi se reinicie de nuevo porque el voltaje en la base del transistor PNP > 0, que a su vez habilita el pin En, pero como la batería ya está en el voltaje crítico y no hay energía solar, el pi vuelve a detenerse. En resumen, la lógica anterior hace que el pi se inicie en un bucle (arranque - > shutdown - > boot ...). ¿Hay alguna manera de evitar este comportamiento de arranque + apagado no deseado?
Cualquier ayuda es apreciada!