Forum: Mikrocontroller und Digitale Elektronik ST-Link/V2 und USART


von Kibo (kibox)


Angehängte Dateien:

Lesenswert?

Hallo Forum,

zurzeit arbeite ich mit dem STM32WB55 Nucleo Board. Bei diesem Board ist 
der ST-Link/V2 bereits integriert. Der Anschluss zum PC erfolgt über 
Micro-USB. Darüber ist es auch möglich, über das USART des WB55 
Nachrichten an das Terminal zu schicken.

Jetzt möchte ich mein eigenes Board entwerfen. Dieses soll allerdings 
keinen Integrierten ST-Link haben, sondern über einen externen ST-Link 
(zu kaufen) programmiert und debuggt werden. Auch möchte ich über diesen 
ST-Link Nachrichten an das Terminal senden.

Über das Programm CubeMX habe ich mir die Konfiguration des Nucleo 
Boards angeschaut, das user manual zum ST-Link durchgelesen (ist leider 
nicht sonderlich ergiebig) und mir die schematics des Nucleo Boards 
angeschaut. Bei meiner Recherche habe ich leider keine Information dazu 
gefunden, wie das USART des WB55 mit dem ST-Link verbunden wird. Auch 
habe ich noch nicht verstanden, wo der Unterschied zwischen "serial 
wire", "JTAG (4 Pin)", "JTAG (5 Pin)" und "Trace Asynchronous Sw" im 
Hinblick auf die Funktionen besteht.

Konkret sind meine Fragen:

-Wo muss ich die TX und RX Pins des USARTs an den 20 poligen Stecker des 
ST-Link anschließen, damit das Senden an das Terminal funktioniert?

-Welche zusätzliche Funktionialität bietet es, wenn ich mehr Pins des 
uCs für ST-Link verwende und z.B. statt "serial wire" "JTAG (5 PIN)" 
verbinde?

Ich habe das Gefühl, dass mir zu dem Thema einige Informationen fehlen. 
Wenn ihr Links zum Nachlesen habt, bin ich dafür auch sehr dankbar.

Liebe Grüße

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

STLINK V2 auf alten Disco Boards hat den UART nicht implementiert. 
STlinkv2 Standalone hat Uart auf dem SWIM Konnektor. Auf dem 20-poligen 
Stecker ist UART nicht rausgefuehrt. Nucleo Boards haben STLinkV2/1 und 
haben UART implementiert.

Die Doku auf st.com ist Dein Freund, mit dem Du sprechen solltest!

Mehr Pins:

SWO(TDO) erlaubt Tracing.
JTAG (TDI/TDO) erlaubt JTAG und damit mehrere Bausteine in einer Kette. 
Das Programm, dass mit der Probe spricht muss das aber unterstuetzen.
NRST erlaubt es auch mit Bausteinen zu sprechen, deren SWJ Pins remappt 
sind.

: Bearbeitet durch User
von W.S. (Gast)


Lesenswert?

René W. schrieb:
> Konkret sind meine Fragen:...

Wenn du was Eigenes machen willst und dein Programmiergeschirre extern 
per Steckverbinder anschließen willst, dann such dir einen 
platzsparenden Steck aus, der zumindest die folgenden Signale führt:

VCC, GND, RxD, TxD, SWD: CLK+DATA, /RESET, BOOT(0)

Damit liegst du auf so ziemlich alle Fälle richtig: du kannst per SWD 
etwas tun, hast nen seriellen Port, hast Reset, kannst auch den 
Bootlader benutzen, kannst ein J-Link mit Reset dort anschließen. Ich 
benutze dafür die 10 poligen Stecker im 1.0mm Pitch von JST. Die sind 
angenehm klein, es gibt vorkonfektionierte Stecker mit Kabelenden dafür 
und sie sind nicht teuer. Und bei 10 Polen kannst du nach Gusto noch was 
Anderes mit draufpacken, I2C zum Beispiel.

W.S.

von Stefan F. (Gast)


Lesenswert?

W.S. schrieb:
> Damit liegst du auf so ziemlich alle Fälle richtig

Ich würde noch (Trace)SWO ergänzen.

von A. B. (Gast)


Lesenswert?

René W. schrieb:
> Über das Programm CubeMX habe ich mir die Konfiguration des Nucleo
> Boards angeschaut, das user manual zum ST-Link durchgelesen (ist leider
> nicht sonderlich ergiebig) und mir die schematics des Nucleo Boards
> angeschaut. Bei meiner Recherche habe ich leider keine Information dazu
> gefunden, wie das USART des WB55 mit dem ST-Link verbunden wird. Auch

Diese "Recherche" war recht oberflächlich. Schematics zu MB1355 lesen!
Geht über TXS0108EPW und Jumper an PB6 und PB7. Es steht sogar 
"TX_STlink (VCP)" bzw "RX_STlink (VCP)" dran.

von Kibo (kibox)


Lesenswert?

