Forum: Mikrocontroller und Digitale Elektronik JTAG-Kette bilden


von Jens Nowack (Gast)


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

von rastlos ratlos (Gast)


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?

von Darko Sabljo (Gast)


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

von Darko Sabljo (Gast)


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.

von Peter D. (peda)


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

von Darko Sabljo (Gast)


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

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.