Forum: Mikrocontroller und Digitale Elektronik RPi Versorgungssteuerung


von A. H. (berglerandi)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

ich habe diese Schaltung aufgebaut. Gesteuert wird ein Zero2.
http://www.mosaic-industries.com/embedded-systems/microcontroller-projects/raspberry-pi/on-off-power-controller

Leider bleibt bei mir der RPi nicht aus, wenn ich über den GPIO-Pin 
abschalten will.

Der lange Tastendruck zum Abschalten funktioniert. (Siehe Messung 1, 
grün: Gate vom n-Kanal-MOSFET, gelb:GPIO-Pin)

Simuliere ich am GPIO den Low-Zustand durch Masse geht es auch (Siehe 
Messung 2).

Schließe ich den GPIO an, geht es nicht mehr (Siehe Messung 3). Der RPi 
startet wieder.

Was mich wundert ist, dass der GPIO in dem dem Moment, wo der RPi 
ausgeht wieder auf high geht. Damit zieht er das Gate wieder nach oben 
und die Schaltung schaltet ein. Ich habe schon mal einen anderen freien 
GPIO während des Runterfahrens mitgemessen. Der bleibt auf low.

Vielleicht weis jemand Rat.

Danke&Gruß
Andi

von Stefan F. (Gast)


Lesenswert?

A. H. schrieb:
> Was mich wundert ist, dass der GPIO in dem dem Moment, wo der RPi
> ausgeht wieder auf high geht

Was bei Ausfall der Stromversorgung passiert, ist meistens nicht 
spezifiziert. Da kann es von Modell zu Modell erhebliche Unterschiede 
geben.

Sicher kennst du Geräte mit Lautsprecher, die beim Ausschalten laut 
"Plopp" machen. Ist der selbe Effekt: Es fehlt ein sauber definiertes 
Ausschalt-Verhalten.

Wenn du nächstes mal solche Oszilloskop-Bilder zeigst, sorge dafür dass 
man sehen kann, wie die X und Y Achsen konfiguriert sind. Denn so kann 
ich da keine konkreten Spannungen und Zeiten ablesen - nur erraten.

von N. M. (mani)


Lesenswert?

A. H. schrieb:
> Was mich wundert ist, dass der GPIO in dem dem Moment, wo der RPi
> ausgeht wieder auf high geht. Damit zieht er das Gate wieder nach oben
> und die Schaltung schaltet ein. Ich habe schon mal einen anderen freien
> GPIO während des Runterfahrens mitgemessen. Der bleibt auf low.

Schau Mal in das Datenblatt des Raspi. Normalerweise wird für jeden Pin 
der Default State bei Reset angegeben.
Genau das wirst du hier vermutlich sehen. Pi geht in Reset/Off und die 
Pins gehen in Default.

von A. H. (berglerandi)


Lesenswert?

N. M. schrieb:
> A. H. schrieb:
>> Was mich wundert ist, dass der GPIO in dem dem Moment, wo der RPi
>> ausgeht wieder auf high geht. Damit zieht er das Gate wieder nach oben
>> und die Schaltung schaltet ein. Ich habe schon mal einen anderen freien
>> GPIO während des Runterfahrens mitgemessen. Der bleibt auf low.
>
> Schau Mal in das Datenblatt des Raspi. Normalerweise wird für jeden Pin
> der Default State bei Reset angegeben.
> Genau das wirst du hier vermutlich sehen. Pi geht in Reset/Off und die
> Pins gehen in Default.

Ja, die Schaltung nutzt die (schwachen) Pullups aus. GPIo 0-8 sind 
defaultmäßig mit Pullup beschaltet. Ich nehme Nr. 7. Eigentlich sollte 
die Schaltung im Moment des Abschaltens den GPio überstimmen und 
runterziehen. So zumindest mein Verständnis.

von Stefan F. (Gast)


Lesenswert?

Vielleicht ist der Effekt sogar Beabsichtigt.

Kurz Drücken = Neustart
Lange Drücken = Aus schalten

Zumindest könnte man es so darstellen. (Its not a bug, its a feature).

von A. H. (berglerandi)


Lesenswert?

Stefan ⛄ F. schrieb:
> Vielleicht ist der Effekt sogar Beabsichtigt.
>
> Kurz Drücken = Neustart
> Lange Drücken = Aus schalten
>
> Zumindest könnte man es so darstellen. (Its not a bug, its a feature).

Ne, der soll schon aus gehen:
"The RPi should be able to turn itself OFF fully autonomously, under 
program control"

und ein kurzer Tastendruck macht nichts, ausser das er dem RPi das 
Signal zum shutdown gibt:
"When your Raspberry Pi is ON, a momentary button press doesn't affect 
the power switch, but it can be detected by the RPi if GPIO 4 is 
configured to produce an interrupt on a falling edge, or if polled 
frequently enough. Your RPi can then implement an orderly shut-down."

: Bearbeitet durch User
von A. H. (berglerandi)


Angehängte Dateien:

Lesenswert?

Hier zwei GPIOs genau gleich programmiert. Bei fallender Flanke am 
gelben Signal (Gpio mit default pullup), wird er selbst und ein zweiter 
GPIO (grün, auch default pullup) auf Output und Low gesetzt. Sie 
verhalten sich unterschiedlich.

