Helpdesk

Hallo,


bei meinen Untersuchungen, ob der StromPi für meine Zwecke passt,
habe ich auch versucht, die Firmware neu zu Flashen. Dabei habe ich mich exakt an die Anleitung gehalten.
Leider funktionierte der Vorgang nicht und folgende Meldung erscheint:


Using Parser : Raw BINARY
Interface serial_posix: 9600 8E1
Failed to init device.


Bei der Ursachenforschung bin ich dann auf die Lösung gestoßen.
Der STM32 wartet im Flashmodus auf die entsprechenden Daten, die über die Serielle-Schnittstelle kommen und programmiert werden sollen.
Angefangen wird beim Senden mit Hex 7F worauf der STM32 mit Hex 79 antworten sollte.
Ist jetzt aber, wie in meinem Fall in der rc.local z.B. das Script RTCSerial.py eingetragen um die Zeit zu syncronisieren,
werden in der Startphase des Raspberry entsprechend Daten über die Serielle-Schnittstelle an den StromPi gesendet.
Diese können logischerweise nicht verarbeitet werden, da sich der StromPi ja im Flashmodus befindet. Alles gut soweit.


Es verhält sich aber so, dass diese Daten bzw. Anfragen an den StromPi, den Bootloader des STM32 "blockieren" und dann ein Flashen der Firmware nicht möglich ist.
Er kann also nicht auf die gesendete Hex 7F antworten und die Datenübertragung bricht ab.


Leider existiert kein Reset-Taster auf dem StromPi, aber der Reset-Anschluss des STM32 ist auf der Rückseite der Platine zugänglich.
Darüber ist es möglich (kurzzeitig auf Masse legen), den StromPi nach dem abgeschlossenen Startvorgang des Raspberry zurück zu setzen und dann den Flashvorgang erfolgreich durchzuführen.
Alternativ kann natürlich auch alles vorübergehend deaktiviert werden, was beim Starten des Raspbery für Daten auf der Seriellen-Schnittstelle sorgt.


Ich hoffe, das war ein weing aufschlussreich und kann dem Ein oder Anderen weiter helfen.
Es wird sicherlich nicht so ohne weiteres möglich sein, dieses Verhalten des Bootloader zu ändern.


Gruß Helpless

Helpless

25.03.23 16:33