Forum: Mikrocontroller und Digitale Elektronik STM32 Debug über Serial Port


von R2 D. (r2-d2)


Lesenswert?

Hallo,

ich komme ursprünglich von der AVR und Renesas Fraktion.
Für neue Projekte plane ich was aus der STM32-Reihe einzusetzen.

Ich habe schon diverse Manuals und Einsteigerhilfen durch, eine Frage 
bleibt dennoch.

Ich finde den 20pol. JTAG Stecker ziemlich unhandlich und da meine 
Baugruppen überwiegend sehr klein sind auch total überdimensioniert.
Außerdem möchte ich eine einfache Möglichkeit schaffen, die Software zu 
aktualisieren.

Die Renesas-Controller aus der MC16-Serie lassen sich alle über den 
Serialport sowohl flashen als auch debuggen. Das ganze sogar sehr 
komfortabel wenn auch ein wenig langsam weil nur mit 38400 Baud.

Die STM32-Controller lassen sich ja nachdem was ich gelesen habe auch 
per serieller Schnittstelle flashen.

Aber lassen sie sich auch debuggen ?

Und falls ja, funktionirt das halbwegs schnell und welche Tools benötigt 
man dafür bzw mit welcher IDE ist man da am besten bedient.

Hat einer von euch Erfahrung damit ?

von Jörn (Gast)


Lesenswert?

Braucht der STM alle 20 Pins für JTAG? Kann ich mir nicht vorstellen. 
Führe nur die notwendigen raus und baue dir einen Adapter auf den 
Debugger Anschluss.

von Moritz M. (avrprogger)


Lesenswert?

Moin,

also richtig Debuggen, wie mit einem normalen Debugger geht nicht. Über 
die serielle (und auch andere) Schnittstellen kannst du dein Programm 
nur in den Flash laden. Aber du musst ja nicht unbedingt den 20pol. JTAG 
verwenden. STM32 unterstützt auch SWD-Debugging. Das kommt mit 5 Pins 
aus und du hast vollen Debug-Support mit Semihosting usw. Serielle 
Schnittstelle bräuchte ja fast ähnlich viele Pins (mit 
Versorgungsspannung).

Moritz

von Uwe Bonnes (Gast)


Lesenswert?

SWD braucht mit zwei Datenleitungen genausoviel wie Seriell, bietet aber 
viel mehr Moeglichkeiten...

SWD gibt es z.Bmit den Nucleo Boards fuer wenig Geld.

von STM32 Gast (Gast)


Lesenswert?

Also auf den Discovery-Boards sind die Programmier/Debugschnittstellen 
ausgeführt, dort sind es 6Pins.
Über diese Pins kann man auch im Programm Debuggen, ich glaube das 
Stichwort ist hier SWO und sprintf.
Getestet habe ich es schon, funktioniert auch, nur zur Geschwindigkeit 
kann ich leider nichts sagen, aber für meine Messwertausgabe hat es 
ausgereicht.

von R2 D. (r2-d2)


Lesenswert?

Natürlich braucht man nicht alle 20 Pins fürs JTAG.
Aber 7 bzw 8 mit Versorgungsspannung sinds trotzdem.
Und ich hasse Adapter. Gerade wenn man ihn baucht ist das Teil wieder 
verlegt.
Außerdem fehlen enem die Pins natürlich für andere Sachen, insbesondere 
wenn man da eh schon knapp ist. (bei den 48pol. Versionen)

SWD ... ist mir bei der Recherche auch schon über den Weg gelaufen.
Aber was braucht man dafür auf der anderen Seite ?
So ich das jetzt auf die schnelle gesehen habe, haben ja die meisten 
Bastelboards noch n weiteren Controller drauf so das man sich direkt per 
USB connecten kann.

Sorry, aber beim Thema STM32 sieht man am Anfang den Wald vor lauter 
Bäumen nicht mehr.

Ach so, unter gescheitem debuggen verstehe ich eigentlich, das man auch 
in die Prozessorregister schauen kann oder zumindest n Breakpoint setzen 
und sich diverse Variablen anschauen kann.

: Bearbeitet durch User
von Arc N. (arc)


Lesenswert?

R2 D2 schrieb:
> Ach so, unter gescheitem debuggen verstehe ich eigentlich, das man auch
> in die Prozessorregister schauen kann oder zumindest n Breakpoint setzen
> und sich diverse Variablen anschauen kann.

ST-LINK V2 reicht zum Debuggen (17 € bzw. 63 € exkl. für die galvanisch 
isolierte Variante), VCC/GND + 2 Pins/3 Pins ohne/mit Trace wie oben 
schon erwähnt.
http://www.st.com/web/catalog/tools/FM146/CL1984/SC720/SS1454/PF251168

Zum reinen Programmieren brauchst die nicht. Die STM haben je nach 
Controller u.a. UART, SPI, I²C, CAN und USB (DFU-Class)-Bootloader 
eingebaut...
https://my.st.com/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Attachments/18225/AN2606.pdf

: Bearbeitet durch User
von Frank K. (fchk)


Lesenswert?

R2 D2 schrieb:

> Ich finde den 20pol. JTAG Stecker ziemlich unhandlich und da meine
> Baugruppen überwiegend sehr klein sind auch total überdimensioniert.
> Außerdem möchte ich eine einfache Möglichkeit schaffen, die Software zu
> aktualisieren.

