K (Kategorie) |
KKeine Bearbeitungszusammenfassung |
||
(3 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 4: | Zeile 4: | ||
CN5: JTAG | CN5: JTAG | ||
JRST/NTRST - (8) (7) - GND | |||
JTDI - (6) (5) - JTMS/SWDIO | JTDI - (6) (5) - JTMS/SWDIO | ||
JTCK/SWCLK - (4) (3) - JTDO | JTCK/SWCLK - (4) (3) - JTDO | ||
Zeile 57: | Zeile 57: | ||
Nach dem Bootloader flashen hätte die Firmware auch über <code>dfu-util</code> geflasht werden können. | Nach dem Bootloader flashen hätte die Firmware auch über <code>dfu-util</code> geflasht werden können. | ||
Nun sollte sich die BMP per USB melden (<code>idVendor=0x1d50</code>, <code>idProduct=0x6018</code>) und <code>/dev/ttyACM{0,1}</code> bereitstellen. | Nun sollte sich die BMP per USB melden (<code>idVendor=0x1d50</code>, <code>idProduct=0x6018</code>) und <code>/dev/ttyACM{0,1}</code> bereitstellen. | ||
Zeile 63: | Zeile 62: | ||
Herzlichen Glückwunsch! | Herzlichen Glückwunsch! | ||
== Updaten == | |||
Sobald die BMP-Firmware läuft kann die BMP selbst nicht mehr über JTAG beflasht werden - dann kann nur noch über <code>dfu-util</code> neue Firmware geflasht werden (es kann natürlich immer noch nRESET während des Poweron auf GND gezogen werden, um das Starten der Firmware zu verhindern und wieder per JTAG/SWD an den Chip ranzukommen, am einfachsten geht das an C11). | |||
[[Kategorie: Projekte]] | Sollte das Betreten des Bootloaders aus der regulären Firmware nicht funktionieren kann der Bootloader auch so gestartet werden: | ||
* BMP stromlos machen | |||
* Pin 3 und 4 (GND und TX) des UART brücken | |||
* BMP wieder anstecken | |||
Die LED sollte jetzt blinken und nur das DFU-Device über USB zu sehen sein. | |||
[[Kategorie:Projekte]] | |||
[[Kategorie:Projekte:Abgeschlossen]] |
Aktuelle Version vom 18. August 2023, 12:17 Uhr
Wir haben einen Satz Black Magic Probes (Homepage, Quellcode) auf Basis von STM8Discovery Eval Boards (Data Sheet, Digikey: 5,70€) gebaut (die Platform im Quellcode heißt swlink
).
Von den Eval Boards wird nur die obere Hälfte (die mit dem USB Connector) verwendet; diese enthält den ST-Link. Die untere Hälfte wird nicht benötigt und kann abgetrennt und fachgerecht entsorgt werden.
Flashen
Die zukünftige BMP z.B. über USB mit Strom versorgen und OpenOCD starten, zum Beispiel (entsprechend des verwendeten Programmers anpassen):
sudo openocd -f interface/olimex-arm-usb-tiny-h.cfg -f target/stm32f1x.cfg
Dann per telnet 4444
verbinden. Zuerst müssen Speicherbank und einzelne Sektoren unlockt werden (nachprüfen über flash info 0
; nur die gesperrten Sektoren entsperren und nicht "alle", sonst schlägt dies warum auch immer fehl). Dann Chip resetten und Bootloader und Firmware flashen (absolute Pfade verwenden!):
> stm32f1x unlock 0 stm32x unlocked. INFO: a reset or power cycle is required for the new settings to take effect. > flash protect 0 0 7 off cleared protection for sectors 0 through 7 on flash bank 0 > reset > flash write_image erase unlock /.../blackmagic/src/blackmagic_dfu.bin 0x08000000 auto erase enabled auto unlock enabled aligned end protect sector to a 4 sector boundary wrote 7168 bytes from file /.../blackmagic/src/blackmagic_dfu.bin in 0.877855s (7.974 KiB/s) > flash write_image erase unlock /.../blackmagic/src/blackmagic.bin 0x08002000 auto erase enabled auto unlock enabled aligned end protect sector to a 4 sector boundary wrote 50176 bytes from file /.../blackmagic/src/blackmagic.bin in 3.347591s (14.637 KiB/s) > reset halt JTAG tap: stm32f1x.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3) JTAG tap: stm32f1x.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1) target state: halted target halted due to debug-request, current mode: Thread xPSR: 0x01000000 pc: 0x080016b8 msp: 0x20005000
Nach dem Bootloader flashen hätte die Firmware auch über dfu-util
geflasht werden können.
Nun sollte sich die BMP per USB melden (idVendor=0x1d50
, idProduct=0x6018
) und /dev/ttyACM{0,1}
bereitstellen.
Herzlichen Glückwunsch!
Updaten
Sobald die BMP-Firmware läuft kann die BMP selbst nicht mehr über JTAG beflasht werden - dann kann nur noch über dfu-util
neue Firmware geflasht werden (es kann natürlich immer noch nRESET während des Poweron auf GND gezogen werden, um das Starten der Firmware zu verhindern und wieder per JTAG/SWD an den Chip ranzukommen, am einfachsten geht das an C11).
Sollte das Betreten des Bootloaders aus der regulären Firmware nicht funktionieren kann der Bootloader auch so gestartet werden:
- BMP stromlos machen
- Pin 3 und 4 (GND und TX) des UART brücken
- BMP wieder anstecken
Die LED sollte jetzt blinken und nur das DFU-Device über USB zu sehen sein.