JTAG-Chain

May 22, 2013 7 Replies

Moin!



JTAG sollte doch eigentlich ein herstellerübergreifender Standard sein, oder? Nehmen wir also mal an, ich bastel mir eine JTAG-Chain aus ein paar Altera-FPGAs, einer Prise Lattice PLL-Bausteinen und garniere das ganze vielleicht noch mit einer handvoll Atmel Xmegas - allesamt mit JTAG-Schnittstelle.



Nun könnte ich ja auf die Idee kommen, diese JTAG-Chain auch tatsächlich zur Programmierung nutzen zu wollen. Wie es scheint, will aber jede bei den Entwicklungsumgebungen mitgelieferte Programmer- Software ausschließlich die ICs des eigenen Herstellers programmieren, und das auch noch ausschließlich mit dem eigenen Kabel (wie war das noch gleich mit Standard?)



Bevor ich da nen unbrauchbaren Mist zusammenbaue... wie schaut das denn sonst in der Praxis aus? Können die Programmer wenigstens trotz "fremden" ICs in der Chain auf die eigenen Bausteine zugreifen, oder bringt vielleicht sogar das schon Ärger? Baut man besser mehrere Chains parallel auf, für jeden Hersteller eine?



Gruß, Michael.


[...]

Das kommt darauf an ... Wenn Du z.B. openocd benutzt, dann kannst Du den Chain ohne große Probleme bauen. Xinlinx z.B. bietet bei dem Programmtool z.B. auch an, den Chain zu konfigurieren. Ich kenne aber auch kommerzielle Programmierer die das nicht koennen. Und weil es eben gerade fuer das Programmieren eine so elendige Frickelei ist habe ich mir angewoehnt einen HDI Stecker mit allen einzelnen JTAG Signalen herauszufuehren und mir dann eine Adapterplatine zu basteln die mir die einzelnen JTAG Signale auf die 20-Poligen Stecker aufteilt.

Viele Gruesse, Marti Das kommt darauf an ... Wenn Du z.B. openocd benutzt, dann kannst Du den Chain ohne große Probleme bauen. Xinlinx z.B. bietet bei dem Programmtool z.B. auch an, den Chain zu konfigurieren. Ich kenne aber auch kommerzielle Programmierer die das nicht koennen. Und weil es eben gerade fuer das Programmieren eine so elendige Frickelei ist habe ich mir angewoehnt einen HDI Stecker mit allen einzelnen JTAG Signalen herauszufuehren und mir dann eine Adapterplatine zu basteln die mir die einzelnen JTAG Signale auf die 20-Poligen Stecker aufteilt.

Viele Gruesse, MartIn

Ohne jemals den JTAG Standard gelesen zu haben, aber aus praktischer Erfahrung heraus: die Hersteller sind nicht verpflichtet, ein komplettes und kompatibles JTAG Protokoll zu implementieren. Oftmals sind ueberhaupt keine Chainkommandos implementiert, das heisst du kannst noch nicht einmal davon ausgehen, dass du mehrer Chips des gleichen Herstellers auf einem JTAG-Bus ansprechen kannst.

Kann Aerger geben, insbesondere wenn du JTAG fuer On-Chip-Debug benutzen moechtest. JTAG chaining und dessen Begrenzungen sind aber normalerweise explizit in der Chipdoku beschrieben. Nicht zu vergessen ist, dass auch die benutzten Programmierer JTAG chain faehig sein muessten (-> teuer).

Ich halte das im allgemeinen fuer empfehlenswert - und hab das auch immer so gemacht/machen muessen. Erspart 'ne Menge Aerger beim Debug.

Gruss Klaus

Moin!

Damit hab ich tatsächlich schonmal gespielt. Trotz angeblich korrekter Einträge im Config-File und Kontrolle von VID&PID wollte das Programm meinen Terasic Blaster ums Verrecken nicht erkennen (auf zwei Rechnern, XP und Win7). Auch Google fand zwar reichlich Forenbeiträge zu ähnlichen Problemen, aber keine der dort genannten Ursachen passte zu meinem. Vielleicht lags ja an genau dieser kompilierten Version, die ich im Netz gefunden hatte...

Hm, bequem klingt das aber auch nicht...

Gruß, Michael.

Das scheint mir zumindest am schmerzärmsten - niemand zwingt die Hersteller, die Programmierdongel universell auszulegen, Standard hin oder her ...

Wenn Du mehrere Bausteine verkettest: unbedingt auf die Signalintegrität des Clocks achten ... man ist da schnell an dem Punkt, wo man Terminierung und Clockbuffer braucht.

cu Michael

Standards sind so etwas Schoenes, das jeder seinen eigenen haben will :-(

Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------

Moin!

Wie gut, daß MS keine ICs baut. :-)

Gruß, Michael.

Ja - man braucht etwas Leidensfaehigkeit bis openocd geht. Dann aber meiner Erfahrung nach sehr zuverlaessig. Aber openocd und USB und Windows ist etwas was ich tatsaechlich zu vermeiden suche weil man idR. noch irgendeinen halb zusammengestrickten Trei- ber in Anlehnung ans libusb braucht. Auf Linux/BSD Rechnern ist das idR. wesentlich angenehmer.

Naja - es ist nicht ganz so schlimm. Wenn man ein z.B. CPLD und eine CPU hat kann man aber auch den CPLD (software) JTAG auch von der CPU her programmieren. Dann kann man den CPLD auch in Software updaten. Muss sich dann halt ein bisschen JTAG-Bitbang schreiben. Viele Gruesse, Martin

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required