Forum: Mikrocontroller und Digitale Elektronik Problem JTAG beim STM32F103


von Thomas B. (escamoteur)


Angehängte Dateien:

Lesenswert?

Hi,

ich bin gerade dabei meine erste STM32 Schaltung in Betrieb zu nehmen, 
leider funktioniert die JTAG-Verbindung nicht.

Ich verwende den OLIMEX ARM-USB-OCD JTAG Adapter.

Mit Eclipse & OpenOCD bekomme ich diese Fehlermeldung

Info:    options.c:50 configuration_output_handler(): jtag_speed: 10, 10
Info:    options.c:50 configuration_output_handler(): Open On-Chip 
Debugger 1.0 (2008-10-15-13:12) svn:exported
Info:    jtag.c:1369 jtag_examine_chain(): JTAG device found: 0x3ba00477 
(Manufacturer: 0x23b, Part: 0xba00, Version: 0x3)
Info:    jtag.c:1369 jtag_examine_chain(): JTAG device found: 0x06414041 
(Manufacturer: 0x020, Part: 0x6414, Version: 0x0)
Info:    jtag.c:1369 jtag_examine_chain(): JTAG device found: 0x3ba00477 
(Manufacturer: 0x23b, Part: 0xba00, Version: 0x3)
Info:    jtag.c:1369 jtag_examine_chain(): JTAG device found: 0x06414041 
(Manufacturer: 0x020, Part: 0x6414, Version: 0x0)
Error:   jtag.c:927 jtag_add_reset(): BUG: transition of req_tlr_or_trst 
and req_srst in the same jtag_add_reset() call is undefined


Auch Crossworks Zeigt mir bei Target->Explore die selben 2 Devices an, 
ich kann aber mich nicht verbinden und bekomme die Fehlermeldung "Make 
sure JTAG connection is working and the Target powered on"

So ganz tot scheint der µC ja nicht zu sein, sonst würde er doch keine 
Devices zurückmelden oder? Aber wieso werden zwei Devices gefunden?

Hat jemand ne Idee wo ich suchen könnte?

Gruß
Tom

von Jörn (Gast)


Lesenswert?

Thomas Burkhart schrieb:

> So ganz tot scheint der µC ja nicht zu sein, sonst würde er doch keine
> Devices zurückmelden oder? Aber wieso werden zwei Devices gefunden?

2 TAPs sind in Ordnung.

http://www.st.com/stonline/products/literature/rm/13902.pdf

Seite 965

Was für eine OpenOCD Version verwendest du?

von Thomas B. (escamoteur)


Lesenswert?

Danke für die Klarstellung, hatte mich nur verwirrt.

ARM-USB-OCD drivers:   FTDI drivers from 2008-03-13

Eclipse:     Version: 3.4.1 (Ganymede)

Zylin Eclipse plugin:  Version 4.5.1

OpenOCD:    Revision 717 from 2008-06-18

OpenOCD for STM32:  Revision 555 from 2008-04-09

Yagarto:    binutils: 2.18
      gcc:      4.2.2
      newlib:   1.16.0
      gdb:      6.8.50-20080308-cvs
      (08.04.2008, mifi)

Java Runtime:    Version 6 update 7

Merkwürdig ist hat, dass Crossworks, die ja nicht auf OpenOCD aufsetzen 
auch Probleme hat.
gruß
Tom

von Thomas B. (escamoteur)


Angehängte Dateien:

Lesenswert?

Ach ja, das ist die verwendete Schaltung.

Der Teil mit der SD-Karte und USB ist bisher noch nicht dran.

gruß
Tom

von Thomas R. (tinman) Benutzerseite


Lesenswert?

wo sind die pull-ups für JTAG ?

Mach wie z.b. hier 
http://www.olimex.com/dev/images/ARM/ST/STM32-P103-sch.gif

von (prx) A. K. (prx)


Lesenswert?

Thomas R. schrieb:

> wo sind die pull-ups für JTAG ?

Im STM32 bereits drin.

> http://www.olimex.com/dev/images/ARM/ST/STM32-P103-sch.gif

Schadet in dieser Dimensionierung offenbar auch nicht, obwohl sich dabei 
ein externer Pullup und ein interner Pulldown gegenseitig das Leben 
schwer machen.

Olimex kocht auch nur mit Wasser. Aus alten Designs für andere 
Controller oder beim Kollegen abgucken geht schneller als Handbuch 
lesen. Und wenn's dann trotzdem funktioniert, dann macht das irgendwann 
jeder und keiner weiss warum ("das macht man eben so").

von Thomas R. (tinman) Benutzerseite


Lesenswert?

A. K. schrieb:
>
> Olimex kocht auch nur mit Wasser. Aus alten Designs für andere
> Controller oder beim Kollegen abgucken geht schneller als Handbuch
> lesen. Und wenn's dann trotzdem funktioniert, dann macht das irgendwann
> jeder und keiner weiss warum ("das macht man eben so").

stimmt STM32F10xxx hat die intern.

Hat Olimex wohl genau wie ich nicht gelesen wo die unterscheide sind 
sondern aus den ST reference schematics kopiert (MB784, MB672) - es sind 
allerdings STM32C und STM32E boards und keine STM32F.

von Thomas B. (escamoteur)


Lesenswert?

