Forum: Mikrocontroller und Digitale Elektronik Raspberry Pi einschalten und "komplett" ausschalten nach dem Runterfahren (PowerOff Schaltung)


von Raspberry Fan (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich möchte einen Raspberry Pi an einer Powerbank (5V) betreiben. Da der 
R.Pi jedoch recht viel Leistung verbraucht, würde dieser die Powerbank 
schnell leer saugen.

Daher möchte ich den R.Pi nach einer Weile Inaktivität herunterfahren 
(z.B. nach 10 Minuten).

Das Problem ist, dass der R.Pi 3B mit Raspbian auch im ausgeschalteten 
Zustand ca. 0,6 bis 0,9 W verbraucht. Das würde die Powerbank trotzdem 
über einen gewissen Zeitraum leer saugen.

####################################

Daher habe ich mir eine Schaltung überlegt, welche den R.Pi per Taster 
mit Strom versorgt, der R.Pi dann direkt die Stromversorgung selbst 
aktiv hält und bei Bedarf seinen eigenen Strom 'kappt' (siehe 
Schaltplan).
5V > Taster    > Diode > NPN > PNP > Masse schalten
5V > Raspberry > Diode > NPN > PNP > Masse schalten (bis zum 
runterfahren)

Siehe Schaltplan.

Als R.Pi Signal (um den eigenen Stromkreis aktiv zu halten) habe ich an 
folgendes gedacht:
1.: 5V / 3.3V PowerPins. Diese bleiben jedoch auch nach dem R.Pi 
ausschalten aktiv und kappen nicht die eigentliche Stromversorgung.

2.: normalen GPIO, welche jedoch erst nach einer gewissen Weile durch 
die Software auf HIGH gehen können. Somit müsste man den Taster z.B. 7 
Sekunden gedrückt halten. Auch nicht praktikabel.

3.: 5V von USB. Das würde klappen...aber 5V per USB bekomme ich auch 
erst nach 7 Sekunden. Gleiches Problem wie mit den normalen GPIO's.

4.: speziellen Funktionen der GPIO's, welche z.B. mittels internen 
PullUp direkt nach dem Starten erst mal auf 3.3V gehen (siehe 
https://web.stanford.edu/class/cs140e/docs/BCM2837-ARM-Peripherals.pdf 
Seite 102). Die Pins bleiben aber ebenfalls nach dem R.Pi ausschalten 
auf HIGH. Somit müsste ich diese mittels Software auf LOW ziehen.

*Das wäre die bislang beste Lösung...* allerdings würde ich mit dem GPIO 
= LOW den R.Pi im laufenden Betrieb hart ausgeschaltet! Was auf Dauer 
die SD Karte (Dateisystem) zerstört. Daher habe ich einen 100uF-500uF 
Transistor eingesetzt um die Versorgung noch einige Sekunden aufrecht zu 
halten. Allerdings ist das auch nur ein "in der Zeit müsste der R.Pi 
eigentlich runtergefahren sein"!

Kennt jemand noch eine bessere Lösung für das Problem?

von Bogdan (Gast)


Lesenswert?

Der PNP ist nicht korrekt verschaltet.

GND schalten i. i. d. R. problematisch.

von RP6conrad (Gast)


Lesenswert?

Eine higs-side switch wie den BTS432 ist eine elegante Losung. Mit eine 
GPIO kannst du diese Switch einschalten, bei nach Masse schalten geht 
sofort der Power off. Mit eine RC können sie noch eine art von Timer 
machen, sodas das Abschalten verzogert wird. Einschalten ist  naturlich 
eine externe Switch, nach anfahren uebernimmt den GPIO das Signal.

von Michael U. (amiga)


Lesenswert?

Hallo,

unabhängig von Sinn und Zweck: man schaltet nie GND einer Komponente 
wenn man die kompletten Verhältnisse der Spannungen nicht 100% 
sicherstellen kann.
Einfacher ist es immer, die Spannungsseite zu schalten.
Deine Schaltung trennt - der Powerbank vom - des Raspi. Alle Potenziale 
des RasPi incl. der I/O bezeihen sich auf GND des Raspi.
Welches Potenzial sieht im ungünstigsten Fall der I/O des Raspi gegen 
die anderen Leitungen wenn - aufgetrennt ist?

PS: ich war zu langsam...

Gruß aus Berlin
Michael

: Bearbeitet durch User
von Raspberry Fan (Gast)


Angehängte Dateien:

Lesenswert?

Bogdan schrieb:
> Der PNP ist nicht korrekt verschaltet.

Oh ja danke. Habs eben nur schnell zusammengebastelt und bin da nicht so 
bewandert. Bzw. der NPN war falsch. Korrigiert.

von Raspberry Fan (Gast)


Lesenswert?

Michael U. schrieb:
> Deine Schaltung trennt - der Powerbank vom - des Raspi. Alle Potenziale
> des RasPi incl. der I/O bezeihen sich auf GND des Raspi.
> Welches Potenzial sieht im ungünstigsten Fall der I/O des Raspi gegen
> die anderen Leitungen wenn - aufgetrennt ist?

Ah ok. Ja das macht Sinn. Kann ich mir das als Laie so vorstellen, dass 
Spannungen "im Kreislauf" vorhanden sind und keinen Ausweg mehr finden? 
;o)