ARM hat deswegen für Cortex einen neuen Standard geschaffen: 10 Pins im 
1/10" Raster.
Das ist wirklich kompakt. Siehe

http://www.keil.com/support/man/docs/ulink2/ulink2_hw_connectors.htm

Keil ist ja Teil von ARM. Die Samtec Part # steht dort auch. Der gleiche 
Stecker wird auch beim Atmel JTAGice 3 verwendet.

Für den Cortex Trace Port wird der 10 Pin Connector auf 20 Pin 
erweitert.

http://www.keil.com/support/man/docs/ulinkpro/ulinkpro_hw_if_etm.htm

Dafür brauchst Du dann einen uLinkPro oder einen JTrace.

fchk

von luss (Gast)


Lesenswert?

> Das kommt mit 5 Pins
> aus

Seit wann braucht man für SWD denn 5 Pins? Man benötigt nur 2 Leitungen: 
CLK und SWD. Und natürlich GND.

Also 2 Datenleitungen für Debuggen und Programmieren. Weniger geht 
nüscht.

von Rainer M. (excogitator)


Lesenswert?

luss schrieb:
> Seit wann braucht man für SWD denn 5 Pins? Man benötigt nur 2 Leitungen:
> CLK und SWD. Und natürlich GND.

Das stimmt schon. Aber Reset und SWO würde ich auch immer mit verbinden. 
Hinzu kommt, das manche Debugger noch +3V sehen möchten um 
festzustellen, ob überhaupt etwas angeschlossen ist. Damit ist man bei 6 
Pins - mit dieser Version bin ich bisher ganz gut gefahren. Den Stecker 
dann im 1,27mm-Raster, dann hat man eine recht kompakte Lösung.

Gruß
Rainer

von Uwe Bonnes (Gast)


Lesenswert?

Rainer M. schrieb:
> Den Stecker dann im 1,27mm-Raster

Diese kleinen Stecker sind fuer Experimentieraufbauten Schwachsinn. Wire 
Jumper fuer 2.54 mm sind gebraeuchlich, alles andere nicht!

von Arc N. (arc)


Lesenswert?

Nutze für so was auch mal gerne 6-polige FPC (Jumper) mit 0.5 mm 
Pinabstand... Oder auch die DF12 von Hirose (10-polig 0.5 mm)

von Rainer M. (excogitator)


Lesenswert?

Uwe Bonnes schrieb:
> Diese kleinen Stecker sind fuer Experimentieraufbauten Schwachsinn. Wire
> Jumper fuer 2.54 mm sind gebraeuchlich, alles andere nicht!

Für Experimentieraufbauten, wo man keine Beschränkungen hat, was den 
Platz angeht, mag das stimmen. Aber der TO hat von sehr kleinen 
Baugruppen gesprochen. Bei mir ist es bei den aktuellen Projekten auch 
so, dass der Platz auf der Platine knapp ist. Da sind die Stecker im 
1,27mm eine gute Lösung.

von Marc P. (marcvonwindscooting)


Lesenswert?

Das schwierigste an Baugruppen sind manchmal die Steckverbinder!
Der neue 'kleine' JTAG ist ganz schoen hoch, wenn man 'ne flache Platine 
bastelt und das Footprint ist auch ein riesen Ding, wenn man schon bei 
0603 Rs und Cs und SC70 FETs ist.

Arc Net schrieb:
> Nutze für so was auch mal gerne 6-polige FPC (Jumper) mit 0.5 mm
> Pinabstand... Oder auch die DF12 von Hirose (10-polig 0.5 mm)

Wieviele Steckzyklen machen die eigentlich?
Bei so FFC/FPC Sachen bin ich ziemlich aengstlich (bisher).

Fuer eingige (nicht ganz so kleine) Sachen find ich die ERNI-Minibridge 
ganz witzig: SMD, sehr solide, 1.27mm, recht flach und 500 Steckzyklen. 
Wenn bloss das Beschaffungsproblem nicht w"are, aber ERNI gelobt ja 
Besserung bis mitte des Jahres...

von Arc N. (arc)


Lesenswert?

Marc P. schrieb:
> Wieviele Steckzyklen machen die eigentlich?
> Bei so FFC/FPC Sachen bin ich ziemlich aengstlich (bisher).

Nicht viele... Meist sind 10 - 20 Steckzyklen spezifiziert.
(wenn's nicht reicht, hilft dann etwas Papier o.ä...)
Wenn's länger halten soll, gibt's auch dafür ausgelegte FFC, die direkt 
auf die Platine gelötet werden.

> Fuer eingige (nicht ganz so kleine) Sachen find ich die ERNI-Minibridge
> ganz witzig: SMD, sehr solide, 1.27mm, recht flach und 500 Steckzyklen.
> Wenn bloss das Beschaffungsproblem nicht w"are, aber ERNI gelobt ja
> Besserung bis mitte des Jahres...

http://de.rs-online.com/web/p/leiterplatten-buchsen/7866699/
;) 2 x 5 Pin, brauchen nur ~ 4 mm x 2.2 mm auf der Platine...

von Marc P. (marcvonwindscooting)


Lesenswert?

Arc Net schrieb:
> ;) 2 x 5 Pin, brauchen nur ~ 4 mm x 2.2 mm auf der Platine...

Chic!
Danke, die werd ich mir merken!

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.