Die steigende Flanke am gelben Signal ist der Zeitpunkt, wo der RPi 
wieder startet.

2s/div
1V/div

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Da kannst du nichts machen. Da verhalten sich unterschiedliche Raspi 
Modelle vermutlich sogar unterschiedlich. Oder anders gesagt: Die 
Schaltung passt halt nicht zu deinem Gerät.

A. H. schrieb:
> 2s/div
> 1V/div

Prima, geht doch! Jetzt fehlen nur noch die Markierungen wo Null Volt 
ist. Zeigt dein Oszilloskop diese ganzen Infos nicht direkt im Bild an?

von A. H. (berglerandi)


Angehängte Dateien:

Lesenswert?

Ja, so weit war ich auch schon, dass die Schaltung wohl nicht ganz 
passt.

Die Frage ist warum und was kann man (mit Kenntnis der genauen 
Nullpunkte des Oszis) tun

Ich habe jetzt eben nochmal den selben Aufbau gemessen, dabei aber die 
beiden GPIOs vertauscht. Jetzt hängt der grüne an der Schaltung und der 
gelbe frei.

Hier haben wir einen Unterschied. Der grüne lässt sich von der Schaltung 
wohl nun hochziehen. Vorher blieb er auf Low. Das müsste ich irgendiwe 
verhindern.

Vermutlich ist der RPi Zero2 zu schnell, bevor die Schaltung zu macht.

von Stefan F. (Gast)


Lesenswert?

A. H. schrieb:
> Die Frage ist warum und was kann man (mit Kenntnis der genauen
> Nullpunkte des Oszis) tun

Der Nullpunkt ist für das aktuelle Problem irrelevant (den konnte man 
sich auch so dazu denken). Ich wollte nur anregen, die Markierungen 
künftig nicht abzuschneiden.

von Bauform B. (bauformb)


Lesenswert?

A. H. schrieb:
> Der grüne lässt sich von der Schaltung wohl nun hochziehen.

Wenn die Zeitablenkung wirklich 2Sekunden/div ist, könnte es auch 
umgekehrt passieren.

Funktioniert die Schaltung noch, wenn du keinen GPIO mit der Schaltung 
verbindest? Also per Taster ein und aus? Vor allem: bleibt sie auch ohne 
GPIO (also ohne internen Pull-Up) dauernd eingeschaltet?

Dann sollte doch eine Diode in Reihe mit dem 1k-Widerstand helfen. Der 
RPi kann dann wirklich nur noch ausschalten, aber mehr soll er ja auch 
nicht.

von A. H. (berglerandi)


Angehängte Dateien:

Lesenswert?

Bauform B. schrieb:
> Funktioniert die Schaltung noch, wenn du keinen GPIO mit der Schaltung
> verbindest? Also per Taster ein und aus? Vor allem: bleibt sie auch ohne
> GPIO (also ohne internen Pull-Up) dauernd eingeschaltet?

Ja, das macht sie.

Es funktioniert alles wie beschrieben, sobald ich den GPIO hinhänge, 
dann startet der RPi wieder.

Ich habe jetzt die Diode reingemacht, wie im Bild.

Messung1 ist ohne GPIO-Pin sondern direkt auf Masse gezogen (gelb ist 
die Versorgungsspannung und grün das Gate vom n-Kanal). Tut alles wie es 
soll. Die Versorgungsspannung geht aus und läßt sich per Knopfdruck 
wieder einschalten (letzteres in Messung nicht zu sehen)

Messung2 mit GPIO-Pin. Wieder das Gleiche. Der RPi startet neu, weil der 
n-Kanal nicht zu macht.

von A. H. (berglerandi)


Lesenswert?

Stefan ⛄ F. schrieb:
> A. H. schrieb:
>> Die Frage ist warum und was kann man (mit Kenntnis der genauen
>> Nullpunkte des Oszis) tun
>
> Der Nullpunkt ist für das aktuelle Problem irrelevant (den konnte man
> sich auch so dazu denken). Ich wollte nur anregen, die Markierungen
> künftig nicht abzuschneiden.

Jo, war ein Versehen

von A. H. (berglerandi)


Angehängte Dateien:

Lesenswert?

Mir kommt der Zero2 verdächtig vor. Ich habe jetzt mal den gleichen GPIO 
eines RPi 3B rangehängt. Und siehe da, damit geht es. (Allerdings wurde 
der RPi3B separat versorgt und nicht über die Schaltung).

Was ist an dem Zero2 anders? Da sitzt doch sogar der gleiche Chip drin..

von A. H. (berglerandi)


Lesenswert?

Wenn man den Zero2 separat versorgt und nicht über die Schaltung, dann 
geht es auch.. Ein Rätsel

von A. H. (berglerandi)


Lesenswert?

Jetzt habe ich einen Weg gefunden, bei dem der RPi aus bleibt.

Über gpio-poweroff in der config.txt lässt sich ein PIN auf low setzen 
sobald der RPi mit dem shutdown fertig ist. Mit einem auf diese Weise 
beschalteten PIN kann man die Schaltung ausschalten.

Warum der andere Weg nicht funktioniert ist mir weiterhin schleierhaft..

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.