mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik JTAG-Kette bilden


Autor: Jens Nowack (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe einen Atmel Mega128 und mehrere ATMEga16, die alle über SPI an
den Mega128 angeschlossen sind.
Alle µCs sind JTAG-fähig und diesen Port möchte ich zum debuggen
nutzen.
Nun zu meinen Fragen:
- wie werden die Chips hardwaremäßig miteinander verbunden?
Ich vermute mal:
TCK, TMS bei allen Chips parallel
µC1 TDO -> µC2 TDI
µC1 TDI -> µC2 TDO
µC2 TDO -> µC3 TDI
µC2 TDI -> µC3 TDO
u.s.w
wie wird dann der letzte Chip angeschlossen
µCn TDO -> µCn+1 TDI
µCn TDI -> µCn+1 TDO ?

- ist es möglich, die Programme auf allen Chips über einen
JTAG-Connector zu debuggen und die Flashs zu programmieren?
Ich habe da in diversen Foren schon viel widersprüchliches gelesen

- ist es besser, für jeden Chip einen einzelnen JTAG-Port vorzusehen
und die Chip untereinander nicht über JTAG zu verbinden?

Vielen Dank
jens

Autor: rastlos ratlos (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich füge einfach noch einmal eine Frage hinzu:

Wie sieht es mit JTAG fähigen Chips anderer Hersteller aus? PC-Seitig
wird ja eine andere Software gebraucht, auch bietet meist jeder
Hersteller sein eigenes JTAG-Dongle an - kann man dennoch eine
multikulturelle JTAG-Kette aufbauen?

Autor: Darko Sabljo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Also so wie du die Kette Verbunden hast ist es richtig.

µC1 TDI kommt ans JTAG Interface TDO
und µCn TDO kommt ans TDI vom JTAG Interface.

Also so wie ich das aus dem AVR Studio kenne ist es möglich die JTAG
Kette zu definieren unter den Optionen zum JTAGICE bei Conection und da
bei "Daisy Chain".
Natürlich kannst du nur 1 AVR gleichzeitig debuggen.

Probiert hab ichs aber noch nicht mehrere in einer Kette :)

also rein softwaretechnisch ist es kein Problem.

Leider habe ich aber schon sehr oft fehlimplementierungen beim JTAG
gesehen (TI macht nur Müll)...

Von daher solltest du es vielleicht erstmal auf dem Steckbrett
antesten.

Grüssle

Autor: Darko Sabljo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Antwort zum Nachtrag :)

Ja... da der Bypass Moduss beim  JTAG standatisiert ist.
D.H. wenn im Debugger des jeweiligen Chips die Kette vor und dahinter
definiert ist (also wieviel chips) sowie die Instruction länge sollte
es Theoretisch kein Problem sein.

Leider machen aber wie oben schon erwähnt manche Hersteller ihren
eigene Standard, so das z.B. bei TI chips eine bestimmte anzahl von TCK
Pulsen kommen muss, um erstmal einen Reset der JTAG Taps herbeizuführen.
Und wenn man so einen Chip nun am Anfang einer Kette hat, und die
Debugsoftware vom z.B. AVR sowas nicht unterstützt, hat man ein Problem
:)

Also IMMER einen kleinen Blick in die Datenblätter der jeweiligen IC's
werfen, und auch in die Erratas.. dann sollte es kein Thema sein.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also "multikulturell" geht in der Regel immer schief.

Wenn, dann immer nur ICs einer Familie in Serie.

Selbst verschiedene Familien eines Herstellers können Probleme machen.


Peter

Autor: Darko Sabljo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Immer schief würde ich nicht sagen!
Altera, Xilinx, Motorola, Atmel, IBM, Broadcom und Latice (um einige zu
nennen die sicher keine probleme machen) halten sich alle soweit an die
Standards (man muss nur die Compliance Pattern beachten die im BSDL
oder in der Doku stehen). Dann klappt das normalerweise.

Nur aus meiner Erfahrung machen eben Bausteine von TI keinen Spass.
Also vorsicht!!

Man muss natürlich auch darauf achten das der Debugger mehrere
Bausteine pro kette Unterstützen!!
Die Programmiersoftware von Lattice macht da z.B. keine Probleme, aber
einige Debugger für ARM Kerne (z.B. die Krücke von Windriver) hat da
Probleme, da keine Kette eingestellt werden kann.

Auf der ganz sicheren Seite ist man natürlich wenn man alles in eine
einzel kette steckt, nur damit ist der ganze Vorteil von JTAG auch
wieder hinüber (über 5 Leitungen die komplette Baugruppe programmieren,
testen, debugen).

Ich hatte hier schon Baugruppen mit 25 Bausteinen in der Kette.
Funktionierte einwandfrei (da zum Glück kein TI drin war ;) )

Aber um es nochmal zu erwähnen! Immer in die Doku schauen, da viele
Bausteine, um die JTAG Kette zu aktivieren irgendwelche Compliance
Pattern haben (Pins an die bestimmte Pegel anliegen müssen).
Wenn dies nicht beachtet wird, sondern einfach nur die 5 Leitungen
angeschlossen werden, funktionierts natürlich nicht.

Grüssle

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.