Ich habe die Schaltung so aufgebaut da ich 5V zur Verfügung habe und mit 
einem NPN (+5V Schalten) ja einen Spannungsabfall über den Transistor 
habe und somit keine +5V mehr am R.Pi ankommen.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

vielleicht benötigst du das alles nicht. Denn fast alle Powerbanks 
schalten beim unterschreiten eines Mindeststromes eh selbst ab. Der 
Schwellwert liegt höher als man denkt. Manchmal steht es im Datenblatt.

von Baum (Gast)


Lesenswert?

Veit D. schrieb:
> Der Schwellwert liegt höher als man denkt. Manchmal steht es im
> Datenblatt.

Hilft nicht bei dem Problem das die sdkarte beim harten abschalten 
beschädigt werden kann.

von Thomas G. (blasebalg)


Lesenswert?

Je nach Distro kann man eine "/etc/rc.local.shutdown" oder 
"/etc/rc6.K00scriptname" anlegen und dort ein Script verknüpfen was den 
GPIO ansteuert wenn der Pi runterfährt/runtergefahren ist.

Dann wäre im Normalfall nach Einschalten und im Betrieb der GPIO High-Z 
und wenn der PI runtergefahren ist auf dem per Script gewählten 
Potential.

Als Anregung zu deinen 4 Varianten

von Info (Gast)


Lesenswert?


von Klaus R. (klaus2)


Lesenswert?

UART TX Pin, RC Glied, Darlington, Relais...fertig. Hatte die gleiche 
Frage hier gestellt, läuft gut.

Klaus.

von Veit D. (devil-elec)


Lesenswert?

Baum schrieb:
> Veit D. schrieb:
>> Der Schwellwert liegt höher als man denkt. Manchmal steht es im
>> Datenblatt.
>
> Hilft nicht bei dem Problem das die sdkarte beim harten abschalten
> beschädigt werden kann.

Das wäre ein anderes Problem. Wenn das im laufenden Betrieb passieren 
sollte, also im Leerlauf, dann passt die Powerbank nicht dazu. Das muss 
der TO sowieso testen. Ich meinte meine Aussage so, dass er den Raspi 
per Software herunterfahren kann und sich dann die Powerbank automatisch 
abschaltet, weil der Mindestlaststrom unterschritten wurde. Er also 
diese extra Schaltung zum Poerbank abschalten nicht benötigt.

von Stefan F. (Gast)


Lesenswert?

Wenn die SD Karte nach dem Herunterfahren des OS Stromlos geschaltet 
wird, sehe ich da kein Problem.

Ich würde aber dringend dazu raten, die +5V Leitung zu schalten, nicht 
GND. Zu viele Leute haben sich damit schon ins eigene Knie geschossen.

