Helpdesk

Hallo Tim,
heute gibt es mal ein unkonventionelles Anliegen.


Der StromPi soll ganz normal im Serial Mode arbeiten. Zusätzlich soll aber die Steuerung des Raspi wie im serialless-mode stattfinden, also das Herrunterfahren über den GPIO-Pin des Raspi stattfinden.
Ich habe schon in der Firmware etwas herrumprobiert und für das Herrunterfahren bei Verlust der Primären-Spannung scheint es zu klappen. Der StromPi schaltet am Ende ab.
Es gibt aber ein Problem beim manuellen Herrunterfahren über das shutdown-script. Da schaltet der StromPi nicht ab. Der Jumper auf demStromPi ist gesetzt.


Ihr kennt die Firmware besser.
Was müsste ich in der Firmware anpassen, damit es wie gewünscht funktioniert?


Viele Grüße
Helpless

Helpless

26.02.24 18:19

Hallo Helpless,


ohne die bereits durchgeführten Änderungen zu kennen, ist es schwierig hier die richtigen Hinweise zu liefern.


Auf Anhieb kann ich jetzt auch nicht sagen was genau geändert werden muss, um das gewünschte Verhalten zu erreichen.


Ich würde empfehlen, zu versuchen in der void ShutdownRPi() nur die if-Abfrage zu entfernen, sodass immer die serialless Warnung beim Aufruf der Funktion ausgegeben wird.


Mit freundlichen Grüßen


Tim (Joy-IT)

Tim

27.02.24 11:27

Hallo Tim,
so war ich die Sache auch angegangen.
Es scheint aber nach weiteren Untersuchungen nicht unbedingt am StromPi zu liegen. Da gibt es ja auch noch die andere Seite, den Raspi.
Dort läuft das powershutdown_serielless Script, in dem der GPIO des Raspi zum Eingang mit Pullup-Widerstand konfiguriert wird.
Wird der Raspi dann über das shutdown Script manuell heruntergefahren, bleibt der GPIO-Pin als Eingang mit aktiven Pullup bestehen.
Der Pin des StromPi wird über den shutdown Befehl als Eingang mit Pulldown Widerstand konfiguriert (um über den Starttaster wieder gestartet werden zu können).


Jetzt ergibt sich folgende Situation: Es entsteht ein Spannungsteiler von dem Pullup (Raspi) und dem Pulldown (StromPi) zwischen den 3,3V und Masse.
Das führt zu einer Spannung von ca. 1,44V die dann am Eingang des StromPi anliegt und somit dafür sorgt, dass der StromPi wieder "durchstartet".
Er denk, dass der Powertaster betätigt wurde. Das konnte ich so mit einem Oszilloskop nachvollziehen.
Beim Herunterfahren über das powershutdown_serielless Script stellt sich dieser Zustand nicht ein.


Eine Idee, wie sich das lösen lässt?
Wie würde denn im richtigen Serielless-Modus das manuelle Herunterfahren gelöst?


Viele Grüße
Helpless

Helpless

28.02.24 20:53

Hallo Helpless,


im serialless-Modus gibt es keine Funktion zum manuellen herunterfahren des StromPi. 
Es muss der Serialless Modus beendet werden, um dann den shutdown Befehl über Serial zu senden.


Eventuell hilft es vor dem Herunterfahren ein GPIO.cleanup() durchzuführen, um den Pullup Widerstand zu entfernen.


Mit freundlichen Grüßen


Tim (Joy-IT)


 

Tim

29.02.24 09:41

Hallo Tim,
nach weiteren Untersuchungen muss ich meine vorherige Erkenntniss teilweise revidieren.
Nachdem ich eine Möglichkeit gefunden hatte vom Pullup Widerstand zum Pulldown Widerstand zu wechseln,
verhält es sich immer noch so, dass der StromPi nicht abschaltet. Ich habe auch mal die daten extern abgegriffen, die der StromPi über die Serielle-Schnittstelle ausgibt.
daran lässt sich erkennen, dass der StromPi ein PowerBack erkennt und dashalb nicht abschaltet.


Daraufhin habe ich wieder die originalen Dateien für die Firmware genommen und geflashed.
Anschließend alles so präpariert, dass der StromPi und Raspi im Serielless-Modus arbeiten.
Wenn ich jetzt so vorgehe, wie es von euch vorgesehen ist, mit dem Stop_serialless-Script den Modus beende und dann über das shutdown-Script manuell herunterfahre,
schalte der StromPi auch nicht ab. Es ist Alles so, wie ihr den Serielless-Modus vorgesehen habt!


Es muss also doch noch ein Problem im original Quellcode geben. Nur wenn der StromPi auf Grund der fehlenden Spannung am Wide-Eingang herunterfährt,
schaltet er sich aus.


Viele Grüße
Helpless

Helpless

03.03.24 16:50

Hallo Helpless,


nach einer kurzen Untersuchung, kann ich dieses Verhalten nicht bestätigen.


Bei meinem Versuch konnte ich den Seriallessmode mit dem Stop-Seriallless.py Skript beenden und den StromPi anschließend über das shutdown.py Skript abschalten.


Dabei ist es wichtig, dass nicht noch z.B. das powershutdown_Serialless Skript im Hintergrund läuft, welches den Pin High hält, wodurch der Seriallessmode nicht beendet werden kann.


Mit freundlichen Grüßen


Tim (Joy-IT)


 

Tim

05.03.24 11:14