Forum: Mikrocontroller und Digitale Elektronik STM32 SWD Schnittstelle - Verschaltung


von Peter H. (peter_hilleb)


Lesenswert?

Hat jemand einen Link wo die Verkabelung der SWD Schnittstelle 
beschrieben ist?

Ich werde mich zu dumm anstellen eine zu finden...

Vielen Dank!

von Ingo L. (corrtexx)


Lesenswert?

Peter H. schrieb:
> Hat jemand einen Link wo die Verkabelung der SWD Schnittstelle
> beschrieben ist?
Datenblatt?

Peter H. schrieb:
> Ich werde mich zu dumm anstellen eine zu finden...
Ich werde mich auch zu dumm anstellen dir eine bessere Erklärung zu 
liefern bei so wenig Input...

von A. (Gast)


Lesenswert?

STM32 <==> SWD

von Stefan F. (Gast)


Lesenswert?

> Datenblatt?

Da steht das nicht wirklich drin.

Jedenfalls musst du mindestens die folgenden Leitungen 1:1 verbinden:

GND, SWCLK, SWDIO

Manche Programmieradapter verlangen auch, die VCC Leitung zu verbinden.

Was das Reset Signal angeht, hast du 3 Möglichkeiten:
1) RESET Leitung benutzen
2) Soft-Reset über die SWD Schnittstelle auslösen. Setzt voraus, daß sie 
nicht deaktiviert wurde.
3) Connect under Reset. Dazu musst du den Reset-Knopf am Target drücken 
und dann die Verbindung aufbauen.

von Ingo L. (corrtexx)


Lesenswert?

Stefan U. schrieb:
> Da steht das nicht wirklich drin.
Er hat konkret gefragt, wie die Schnittstelle "verkabelt" ist!
Ja, wo genau?
Am Controller? => Datenblatt
Am Programmer? => Dessen Datenblatt

: Bearbeitet durch User
von Peter (Gast)


Lesenswert?

Also gemeint habe ich folgendes:

Ich habe den St Link V2,
Einen F103 auf dem breadboard, den versorgen ich mit 3,3V.

Ich habe SWCLK, SWDIO, GND, Reste verbunden. Bin aber nicht in der Lage 
mittels St Link Utility mich mit dem Controller zu verbinden.

Da es aber auch gut sein kann dass beim anlöten an das breadboard was 
schief gegangen ist möchte ich gerne ein wenig eingrenzen....

Gibt es irgend ein Dokument in dem das alles genau beschrieben ist? 
Reste, Boot Pins usw?

von etk55257 (Gast)


Lesenswert?

Ja gibt es. Nennt sich Application Sheet und ist auf der Homepage von ST 
zu finden. Meist direkt bei den jeweiligen Controllern.
Du muss meistens GND, VCC, SWD und SCL verbinden. Vergiss nicht den oder 
die Boot Pins vom Controller auf die richtigen Pegel zu ziehen.

von STM Apprentice (Gast)


Lesenswert?

Peter schrieb:
> Ich habe SWCLK, SWDIO, GND, Reste verbunden. Bin aber nicht in der Lage
> mittels St Link Utility mich mit dem Controller zu verbinden.

Dein ST-Link möchte auch die Spannung deines F103 sehen,
also ein Kabel fehlt.

Suche dir einen Schaltplan zum Bluepill Board, dort ist
es genau zu sehen.

von Alexander B. (Firma: brickwedde.dev) (alexbrickwedde)


Lesenswert?

Wenn Du alles wie beschrieben verbunden hast (mehr als Datenblatt 
benötigt man eigentlich nicht), fallen mir spontan zwei Varianten ein, 
warum es nicht gehen könnte. Keine Abblockkondensatoren/Pullups (Vcc zu 
GND, Reset zu GND, Pullup Reset zu Vcc). Oder die Software auf dem 
Controller aktiviert den Sleep/Standby/Whatever den man u.U. mit SWD 
nicht beenden kann. Dann muss man manuell resetten, während die ST Link 
Software connected.

Hier gab es mal einen Thread zum Thema billiges Minimal-Board. Da wurde 
einiges beschrieben..

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

A. schrieb:
> STM32 <==> SWD

Eine Leitung ist nur unidirektional:

STM32 <--  SWD
      <-->

von noreply@noreply.com (Gast)


Lesenswert?

Nach den Schaltplan der Discovery-Boards googlen. Eine heiße Quelle ist 
die Webseite von STM.

