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
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?
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
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.