Shutdown Controller für Raspberry Pi in einem Auto

14

Nach meiner vorherigen Frage versuche ich, einen Shutdown-Controller für meinen Raspberry Pi zu erstellen. Der Raspberry Pi muss von der Batterie gespeist werden, sollte sich aber ausschalten, nachdem der Pi feststellt, dass die Zündung ausgeschaltet wurde.

Der Pi nimmt eine 3,3-V-Einspeisung von der ACC-Leitung auf (ich habe andere Komponenten, die 5 V über eine 7805 von der ACC-Leitung aufnehmen, also werde ich mit einem Spannungsteiler auf 3,3 V herunterfahren, es sei denn, jemand hat einen besseren Vorschlag - I ' Außerdem wird ein uPD6708 angesteuert, der 5-V-CMOS-E / A benötigt, sodass auf zwei weiteren Leitungen von 5 V auf 3,3 V gesenkt werden muss.

Software, die im RPi ausgeführt wird, setzt einen der GPIO-Pins auf einen hohen Pegel. Wenn das RPi heruntergefahren wird, gehen alle GPIO-Pins auf einen niedrigen Pegel. Daher sollte Q1 das Relais einschalten und die Stromversorgung des RPi so lange aufrechterhalten, wie die Zündung eingeschaltet ist oder der GPIO-Pin hoch ist.

Ich habe 3 Sicherungssätze mit einer 1000-uF-Kappe und einer Art Transformator / Induktor, daher kann ich auch jeweils einen davon für die 12-V-Batterie und die 12-V-Zubehörleitung verwenden.

Dieser Controller heruntergefahren Shutdown- soll im Standby-Modus nur 50 uA verbrauchen - wenn ich ein CMOS 4071-ODER-Gatter verwenden würde, wäre dies ein Anfang, aber nach dem, was ich gelesen habe, bräuchte man mehr Strom vom ODER-Gatter, um den Transistor zu sättigen das richtig?

Wenn ich bedenke, dass ich zusätzlich zu den Anforderungen dieses Teilschaltkreises 5 Leitungen von 3,3 V auf 5 V und 2 von 5 V auf 3,3 V pegelverschieben muss, kann jeder Komponenten / Alternativen für OR1, Q1, RLY1 und / oder empfehlen irgendwelche Modifikationen?

schematisch

simulieren Sie diese Schaltung - Schaltplan erstellt mit CircuitLab

Hier ist mein Versuch, dem Vorschlag von @Connor Wolf zu folgen.

  • R1 und C3 müssen ausgewählt werden, damit das RPi ordnungsgemäß heruntergefahren werden kann
  • Ich habe C1 hinzugefügt, weil ich mir vorstelle, dass es nach dem Ausschalten der Zündung einen kurzen Moment dauern wird, bis das Relais schaltet - ich habe keine Ahnung, wie lange das dauert, aber ich nehme an, dass das RPi ungefähr 700mA von sich zieht der Kondensator, zusätzlich zum 555 und Relais

schematisch

simulieren Sie diese Schaltung

@ Nick meint, es könnte einfacher sein - vielleicht so? Ich habe versucht, die Dioden zu entfernen, damit ich nur ein handelsübliches 12-V-5-V-1A-USB-Netzteil (oder ein Paar davon) verwenden kann. Das 555-Datenblatt gibt an, dass es 3,3 V ausgibt (maximale Quelle 100 mA? Auf dieser Seite sind 200 mA angegeben). Das RPi liest die ACC-Leitung bei 3,3 V, um zu bestimmen, wann es heruntergefahren werden soll.

schematisch

simulieren Sie diese Schaltung

Nicholas Albion
quelle
1
Ihr 7805 wird WIRKLICH HEISS, wenn Ihre Schaltung gezogen wird. Mit dem 700-mA-Stromverbrauch des Himbeer-Pi verbrauchen Sie bei einem vDrop von 7 V (12 V - 5 V) 4,9 Watt (7 V * 0,7 A) im Regler. Sie wirklich brauchen für die in einen DC-DC zu suchen.
Connor Wolf
1
Außerdem ist Ihr "Sicherungssatz" falsch gezeichnet. Im Moment schließt die Diode einfach den 12-V-Eingang kurz und die Induktivität tut nichts. Ich würde vermuten, dass die Induktivität in Reihe mit der Stromleitung geschaltet ist und die Diode umgekehrt (wodurch eine Sperrung des Eingangs verhindert wird).
Connor Wolf
2
Spannungsteiler sind kein guter Weg, um etwas mit Strom zu versorgen, da die Last und die Spannung variieren. Verwenden Sie einfach eine Art Regler, sie sind billig und reichlich genug.
John U
@ConnorWolf Ich habe eine 7805CT, die mit 1A bewertet wird. ... Gilt das nur, wenn Sie von 6V auf 5V absinken? Wenn ich nach DC-DC-Wandler google, erwähnen viele der Suchergebnisse 7805. Wenn der DC-DC-Wandler keine 5,7 V ausgibt, müsste ich meiner Meinung nach D2 und D3 für Schottky-Dioden mit einem Spannungsabfall von weniger als 0,25 V umschalten
Nicholas Albion
@NicholasAlbion - Ich habe nicht gesagt, dass es nicht funktionieren würde, nur, dass Sie einen sehr großen Kühlkörper oder einen Lüfter / kleineren Kühlkörper benötigen, um ihn richtig kühl zu halten.
Connor Wolf

Antworten:

8

Während die Verwendung einer One-Shot-Timer-Schaltung funktioniert, denke ich, kann eine einfachere Lösung verwendet werden. Schauen Sie sich diese Schaltung an.

Bildbeschreibung hier eingeben

Zur Verdeutlichung ist "VBAT" eine 12-V-Quelle, die immer eingeschaltet ist, solange die Batterie angeschlossen ist. "ACC" ist jedoch eine 12-V-Quelle, die nur eingeschaltet ist, wenn die Zündung eingeschaltet ist oder der Schlüssel auf "Zubehör" steht. Anstatt ein 5-V-Relais nur zur Steuerung der Stromversorgung des RPi zu verwenden, sollten Sie ein standardmäßiges 12-V-Automatikrelais wie abgebildet verwenden. Auf diese Weise wird kein Strom verschwendet (mit Ausnahme des Spulenstroms, während der Strom eingeschaltet ist), da alles von der Batterie getrennt wird.

Eine Seite der Spule ist immer an 12V angeschlossen. Die gegenüberliegende Seite ist über einen N-Kanal-FET (Q1) mit Masse (Gehäuse) verbunden. Während in dem Diagramm ein MOSFET verwendet wird, kann jeder FET verwendet werden, der den Spulenstrom senken kann. Wenn "ACC" eingeschaltet ist, schaltet sich Q1 ein, verbindet die Spule mit Masse und betätigt den Schalter. Dadurch wird wiederum der 5-V-Regelkreis mit Strom versorgt, den Sie verwenden möchten (ein einfacher 7805-Regler mit Kühlkörper, ein schaltender DC / DC-Wandler, die genannten USB-Netzteile usw.).

Die Diode D2 soll sicherstellen, dass sich der Kondensator nur in Q1 entladen kann und regulär oder schottky sein kann. Andere Methoden sollten wahrscheinlich für den Überspannungs- und Stromschutz der Batterie angewendet werden.

Die "ACC" -Spannung kann durch einen Spannungsteiler geführt werden, um ein 3,3-V-Signal für das RPi zu erzeugen. Seien Sie vorsichtig mit dieser Spannung, wenn Sie bedenken, dass eine 12-V-Autobatterie mehr wie 14-V-Gleichstrom sein kann. Solange dieses Signal HI ist, weiß das RPi, dass die Stromversorgung eingeschaltet ist. Offensichtlich sollte dieser GPIO-Pin als Eingang festgelegt werden, wenn interne Pullups deaktiviert sind. Wenn "ACC" ausgeschaltet ist, sollte das RPi das LO-Signal auf dem Pin sehen und mit dem Herunterfahren beginnen.

Wenn die "ACC" -Spannung ausgeschaltet wird, behält der Kondensator C1 die Ladung so lange bei und entlädt sich über den Widerstand R1. Sobald die Kondensatorspannung unter die Gate-Schwelle von Q1 abfällt, wird sie ausgeschaltet, wodurch die Relaisspule von der Masse getrennt und die Stromversorgung des Peripherieschaltkreises unterbrochen wird. Wenn ein "Logikpegel-MOSFET" für Q1 verwendet wird, bleibt dieser eingeschaltet, bis die Spannung C1 ziemlich niedrig ist. Ich habe diese Schaltung mit einem NTD4960 ( Datenblatt ) getestet und sie blieb ungefähr 15 Sekunden lang eingeschaltet - bis C1 ungefähr 2 V betrug. Erhöhen Sie den Kapazitätswert, um die Zeit zu verlängern.

Kurt E. Clothier
quelle
Wie wähle ich einen geeigneten FET aus? Ich habe bereits ein 12-V-Relais - 621D012 (270 Ohm -> 44 mA) Der Online- Jaycar-Katalog listet Folgendes auf: 2N7000, PN100, VN10KM, IRF540N, IRF1405 und mehr
Nicholas Albion
1
Ich glaube, der 2N7000 wäre eine gute Wahl, aber hier ist, wonach Sie suchen ... Typ: N-Kanal-FET (kein NPN-BJT); Durchlassstrom (I_d): Mindestens 100 mA - (doppelt so hoch wie 44 mA); Gate-Schwellenspannung (V_gs oder V_gth): Nicht mehr als 3 V; Gate-Kapazität: Egal, wir setzen mehr extern! "ON" -Widerstand (R_ds): niedrig ist gut, aber Ihre Verlustleistung wird niedrig sein; Verlustleistung (P_d): 44mA ^ 2 * R_ds << mindestens doppelt so hoch
Kurt E. Clothier
Kann das Geschäft gekauft werden? Ich versuche das Gleiche wie das OP zu tun, aber ich habe keine Ahnung, wie ich meine eigenen Schaltungen erstellen soll. Gibt es dafür im Geschäft gekaufte Lösungen?
John Demetriou
2

Ehrlich gesagt denke ich, dass Sie dies viel überdenken.

Persönlich würde ich nur einen einzigen Schuss mit einer oder zwei Minuten verwenden, ausgelöst durch das Abschalten des Autos.

Wenn Sie das Auto ausschalten, wird der One-Shot ausgelöst und das Relais geschlossen, bis die Zeit abgelaufen ist. Alles, was Sie tun müssten, wäre sicherzustellen, dass Ihr Himbeer-Pi innerhalb von ein oder zwei Minuten nach dem Ausschalten des Autos heruntergefahren wird. Dies sollte einfach genug sein, indem eine Eingabe von der geschalteten Leistung des Fahrzeugs überwacht wird.

Der größte Vorteil eines solchen Systems besteht darin, dass Ihre Software bei einem Absturz (wenn, nicht wenn) trotzdem heruntergefahren wird, sodass Sie nicht mit einer leeren Batterie enden. Der One-Shot sollte ziemlich einfach sein. Sie könnten einen 555 oder einen kleinen Mikroprozessor verwenden (wie Olin vorschlagen wird).
Ein andere nette Sache ist , dass, wenn Sie den Entwurf richtig zu machen, kann das System selbst trennen von der Autobatterie, die Ruhestromaufnahme gewährleistet ist absolut 0.

Connor Wolf
quelle
hört sich toll an - wie geht das?
Nicholas Albion
Klingt ein bisschen wie die Schaltung, die verwendet wird, um die Ampel einzuschalten, nachdem sich die Autotür geschlossen hat. Aus dem Speicher wird ein Kondensator auf 12 V geladen und hält einen FET oder ähnliches. Entfernen Sie die Stromversorgung, die Kappe entlädt sich langsam - bis der FET ausgeschaltet wird.
Alan Campbell
Das RPi zieht 5V bei ca. 700mA und ich denke, ich brauche ca. 10 Sekunden zum Herunterfahren. Die Verwendung eines Kondensators war mein erster Gedanke, doch dazu gehörten Kondensatoren im Wert von 100 USD
Nicholas Albion,
@NicholasAlbion, die Kappe würde nicht verwendet, um den Pi direkt mit Strom zu versorgen, sondern eine Gate-Spannung für einen FET (der ein Relais steuern würde). Der Gate-Widerstand eines FET ist sehr hoch, sodass Sie keine große Kappe benötigen, um die benötigten 10 Sekunden durchzuhalten.
Pentium100
0

Jede Methode mit fester Verzögerung hat das Problem, nicht zu wissen, wie viel Zeit das RPi wirklich zum Herunterfahren benötigt. Es wäre besser, eine Taste zu drücken, die dem Pi signalisiert, dass es heruntergefahren werden soll. Dann könnte es das tun, was es für ein sauberes, ordnungsgemäßes Herunterfahren benötigt. Es würde so lange wie nötig dauern und dann ein GPIO-Signal zurück an die Drucktastenschaltung senden, die das Pi herunterfährt Leistung. Das gibt dem RPi so viel Zeit, wie es braucht, um die SD-Karte sicher herunterzufahren. Die Schaltung muss nicht zu kompliziert sein. Sie können einen einfachen Stromkreis an sehen

http://www.mosaic-industries.com/embedded-systems/microcontroller-projects/raspberry-pi/on-off-power-controller

Die Website beschreibt die Funktionsweise der Schaltung.

user22047
quelle
Sie machen einen guten Punkt, obwohl ich nicht denke, dass jemand einen solchen Prozess jedes Mal durchlaufen möchte, wenn er sein Auto abstellt. Es wäre sinnvoller, wenn das RPi die Abschaltung durch Überwachen der Spannung der ACC-Leitung erkennt (nur bei eingeschaltetem Auto) und dann die eigene Stromversorgung über die 12-V-Leitung "Immer an" unterbricht, wenn es dazu bereit ist - Automatisierung des Systems.
Kurt E. Clothier
-2

Verwenden Sie 4 AA-Akkus. Versorgen Sie den Pi mit Strom und laden Sie ihn über die Autobatterie auf.

Verwenden Sie 1 GPIO, um dem Pi mitzuteilen, ob die Zündung ein- oder ausgeschaltet ist.

Fahren Sie das System herunter, wenn Sie bereit sind.

Erfaan56
quelle
3
Ich denke, diese Antwort braucht mehr Details, um nützlich zu sein. Schreiben Sie vielleicht einen Schaltplan oder eine Beschreibung, wie dies Ihrer Meinung nach funktionieren würde und welche Art von Ladeschaltung / Gerät / Leistungssteuerung Sie vorschlagen würden.
PeterJ