Forum: Mikrocontroller und Digitale Elektronik STM32: JTAG mit ULINK2


von Patrick L. (crashdemon)


Lesenswert?

Hallo Leute,

hat jemand von euch schonmal das ET-STM32 Stamp von Futurlec 
(http://www.futurlec.com/ET-STM32_Stamp.shtml) mit dem JTAG Adapter 
ULINK2 von Keil genutzt?
Gibt es dabei irgendwas zu beachten?

Ich bekomme konkret in Keil µVision immer die Fehlermeldung: jtag 
communication problem. Kann mir aber keinen Reim darauf machen, was 
falsch ist.

Würde mich über ein paar Tipps freuen.

Patrick

von Matthias (Gast)


Lesenswert?

Wie hast du die zwei denn zusammengeschlossen?

von Patrick L. (crashdemon)


Lesenswert?

So wie auf der Seite von Keil angegeben, auch mit den Pull-Ups bzw. 
-Down.

von Florian (Gast)


Lesenswert?

Hallo,

ist unter Ultities -> Settings -> Debug der ULINK zu sehen? Serial No? 
Sind die Einstellungen in dem Fenster o.k.? Wenn Du im Device Fenster 
nix angezeigt bekommst besteht keine Verbindung zum Controller. Wenn der 
ULINK nicht erkannt wird hast Du ev. ein Problem mit den Treibern.

Steuerung mit Strom versorgt? :-)

von Patrick L. (crashdemon)


Angehängte Dateien:

Lesenswert?

Ja, verbindung besteht siehe auch Bild. Platine ist mit Spannung 
versorgt.

von Florian (Gast)


Lesenswert?

Hallo,

Du hast keine Verbindung zum µC (JTAG Communication Failure)! Gehst Du 
ev. über Serial Wire (SW) auf den µC. Dann musst Du von JTAG auf SW 
umstellen. Wenn das auch nicht ist hast Du ein Problem in der 
Verkabelung. dann wird es schwierig weiter zu helfen.

Gruß
Florian

von Patrick L. (crashdemon)


Lesenswert?

Ne, will eig. über JTAG auf den Controller zugreifen. Hab aber auch 
schon SW ausprobiert, kommt die selbe Fehlermeldung. Dann werde ich mal 
meine Verkabelung überprüfen.

von Matthias (Gast)


Lesenswert?

Stell mal auf Connect: under Reset mit Reset HW RESET. Und stell sicher 
dass deine Resetleitung ordentlich angeschlossen ist.

Die Seriennummer wirkt so komisch, ist das ein originaler ULINK2 oder 
ein China-Klon?

von W.S. (Gast)


Lesenswert?

Matthias schrieb:
> Die Seriennummer wirkt so komisch..

ist einer.

Aber der Knackpunkt ist eher die Auswahl der richtigen DLL - in nem 
anderen Fenster. Nicht "SARMxxx.dll" (müßte dazu jetzt in der Firma 
nachschauen..)

W.S.

von A. B. (funky)


Lesenswert?

SARMCM3.DLL heisst die.

Aber die muss man doch normalerweise nicht umstellen?!
(zumindest ich brauchte das noch nie und hab bisher ULINK2 clone & echt, 
JLINK und ST-Link benutzt)

Ich benutze immer connect with pre-reset und SYSRESETREQ(eigentlich nur 
durch trial&error dazu gekommen. mit den Voreinstellungen hat der ULINK2 
nach einem Reset den STM32 sonst nie wieder gefunden).
Aber wenn da schon ein JTAG error angezeigt wird, scheint es ja noch bei 
was anderem zu klemmen.


Welche Keil Version benutzt du? Hast du den Keil ULINK2 Treiber 
installiert? Der ist im Keil Ordner irgendwo.

Die aktuelle Keil 4.7 irgendwas hat einen neuen ULINK2 Treiber. Wird der 
ULink2 im Keil 4.7 geupdatet läuft er danach nicht ohne weiteres in 
älteren Versionen. Da muss man erst per Kommandozeile den ULink2 
zurücksetzen.

