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
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
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
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!
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!
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??
Weiß jemand einen Pegelwandler, aufgebaut wie der SN74AVC4T245, nur 5V
kompatibel??
Einen SN74 LVC 4T245 gibt es scheinbar leider nicht...
Ist es eigentlich nötig die Enable Eingänge der Pegelwandler mit dem
FT2232H zu verbinden? Was für einen Sinn hat das genau?
(Siehe den Link im letzten Beitrag)
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?
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!
Wie schnell muss TRST schalten können?
Ich nehm mal an, dass es bei TSRST nicht um Geschwindigkeit geht, da
dieser während der Kommunikationsphase mit JTAG permanent auf Masse
liegt?
Weiß jemand dazu ein paar Informationen? Im Netz finde ich nichts
brauchbares...
anfänger schrieb:> In der SN74 LVC-Reihe gibt es leider nur 1,2,8,16 Bit (gehn bis 5V).
Als Single Gate Typen, z.B. SN74LVC1G45 koennen die Teile auch mit 5
Volt versorgt werden.
Das Problem ist, dass ich bei denen noch einen Enable-Eingang bräuchte,
damit ich den Ausgang auf Z schalten kann.
Ich könnte es auch so machen, dass ich dann quasi zuerst die Signale mit
den SN74LVCxxx auf einen anderen Pegel bringe und danach einfach einen
74HC125 schalte, das müsste dann gehn...
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
@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
Hallo,
danke für die Infos!
Ich hätte da an CPLDs+FPGAs, ARMs und Mikrocontroller gedacht.
Ich wollte den Adapter möglichst universell gestalten.
Viele Grüße
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