Ich möchte einen Raspberry Pi als XBMC-Server im Auto verwenden. In den XBMC-Dokumenten heißt es, dass Sie immer den Befehl shutdown verwenden sollten, bevor Sie die Stromversorgung trennen. Ich möchte mich nicht in den Pi einloggen und ihn abschalten müssen, bevor ich das Auto ausschalte - ich möchte es können
Ich habe darüber nachgedacht, dass es möglich sein sollte, eine einfache Schaltung mit einem Kondensator und wahrscheinlich einer Diode zu erstellen, um zu erkennen, wann die Stromversorgung unterbrochen wurde (und einen Interrupt an einem der GPIO-Pins auszulösen), aber der Kondensator würde lange genug Strom liefern damit das System ordnungsgemäß heruntergefahren wird.
Sieht das richtig und ausreichend aus?
Die Schaltung wird von einer Autobatterie mit 12,6 bis 11,7 V betrieben. Der Raspberry Pi nimmt 5 V (5,25 bis 4,75 V) auf und zieht 700-1200 mA. Ich habe es noch nicht geplant, aber ich schätze, dass das Herunterfahren wahrscheinlich ungefähr 5 Sekunden dauert.
Ich nehme an, ich muss wissen:
Welche Art von Kondensator würde ich benötigen, um genügend Ladung zu speichern, damit der Pi lange genug läuft, damit XBMC ordnungsgemäß heruntergefahren werden kann?
Angesichts der Tatsache, dass der GPIO-Anschluss des Rasperry Pi 3,3 V benötigt, ist dies der beste Komparator / Operationsverstärker (ich nehme an, ich könnte ein paar Widerstände verwenden, um den Ausgang von 5 auf 3,3 zu senken).
Wäre es von Vorteil, wenn die GPIO-Leitung normalerweise hoch oder normalerweise niedrig wäre?
quelle
Antworten:
Eine alternative Strategie wäre, den Raspberry Pi kontinuierlich mit Strom zu versorgen und die Zündleitung zu verwenden, um die Abschaltsequenz einzuleiten. Ich habe das in der Vergangenheit gemacht, aber mit Systemen, bei denen die genaue Lösung nicht für einen Pi gelten würde, sondern im Allgemeinen:
Verwenden Sie einen DC-DC-Wandler für den besten Wirkungsgrad. Es gibt viele Beispiele, aber das folgende ist ein Beispiel für etwas, das bequem zu verwenden wäre und 1A bei 5 V von einem 6,5 V- bis 32 V-Eingang liefern kann:
http://www.digikey.com/product-detail/de/V7805-1000/102-1715-ND/1828608
Eine Autoversorgung kann sehr rau sein, daher sollten Sie eine 30-V-TVS-Diode über dem Eingang verwenden, um sich vor Spitzen zu schützen, und zwar mit einer klobigen Schottky-Diode mit der Anode am Boden und der Kathode am 12-V-Eingang, um sich vor negativen Spannungen zu schützen Eine normale Sicherung oder eine rücksetzbare PTC-Sicherung in Reihe mit der Verbindung zwischen der Leistung des Fahrzeugs und Ihrem System. Andernfalls können Sie möglicherweise ein Auto in ein USB-Ladegerät "hacken", in dem dies alles bereits vorhanden sein sollte.
Ich bin mir nicht sicher, was ein Raspberry Pi im normalen Leerlaufmodus verbraucht, aber vermutlich deutlich unter 500 mA, was die maximale USB-Versorgung und mit größerer Wahrscheinlichkeit 100 mA ist. Angenommen, es werden 100 mA bei 5 V verwendet, was bei 12 V unter 50 mA liegt. Eine Autobatterie liegt normalerweise in der Größenordnung von 50 Ah, sodass es ungefähr 20 Tage dauern würde, bis die Batterie zu 50% entladen ist. Wenn das Auto regelmäßig benutzt wird, müssen Sie wahrscheinlich nicht weiter fahren, und Sie können es möglicherweise einfach laufen lassen und alle nicht verwendeten Peripheriegeräte ausschalten.
Andernfalls ist es wahrscheinlich am praktischsten, einen externen Mikrocontroller zu verwenden, der einen FET ansteuert, um den Zündwechsel in beide Richtungen zu erkennen und den Pi zu informieren, der heruntergefahren werden muss, gefolgt vom Abschalten der Stromversorgung eine Minute später. Dies könnte mit diskreter Logik geschehen, aber Sie müssen auch sicherstellen, dass die Stromversorgung wieder hergestellt wird, wenn die Zündung hoch geht. Dies ist also keine ganz triviale Übung, aber die Teilekosten sind niedriger als bei Verwendung einer großen Kappe.
quelle
Ich bin mit dem Verhalten des Raspberry Pi beim Herunterfahren und beim Stromverbrauch nicht genau vertraut, daher verlasse ich mich hauptsächlich auf die von Ihnen angegebenen Zahlen und lasse die Formeln.
Die Exponentialentladungskurve, die Sie anzeigen, gilt für eine Widerstands-Kondensator-Schaltung, aber der Linearregler bewirkt, dass sich die Dinge etwas anders verhalten. Angenommen, der RPi verbraucht immer den von Ihnen angegebenen Maximalstrom: 1200 mA. In diesem Fall fließt dieser Strom immer durch den Regler, und der effektive Widerstand der Schaltung ändert sich ständig (nimmt ab), wenn sich der Kondensator entlädt. Dies gilt, solange wir uns im Betriebsbereich des Linearreglers befinden. Dies ist in Ordnung, da der RPi abgeschaltet werden muss, bevor wir diesen Bereich erreichen.
Ja, das sind 1,28 Farad (hier kein Mikro oder Milli). Dies würde wahrscheinlich den Kauf mehrerer Niederspannungskappen und deren Reihenschaltung beinhalten
Das andere Problem ist also Ihre Schaltung - sie funktioniert nicht so, wie Sie es möchten, da der positive Eingang des Komparators nur dann nahe an die negative Eingangsspannung heranreicht (damit sich der Ausgang ändern kann), wenn Ihre Eingangsspannung ist ist schon tot Wie geplant, würde der Komparator niemals schalten.
Was Sie tun möchten, ist Ihre Eingangsspannung vor den Kondensatoren und der Diode zu messen und diese Spannung mit einer "Referenz" zu vergleichen, die Sie mit einem Trimmtopf einstellen können. Siehe Beispielschaltung unten:
simulieren Sie diese Schaltung - Schema erstellt mit CircuitLab
quelle
Hinweis: Die folgende Antwort wurde mit der Annahme geschrieben, dass nur die Verwendung einer SD-Karte durch das Dateisystem beschädigt werden kann. Seitdem sind zahlreiche anekdotische Beweise bekannt geworden, die darauf hindeuten, dass der interne Status von SD-Karten selbst, unterhalb des Niveaus eines Dateisystems, möglicherweise durch Korruptionsausfälle beschädigt werden kann, woran man möglicherweise nicht arbeiten kann Dateisystemebene.
Ich wäre versucht, einen ganz anderen Ansatz zu betrachten, nämlich das Problem an der Quelle zu lösen. Im Grunde ist nichts grundsätzlich Falsches daran, nur die Kraft aus dem Pi zu ziehen. Das Problem ist möglicherweise ein nicht festgeschriebener Dateisystemstatus, der zu einer Beschädigung des Dateisystems und einem anschließenden Startfehler führt, bis Sie das Volume reparieren / neu erstellen.
Dies kann jedoch auf der Softwareseite durch eine Kombination von Folgendem behoben werden:
Erstellen Sie weitere Partitionen auf der SD-Karte und hängen Sie die Boot- oder Betriebssystempartition niemals im beschreibbaren Modus an. Wenn Sie noch einen Schritt weiter gehen möchten, schreiben Sie niemals auf irgendetwas auf der SD-Karte, und speichern Sie alle Ihre veränderlichen Daten auf einem USB-Stick.
Verwenden Sie ein Journalling-Dateisystem, um Daten zu speichern, die im Betrieb tatsächlich geändert werden.
Halten Sie einfach eine Sicherungskarte bereit. Optional kann dies ein automatisches Sicherungs- und Wiederherstellungsschema von einer verbundenen Karte mit einer Regel sein, bei der immer nur eine der Karten beschreibbar bereitgestellt werden kann (kombiniert mit der ersten Regel des Start- / Betriebssystems) Partitionen sind niemals beschreibbar)
Letztendlich kommt es auf eine Frage der Designphilosophie an - die Wahl zwischen:
A) Ein empfindliches System, das vor Stromausfall geschützt werden muss, ohne dass es beschädigt wird
oder
B) Ein System, das so konzipiert ist, dass ein unerwarteter Stromausfall nicht zu einer nicht behebbaren Beschädigung führen kann.
Die meisten eingebetteten Systeme entsprechen eher (B).
quelle
Wie andere bereits betont haben, gibt es einige Probleme mit den bisher vorgeschlagenen Schaltungen, und Sie können einen Kondensator erhalten, der groß genug ist, um die Versorgung aufrechtzuerhalten. Wenn Sie bereit sind, eine kleine Schaltung aufzubauen, können Sie einen Verriegelungsregler in Betracht ziehen, der per Knopfdruck betätigt wird. Um den XBMC-Server auszuschalten, können Sie eine Taste drücken, die dem Pi das Herunterfahren signalisiert. Anschließend kann er das tun, was für ein sauberes, ordnungsgemäßes Herunterfahren erforderlich ist, und dann ein GPIO-Signal an den Stromkreis senden, der die Stromversorgung für sich selbst abschaltet. Dadurch hat das RPi so viel Zeit, wie es zum sicheren Herunterfahren der SD-Karte benötigt. Die Schaltung muss nicht einmal so komplex sein wie ein Relais und ein Timer.
Hier ist eine einfache Schaltung , die nur einen Dual-Mosfet als Controller verwendet. Die Schaltung ist auf der Webseite beschrieben.
quelle