http://www.keil.com/support/docs/2935.htm

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

Das hat mich neulich verarscht. Nur so als Idee, falls der ULink2 noch 
wo anders in Benutzung war.

von Patrick L. (crashdemon)


Lesenswert?

A. B. schrieb:
> Ich benutze immer connect with pre-reset und SYSRESETREQ(eigentlich nur
> durch trial&error dazu gekommen. mit den Voreinstellungen hat der ULINK2
> nach einem Reset den STM32 sonst nie wieder gefunden).

Hab ich auch mal probiert, hat aber nichts geholfen.

> Aber wenn da schon ein JTAG error angezeigt wird, scheint es ja noch bei
> was anderem zu klemmen.
>

Vermute ich auch mal

>
> Welche Keil Version benutzt du? Hast du den Keil ULINK2 Treiber
> installiert? Der ist im Keil Ordner irgendwo.

Hab 4.7

>
> Die aktuelle Keil 4.7 irgendwas hat einen neuen ULINK2 Treiber. Wird der
> ULink2 im Keil 4.7 geupdatet läuft er danach nicht ohne weiteres in
> älteren Versionen. Da muss man erst per Kommandozeile den ULink2
> zurücksetzen.

Benutze den Ulink2 nur an dem PC mit Keil 4.7, den Treiber habe ich auch 
installiert. Hat dann den Ulink2 geupdatet

von A. B. (funky)


Lesenswert?

Welchen Treiber wählst du denn bei der Debuggerauswahl aus?

