Forum: Mikrocontroller und Digitale Elektronik STM32F401 (Blackpill) lässt sich nur 1x per SWD flashen


von Peter K. (Gast)


Lesenswert?

über den SWD Anschluss.
Wenn ich ihn danach erneut flashen will, muss ich den Resetpin 
zusätzlich abklemmen?!?
Wieso geht es mit der originalen Firmware, aber danach nur noch mit 
reset Pin?
Und wieso legen die den Reset PIN nie mit auf den SWD Anschluss?

von Fern Schätzer (Gast)


Lesenswert?

Peter K. schrieb:
> Wieso geht es mit der originalen Firmware, aber danach nur noch mit
> reset Pin?

Weil du vermutlich mit dem Programm das du reinschreibst die
SWD-Schnittstelle verwendest/disablest und dadurch der
Controller nur noch unter "Reset-aktiv" wieder angesprochen
werden kann.

von Fern Schätzer (Gast)


Lesenswert?

Fern Schätzer schrieb:
> SWD-Schnittstelle verwendest/disablest

Damit ist gemeint dass du die Pins anderer Verwendung zuführst.

von Stefan F. (Gast)


Lesenswert?

Vermutlich deaktiviert deine eigene Firmware den SWD Anschluss oder legt 
den µC schlafen (dann geht SWD nämlich auch nicht mehr).

Auf den Bluepill Boards ist die übliche Vorgehensweise, dass das eigene 
Programm nach dem Reset erstmal 1-2 Sekunden wartet, bevor es SWD 
deaktiviert (wenn überhaupt). Dann kann man zum Verbindungsaufbau den 
Reset Taster drücken.

Es geht auch ohne dieses Delay, aber das Timing ist kniffelig.

Alternativ kannst du den Boot0 Jumper auf HIGH umstecken, dann startet 
deine Firmware nicht.

> Und wieso legen die den Reset PIN nie mit auf den SWD Anschluss?

Weil das Board für Arduino gemacht wurde. Weder Arduino noch dessen 
Bootloader deaktivieren die SWD Schnittstelle. Außerdem enthält der 
Bootloader das oben genannte Delay.

Die China ST-Link Sticks haben dementsprechend auch keinen Reset 
Ausgang.

Ja, das ist außerhalb von Arduino suboptimal.

Die Möglichkeit, während des Reset connecten zu können, ist zwar bei 
allen STM32 gegeben, bei anderen ARM Controllern jedoch nicht 
selbstverständlich.

von Peter K. (Gast)


Lesenswert?

ah, ok, das klingt logisch, dann werde ich da mal drauf achten und ggfl. 
den delay nutzen:-)

von Stefan F. (Gast)


Lesenswert?

Mir fehlt an dem Stecker übrigens auch die SWO Leitung.

von Johannes S. (Gast)


Lesenswert?

Diese Boards haben einen Reset und einen Boot0 Taster. Wenn der uC im 
WFI hängt: Boot0 gedrückt halten und dann einmal Reset, danach kommt der 
Debugger auch wieder dran.
Wenn das Board im Gehäuse steckt, dann ist das natürlich schwieriger.

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.