In diesem Dokument wird beschrieben, wie ein Nucleo STM32L476RG-Board mit einer Target-STM-MCU für Firmware-Downloads, Debugging und serielle Terminalverbindungen verbunden werden kann. Das Nucleo-Board wird über USB mit einem Host (Mac, Windows oder Linux) verbunden, Debugging- sowie serielle Kabel sind mit dem Target verbunden. Dadurch können Firmware-Dateien (z. B. die Mbed „.bin“-Dateien) auf das Nucleo USB-Laufwerk kopiert werden, das dann vom Nucleo-Board in das Target geflasht wird. „Tera Term“ o. ä. kann als virtuelles COM-Terminal verwendet werden.
Nucleo-Board: Voraussetzungen
- Empfohlene STM-Handbücher: UM1724, User manual, STM32 Nucleo boards
- Vergewissern Sie sich, dass die Nucleo ST-Link-Firmwareversion V2J29M18 oder höher ist (andernfalls funktioniert die STML433-MCU nicht korrekt):
- Verwenden Sie zum Aktualisieren der Nucleo-L4-ST-Link Firmware das Utility „STLinkUpgrade“
Nucleo-Board für eine Remote-Target-Verbindung vorbereiten
Verwenden Sie ein Standard Nucleo-Board, das über eine ST-Link-Schnittstelle verfügt. Gehen Sie wie folgt vor, um das Nucleo-Board mit dem Target zu verbinden (siehe Abbildung des Nucleo-Boards unten):
- Öffnen Sie den Jumper JP6 (3,3 V für die Nucleo-MCU, zur Vermeidung von MCU-Signalen)
- Löten Sie die Stiftleiste JP4 ein (werksseitig nicht montiert)
- Setzen Sie den Jumper JP4 (ermöglicht RX/TX-Signale auf CN3)
- Öffnen Sie die Jumper CN2 (2 x, dadurch wird Remote-Application-Debugging für ST-Link ermöglicht)
Adapterkabel vorbereiten und verbinden
Ein 8-poliges Adapterkabel fungiert als ST-Link-Kabel, welches das Nucleo-Board mit dem Target-Board verbindet:
Signal | ST-Link Pin | Target Pin | Kommentar |
---|---|---|---|
Console | CN3-1 (RX) | J3-3 (PA15 TX) | USB Virtual-COM-Terminal |
Console | CN3-2 (TX) | J3-1 (PA2 RX) | USB Virtual-COM-Terminal |
VDD | CN4-1 | J3-6 (NICHT VERBINDEN) | Verbindung zum Debuggen, VDD wird nicht benötigt und könnte Leckströme begünstigen, daher bitte offen lassen |
SWCLK | CN4-2 | J3-5 (PA14) | Verbindung zum Debuggen |
GND | CN4-3 | J3-8 | Verbindung zum Debuggen |
SWDIO | CN4-4 | J3-7 | Verbindung zum Debuggen |
RST | CN4-5 | J3-4 | Verbindung zum Debuggen |
SWO | CN4-6 | J3-3 | Verbindung zum Debuggen |
Um RX-/TX-/RST-/SWO-Verbindungen zwischen einem Remote-Target und der ST-Link-Schnittstelle des Nucleo-Boards nutzen zu können, müssen die 0-Ω-Brücken auf der Unterseite des Nucleo-Boards aufgetrennt werden (siehe Abb. unten). Alternativ kann die ST-Link-Schnittstelle der Platine abgetrennt werden (siehe weiß gepunktete Linie auf dem Nucleo-Board in der Abb. oben).
0 Ω | Signal |
---|---|
SB12 | RST |
SB13 | RX |
SB14 | TX |
SB15 | SWO |
Wenn Sie das ST-Link-Kabel mit der Target-Anwendung verbunden haben, fahren Sie folgendermaßen fort:
- Verbinden Sie den USB-Port mit der ST-Link-Schnittstelle
LD1 auf dem ST-Link-Board sollte aufleuchten, und das USB-Laufwerk „NODE_L476RG“ auf dem Schreibtisch gemountet werden.
Fertiger Aufbau
Nachdem alle Änderungen am Nucleo-Board gemäß der obigen Schritte vorgenommen wurden, kann das Target-Board über das 8-polige Adapterkabel angeschlossen werden:
Firmware auf Target laden
Ziehen Sie die Datei „.bin“, welche die Firmware enthält, auf das Nucleo USB-Laufwerk („NODE_L476RG“):
LD1 blinkt für einige Sekunden schnell und wechselt auf grün (verbunden). Falls LD1 rot leuchtet, konnte keine Verbindung zum Target hergestellt werden.
Seriellen UART des Targets mit dem Host-Terminal verbinden
Um eine Debug-Ausgabe über die serielle Schnittstelle zu ermöglichen, werden die seriellen Kabel des Targets (CN3, PA2+PA15) mit dem ST-Link-Debugger verbunden. Diese serielle Kommunikation wird vom ST-Link-Debugger über eine USB Virtual-COM-Verbindung an den Host weitergeleitet und kann mit einem Terminalprogramm genutzt werden.
Für die Nutzung der Virtual-COM-Verbindung auf dem Host werden zwei Parameter benötigt:
- USB-Gerätename
- Baudrate
Windows
Der korrekte COM-Port für das USB-Modem lässt sich über „Systemsteuerung“ > „Geräte-Manager“ aus dem Eintrag „Anschlüsse (COM & LPT)“ herausfinden:
Wenn Sie die Portnummer des seriellen Anschlusses herausgefunden haben, öffnen Sie „Tera Term“ und geben Sie Portnummer sowie Baudrate über „Einstellungen“ > „Serieller Port“ an:
„Tera Term“-Beispielausgabe (Windows):
Mac
Der korrekte USB-Gerätename lässt sich über die Eingabe des Befehls ls /dev/tty.usbmodem* in einer Shell herausfinden.
Terminal-Beispielausgabe (Mac/Linux), z. B.: screen /dev/tty.usbmodemfa413 230400