Wie hier beschrieben ( 
http://www.keil.com/support/man/docs/ulink2/ulink2_boot_mode.htm ) ist 
da jetzt CMSIS-DAP beim ULINK2 voreingestellt mit der neuen Firmware.

Es gibt in der Auswahl zwei Adapter: einmal "ULINK2/ME Cortex Debugger"
 und den "CMSIS-DAP" Debugger weiter unten. Hast du den mal probiert?

Ich habe mich nicht mit den Unterschieden befasst. Hier ( 
http://www.keil.com/support/man/docs/dapdebug/ ) steht mehr dazu.


Wahrscheinlich musst du den ULINK2 mit dem Tool umkonfigurieren, damit 
er wieder als "ULINK2/ME Cortex Debugger" funktioniert, oder halt den 
CMSIS-DAP Adapter auswählen wenn du den ULINK2 nicht umkonfigurierst.

Wie gesagt: ich kenne die genauen Unterschiede der beiden Modi nicht, 
aber beim CMSIS-DAP Debugger fehlt mir schonmal der komplette 
Trace-Reiter.

von Patrick L. (crashdemon)


Lesenswert?

Hab bis jetzt immer ULINK2/ME Cortex Debugger genutzt, da es ja auch ein 
STM32 (Cortex) Chip den ich debuggen will.

Der STM32 hat ja von Haus aus einen Bootloader installiert, kann der 
möglicherweise Probleme verursachen? Oder vllt. ein Programm das auf dem 
Mikrocontroller läuft und den Port benutzt?

von A. B. (funky)


Lesenswert?

Der Bootloader eher weniger. Ein Programm kann Probleme machen wenn es 
JTAG deaktiviert. Aber das wird hier wohl eher nicht der Falls sein.

Und probier den anderen CMSIS-DAP Modi aus. Das mit dem Cortex hat eben 
nix zu sagen, da der ULINK2 neuerdings ein anderes Protokoll 
voreingestellt hat.

Und was jetzt? Kannst du mit den selben Einstellungen einen anderen 
STM32 als diesen Futurlec Stamp flashen/debuggen? Oder nicht? Der erste 
Satz impilziert das es bisher funktioniert hat?

von Patrick L. (crashdemon)


Lesenswert?

A. B. schrieb:
> Und probier den anderen CMSIS-DAP Modi aus. Das mit dem Cortex hat eben
> nix zu sagen, da der ULINK2 neuerdings ein anderes Protokoll
> voreingestellt hat.
>

Anderen Mode ausprobiert, keine Änderung.

> Und was jetzt? Kannst du mit den selben Einstellungen einen anderen
> STM32 als diesen Futurlec Stamp flashen/debuggen? Oder nicht? Der erste
> Satz impilziert das es bisher funktioniert hat?

Kann den ganzen aufbau nur mit dem Futurlec Stamp testen. Da ich zurzeit 
nur diesen STM32 auf PCB habe. Den ulink2 habe ich gerade neu erworben. 
Kommunikation hat also vorher noch nicht funktioniert.

Vllt. sollte ich einfach mal ein Oszi an die Leitungen hängen und 
schauen was so passiert

von Ersi (cell85)


Lesenswert?

kanns sein das du einen gefakten china ulink2 hast?

von A. B. (funky)


Lesenswert?

jo, der Verdacht liegt langsam Nahe :D

von J. V. (janvi)


Lesenswert?

>(zumindest ich brauchte das noch nie und hab bisher ULINK2 clone & echt,
>JLINK und ST-Link benutzt)

Welches sind denn die Ulink2 Clones ? Sind die gegenüber dem ST-Link2 
empfehlenswert? Ich habe noch einen alten Ulink aus einem Workshop. Der 
ist gegenüber meinem Hitex Tantino rattenschnell. Leider kann ich ihn 
nicht benutzen weil er kein SW kann

von A. B. (funky)


Lesenswert?

also ein ST-Link2 funktioniert besser als ein Clone!

Die Clones taugen nur zum Programmieren aber fürs debuggen hab ich damit 
nur schlechte Erfahrungen gemacht

von Patrick L. (crashdemon)


Lesenswert?


von ./. (Gast)


Lesenswert?

Die aktuellen ULink2-Clones funktionieren hier mit MDK 4.70
und NXP LPC2220 tadellos.
(Incl. Firmwareupdate etc.)

Damit bei älteren MDK-Versionen im Parallelbetrieb nicht ständig
up- und downgraden muss: die passende dll kopieren.

von Patrick L. (crashdemon)


Lesenswert?

Hab den Ulink2 folgendermaßen mit dem STM32 verbunden:

VCC   --> +3,3V
TRST  --> NC
TDI   --> PA15 (JTDI) + 100k Pull-Up
TMS   --> PA13 (JTMS/SWDIO) + 100k Pull-Up
TCLK  --> PA14 (JTCK/SWCLK) + 100k Pull-Down
RTCK  --> NC
TDO   --> PB3 (JTDO)
RESET --> RST

Geht aber immer noch nicht.
Ich sehe aber auch keine Reaktion vom Ulink2, er sollte ja zumindest die 
RESET Leitung auf Masse ziehen, oder dergleichen.

von Patrick L. (crashdemon)


Lesenswert?

Hab den Fehler gefunden, hab den Ulink2 falsch mit dem STM32 verbunden.
Ich dachte man schaut beim Pin-Out 
(http://www.keil.com/support/man/docs/ulink2/ulink2_hw_connectors.htm) 
von unten auf den Stecker, was sich als falsch herausstellte. Hab ich 
gemerkt nachdem ich das Gerät aufgeschraubt habe und die Leiterbahnen 
nachvollzugen habe.

Trotzdem danke für die Tipps.

von A. B. (funky)


Lesenswert?

möööööp   :D

von Patrick L. (crashdemon)


Lesenswert?

Jop Debuggen geht, gerade getestet. Ein Sache würde mich noch 
interessieren.
Der STM32 enthält ja standardmäßig einen Bootloader mit dem man den Chip 
flashen kann. Wie ist das mit JTAG besteht da die Gefahr das ich den 
überschreibe, und wenn ja wie bekommt man den wieder da drauf?

von Steffen Rose (Gast)


Lesenswert?

Wenn du den STM internen Bootloader meinst: Der Bootloader ist im ROM. 
Kann man nicht überflashen.

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.