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!
Hab gerade einen interessanten Thread dazu gefunden: Beitrag "JTAG-Adapter für ARM/Cortex-M3 (STM32) mit UART" Dann wäre das Problem geklärt.
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??
Hab nun noch was gutes gefunden, für alle die auch vorhaben einen JTAG-Adapter auf Basis des FT2232H zu bauen: http://dangerousprototypes.com/docs/Bus_Blaster_v1_design Werde das nun so bauen.
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)
Die SN74AVC4T245 gibt es noch. Such mal bei Mouser danach. Du hast wahrscheinlich nur die Buchstaben nach dem SN74 falsch übernommen... Gruß, Thomas
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
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.