Forum: Mikrocontroller und Digitale Elektronik STM32F411 JTAG/SWD Schnittstelle


von smrt (Gast)


Lesenswert?

Moin Leute,

ich befasse mich seit längerem mit dem Programmieren eines STM32F4 µC. 
Da die Anwendung steht und ich mich an einem Prototypen probieren 
möchte, würde ich mir vorher noch gerne ein paar Tipps einholen.

Bisher habe ich ein NUCLEO Board mit integrier ST-LINK/V2 Schaltung 
benutzt.
Da meine Platine am besten so klein wie möglich sein sollte habe ich 
mich am DFU Mode per USB probiert. Der Nachteil hier ist, dass ich 
leider mein Programm nicht debuggen kann. Was nun JTAG/SWD J-Link ins 
Spiel bringt. Meine Traumschnittstelle wäre eine, mit der ich mein 
Programm auf mein Board laden und dies aus mit einem debugger testen 
kann (eventuell auch kommunikationsschnittstelle?).


Wenn ich im STM32CubeMX unter System Core -> SYS für debug "Serial Wire" 
auswähle, markiert er mir PA13(SYS_JTCK-SWCLK) & PA14(SYS_JTMS-SWDIO). 
Reichen mir die zwei Pins aus um sie mit einem ST-LINK/V2 zu verbinden 
und somit flashen und debuggen zu können? Desweiteren habe ich noch die 
auswahl zwischen JTAG(4pin) und JTAG(5pin). Unterscheiden sich all diese 
Schnittstellen in ihren Funktionen? Welche bevorzugt ihr und aus welchem 
Grund? Die mitgelieferten Stecker des ST-LINK/V2 haben alle mehr als 2 
pins und ich bin verwirrt was ich nun für Leitungen an meine 
Programmierschnittstelle ziehen muss.

Gruß

von pegel (Gast)


Lesenswert?

smrt schrieb:
> Reichen mir die zwei Pins aus

Masse auch noch, dann klappts.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Guck doch mal nach "arm jtag 10pin". (Das hat auch eine SWD Pinbelegung)
Das im 1,27mm Raster ist doch schön klein.

von smrt (Gast)


Lesenswert?

pegel schrieb:
> Masse auch noch, dann klappts.

Dann ist es wohl auch sinnvoll beim flashen auch die 3,3v vom st-link zu 
nutzen oder?

von pegel (Gast)


Lesenswert?

Muss nicht sein.
Der originale ST-Link liefert keine Spannung, nur der China Clone.

von STM Apprentice (Gast)


Lesenswert?

smrt schrieb:
> Reichen mir die zwei Pins aus um sie mit einem ST-LINK/V2 zu verbinden
> und somit flashen und debuggen zu können?

pegel schrieb:
> Masse auch noch, dann klappts.

Nicht ganz.

Ein Original ST-LINK/V2 prüft auf Versorgungsspannung, deswegen
braucht es in den meisten Fällen noch die vierte Leitung, den
Monitoring-Pin für Spannungsversorgung.

von STM Apprentice (Gast)


Lesenswert?

smrt schrieb:
> Dann ist es wohl auch sinnvoll beim flashen auch die 3,3v vom st-link zu
> nutzen oder?

Ein häufig gemachter Fehler

pegel schrieb:
> Der originale ST-Link liefert keine Spannung

Sehr richtig.

pegel schrieb:
> nur der China Clone.

Und auf den kann man sich nicht verlassen ....

Ich kann immmer nicht verstehen wie eine Original-Hardware
durch Copy&Paste so verhunzt werden kann.

Diese Mentalität ist mir so fremd.

von smrt (Gast)


Lesenswert?

Dumme Frage, aber wofür die JTAG Schnittstelle mit der ich mehrere 
Leitungen benötige anstatt die SWD die genau das gleiche tut mit 4 pins?

von smrt (Gast)


Lesenswert?

Nach dem programmieren sind diese Pins vorallem floating, sollte ich 
kein bestimmtes potential vorgegeben haben. Empfiehlt es sich mit 
Pull-UP/DOWN Widerständen zu arbeiten?

von Christopher J. (christopher_j23)


Lesenswert?

smrt schrieb:
> Dumme Frage, aber wofür die JTAG Schnittstelle mit der ich mehrere
> Leitungen benötige anstatt die SWD die genau das gleiche tut mit 4 pins?

JTAG ist eben auch abseits von ARM verbreitet und daher gewissermaßen 
der Standard was Debugschnittstellen angeht, weshalb es eben auch von 
den Cortex-Ms unterstützt wird.

Wenn du mit SWD glücklich bist, spricht absolut nichts dagegen es zu 
nutzen. Ich habe ehrlich gesagt auch noch nie JTAG mit einem ARM 
genutzt. Anders herum kann man aber einen Debugger der mit JTAG daher 
kommt und eigentlich für Cortex-M gedacht ist, wie z.B. den ST-Link V2, 
mittels OpenOCD dazu bewegen einen ESP32 per JTAG zu bespielen.

von A. B. (Gast)


Lesenswert?

smrt schrieb:
> Dumme Frage, aber wofür die JTAG Schnittstelle mit der ich mehrere
> Leitungen benötige anstatt die SWD die genau das gleiche tut mit 4 pins?

Erstens geht über JTAG Boundary Scan, zweitens Daisy-Chaining. Braucht 
man das nicht, tut's SWD auch. Bei manchen STM32 (F0, G0) gibt's von 
vornherein nur SWD.

smrt schrieb:
> Nach dem programmieren sind diese Pins vorallem floating, sollte ich
> kein bestimmtes potential vorgegeben haben. Empfiehlt es sich mit
> Pull-UP/DOWN Widerständen zu arbeiten?

Es empfiehlt sich eher, mal das RM zu lesen, etwa für den F411, RM0383:
"23.4.3 Internal pull-up and pull-down on JTAG pins".

von Walt N. (belayason)


Lesenswert?

Da ich in meinem Design für den DFU per USB Kabel noch zusätzlich einen 
8MHz Oszillator an den Pins PH1-OSC_IN & PH1-OSC_Out benötigt habe ist 
nun meine Frage ob ich diesen auch mit einer JTAG Schnittstelle brauche, 
ist diese im ST-Link/V2 enthalten? Dazu würde ich mir noch einen 
originales Programmiergerät holen. Außerdem habe ich den an den PINS 
PC14-PSC_IN & PC15-OSC_OUT einen 32kHz Oszilator, intern benutze ich 
aber die PLL clock. Dennoch brauche ich diesen Oszilator oder?

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.