8 votos

Circuito para apagar con seguridad Raspberry Pi

Quiero usar una Raspberry Pi como un XBMC servidor en el coche. El XBMC docs decir que usted debe utilizar siempre el cierre de comandos antes de desconectar la alimentación. No quiero tener para (decirle a mi esposa a) registro en el Pi y apagarlo antes de encender el coche apagado - quiero ser capaz de

He estado pensando que debería ser posible crear un sencillo circuito con un condensador y, probablemente, un diodo para detectar cuando la fuente de alimentación se ha desconectado (y se genere una interrupción en uno de los pines GPIO), pero el condensador proporcionaría actual el tiempo suficiente para que el sistema se cierre correctamente.

¿Esto es correcto y suficiente?

second draft

El circuito será alimentado por una batería de coche - 12.6 11.7 V. La Raspberry Pi se 5V (5,25 a 4.75 V) y dibuja 700-1200mA. Yo no lo he cronometrado, pero supongo que el proceso de apagado, probablemente, tarda alrededor de 5 segundos.

Así que supongo que lo que necesito saber es:

  • ¿Qué tipo de condensador necesito para almacenar la carga suficiente para mantener el Pi pasando el tiempo suficiente para que XBMC se cierre correctamente?

  • Dado que la Rasperry Pi del puerto GPIO se lleva a 3.3 V, ¿cuál es el mejor comparador/op-amp a utilizar (supongo que me podría usar un par de resistencias para traer a la salida de 5 a 3.3)

  • ¿Existe alguna ventaja contar con el GPIO de la línea normalmente alta o normalmente de baja?

4voto

xilun Puntos 261

Una estrategia alternativa sería a la alimentación de la Raspberry Pi de forma continua y el uso de la ignición de la línea para iniciar la secuencia de apagado. Yo he hecho eso en el pasado, pero con sistemas en los que la solución exacta no se aplican a un Pi, pero en general:

El uso de un convertidor DC-DC para la mejor eficiencia, hay muchos ejemplos, pero el siguiente es un ejemplo de algo que sería conveniente utilizar y es capaz de suministrar la 1A 5V de un 6.5 V a 32V de entrada:

http://www.digikey.com/product-detail/en/V7805-1000/102-1715-ND/1828608

Un coche de suministro puede ser muy dura, así que puede que desee utilizar un 30V TELEVISORES diodo a través de la entrada para proteger contra picos con un grueso diodo Schottky con el ánodo en el suelo y el cátodo a los 12V de entrada para proteger contra voltajes negativos junto con un normal fusible o un PTC fusible fusible en serie con la conexión entre la alimentación del vehículo y de su sistema. De lo contrario, usted puede ser capaz de 'hackear' un coche cargador USB que ya debería tener todo eso en su lugar.

No estoy seguro de lo que una Raspberry Pi se basa en normal del modo de inactividad, pero presumiblemente muy por debajo de 500mA que es el máximo USB puede suministrar más probabilidades de 100mA. Dicen que es el uso de 100mA 5V que estará bajo 50mA a 12V uso de ese circuito, la batería de un coche es normalmente en el orden de 50Ah por lo que sería de alrededor de 20 días para drenar la batería al 50%. Si el coche está en uso regular probablemente no hay necesidad de ir más allá, y sólo puede ser capaz de salir corriendo y apagar todos los periféricos que no estás usando.

De lo contrario, para la detección de la ignición cambio de cualquier manera y ambos informar a la Pi debe apagar seguido por la extracción de energía de un minuto más tarde, la manera más práctica es, probablemente, el uso de un microcontrolador externo que impulsa un FET. Se podría hacer con discreta lógica, pero también es necesario para asegurarse de que se restablezca la alimentación cuando el encendido se va de alta, así que no es enteramente un ejercicio trivial, pero los costos de las piezas será menor que el uso de una gran tapa.

3voto

BWW Puntos 302

No estoy íntimamente familiarizado con el comportamiento de la Raspberry Pi para el apagado y el uso de la energía, así que todo va a depender de los números que usted dio y dejar las fórmulas.

La exponencial de la curva de descarga se muestran es para una resistencia-condensador del circuito, pero el regulador lineal hace que las cosas para actuar de una forma un poco diferente. Supongamos que el RPi siempre consume la corriente máxima que usted declaró: 1200 mA. En este caso, la corriente siempre fluye a través del regulador, y la resistencia efectiva del circuito está en constante cambio (disminución) cuando el condensador se descarga. Esto es cierto siempre y cuando estamos en el rango de funcionamiento del regulador lineal, lo cual está bien porque tenemos la RPi apagar antes de llegar a esa región.

