Hallo liebe Community,
ich hoffe das jemand mir helfen kann, ich weiß leider überhaupt nicht
weiter. Ich habe mein Rpi über ein Modul laufen welches bei Abbruch der
Stromversorgen auf Akkubetrieb umschaltet. Über ein Interrupt welches
durch das wegfallen der 5V Spannungsquelle ausgelöst wird, wird der RPI
heruntergefahren. Jetzt ist mein Problem, durch das wieder hinzu
schalten der 5V Spannungsquelle startet sich der RPI nicht, da er ja
kontinuierlich mit Strom über den Alku versorgt wird wenn das Netzteil
nicht angeschlossen ist. Suche dafür eine möglichst einfache Lösung.
Nach etwas überlegung denke ich, das ich eine Schaltung benötige über
der ich die Stromzufuhr zum Rpi schalten kann wenn 5V am Modul anliegen
dann soll der RPi mit Strom versorgt werden, wenn kein Strom anliegt
überprüft der RPi mehrmals ob irg. wann wieder Strom vorhanden ist wenn
ja macht er nix. Wenn nein fährt er sich herunter. Vor dem
herunterfahren könnte ich von einem GPiO Port ein High senden, dieses
High sollte nach einer gewissen Zeit sagen wir mal 20 Sekunden, die
Stromzufuhr komplett kappen, Rpi sollte in der Zeit heruntergefahren
sein. Aber wenn wieder Strom am 5V Eingang anliegen soll wiefer
durchgeshaltet werden so das der Rpi wieder hochfahren kann.
Hannes schrieb:> ber ein Interrupt welches> durch das wegfallen der 5V Spannungsquelle ausgelöst wird, wird der RPI> heruntergefahren.
Ist nicht allzu schwer, aber zeig erst mal, wie die Zusammenschaltung
von Netzteil und Notstrom derzeit gelöst ist.
Gibt es einen elektronisch betätigbaren Schalter, mit dem du die
Akkuversorgung abschalten kannst?
P.S.:
Hannes schrieb:> ach einer gewissen Zeit sagen wir mal 20 Sekunden, die> Stromzufuhr komplett kappen, Rpi sollte in der Zeit heruntergefahren> sein.
Eine Zeitsteuerung ist schlecht. Besser der RPi entscheidet selbst, wann
er sich ausschaltet.
Hp M. schrieb:> Eine Zeitsteuerung ist schlecht. Besser der RPi entscheidet selbst, wann> er sich ausschaltet.
Ja, finde ich auch. Könnte man das nicht als letztes Skript im Run Level
machen?
Hier schreiben sie was zu UPS:
http://www.techrepublic.com/article/customizing-the-linux-bootup-and-shutdown-processes/
Was ich sauber fände:
Man macht sich ein power good Signal über 2 Schmitt-Trigger ( je eins
für Vbat und Vcc) und verUNDet sie.
Mit dem Signal wird ein FlipFlop gesetzt der die Versorgungsspannung am
Raspi einschaltet.
Wenn der Interrupt von deiner Schaltung kommt macht der Raspi ein
Shutdown und als letzte Aktion resettet er das FlipFlop, was ihm als
Folge so lange den Saft abgedreht bis deine power good Signale beide
wieder true sind.
Hier mal mein Schema, sobald VS1 (Netzteil) getrennt wird, erfolgt die
Spannungsversorgung über den Akku. Dieser Interrupt bekommt der RPi mit
und überprüft nach ca 5 Sekunden ob die Spannung wieder da ist, ist dem
nicht so dann fährt der Rpi herunter. Genau hier soll jetzt die
Schaltung xy einsetzen. Denn der Rpi soll ein kurzes High an Schaltung
xy senden, und diese soll dann nach einer bestimmten Zeitspanne als
Beispiel 20 Sekunden, die Stromversorgung zum RPi komplett trennen. So
lange ich hier auf Rat warte, lese ich mal wie man ein Schmitt-Trigger
und ein FlipFlop genau aufbaut, gelesen habe ich davon schon. Aber
getestet leider noch nicht. Bin da noch ein Anfänger und hoffe ihr steht
mir mit Rat und Tat zur Seite. Danke euch!
Hallo,
Batterie und Netzteil parallel? Ladetechnisch eher ungünstig.
Bei meinem Bananapi habe ich folgende Varinate gewählt:
Netzteil über Diode an Ub, Batterie über Mosfet an Ub. Der Mosfet wird
über die 3.3V vom Ba-Pi gesteuert. Spannung vom Netzteil wird über einen
Portpin überwacht. Fällt der Strom aus fährt der Ba-Pi runter und
schaltet sich ab, wodurch auch die 3.3V für den Mosfet wegfallen und
damit die Spannungsversorung komplett getrennt ist.
Sascha
Ist es möglich das über ein Schmitt-Trigger zu lösen? 5V dauerhaft
durchschalten dieses aber unterbrechen wenn ein kurzes High vom RPi GPIo
Port kommt, diese Unterbrechung über ein Elko um 20 Sekunden
Zeitverzögert.
Hannes schrieb:> Ist es möglich das über ein Schmitt-Trigger zu lösen? 5V dauerhaft> durchschalten dieses aber unterbrechen wenn ein kurzes High vom RPi GPIo> Port kommt, diese Unterbrechung über ein Elko um 20 Sekunden> Zeitverzögert.
machen kann mann alles, was du suchst währe hier eher ein Monoflop für
die Zeitverzögerung. Aber warum willst du das so kompliziert machen?
Man kann allein für die Stromversorung natürlich mehr Bauteile
verarbeiten als auf dem Raspi drauf sind - wenn man will.
Sascha
Aber wenn ich das richtig verstehe wird bei dir der Strom sofort
unterbrochen sobald der GPIO auf Low ist oder? Da bin ich mir halt nicht
sicher ist der GPIO nicht schon vor dem kompletten "Shutdown" auf Low?
Und es wird dadurch das Herunterfahren unterbrochen? Und habe leider ken
Mosfet hier, geht denn dafür auch ein Transistor?
Sorry für die 3 Posts hintereinander, bin noch auf eine Idee gekommen.
Könnte man nicht beim einschalten aus den Dauerstrom des Netzteils einen
kurzen Impuls machen, und diesen auf den Reset des RPi schalten das es
sich hochfährt?
Wenn du den Akku nur zum Runterfahren brauchst, wäre ein Gold-CAP Elko
vielleicht die bessere Wahl. Er wäre danach einfach leer und wenn die
Netzspannung wiederkommt, startet der Raspi normal.
Hannes schrieb:> Könntest du evtl. deine Lösung mal als Schaltung Posten? Bin mir irg.> wie sehr unsicher wie ich da jetzt weiter vorgehen sollte.
Also in meiner Schaltung schalte ich auf der 12V Seite um, da meine
Batterie 12V hat. Danach kommt noch ein Schaltregler (im Bild nicht mit
dargestellt). Deine Batterie dürfte aber ja auch nicht 5V haben.
Die 3.3V vom PI sorgen dafür das Q2 und Q1 während des Betriebs die
Batteriespannung freigeben, Strom fließt aber keiner da die Spannung vom
Netzteil etwas höher ist (muss den Akku ja ebenfalls laden). Fällt die
Netzversorgung aus (wird mit Q3 an einen GPIO gemeldet) fließt der Strom
aus dem Akku. Die PI wird nun nach ein paar Minuten (wenn der Strom bis
dahin nicht wieder da ist) heruntergefahren. Da er sich dann abschaltet
kommen auch keine 3.3V mehr raus und die Batteriespannung wird mit Q1
abgetrennt und der PI ist somit stromlos. Liegt wieder Netzspannung an
startet er ganz normal.
> Sorry für die 3 Posts hintereinander, bin noch auf eine Idee gekommen.> Könnte man nicht beim einschalten aus den Dauerstrom des Netzteils einen> kurzen Impuls machen, und diesen auf den Reset des RPi schalten das es> sich hochfährt?
das würde bedeuten das er auch einen Reset bekommt wenn er zuvor noch
nicht runtergefahren ist - sinnvoll?
@Jobst Quis
Der PI mag ja nicht viel verbrauchen - für eine Pufferung (10s für'n
Shutdown?) mit Goldcap aber auf jeden Fall zuviel.
Sascha
Wäre es dir möglich mir vielleicht bitte eine einfache Schaltung zu
entwerfen wenn die Vcc vom Netzteil max 5,36 V sind.
Ich komm einfach nicht weiter als Anfänger.
Sascha W. schrieb:> Der PI mag ja nicht viel verbrauchen - für eine Pufferung (10s für'n> Shutdown?) mit Goldcap aber auf jeden Fall zuviel.
Die richtige Größe muss man eben berechnen oder ausprobieren. Bezahlbar
ist es allemal (1F 5,5V = 1.60 bei Reichelt). Der Raspi A+ braucht für
sich zwischen 85 und 150mA. Mit Nano-WLAN-Stick nochmal 100mA mehr, aber
nur kurz, da er bald abgeschaltet wird.
1 Farad sind 1000 mAs/V. Mit 2 Farädern könnte man schon etwa 10 Sek
lang 200 mA entnehmen, bevor die Spannung um 1 Volt gesunken ist. Wer
sicher gehen will, kann noch ein paar Faräder mehr nehmen.
Hallo,
kann man nicht den Prozessor nicht mit WakeOnLan starten?
Alternativ, Watchdog mit langer Zeit, so dass er automatisch wieder hoch
fährt wenn er crashed ?
Grüße
Sebastian
Sascha W. schrieb:> Hannes schrieb:> Könntest du evtl. deine Lösung mal als Schaltung Posten? Bin mir irg.> wie sehr unsicher wie ich da jetzt weiter vorgehen sollte.>> Also in meiner Schaltung schalte ich auf der 12V Seite um, da meine> Batterie 12V hat. Danach kommt noch ein Schaltregler (im Bild nicht mit> dargestellt). Deine Batterie dürfte aber ja auch nicht 5V haben.> Die 3.3V vom PI sorgen dafür das Q2 und Q1 während des Betriebs die> Batteriespannung freigeben, Strom fließt aber keiner da die Spannung vom> Netzteil etwas höher ist (muss den Akku ja ebenfalls laden). Fällt die> Netzversorgung aus (wird mit Q3 an einen GPIO gemeldet) fließt der Strom> aus dem Akku. Die PI wird nun nach ein paar Minuten (wenn der Strom bis> dahin nicht wieder da ist) heruntergefahren. Da er sich dann abschaltet> kommen auch keine 3.3V mehr raus und die Batteriespannung wird mit Q1> abgetrennt und der PI ist somit stromlos. Liegt wieder Netzspannung an> startet er ganz normal.>> Sorry für die 3 Posts hintereinander, bin noch auf eine Idee gekommen.> Könnte man nicht beim einschalten aus den Dauerstrom des Netzteils einen> kurzen Impuls machen, und diesen auf den Reset des RPi schalten das es> sich hochfährt?>> das würde bedeuten das er auch einen Reset bekommt wenn er zuvor noch> nicht runtergefahren ist - sinnvoll?>> @Jobst Quis> Der PI mag ja nicht viel verbrauchen - für eine Pufferung (10s für'n> Shutdown?) mit Goldcap aber auf jeden Fall zuviel.>> Sascha
Hey Sascha,
also ich habe mal den GPIO über die exports auf High geschaltet und den
Rpi heruntergefahren. Die Act Led ist noch am blinken bevor diese
komplett erlischt ist die Spannung vom GPIO 22 schon abgefallen, also
auch keine Lösung über Transistor möglich oder?
Hatte mir nämlich noch gedacht die Spannungsquelle über ein Transistor
zu schalten es muss entweder Spannung vom Netzteil an der Basis anliegen
oder Spannung vom GPIO wenn beides weg ist kein Strom für den Rpi.
Sebastian schrieb:> Hallo,>> kann man nicht den Prozessor nicht mit WakeOnLan starten?>> Alternativ, Watchdog mit langer Zeit, so dass er automatisch wieder hoch> fährt wenn er crashed ?>> Grüße>> Sebastian
Er soll nur wieder hochfahren wenn er auch wieder Strom über das
Netzteil erhält und nicht über den Akku.
Hannes schrieb:> Hey Sascha,>> also ich habe mal den GPIO über die exports auf High geschaltet und den> Rpi heruntergefahren. Die Act Led ist noch am blinken bevor diese> komplett erlischt ist die Spannung vom GPIO 22 schon abgefallen, also> auch keine Lösung über Transistor möglich oder?
du brauchst für das schalten der Batterie auch einen GPIO nimm einfach
die 3.3V von der Stiftleiste, die gehen erst weg der er sich
ausschaltet.
Sascha
Sascha W. schrieb:> Hannes schrieb:> Hey Sascha,> also ich habe mal den GPIO über die exports auf High geschaltet und den> Rpi heruntergefahren. Die Act Led ist noch am blinken bevor diese> komplett erlischt ist die Spannung vom GPIO 22 schon abgefallen, also> auch keine Lösung über Transistor möglich oder?>> du brauchst für das schalten der Batterie auch einen GPIO nimm einfach> die 3.3V von der Stiftleiste, die gehen erst weg der er sich> ausschaltet.>> Sascha
Die gehen garnicht weg da er ja noch mit Strom von der Batterie bekommt,
habs gerade gemessen.
Ok, dann schaltet der Raspi offenbar nicht alle Spannungen ab :-( Mein
BananaPi an dem ich die Schaltung einsetze tut das hingegen schon.
Wie sieht es da mit den 5V an den USB-Anschlüssen aus?
Sascha
Sascha W. schrieb:> Ok, dann schaltet der Raspi offenbar nicht alle Spannungen ab :-(> Mein BananaPi an dem ich die Schaltung einsetze tut das hingegen schon.> Wie sieht es da mit den 5V an den USB-Anschlüssen aus?>> Sascha
Auch Spannung drauf nach dem ausschalten.
Hab mit jetzt mal die Schaltpläne gezogen da wundert mich nix.
Kannst mal noch am UART-TX testen an sonsten bleit doch nur irgendeine
Zeitverzögerung. Ist halt Mist das Einschalten und Reset eine Leitung
zusammen sind so das es auch schwierig ist das zum automatischen Starten
zu verwenden ohne Gefahr zu laufen mal ein Reset auszulösen.
Es gibt ja Raspi-USV's vielleicht kannst du da einen Schaltplan finden.
Sascha
Leider gleiches Ergebnis bei den von dir benannten Pin. Komm leider mit
dem Problem überhaupt nicht zurecht, gerade mich noch mit Transistoren
beschäftigt aber ich hab dae gefühl das ich sie noch nicht richtig
verstanden habe.
Ich hätte es vom Prinzip ungefähr so wie im Anhang gemacht (wenn es
diskret aufgebaut sein soll und davon ausgehend das die Batterie 12V
hat).
Startbedingung: Batterie ist angeschlossen, aber Netzteil ist noch aus.
Dann ist VBatOK true, aber VccOK false.
Dadurch ist PowerGood und Give_Power_To_Raspi false.
Sobald Vcc eingeschaltet wird und einen gültigen Wert erreicht wird
VccOK true und dadurch auch PowerGood und Give_Power_To_Raspi.
An Give_Power_To_Raspi müsste ein Logic Level Mosfet der dann den Raspi
einschaltet.
Sobald der hochgefahren ist, liest er zyklisch PowerFailure ein.
Das ist noch gesetzt da Vcc am Anfang nicht anlag.
Das Resettet der Raspi jetz einmal über Quit_Error.
Im Normalfall würde jetzt kein Fehler mehr anstehen und der Raspi
arbeitet normal.
Sollte eine erneute Unterschreitung einer der Spannungen auftreten, wird
PowerGood wieder false und PowerFailure true.
Dies liest der Raspi ja wie gesagt zyklisch ein und fährt sich bei
PowerFailure true herunter. Nachdem er wirklich down ist (letztes
Script), setzt er Raspi_Is_Down true und schaltet somit seinen eigenen
Logic Level Mosfet ab --> Raspi ist aus und bleibt es auch so lange bis
Power_Good wieder true wird. (Das ganze Startet von vorne)
A4 und somit Power_Failure kann man sich theoretisch sparen wenn man
Power_Good schnell genug einliest und somit jeden Fehler detektiert.
Die deutlich einfachere und wahrscheinlich kleiner Version wäre, wenn
man beide Spannungen zyklisch über einen kleinen Tiny oder einen ADC
einliest und dann entweder über Portpin oder UART die Spannugen pollt
oder halt per Interrupt eine gefeuert bekommt.
Über den UART-TX (4. Pin von oben rechts) kann ich beim Raspi A+ gut
erkennen, ob das Runterfahren beendet ist. Die Spannung fällt dann von
3,27V auf ca 0,3V ab.
Eine andere Möglichkeit wäre der Strombedarf als Indikator. Der A+
braucht im Ruhezustand zusammen mit einem Nano-WLAN-Stick 28 mA, ohne
den Stick 25mA. Während des Herunterfahrens sind es 150-250mA.