STM32F4 und Bootloader

Die STM32F4 CPU hat einen eingebauten Bootloader, mit dessen Hilfe man die CPU programmieren kann auch wenn man keinen STLink/V2 hat.

Am einfachsten ist der Weg per externem USB-to-UART-Wandler (von FTDI) und dem Flash-Loader PC-Programm von STM.

1. PC vorbereiten :

Auf dem PC muss ein aktueller USB Treiber für den FTDI-Wandler installiert sein.
(den gibts auf der Webseite von FTDIChip)

Das “Flash-Loader-Programm” gibt es auf der Webseite von STM.

2. FTDI-Wandler per USB-Kabel an den PC anschließen :

Im Gerätemanager taucht jetzt ein neuer COM-Anschluss auf
(die Nummer vom COM-Port bitte aufschreiben…im Beispiel = COM6)

boot0

3. FTDI-Wandler mit dem UART1 der CPU verbinden :

Der TX-Pin vom FTDI-Wandler muss mit dem RX-Pin der STM32F4
verbunden werden (RX_UART1 = PA10 = Pin 69)

Der RX-Pin vom FTDI-Wandler muss mit dem TX-Pin der STM32F4
verbunden werden (TX_UART1 = PA9 = Pin 68)

4. Bootloader auf der CPU starten :

Um den Bootloader auf der CPU zu starten muss diese Sequenz durchgeführt werden :
1. CPU Pin BOOT-1/PB2 (Pin 37) muss auf Lo-Pegel liegen
2. CPU Pin BOOT-0 (Pin 94) muss auf Hi-Pegel liegen
3. Reset muss ausgelöst werden (Reset = Pin 14)

Wenn der Bootloader einmal läuft, ist der Pegel an Boot-0 und Boot-1 egal, die CPU wartet jetzt bis sie entweder ein HEX-File zum flashen bekommt oder bis erneut ein Reset ausgelöst wird.

5. Flash-Loader-Programm auf dem PC starten :

boot1

auf die Einstellung des richtigen Com-Ports achten
und den Button “NEXT” drücken

6. CPU suchen lassen :

boot2

Falls der Bootloader der CPU gefunden wurde,
erscheint eine “Target available” meldung.
Jetzt wieder den Button “NEXT” drücken.

7. Target auswählen :

boot3

Unter “Target” muss die richtige Speichergröße der CPU eingestellt werden.
Im fall vom STM32F4 auf 1024K (1MByte)
Dann weiter mit dem Button “NEXT”

8. File zum programmieren auswählen :

boot4

Unter “Download from File” kann über den Button das “BIN” oder “HEX”-File
das programmiert werden soll in einerm Browser gesucht werden.
(im Beispiel “Stamp_01.bin”)
Mit einem Klick auf “NEXT” wird das File in die CPU programmiert.

9. File in die CPU flashen :

boot5

Wenn das programmieren ohne Fehler funktioniert hat,
wird “successfully” angezeigt.

10. Programm auf der CPU starten :

Die CPU steht jetzt immer noch im Bootloader. Um das gerade
geflashte Programm zu starten, muss diese Sequenz durchgeführt werden :
1. Pegel vom CPU Pin BOOT-1/PB2 (Pin 37) ist egal
2. CPU Pin BOOT-0 (Pin 94) muss auf Lo-Pegel liegen
3. Reset muss ausgelöst werden (Reset = Pin 14)

11. Fertig :

Die CPU sollte jetzt mit dem neuen Programm laufen
und das PC-Programm kann beendet werden.

2 Antworten auf STM32F4 und Bootloader

  1. Jo sagt:

    Damit keiner Zeit verschwendet ein zusätzlicher Hinweis:
    auf dem Discovery-Board funktioniert der interne Bootloader nicht so wie beschrieben, da die Pins PA9/PA10 mit dem USB-Anschluß belegt sind. Auf dieser Leiterplatte muss man die Pins PB10/PB11 bzw. PC10/PC11 oder den DFU-Modus benutzen.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *


+ sieben = zehn

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>