La ecuación diferencial de un condensador es: $$I=C\dfrac{dV}{dt}$$ que puede ser reorganizado para resolver C: $$C=I\dfrac{dt}{dV}$$

  • Yo es simplemente el promedio actual de la RPi. En este caso, vamos a suponer que es de 1200 mA, o 1.2 A.
  • dt es el tiempo que se tarda en apagar el RPi. Usando tu ejemplo, esto es de 5 seg.
  • dV es el cambio en el voltaje del condensador. Vamos a suponer que la partida de tensión es la más baja de voltaje especificados de 11.7 V, y que el final de voltaje es de 7.0 V. estoy ajustando el final de voltaje a 7.0 V debido a que el 7805 regulador lineal requiere de dos voltios espacio para una operación apropiada (5.0 V + 2.0 V = 7.0 V). Esto hace que dV = 11.7 V - 7.0 V = 4.7 V.

Esto nos da el siguiente resultado: $$C=1.2A\dfrac{5s}{4.7V}=1.28 F$$

Sí, eso es 1.28 Faradios (no micro o mili aquí). Esto podría implicar la compra de varios de bajo voltaje de tapas y colocarlos en serie

Entonces el otro problema es su circuito - no va a funcionar de la manera que usted desea, porque la única forma en la entrada positiva del comparador se acerca a la negativa de la tensión de entrada (por lo que el resultado puede cambiar) es cuando la tensión de entrada ya está muerto. Como se ha diseñado, el comparador nunca cambiaría.

Lo que queremos hacer es medir el voltaje de entrada, antes de que los condensadores y diodos, y comparar el voltaje con una "referencia" que se puede establecer con un recorte de la olla. Ver circuito de ejemplo a continuación:

schematic

simular este circuito – Esquema creado mediante CircuitLab

2voto

Andrew Walker Puntos 9038

Nota: la siguiente respuesta fue escrito con la suposición de que sólo el sistema de archivos del uso de una tarjeta SD podría resultar dañado. Una gran cantidad de evidencia anecdótica ya ha salido a la luz a sugerir que el estado interno de tarjetas SD sí mismos, por debajo del nivel de cualquier sistema de ficheros están potencialmente en riesgo de corrupción de la inoportuna pérdida de potencia, algo que puede no ser posible para evitar en el sistema de archivos de nivel.


Me gustaría tener la tentación de mirar en un enfoque totalmente diferente, una de resolver el problema en su origen. Esencialmente, no hay nada fundamentalmente malo con sólo tirar de la alimentación de la pi; el problema es potencialmente comprometidos sistema de archivos de estado que conduce a la corrupción del sistema de archivos, y el posterior fallo de arranque hasta que la reparación/cambio de imagen el volumen.

Pero esto es algo que puede ser corregido en el lado del software, por alguna combinación de:

  • Crear más particiones en la tarjeta SD, y nunca monte en el arranque o partición del sistema operativo en modo de escritura. Si quieres ir un paso más allá, nunca escriba nada en la tarjeta SD en todo, mantener todos sus datos mutables en una memoria USB.

  • El uso de un journalling sistema de archivos para almacenar los datos que realmente será modificado en la operación.

  • Simplemente mantener una copia de seguridad de la tarjeta a la mano, opcionalmente, este podría ser algunos de copia de seguridad automática y plan de recuperación desde un dispositivo de la tarjeta con una regla donde sólo una de las tarjetas puede ser montado en la escritura, en cualquier momento dado (combinado con la primera regla de la bota/particiones del sistema operativo nunca se puede modificar)

En última instancia, todo se reduce a una cuestión de filosofía de diseño - la elección entre:

A) Un sistema delicado que debe ser protegido de la pérdida de potencia a menos que sufrir la corrupción

o

B) Un sistema diseñado de tal forma que la pérdida de energía inesperado puede resultar en el rechazo de la corrupción.

La mayoría de los sistemas embebidos son más a lo largo de las líneas de (B).

0voto

Nick Cox Puntos 22819

Como otros han señalado, hay un par de problemas con los circuitos propuestos hasta ahora, y usted puede conseguir un condensador lo suficientemente grande para mantener el suministro. Si usted está dispuesto a construir un pequeño circuito, usted podría considerar la posibilidad de un enganche de poder activar/DESACTIVAR el controlador que se empuje el botón de funcionamiento. Para DESACTIVAR el XBMC servidor usted puede pulsar un botón en el que las señales de la Pi a apagar, entonces podría hacer lo que se necesita para limpiar apagado ordenado, a continuación, emitir un GPIO de la señal para el circuito que se cierra el poder para sí mismo. Que da la RPi como todo el tiempo que necesita para hacer las cosas como apagar de forma segura la tarjeta SD. El circuito no tiene que ser incluso tan complejo como el de un relé temporizador.

He aquí un sencillo circuito para hacerlo, que sólo utiliza un doble mosfet como el controlador. El circuito se describe en la página web.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X