Forum: Mikrocontroller und Digitale Elektronik Mehrere JTAG Slaves hintereinander schalten


von Fabian S. (jacky2k)


Lesenswert?

Hallo,
ich habe mir nun schon ein paar mal den Wiki Artikel zu JTAG 
durchgelesen und werde nicht so ganz schlau draus.
Wie es mir scheint sieht JTAG es vor, dass mehrere Geräte an einen 
Programmer angeschlossen werden können. Stimmt das?
Und wie kann ich dem Programmer sagen welchen er beschreiben/debuggen 
soll?
Und kann ich da auch vollkommen verschiedene Geräte zusammen schließen? 
Also ich hätte hier einen ARM Cortex M4 und einen Xilinx Spartan FPGA im 
Angebot.

von Christian R. (supachris)


Lesenswert?

Ja, dazu ist JTAG gemacht. Im Prinzip lässt sich nahezu jedes* JTAG 
Device in den BYPASS Modus schalten, dann hat es genau einen TCK Takt 
lang Verzögerung zwischen TDI und TDO. Wie genau du dem entsprechenden 
Programmier-Tool beibringst, wieviele und welche Chips da in der Kette 
sind, ist abhängig vom Programm. Einige wollen die Länge der 
Instruktionsregister vor und nach dem zu programmierenden Chip wissen, 
andere können BSDL Files einlesen, da steht alles wichtige drin. Xilinx 
Impact erkennt automatisch, dass da mehrere Chips sind und fragt 
entweder nach BSDL File oder Istruction Register Länge. Dann kann es 
alle nicht benutzten Chips in BYPASS schalten.

* Der MSP430 bildet da leider die unrühmliche Ausnahme, er kann nicht 
mit anderen Chips in einer Kette betrieben werden.

von Fabian S. (jacky2k)


Lesenswert?

Das heißt ich müsste nun noch rausfinden ob das Tool womit der Coretex 
programmiert wird das auch unterstützt?

Und dann hab ich noch eine Frage zu JTAG: Die Alternative für den Fall 
das das mit dem in Serie schalten nicht funktioniert wäre der FT2232H, 
der zwei JTAG Interfaces über USB zur Verfügung stellt. Wie sieht es bei 
dem Chip aus in sachen Kompatibilität mit Programmier-Software? Als was 
werden die Schnitstellen erkannt und wie sind da die Changen, dass 
Xilinx und der Cortex (von Freescale) das unterstützen?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Fabian S. schrieb:
> der FT2232H,
> der zwei JTAG Interfaces über USB zur Verfügung stellt.

Nur einen, meines Wissens.  Der andere Kanal kann nur "plain RS-232".

ARMs kann man damit auf jeden Fall programmieren (siehe OpenOCD),
für Xilinx müsstest du dich mal schlau machen.

von Fabian S. (jacky2k)


Lesenswert?

Jörg Wunsch schrieb:
> Nur einen, meines Wissens.  Der andere Kanal kann nur "plain RS-232".
Das steht dazu im Datenblatt: The FT2232H has two independent 
configurable interfaces. Each interface can be configured as UART, FIFO, 
JTAG, SPI, I2C or bit-bang mode with independent baud rate generators.

Werd mich dann mal weiter schlau machen. Nur da es den Cortex M4 quasi 
noch nicht gibt ist das ganz schön schwer, wir bekommen trotz NDA erst 
Anfang Oktober die Datenblätter zu dem Teil :-/

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Bei ARM und Xilinx würde ich zumindest prinzipiell davon ausgehen,
dass du sie verketten kannst.  Wäre ggf. halt eine Frage, deinen
ARM-Code in ein BSDL-File zu konvertieren.

von Christian R. (supachris)


Lesenswert?

Naja, ein BSDL File wirds ja hoffentlich vom Hersteller geben. Das geht 
an sich problemlos. Bisher kenne ich nur den MSP430, der partout nicht 
so recht mitspielen will. Ansonsten ist das vollkommen normal und 
üblich, die Chips zu verketten. Bei komplexen Geräten haben wir 
teilweise über 40 Chips in einer Kette hier.

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.