JTAG mit FT2232H

Gast #3756661
Lesenswert?

Hallo,

es gibt diese Thematik hier zwar schon zum gefühlten 1000mal... nur ist 
die ganze Informationsflut auch recht verwirrend...
Daher hätte ich ein paar Fragen.
Ich hab vor mit dem FT2232H eine JTAG Schnittstelle mit dem ELV-Board:

http://www.elv.de/controller.aspx?cid=726&detail=35146

zu realisieren.
Das ganze soll dann mit xc3sprog, openocd ... zusammenarbeiten.

Nun meine Frage.
Soweit ich herausgefunden hab, wird der FT2232H vom PC sozusagen passend 
"konfiguriert".
Hier hab ich einige Schaltpläne im Netz gefunden, wie z.B. der hier:

www.ftdichip.com/Support/Documents/AppNotes/AN_129_FTDI_Hi_Speed_USB_To_ 
JTAG_Example.pdf

Hierbei wurde:
ADBUS0 auf TCK
ADBUS1 auf TDI
ADBUS2 auf TDO
ADBUS3 auf TMS
verdrahtet.

Muss das generell so sein, damit das mit den obengenannten Tools 
zusammenarbeiten kann?
Kann ich dann die Signale einfach wie hier beschrieben:

http://www.mikrocontroller.net/articles/JTAG

auf Wannenstecker verdrahten (also immer wieder zum jeweiligen Pin 
abzweigen) ?

Ich bin Anfänger auf diesem Gebiet und bitte um Nachsicht ;)
Besten Danke für eure Geduld und eure Antworten!

Viele Grüße
Gast #3756672
Lesenswert?

anfänger schrieb:
> Soweit ich herausgefunden hab, wird der FT2232H vom PC sozusagen passend
> "konfiguriert".
Konfiguriert ist vlt. etwas übertrieben. Der Chip kann ja UART, I2C, 
SPI, JTAG und anderes (allerdings nicht alles gleichzeitig). Der 
Betriebsmodus wird vom Host-PC aus eingestellt.

> www.ftdichip.com/Support/Documents/AppNotes/AN_129_FTDI_Hi_Speed_USB_To_
> JTAG_Example.pdf
>
> Hierbei wurde:
> ADBUS0 auf TCK
> ADBUS1 auf TDI
> ADBUS2 auf TDO
> ADBUS3 auf TMS
> verdrahtet.
>
> Muss das generell so sein, damit das mit den obengenannten Tools
> zusammenarbeiten kann?
Ja, aber ich würde mich da einfach ans Datenblatt halten:
http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT2232H.pdf
Auf Seite 9 stehen die entsprechenden Pinbelegungen.

> Kann ich dann die Signale einfach wie hier beschrieben:
>
> http://www.mikrocontroller.net/articles/JTAG
>
> auf Wannenstecker verdrahten (also immer wieder zum jeweiligen Pin
> abzweigen) ?
Ja.

Gruß,
Erik
#3756674
Lesenswert?

anfänger schrieb:

> Hierbei wurde:
> ADBUS0 auf TCK
> ADBUS1 auf TDI
> ADBUS2 auf TDO
> ADBUS3 auf TMS
> verdrahtet.
>
> Muss das generell so sein, damit das mit den obengenannten Tools
> zusammenarbeiten kann?

Ja. Der Chip hat einen JTAG-Modus, und da sind die Signale intern so 
verdrahtet. Viele JTAG-Imlementationen haben aber noch mehr Signale,
zB TRST (JTAG Engine Reset) oder SRST (Prozessor Reset). Zudem gibt es 
oft noch einen Output Enable für die JTAG Signale. Das alles ist nicht 
standardisiert, jeder Hersteller machst das anders, auch wenn alle den 
gleichen Chip benutzen.

> Kann ich dann die Signale einfach wie hier beschrieben:
>
> http://www.mikrocontroller.net/articles/JTAG
>
> auf Wannenstecker verdrahten (also immer wieder zum jeweiligen Pin
> abzweigen) ?

Im Allgemeinen: nein. Was die jeweilige Prozessor- oder FPGA-Architektur 
braucht, ist von Fall zu Fall unterschiedlich. Außerdem kann es sein, 
dass Du Pegelwandler brauchst, weil beispielsweise Spartan 3 2.5V-Pegel 
am JTAG erwartet, oder einige ARMs intern mit 1.8V Pegeln arbeiten.

fchk
Gast #3756678
Lesenswert?

Danke für die Antworten!

Erik schrieb:
> Ja, aber ich würde mich da einfach ans Datenblatt halten:
> http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT2232H.pdf
> Auf Seite 9 stehen die entsprechenden Pinbelegungen.

Oh jaa...
Hab da wohl vor lauter Informationen einfach nicht ins Datenblatt 
geschaut...
Wenns im Datenblatt steht isses dann wohl klare Sache :)

Frank K. schrieb:
> Im Allgemeinen: nein. Was die jeweilige Prozessor- oder FPGA-Architektur
> braucht, ist von Fall zu Fall unterschiedlich. Außerdem kann es sein,
> dass Du Pegelwandler brauchst, weil beispielsweise Spartan 3 2.5V-Pegel
> am JTAG erwartet, oder einige ARMs intern mit 1.8V Pegeln arbeiten.