Uwe B. schrieb:
> STLINK V2 auf alten Disco Boards hat den UART nicht implementiert.
> STlinkv2 Standalone hat Uart auf dem SWIM Konnektor. Auf dem 20-poligen
> Stecker ist UART nicht rausgefuehrt. Nucleo Boards haben STLinkV2/1 und
> haben UART implementiert.

Also ist es nicht möglich die UART Verbindung, die auf den Nucleo Boards 
aufgebaut ist eins zu eins mit einem externen ST-Link nachzubauen? Ich 
hab das Datenblatt auch so verstanden, dass der SWIM Konnektor nur für 
STM8 ist.

Uwe B. schrieb:
> SWO(TDO) erlaubt Tracing.
> JTAG (TDI/TDO) erlaubt JTAG und damit mehrere Bausteine in einer Kette.
> Das Programm, dass mit der Probe spricht muss das aber unterstuetzen.
> NRST erlaubt es auch mit Bausteinen zu sprechen, deren SWJ Pins remappt
> sind.

Danke, genau das hat mich interessiert.

W.S. schrieb:
> Wenn du was Eigenes machen willst und dein Programmiergeschirre extern
> per Steckverbinder anschließen willst, dann such dir einen
> platzsparenden Steck aus, der zumindest die folgenden Signale führt:
>
> VCC, GND, RxD, TxD, SWD: CLK+DATA, /RESET, BOOT(0)

Danke. Und wie verbinde ich dann diese Pins mit dem externen ST-Link?

A. B. schrieb:
> Diese "Recherche" war recht oberflächlich. Schematics zu MB1355 lesen!
> Geht über TXS0108EPW und Jumper an PB6 und PB7. Es steht sogar
> "TX_STlink (VCP)" bzw "RX_STlink (VCP)" dran.

Doch, wie bereits gesagt geht es mir nicht um die Verbindung zum on 
board ST-Link, sondern zu einem externen ST-Link. Und da steht leider 
nichts zur Verbindung.

Danke für die hilfreichen Informationen, aber ich muss zugeben, dass ich 
immer noch nicht verstanden habe, wie ich TX und RX über den externen 
ST-Link anschlie0e. Also ich nehme den 20 poligen JTAG Stecker, schließe 
da die benötigten Kabel an und was mache ich mit RX und TX? Kommen die 
dann zusätzlich an den SWIM Connector?

von Stefan F. (Gast)


Lesenswert?

René W. schrieb:
> Also ist es nicht möglich die UART Verbindung, die auf den Nucleo Boards
> aufgebaut ist eins zu eins mit einem externen ST-Link nachzubauen?

Der "normale" ST-Link/V2 hat keine UART Schnitstelle.

Was die anderen Pins angeht:
> Und wie verbinde ich dann diese Pins mit dem externen ST-Link?

1:1. Siehe Kapitel 4.2 in seiner Bedienungsanleitung.
https://www.st.com/resource/en/user_manual/dm00026748-stlinkv2-incircuit-debuggerprogrammer-for-stm8-and-stm32-stmicroelectronics.pdf

von pittiplatsch (Gast)


Lesenswert?

> TX und RX über den externen ST-Link

Schwer von Begriff. Der normale externe ST-Link hat
kein TX und RX.
Kauf dir halt einen grossen F103 und bau dir selber
den ST-Link der Nucleoboards nach...

von dummschwaetzer (Gast)


Lesenswert?

oder besorg dir den STLink V3 in der Variante 14-Poliger Steckverbinder 
bereits bestückt und mache auf dein Bord den 14-Poligen Stecker.
https://www.reichelt.de/in-circuit-debugger-programmierer-fuer-stm32-stlink-v3mini-p274817.html?&trstct=pol_2&nbc=1

von Kibo (kibox)


Lesenswert?

Stefan ⛄ F. schrieb:
> Der "normale" ST-Link/V2 hat keine UART Schnitstelle.

Danke, dass du es nochmal so deutlich gesagt hast :-)

pittiplatsch schrieb:
> Schwer von Begriff.

Ach das macht nichts. Lass dir Zeit. Ich brauche manchmal auch etwas 
länger...

dummschwaetzer schrieb:
> oder besorg dir den STLink V3 in der Variante 14-Poliger Steckverbinder
> bereits bestückt und mache auf dein Bord den 14-Poligen Stecker.
> 
https://www.reichelt.de/in-circuit-debugger-programmierer-fuer-stm32-stlink-v3mini-p274817.html?&trstct=pol_2&nbc=1

Waas? Warum habe ich den noch nie zuvor gesehen? Das ist ja genau das, 
was ich gesucht habe! Und nochmal günstiger als der V2! Richtig genial. 
Danke! Ist schon bestellt :D

von Uwe Bonnes (Gast)


Lesenswert?

Achtung beim STLinkV3! Beim Hotplug versagt er in viel mehr Situationen 
als ein STLinkV2. Und anderen Chips als STM32 sind aktiv ausgesperrt.

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
Noch kein Account? Hier anmelden.