von Raspberry Fan (Gast)


Lesenswert?

Thomas G. schrieb:
> Je nach Distro kann man eine "/etc/rc.local.shutdown" oder
> "/etc/rc6.K00scriptname" anlegen und dort ein Script verknüpfen was den
> GPIO ansteuert wenn der Pi runterfährt/runtergefahren ist.

Danke für den Hinweis. Das behalte ich im hinterkopf. Allerdings wird 
der R.Pi nur ein größeres C++ Prog. auf der Konsole ausführen und da 
kann ich in den eigenen Prog. Shutdown bereits den entsprechenden Pin 
schalten.

Info schrieb:
> Zum Abgucken: https://shop.pimoroni.de/products/onoff-shim

Danke, da scheint ein Entwickler das gleiche Problem zu haben. Wirklich 
interessant. Mich würde interessieren, wie sie das abgeschlossene 
Herunterfahren erkannen. In einem Video ist der R.Pi wirklich direkt 
nach dem letzten SD Karten Blink aus.

Klaus R. schrieb:
> UART TX Pin, RC Glied, Darlington, Relais...fertig. Hatte die gleiche
> Frage hier gestellt, läuft gut.

Das soll für alle R.Pi bis auf die R.Pi 3 und neuer funktionieren. auf 
den R.Pi 3 soll man den TX Pin nicht mehr so benutzen können.

Stefanus F. schrieb:
> Ich würde aber dringend dazu raten, die +5V Leitung zu schalten, nicht
> GND.

Ja das habe ich mir bereits zu Herzen genommen. Danke nochmal. Ich werde 
auf jeden Fall eine Schaltung für die 5V Leitung aufbauen.

Ich habe mir auch schon eine Lösung überlegt. Ich muss noch die 
Schaltung erstellen und poste diese dann hier.

von Stefan F. (Gast)


Lesenswert?

Die Playstation 3 hat einen Timer. Wenn sie nach n Sekunden nicht 
herunter gefahren ist, wird hart die Stromversorgung gekappt. Wenn damit 
mit klar kommt (z.B. der interne Flash Speicher beim 12GB Modell) hat 
halt Pech gehabt.

von Raspberry Fan (Gast)


Angehängte Dateien:

Lesenswert?

Och nö. Gerade einen Beitrag geschrieben und abgeschickt und... nichts 
wird veröffentlicht. Daher nochmal...

Also, ich habe mich dazu entschieden ein 2 Wechsler 5V Bi-Stabiles 
Printrelais RE3 zu verwenden. Dieses soll über Taster S1 auf 
"durchschalten" gezogen werden.

Das Relais Schaltet durch und versorgt den Raspberry und einen Arduino 
Pro Mini (16Mhz, 5V) mit Strom.

Der Arduino misst die Zeit bis der R.Pi auf Leitung "R.Pi 
Start/Shutdown" (Pin 1) mittels HIGH einen Interrupt auslöst.

Der Arduino empfängt RGB Daten auf Leitung "R.Pi Data" und "R.Pi Clock" 
(Pin 3/4) und steuert einen NeoPixel Strip (Pin 5).

Der Arduino erhält auf Leitung "R.Pi Start/Shutdown" (Pin 1) einen LOW 
Interrupt vom R.Pi und wartet noch Startzeit+z.B. 2 Sekunden bis er über 
"PowerOff" (Pin 1) mittels NPN Darlington Transistor T1 das Relais auf 
"getrennt zieht".



Ich könnte den Arduino auch in den PowerOff Modus versetzen und mittels 
LOW Interrupt wieder aufwecken, allerdings ist das Ansteuern von 
NeoPixel (5V Data) über ein RTOS erheblich einfacher als über z.B. einen 
R.Pi. Daher nutze ich den Arduino dafür.
Ein weiterer Vorteil mit dem Arduino ist, dass ich die Startzeit messen 
kann und so etwas dynamischer auf schnelle/langsamere Speichermedien wie 
USB Sticks reagieren kann.

