Circuito de apagado seguro para Raspberry Pi Zero con Adafruit TPL5111

0

Tengo un proyecto de Raspberry Pi impulsado por LiPo a través de un Adafruit Powerboost 500C. Intentando maximizar la vida útil de la batería sin cambiar las plataformas (todavía).

Mi solución es incorporar el Adafruit TPL5111 para activar el dispositivo de vez en cuando, pero apagarlo será el problema.

El TPL5111 necesita una señal de apagado GPIO del Pi (por lo que, obviamente, el Pi está encendido para hacer eso), pero tan pronto como el TPL5111 recibe esa señal, la energía se corta por completo.

Montar las particiones como de solo lectura es una forma de minimizar la corrupción de la tarjeta SD, pero id en lugar de tener circuitos que mantengan la corriente fluyendo lo suficiente después de que se reciba la señal para que la Pi se apague de forma segura.

¿Hay alguna solución (simple y pequeña) que pueda emplear? Tal vez una configuración de condensador simple o algo así?

El espacio es MUY limitado, ya que es el problema número 2 ...

Gracias de antemano!

    

1 respuesta

1

Estás mezclando distintos significados de "apagado".

Con algo como el pi que normalmente no puede apagar su propia energía, lo que sucede es que el sistema debe ser seguro para la pérdida de energía (sistemas de archivos desmontados, dispositivos de almacenamiento desinicializados si es posible, etc.), y entonces el procesador ingresa a una condición de estado final, ya sea un bucle infinito con interrupciones deshabilitadas o una condición de detención real.

Lo que debe hacer es entrar justo en ese punto y conducir el GPIO en el punto donde el procesador se realiza con el apagado seguro del sistema, y se encuentra en un estado no retornable. En ese momento, no importa si el ciclo de detención o el bucle infinito se ejecutan y el usuario tira del cable de alimentación, o si la operación GPIO que agrega justo antes de la última instrucción elimina la alimentación, porque está insertando esta instrucción solo en la punto en el que la extracción de energía ya es segura.

Este sería el código de modo kernel, podría ver si algo en /arch/arm/kernel/process.c parece ser la versión en uso, o si está en otra parte. GPIO en el pi es indirecto, por lo que es posible que deba hacer un poco de trabajo para descubrir cómo lograrlo en un sistema de "todo menos".

    
respondido por el Chris Stratton

Lea otras preguntas en las etiquetas