Hallo zusammen. Ich habe bisher ausschließlich mit Arduino gearbeitet und stehe vor einen für euch wahrscheinlich kleinen Problem. Es geht um meinen neuen 3D Drucker. Es war bisher so: wenn ich zum flashen in den bootloader wollte, konnte ich kurz nach dem einschalten innerhalb von 3 Sekunden auf dem Touchscreen tippen, und ich war im flashmodus. Dass hat paar mal einwandfrei funktioniert. Jetzt geht gar nichts mehr. Wie schaffe ich es, beim einschalten in den flashmodus zu gelangen? Danke vielmals!
Schau zuerst ins "STM32F4 Reference Manual" Kapitel 2.4 "Boot configuration". Die Zuordnung der Pins findest du im "STM32F407 Datasheet". Außerdem solltest du einen Blick ins "STM32F40x Errata Sheet" werfen, um böse Überraschungen zu vermeiden. Diese drei Dokumente sollten ohnehin Pflichtlektüre sein. Um es kurz zu machen: Der Pin Boot0 muss auf HIGH und der Pin Boot1 muss auf LOW. Dann den Reset Knopf drücken. Hast du einen konkreten Grund, warum du keinen ST-Link Adapter verwendest? Ich frage, weil du mit dem auch debuggen könntest. Als ehemaliger Arduino Nutzer könnte das ein sehr angenehmes Erlebnis werden.
Danke für die schnelle Anwort Stefanus. Ich bin gestern zum ersten mal in die Verlegenheit gekommen einen STM32 zu flashen. Hab heute gelernt, dass man dafür einen ST-Link braucht, um den Chip zu flashen. Werd mir auf jeden Fall 2 Stück anschaffen. Hab mit dem Gedanken gespielt komplett auf STM32 umzusteigen, aber das ist halt Neuland für mich und wahrscheinlich auch etwas schwieriger als Arduino... Die Vorteile liegen aber eigentlich auf der Hand: Schneller, Sparsamer im Stromverbrauch. Viele Grüße und Danke nochmal!
>Hab mit dem Gedanken gespielt komplett auf STM32 umzusteigen, aber das >ist halt Neuland für mich und wahrscheinlich auch etwas schwieriger als >Arduino... Beitrag "Re: STM32 Core Arduino Framework"
Mehmet Ali Ç. schrieb: > Hab heute gelernt, dass man dafür einen ST-Link braucht, um > den Chip zu flashen. Es geht auch über den seriellen Bootloader. Dann muss man wie gesagt die Boot Pins entsprechend einstellen. > Die Vorteile liegen aber eigentlich auf der Hand: Schneller, Sparsamer > im Stromverbrauch. Sparsamer? Eher nicht und wenn schon, dann nur bei den L Modellen. Schneller ist nur von Vorteil, wenn man die Geschwindigkeit benötigt. Als Arduino Nutzer kannst du schon aus den "kleinen" AVR Mikrocontrollern eine Menge mehr heraus holen, indem du auf das Arduino Framework verzichtest. Insbesondere auf digitalWrite() und digitalRead().
Mehmet Ali Ç. schrieb: > Verlegenheit gekommen einen STM32 > zu flashen. Hab heute gelernt, dass man dafür einen ST-Link braucht Das ist so nicht korrekt. Willst Du nur flashen, dann kannst Du den integrierten Bootloader verwenden, welcher je nach Typ von STM32 viele Schnittstellen unterstützt wie z.B. UART, USB, CAN. https://www.st.com/content/ccc/resource/technical/document/application_note/b9/9b/16/3a/12/1e/40/0c/CD00167594.pdf/files/CD00167594.pdf/jcr:content/translations/en.CD00167594.pdf Aber natürlich ist ein ST-Link nie eine verkehrte Investition. Kann die Clones von Aliexpress empfehlen für ca. $ 1.90: https://de.aliexpress.com/item/1PCS-ST-LINK-Stlink-ST-Link-V2-Mini-STM8-STM32-Simulator-Download-Programmer-Programming-With-Cover/32792513237.html
:
Bearbeitet durch User
Hallo, hab heute meinen StLink bekommen, gleich angeschlossen und Treiber installiert. Zu meinem erstaunen wurde kein COM - Port erzeugt, den ich für das jp-Firmware-Update der Platine schon bräuchte. Was muss ich machen, damit ein COM-Port erzeugt wird? Der ST-LINK Utility kommt aber auch nicht ganz klar, obwohl ich alles ordentlich angeschlossen habe. Reicht es denn nicht die 4 Pins so anzuschließen: 3.3V->3.3V GND->GND SWDIO->SWDIO SWCLK->SWCLK Muss ich außerdem BOOT0:HIGH und BOOT1:LOW setzen oder ist das mit dem StLink überflüssig. Habs zwar probiert, hat aber nichts gebracht. Wie gesagt in STM32 bin ich absoluter Beginner, sorry! Kann mir einer bitte sagen, was ich falsch mache, oder ist vielleicht der chip hin? Danke vielmals!
"Connect under Reset" und "Reset Mode" dürften dein Problem sein.
:
Bearbeitet durch User
ST-Link Adapter haben keinen virtuellen COM-Port. Die Option "Hardware Reset" funktioniert nicht mit den billigen China ST-Link clones, weil deren Reset-Ausgang nur bei STM8 funktioniert. Wie Harry schrieb, kannst du die Option "Connect under Reset" verwenden und dann während der Verbindungsaufbaus den Reset-Knopf manuell drücken. Aber nicht zu lange, ist ein bisschen Fummelei, das richtige Timing herauszufinden. Wenn dein Target nicht in den sleep modus geht und die SWJ Schnittstelle nicht deaktiviert, kannst du auch "Software Reset" (oder so ähnlich) nutzen. Dann brauchst du nicht auf den Reset Knopf zu drücken. Die Boot Jumper muss man nicht umsetzen, wenn man per SWJ Schnittstelle programmiert. Aber: Es kann sein, dass das alte Programm sich so gründlich aufhängt, das gar nichts mehr geht. In diesem Fall kann es hilfreich sein, den Bootloader über die beiden Jumper zu aktivieren. Denn der Bootloader lässt die SWJ Schnittstelle aktiv und hängt sich auch nicht auf.
Die STLinkV2 (und Klone) haben alle auch den NRST-Anschluss drauf, nur ist bei den Klonen nur das RESET des SWIM-Interfaces über die Stifleiste zugänglich. Für das NRST von SWD-Interface müsste man ggf. die Leiterbahn fürs SWIM-Reset trennen und per Fädeldraht das vom SWD-Interface anschließen. Ähnlich ist's mit dem SWO-Pin. Etwas fummelig ... Wenn's schnell, einfach und güstig sein soll, würde ich den STLink von irgendeinem Nucleo-64 nehmen. Diese Boards sind leicht erhältlich, so etwa ab 12€, und der integrierte STLink hat den COM-Port mit drin. Den "Haupt"-STM32 auf dem Nucleo kann man (inkl. UART) über Lötbrücken vom STLink abtrennen, dann hat man SWD inkl. NRST, SWO und den COM-Port frei zugänglich über Stiftleisten auf dem STLink-Teil der Platine. Welche Lötbrücken zu entfernen sind, steht im UM: https://www.st.com/resource/en/user_manual/dm00105823.pdf Ansonsten lohnt sich auch mal ein Blick auf STLinkV3, leider noch etwas rar und teurer, so um die 35€.
Mehmet C. schrieb: > Zu meinem erstaunen wurde kein COM - Port erzeugt vom ST-Link gibt es verschiedene Versionen, der COM Port ist in den V2-1, -A oder -B drin. Das geht bei den STLinks die an den NUCLEO oder neueren DISCO boards dran sind. Eine Übersicht gibt es hier: https://www.st.com/resource/en/technical_note/dm00290229.pdf Die Firmware braucht den Controller mit 128 kB Flash, für die kleineren bietet das Firmware Updatetool die Versionen mit VCOM nicht an. Alternativ kann man die BlackMagicProbe Firmware verwenden, die kann man auch auf die kleineren F103C8 flashen.
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.