Material und Software
- ST-Link V2
- USB/UART-Converter (CP2102 wenn die RS41 extern mit Strom versorgt werden soll)
- USB-Hub
- Stecker für die XDATA-Buchse (Amphenol ICC Minitek 89947-710SLF für Flachbandkabel, Amphenol ICC Minitek 90311-010LF + 77138-101LF für Rundkabel; gibt es auch als Muster umsonst von Amphenol)
- Einzeladern, Dupont Gehäuse und Female Crimpeinsätze
- STM32CubeProgrammer
Programmierkabel bauen
Um die RS41 zu Programmieren, bietet es sich an, ein Breakout-Kabel zu bauen, dass den 2×5 2 mm Minitek Header des XDATA-Anschlusses auf besser kompatible 2,54 mm Dupont-Stecker herausführt. Ich habe für mein Kabel Einzeladern im passenden Leitermittenabstand aus der Bastelkiste an eine Pfostenbuchse gecrimpt. An das andere Ende kommen dann die Dupont-Kontakte in 1er- oder 2er-Gehäusen. Die XDATA-Buchse führt einen UART, SWD zum Programmieren und Debuggen und verschiedene Stromschienen.

Ich habe bei meinem Kabel folgende Leiter in gemeinsame Gehäuse geführt:
Pins | Name | Funktion |
2/3 | UART RX/TX | Zum Debuggen mithilfe von seriellen Nachrichten, zur Verbindung mit einem PC oder zum Einspeisen externer Daten (über diese zwei Pins werden normalerweise externe Sensoren angeschlossen |
8/9 | SWD SWCLK/ SWDIO | Zum Programmieren und Debuggen des STM32-Mikrocontrollers über SWD |
7 | MCU_RST | Zum Reset des STM32-Mikrocontrollers fürs Programmieren und Debuggen oder einfach nur so |
1/5 | V_Boost/ GND | Wenn die Sonde über Batterien versorgt wird, liegt hier die Ausgangsspannung des Boost-Converters von 3,8 V an, aus der Anbauteile höherer Leistung versorgt werden können. Ansonsten kann die Sonde durch Anlegen einer 3,3 V Spannungsquelle an diesen Anschluss fremdgespeist werden. Die Sonde schaltet sich dann mit der Stromversorgung ein und aus, Taster und NFC-Einschalten sind funktionslos. |
6/10 | V_Bat/GND | Wenn die Sonde über Batterien versorgt wird, liegt hier die Batteriespannung direkt nach der Sicherung an. Durch Anlegen von 1,5 – 3 V an diesen Anschluss kann die Sonde fremdgespeist werden, Taster und NFC-Einschalten funktionieren wie gewohnt (Das Ausschalten durch Gedrückthalten ist eine softwareseitige Funktion und hängt von der Firmware ab. |
4 | +3V_MCU | Ausgang des LDO, der den STM32 mit Strom versorgt. Im Betrieb liegen 3 V an, der Anschluss sollte aber allenfalls marginal belastet werden. Durch ANlegen einer Spannung kann (nur) der Controller und ein kleiner Teil der Sonde fremdgespeist werden. |
Das Programmierkabel kann nun an den PC angeschlossen werden. Dazu werden SWDIO, SWCLK, MCU_RST und GND mit dem ST-Link verbunden. Am CP2102 wird RX mit TX und TX mit RX über Kreuz (nullmodem) verbunden. V_Boost und GND werden mit +3V3 und GND verbunden, so wird die Sonde mit Strom verbunden.

Wer kein CP2102 hat, kann natürlich auch eine Batterie an V_Bat und GND anschließen, allerdings wird dann ein zusätzliches GND-Kabel benötigt, da es ein wenig hacky ist, die Massereferenz über den USB-Hub zu führen.

Firmware-Datei flashen
Zuerst wird die Software STM32CubeProgrammer benötigt, die nach Registrierung von der ST-Website heruntergeladen werden kann. Nach der Software- und Treiberinstallation kann die Sonde angeschlossen und ggf. eingeschaltet werden. Die Software sollte sich nun mit der Sonde verbinden, wenn man den grünen “Connect”-Button rechts oben drückt. Die Fehlermeldung “Data read failed” können wir im Moment ignorieren, weil der Ausleseschutz im Mikrocontroller noch aktiviert ist.

Wir können den Ausleseschutz löschen, indem wir auf der linken Seiten zunächst in den Reiter “Option bytes” gehen. Hier darf unter “Read Out Protection” kein Häkchen gesetzt sein. Unter “Write Protection” hingegen müssen alle Häkchen gesetzt sein. Mit einem Klick auf “Apply” übernehmen wir die Konfiguration auf den Mikrocontroller.

Nun können wir im Reiter “Erasing & Programming” durch Klick auf “Full chip erase” den gesamten Speicherinhalt löschen. Anschließend können wir unter “Download” den Dateipfad zu unserem Firmware-Image bestimmen und mit “Start Programming” den Controller flashen.