Sonst noch ne Idee woran es liegen könnte, dass der JTAG-Scan geht, der 
Rest aber nicht?

Gruß
Tom

von Thomas B. (escamoteur)


Lesenswert?

Hallo,

bin immer noch ratlos.

Hat keiner ne Idee wo ich am besten suche?
Gruß
Tom

von LM3SB96 (Gast)


Lesenswert?

Die richtige Konfig für den STM32 von OpenOCD nehmen...
Dort sind 2 JTAG TAPS definiert. Einer für die CPU und der andere für 
das Boundary Scan TAP.

Am besten schaust du mal in einem Projekt von Martin Thomas nach. Es 
gibrt dort fertige Eclipse Projekte zum runterladen. z.B.
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/arm_memcards/index.html#stm32_memcard

In diesem Link:
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/openocd_intro/index.html
ist auch OpenOCD mit dem STM32 gut beschrieben.

Cheers

von Frank K. (fchk)


Lesenswert?

Ich hatte mal ähnliche Probleme mit einem Jtag-Adapter von Amontec 
gehabt, die ich nicht lösen konnte. Irgendwann habe ich mir einen J-LINK 
geebayt, und damit waren alle Probleme gegessen.

Was das genau war - keine Ahnung. War jedenfalls auch ein STM32.

fchk

von Thomas B. (escamoteur)


Lesenswert?

Ich bin mir im Moment eben überhaupt nicht sicher, ob es am 
JTAG-Adpatper oder an meiner Hardware liegt.

Meint Ihr der STM32 läuft richtig wenn er am JTAG erkannt wird?

Gruß
Tom

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Hallo,

Ich habe ja vor 2 Tagen den Artikel STM32
http://www.mikrocontroller.net/articles/STM32
geschrieben.

Hier habe ich beschrieben wie ich mein System installiert habe:
7.1 Installation für STM32

Damit dieser OpenOCD mit dem Olimex-Adapter funktionierte, musste ich zu 
erst den alten Treiber deinstallieren und den aus dem Setup 
installieren.
Siehe hier:
Beitrag "Re: STM32 - Erster Artikel"

Lade und installiere das mal und poste nochmal bei Fragen...

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

Lesenswert?

PS: Ich nutze natürlich den 10-Poligen JTAG Stecker, anbei der Plan 
meines Adapters auf 20 Pins...

Und hier der Schaltplan einer meiner Platinen:
Beitrag "Re: Heizungssteurung im Eigenbau"

von Thomas B. (escamoteur)


Lesenswert?

Hallo Markus,

der Zugriff auf den Olimex Adapter klappt ja, er listet mir ja auch zwei 
JTAG-Devices auf, aber dann kommt sofort ein Fehler, sowohl im OpenOCD 
also auch in Crossworks ohne OpenOCD.

Daher kein Windowstreiber-Problem, die habe ich alle brav von Hand 
installiert.

Überlege gerade den Olimex zurückzuschicken und mir inen Segger zu 
holen.

Viele Grüße

Tom

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ich nutze das PlugIn "GDB Hardware Debugger" und nicht das Zylin.
Daher meine Empfehlung um zu steigen und die pakete zu installieren.

Ich habe beide (privat). Der Segger JLink ist deutlich schneller als der 
Olimex. Dafür hat der Olimex noch einen COM-Port und einen 5V Ausgang.

Es würde auch genügen nur Eclipse mit der neuen Version zu installieren 
und dann das PlugIn zu laden, sollte auch gehen.

Aber deine OpenOCD Versionen ist schon steinalt, besser wäre schon die 
aktuelle von der Beschreibung zu laden. Dann klappt es auch mit dem 
Demo-Projekt von Martin Thomas, denn dort sind alle 
Eclipse-Einstellungen für den GDB Hardware Debugger drin.

Schlussendlich hat es ja auch einen Vorzeil: Du hast dann von allem die 
neueste Version und ich kann Dir helfen bei Fragen.

von Thomas B. (escamoteur)


Lesenswert?

Guckst Du hier:

Beitrag "Re: Problem JTAG beim STM32F103"

Das sind meine Versionen. Ich hab einfach die Dummy-Installation von der 
Olimex-CD genommen.

Und wie gesagt, Crossworks tut ja auch nicht. Was könnte es denn auf der 
Hardwareseite noch sein?

Gruß
Tom

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Nutzt Crossworks auch den OpenOCD?
Crossworks kenne ich nicht.

Ich hatte mit OpenOCD früher auch viele Probleme, nur das R247 hat 
funktioniert. Erst jetzt, die aktuellte 0.4.0 und 0.3.x haben 
funktioniert.
Das Problem zeigte sich ähnlich, Verbindung wurde aufgebaut, aber mehr 
ging irgendwie auch nicht.
Zwischen Deinen Releasen und der aktuellen sind über 1000 Änderungen 
drin. Die jungs haben sicher nicht jedes Release mit allen CPU's und 
Varianten getestet.
Auf dieses alte Release kann ich keine Hilfe anbieten.

Edit: PS: da hab ich schon lange geguckt...

von Thomas B. (escamoteur)


Lesenswert?

Sooo, kurzes Update. Hab den Olimex gegen einen Segger J-Link Edu 
getauscht und siehe da, mit Crossworks funktionierte es so gut wie auch 
anhieb.

Kann den Segger nur empfehlen.

Gruß
Tom

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.