Anregungen?

von Arduino (Gast)


Lesenswert?

Ja, woher kommt plötzlich der Arduino. Hast du nicht ausdrücklich nach 
einer Lösung nur mit Raspberry-Pi gefragt?

Oder ist das wieder so ein Brösmel-Thread wo man sich die 
Problemstellung aus den einzelnen Beiträgen zusammenklauben muss?

Und was hat es mit dem NeoPixel Strip auf sich? Schreib doch mal was du 
überhaupt machen willst und was für HW du sowieso schon hast (Arduino, 
Raspberry-Pi, ev. noch mehr?)

von Fred R. (Firma: www.ramser-elektro.at/shop) (fred_ram)


Lesenswert?

Info schrieb:
> Zum Abgucken: https://shop.pimoroni.de/products/onoff-shim

Uuuh.
Und bei meinen Bausätzen regen sich die Leute wegen den kleinen 
Footprint schon auf.

von Raspberry Fan (Gast)


Lesenswert?

Arduino schrieb:
> Hast du nicht ausdrücklich nach
> einer Lösung nur mit Raspberry-Pi gefragt?

nö

Des weiteren macht es keinen Sinn das ges. Projekt zu erklären da 
etliche Sensoren, Ein- und Ausgabegeräte, Controller, etc verwendung 
finden. Alle 40 Pins des R.Pi sind belegt und daher sollte eigentlich 
nur eine RGB Led verwendet werden. Da ich (bis auf den OnOffShim) keine 
andere gute Lösung zum Ausschalten gefunden habe, verwende ich nun einen 
Arduino und kann somit von RGB Led auf NeoPixel umstellen.

Hast du wohl noch nicht gehabt, dass ein Projekt wächst? Arbeite mal 
mehr an Projekten. Selbst mit Pflichtenheft gibt es dynamische 
Anpassungen.

Nachtrag:
Die Relais Spulen müssen natürlich gegen Masse mit PNP geschaltet werden 
um 5V an den Spulen anzulegen. Ich denke mal, dass es hier kein Problem 
ist die Masse zu schalten?

von Klaus R. (klaus2)


Lesenswert?

Doch. Macht es. Du gibt's ein Teil deines Lastenheftes an beteiligte 
Entwickler und sagst: RasPi only!
Die suchen eifrig nach einer Lösung und einige Tage später kommst du mit 
anderen Details um die Ecke, die du vorher schon hattest. Das machst 
du einmal, ab dem zweiten Mal nimmt dich keiner mehr ernst. Ich nehme 
dich aufgrund deiner Art schon jetzt nicht mehr ernst.

Klaus.

von Raspberry Fan (Gast)


Lesenswert?

Klaus R. schrieb:
> RasPi only!

Bitte zitiere mich. Ich habe weder gesagt es soll R.Pi only sein noch 
dass es sich bei meinen Angaben um ein Pflichtenheft handelt. Das war 
ein Denkanstoss für "Arduino" der meinte:

> Hast du nicht ausdrücklich nach einer Lösung nur mit Raspberry-Pi gefragt?

was nicht stimmt. Des weiteren ist es kein Kundenprojekt sondern mein 
eigenes und es kommen natürlich neue Ideen zur Umsetzung hinzu. Wenn man 
also 2 Lösungen hat und eine erledigt ein weiteres Problem (auch wenn es 
hier kein Thema ist) dann nutzt man selbstverständlich die bessere 
Lösung.

Ein Kommentar war z.B. bzgl. eines PS3 Controllers der ähnlich arbeitet 
wie das war ich plane. Wo ist das Problem auch solche Ideen zu 
schreiben? Ich habe nichts ausgeschlossen.

Meine ursprüngliche Frage war schlicht weg:
> Kennt jemand noch eine bessere Lösung für das Problem?

Und da waren die hilfreichsten Beiträge von Info und Stefanus F.

Beitrag #7604466 wurde vom Autor gelöscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.