Ok, danke für die Info!
Gast #3823379
Lesenswert?

Endlich hab ich mal wieder Zeit damit was zu machen...

Es sind ein paar Fragen aufgetaucht, die ihr mir evtl. beantworten 
könnt....

Viele JTAG-Schnittstellen wollen einen TRST und einen nSRST.
Wie schließt man diese am besten an den FT2232H an?
Im Datenblatt werden nur TDI, DMS, TCK und TDO beschrieben, bzw. werden 
fest verdrahtet.
Die anderen werden mit irgendeinen GPIO verbunden oder?
Sollte man sich da an irgendwas halten, damit das auch mit den 
Standard-Programmen funktioniert (wie xc3sprog, openocd) ?

Hab hier auch einen Bauplan gefunden:

https://code.google.com/p/opendous/wiki/JTAG

Ist die Verdrahtung wie hier "Standard" ?

Schonmal Danke!
Gast #3823566
Lesenswert?

Hmm... so ganz klar ist es mir doch noch nicht...

Legt man dann den TRST und den SRST auch auf nen Level-Shifter?
Hab davon gelesen, dass zumindest der SRST nur gegen Masse schalten 
soll.
Würde hier dann nur ein Transistor reichen der gegen Masse schaltet??

In vielen Schaltplänen die man so findet, wurde am FT2232H einige GPIO 
über Widerstände gegen Masse geschaltet oder auch miteinander gebrückt. 
Wo liegt da der Sinn darin?? (siehe auch: 
Beitrag "JTAG-Adapter für ARM/Cortex-M3 (STM32) mit UART" ). Warum wird auch der Reset 
wieder zurück auf einen GPIO geführt??
Gast #3824799
Lesenswert?

Thomas T. schrieb:
> Die SN74AVC4T245 gibt es noch. Such mal bei Mouser danach. Du hast
> wahrscheinlich nur die Buchstaben nach dem SN74 falsch übernommen...

Ja den gibt es noch, nur leider ist der für einen Spannungsbereich von 
1.2-3.6V ausgelegt.
Ich bräuchte aber einen (eigentlich genau denselben Chip, mit sovielen 
Enables) der bis 5V geht.

In der SN74 LVC-Reihe gibt es leider nur 1,2,8,16 Bit (gehn bis 5V).

Weiß da jemand einen Chip?
Gast #3824865
Lesenswert?

Hab nun nach langem suchen auch keinen Chip in der Richtung gefunden...

Aber ich hab mir was anderes überlegt:

TRST bzw. SRST sind ja beide low-active, also bei Masse-Potential gibts 
einen Reset.

Also genügt als Ausgang (verbunden mit dem JTAG-Connector) eigentlich 
nur ein Transistor der gegen Masse schaltet (Open-Kollektor).
Als Ansteuerschaltung für den Transistor reicht ja nun, die Signale ^OE 
und den TRST/SRST Ausgang des FT2232H mit einem NOR zu verknüpfen und 
das Ausgangssignal des NORs mit dem Transistor zu verbinden. Lieg ich da 
richtig? Kann das nochmal jemand überprüfen?

Schonmal besten Dank!
Gast #3825799
Lesenswert?

Hab noch eine andere Möglichkeit gefunden.
Ich kann auch den TXB0101 nehmen.
Weiß da jemand was von hohen Eingangsströmen, da ja im Artikel 
http://www.mikrocontroller.net/articles/Pegelwandler
darauf hingewiesen wird, da dieser ja keinen DIR Eingang besitzt.

Dafür müsste ich das EN-Signal invertieren, damit dies wieder mit den 
Standards läuft.

Ich fasse nochmal zusammen...
Also entweder Lösung mit SN74LVC1T45 + nachgeschaltetem 74HC125
oder:
TXB0101 + Inverter
Gast #3827266
Lesenswert?

@anfänger:

Welche Chips willst Du denn mit dem fertigen Gerät programmieren bzw. 
debuggen?

Die JTAG-Implementierungen, die ich bisher gesehen habe, verwenden TRST 
und nSRST gar nicht. Dort wird der Reset über '11111' an TMS gemacht.

Und Chips mit JTAG und 5V only, sind mir auch noch nicht begegnet.
(Wenn ich JTAG bei AVR's gebraucht habe, liefen die mit 3,3V.)

Grüße, Calvin
Gast #3828022
Lesenswert?

anfänger schrieb:
> Ich hätte da an CPLDs+FPGAs, ARMs und Mikrocontroller gedacht.
> Ich wollte den Adapter möglichst universell gestalten.
Da hast Du das Problem der Softwareunterstützung.
openocd und xc3sprog können mit dem FTDI-Chip umgehen. Damit kann man 
die Chips programmieren. Die jeweilige Toolchain muß die entsprechenden 
Programmierfiles ausgeben. Debugging wird damit aber eher schwierig, 
weil die Hersteller ihre Software auf ihre eigene Programmierhardware 
abstimmen.

Um einfach mal anzufangen würde ich den FTDI-Chip mit 3,3V IO-Spannung 
betreiben und 200 Ohm in die Ausgangsleitungen (TMS, TCK, TDI) machen, 
als Strombegrenzung für 2,5V-Devices.

Am Ende kostet das Ding ja nicht die Welt, auch wenn es für einen 
Controller doch nicht passen sollte.

Grüße, Calvin

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren