Hallo! Vorab muss ich sagen, dass ich ein ziemlicher Laie in elektrotechnischen Angelegenheiten bin. Ich möchte aber gern mehr darüber lernen. :-) Ich habe ein kleines Bastelprojekt für mein Raspberry Pi. Ich betreibe es mittels eines ATX-Netzteils, welches ich mittels eines solchen Schaltfolgeconverters einschalte: https://www.conrad.de/de/schaltfolgekonverter-35-v-15-a-1-x-ausein-rastend-1-st-701240.html?sc.queryFromSuggest=true Das funktioniert auch soweit super, allerdings kann sich das Raspi damit nicht selbst ausschalten. Ich möchte also die beiden grünen Kabel mittels eines der GPIO-Pins und einem Transistor kurzschließen, damit das Netzteil ausgeschaltet wird. Es gibt eine spezielle Datei, welche ausgeführt wird, wenn Linux herunterfährt. Hier möchte ich den Code für den GPIO-Pin parken. Das Problem: Wenn an dieser Stelle das System vom Strom getrennt wird, kann nach Rücksprache mit einem Linuxexperten das Dateisystem beschädigt werden! Ich benötige also eine Verzögerungsschaltung, die dafür sorgt, dass das System tatsächlich erst einige Sekunden später ausgeschaltet wird. Hierzu habe ich mir eine kleine Schaltung zusammengebastelt, welche zumindest in LTSpice fast wie gewünscht funktioniert. An V1 liegen normalerweise konstant 5V an. Da mir das simulieren eines Thyristors nicht so recht gelingen will, habe ich das tatsächliche Verhalten der Schaltung mit einem Spannungsverlauf emuliert. Ziel ist es, dass V(TPos) um 4 oder mehr Sekunden nach V(IN) auf 5V schaltet. Wenn dies geschieht, wird das Netzteil wie gesagt abgeschaltet und auch die 5V Spannungsquelle schaltet ab. Hierdurch soll der P-Kanal-Transistor auf leitend geschaltet werden und den Kondensator entladen. Aber aus irgendeinem Grund entlädt sich der Kondensator nur während der negativen Spannungsflanke von V1 (und auch dann nicht komplett, abhängig vom gewählten Endladungs-Transistor und dem Ladewiderstand). Wenn ich den Widerstand so hoch ansetze wie jetzt, entlädt sich der Kondensator nicht einmal mehr ausreichend, um den Schmitt-Trigger wieder umzuschalten. Ich könnte mir vorstellen, dass bei einem zu schnellen wiedereinschalten des Raspi dadurch Probleme auftreten könnten. Kann mir jemand meinen Denkfehler erklären?
Bei einem normalen Linux Rechner schaltet der Kernel das Netzteil aus. Du kannst das auch in einem Script machen, wenn du vorher sicher stellst, dass kein anderer Prozess neue Schreibzugriffe macht. Am Einfachsten geht das, indem du alle verzichtbaren Filesysteme unmountest und die übrigen read-only mountest. mount -o remount,ro / Dein Ansatz mit dem Timer ist fehlerträchtig. Was ist, wenn der Rechner zum runterfahren mal ungewöhnlich lange braucht?
Noch ein Nachtrag dazu: Deine nächste Frage wird vermutlich sein, dass der mount Befehl nicht klappt, weil noch irgendwelche Programme Files offen haben. Die findest du mit folgendem Befehl: fuser -v -m /
Stefan U. schrieb: > Bei einem normalen Linux Rechner schaltet der Kernel das Netzteil aus. > > Du kannst das auch in einem Script machen, wenn du vorher sicher > stellst, dass kein anderer Prozess neue Schreibzugriffe macht. > > Am Einfachsten geht das, indem du alle verzichtbaren Filesysteme > unmountest und die übrigen read-only mountest. > > mount -o remount,ro / > > Dein Ansatz mit dem Timer ist fehlerträchtig. Was ist, wenn der Rechner > zum runterfahren mal ungewöhnlich lange braucht? Leider kann ich das derzeit nicht testen, da ich im Urlaub bin. Das Problem ist jedoch, dass ich zu einem späteren Zeitpunkt die GPIO-Pins anscheinend nicht mehr ansteuern kann, da diese dann deaktiviert werden und nicht mehr zur Verfügung stehen. Etwa 2s vor dem tatsächlichen Erlöschen sämtlicher Netzwerk und Schreib/Lese-LEDs auf dem PCB schalten sich alle zuvor auf "1" gesetzten GPIO-Pins wieder in den Ursprungszustand. Das heißt, ich benötige eine Lösung, die definitiv (oder mit ziemlicher Sicherheit) dann das System abschaltet, wenn der Prozessor das HALT-Signal bekommt.
Wenn du den Kondensator wieder entladen willst - warum nicht einfach mit dem Digitalsignal vom Ausgang des Komparators? Am besten noch mal Tiefpass und Komparator, damit du die Impulslänge für den Schaltfolgekonverter getrennt einstellen kannst. P.S. Abschalten soll das Netzteil 5 Sekunden nachdem der GPIO hochohmig wird. Da braucht es wohl 2 Elkos. Der GPIO lädt einen Kondensator, der den Strom für den Zeitgeber-Kondensator liefert, nachdem der GPIO hochohmig wird.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