von Alexander B. (Firma: brickwedde.dev) (alexbrickwedde)


Lesenswert?

Alexander B. schrieb:
> Hier gab es mal einen Thread zum Thema billiges Minimal-Board. Da wurde
> einiges beschrieben..

Beitrag "Re: ~1€ ARM-Cortex-M0 (STM32)-Bord selbstgestrickt"

Ich hatte damals auf Steckbrett SWDIO auch noch mit pull down 
beschaltet. Bei meinen mittlerweile geätzten Platinen fehlt der. Dafür 
ist ein BOOT0 pull down dazu gekommen.

von Peter H. (peter_hilleb)


Lesenswert?

So, nun funktioniert es. Falls nochmal jemand darüber stolpert hier 
meine Verkabelung:

Controller      Programmer
GND             GND (Pin20)
Vcc    Vcc (Pin1)
Pin 38    TDI (Pin5)
Pin 34    SWIO (Pin7)
Pin 37    SWCLK (Pin9)
Pin 39    TDO (Pin 13)
Reset Pin 7  Reset (Pin 15)

Reset am Controller mit 100nF nach Gnd und mit 10K nach VCC
Boot 0 am Controller mit 10K nach Gnd

Vielleicht hilft es jemand!

von Stefan F. (Gast)


Lesenswert?

Moment mal, TDI und TDO sind für JTAG, nicht für SWD.

von Alexander B. (Firma: brickwedde.dev) (alexbrickwedde)


Lesenswert?

Die Pin-Nummern passen natürlich nur für Dein eingesetztes 
Modell/Gehäuseform. Deswegen sollte sich das jeder aus seinem passenden 
Datenblatt suchen.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Peter H. schrieb:
> Controller      Programmer
> GND             GND (Pin20)
> Vcc    Vcc (Pin1)
> Pin 38    TDI (Pin5)
> Pin 34    SWIO (Pin7)
> Pin 37    SWCLK (Pin9)
> Pin 39    TDO (Pin 13)
> Reset Pin 7  Reset (Pin 15)

Für SWD benötigt man TDI, TDO und VCC nicht :)

Teilweise benötigt man den Reset auch nicht - ich lege den aber immer 
auf die Stiftleiste.

Also:
SWIO
SWCLK
Reset
GND

reicht aus, um den Controller zu Flashen und zu Debuggen :)

von STM Apprentice (Gast)


Lesenswert?

Mampf F. schrieb:
> Für SWD benötigt man TDI, TDO und VCC nicht :)

Das ist falsch!

STM Apprentice schrieb:
> Dein ST-Link möchte auch die Spannung deines F103 sehen,
> also ein Kabel fehlt.

ST-Link verweigert wenn er keine Spannung sieht!

von Mampf F. (mampf) Benutzerseite


Lesenswert?

STM Apprentice schrieb:
> STM Apprentice schrieb:
>> Dein ST-Link möchte auch die Spannung deines F103 sehen,
>> also ein Kabel fehlt.
>
> ST-Link verweigert wenn er keine Spannung sieht!

Meinem ST-Link ist das egal - aber ich hab so einen 2EUR 
STLinkV2-China-Clon ... Vielleicht liegt es daran.

Danke für den Hinweis, den Tipp werde ich dann zukünftig nicht mehr 
geben, wenn das nicht allgemein gültig ist. :)

: Bearbeitet durch User
von Peter H. (peter_hilleb)


Lesenswert?

Stefan U. schrieb:
> Moment mal, TDI und TDO sind für JTAG, nicht für SWD.

Ja, da muss man naütlich aufpassen wenn es nicht der selbe Controller 
ist.
Wenn man aber beide Datenblätter vergleicht sieht man wie ich es 
angeschlossen haben.

u.U. sind ein paar Kabel zuviel dran (Jtag) kann man ja iterativ 
entfernen bis es nicht mehr geht... ;-)

von Alexander B. (Firma: brickwedde.dev) (alexbrickwedde)


Lesenswert?

STM Apprentice schrieb:
> ST-Link verweigert wenn er keine Spannung sieht!

Mein Nucleo-ST-Link (abgetrennt und weiterverwendet) zeigt 0V 
Targetspannung an und programmiert problemlos...

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

> ST-Link verweigert wenn er keine Spannung sieht!

Also meiner (der vom Nucleo64 Board) ignoriert die Spannung an diesem 
Pin völlig.

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.