Hallo! Ich versuche derzeit einen Spartan 3 mit davorgeschaltetem Konfigurations-PROM über JTAG zu konfigurieren. Da das Konfigurieren über USB möglich sein soll, verwende ich einen FTDI FT2232C, der das ansteuern der JTAG Leitungen übernimmt. Ich benutze die von FTDI zur Verfügung gestellte JTAG-Bibliothek um eine zuvor generiertes XSVF-File zum FPGA zu schreiben. Der Prom lässt sich problemlos konfigurieren, nur beim FPGA funktioniert es nicht. Im Moment bin ich mit meinem Latein am Ende, da ich vom FPGA nur klappt/klappt nicht bekomme und auch so nur die Daten runterschicke, die das vom Xilinx-Programmer generierte XSVF-File beinhaltet. Über eine Antwort würde ich mich freuen. lg
@Markus Hofinger >Ich versuche derzeit einen Spartan 3 mit davorgeschaltetem >Konfigurations-PROM über JTAG zu konfigurieren. Da das Konfigurieren Setzte mal die Mode pins auf Slave serial oder so. Aber auf keinen Fall auf Master serial! MFG Falk
Hallo Falk! Danke für deinen Antwort. Werde ich gleich testen. Was ich vorher noch vergessen habe: Auf dem Board befindet sich auch ein Anschluß für ein Xilinx-JTAG-Programmierkabel. Über Impact bzw den XSVF-Player von Xilinx lassen sich sowohl PROM als auch FPGA problemlos programmieren. lg
Hi! Ich arbeite gerade mit einem Kollegen an dem selben Problem. Ein FTDI FT2232C steuert über den MPSSE-Mode (unter Verwendung der FTDI JTAG Lib) den FPGA PROM (Xilinx XCF02S) und den Xilinx Spartan3 400 an. Der Prom lässt über das erstellte Programm sich problemlos programmieren, der FPGA nicht. Über Impect und den Xilinx-Programmer geht auch der FPGA. Wir haben es auch bereits mit einer JTAG Kette ohne PROM versucht, leider ohne Erfolg. Den Modus auf JTAG umzustellen ist leider keine Lösung für uns, da dann der PROM den FPGA nicht mehr programmieren kann. Mein Tip ist ja ein Bug in der FTDI JTAG Lib. Daher versuchen wir gerade den xc3prog (http://sourceforge.net/projects/xc3sprog/) unter Linux zum Laufen zu bringen. Falls dass geht sollte sich die MPSSE Ansteuerung leicht auf Windows protieren lassen. MfG Martin
Hier der Thread Firmware Updates für FPGA Beitrag "Firmware Updates für FPGA" Hint.1) http://www.mikrocontroller.net/attachment/20569/SCANSTA476.pdf Der SCANSTA476.pdf ist der Schlüssel für das JTAG Protokoll. Wichtig bei dem Protokoll-Anwefen ist das bei TMS = HIGH ein z.B minimal 8 mal Dummy Clock erfolg. Damit shiftet der die Register erst frei. Und geht so in die Reset-Grundstellung. Halt wie bei PIC 16F8477A da ist auch so eine dummy Clock Krucks drin. Somit kan man z.B als erstes die 32Bit ID lesen. Wen die ID ok ist, ist das schon der rechte Weg. Berichtet mal ob das geklappt hat. Bei Bedarf kan ich noch den C-Code raussuchen. ----------------------------------------------------------- Hint.2) http://www.mikrocontroller.net/attachment/20584/xapp058.pdf http://www.mikrocontroller.net/attachment/20585/xapp694.pdf ----------------------------------------------------------- Firmware Updates für FPGA -------------------------------------- Anlage das JTAG Protokoll. mit Pegeln Ich habe für JTAG Interface ein Protokoll für PC oder uC geschrieben. Mit SCK TMS DATA bzw (TRST)kan man das FPGA über Command, DATA z.B Bitseriell steuern. (shift Bits ) Bzw. ein Design in den FPGA up/downladen. ID. lesen z.B 32Bit 101001.....0101 . Reset Command machen.Und externe HW TestBench ect. Der Code dafür ist aber immer als Flussdia. dargestellt. Und umständlich komplex dargestellt. IEE 1149.1 ???? CATURE DATA Reg,UPDATE DATA Reg. EXIT DATA Reg. Wichtig ist das bevor der letzte CLOCK-Bit mit Data-Bit gesendet wird das TMS-bit auf High angelegt werden muss. if (i % (8-1) == 0 ) TMS.bit = High; Sonst verhaspelt sich die JTAG-State-Maschine. Zum ersten Start mus man auch noch min z.B 8 dummy Clocks anlegen. Sonst Sychronisiert sich das nicht sicher. TMS&DATA =LOW => Grundstellung. Danch TMS = HIGH . Der Befehlssatz ist bis z.B (6) bis 8-Bit breit,gefolgt von DATA usw. Geht auch für ispPAC30 Reprogrammable Analog-IC. So kan das Design Füttern u.Fernwarten. Auf dem PC ist noch ein Prog. das den 011101 BitStream in HEX 0x0FC,0x03,0xFE wandelt. Zum Code ablegen in uC. So kan man die Fuses besser lesen, bzw Design CRC fahren. Wie bei EPROM Optimizer/Vers. Kontrolle ect. Gruss, Holger.
http://direct.xilinx.com/bvdocs/appnotes/xapp069.pdf Den FTDI FT2232C im Bit-Bang Mode ????. Würde ich erst mal mit der LPT das JTAG Protokoll machen. Wen man die Chip-ID richtig lesen kan, ist das schon der richtige Weg. Wichtig bei dem Protokoll-Anwefen ist das bei TMS = HIGH ein z.B minimal 8 mal Dummy Clock erfolg. Damit shiftet der die Register erst frei. Und geht so in die Reset-Grundstellung. Ich habe da aus Erfahrung so komische Effekte gehabt. Wenn ich den Dummy-Clock nicht gemacht habe. Gruss,Holger.
Hi Holger! Wie ich bereits in meinem Beitrag erklärt habe, funktioniert der JTAG über den FTDI ja grundsätzlich. Der Prom kann programmiert werden und auch die ID des FPGA lässt sich auslesen. Dass problem scheint nur dass der Xilinx die Daten nicht korrekt übernimmt. Das Programm für den FTDI nimmt eine XSVF Datei auf und setzt diese mit hilfe der FTDT-JTAG Lib um. Das SVF-File wurde vorher immer mit XSVF Player v5.01b von Xilinx mit dem parallelen JTAG Kabel getestet. Dass funktioniert immer. MfG Martin
Grüss euch! Kurz die Zusammenfassung vom Test auf Linux mit dem xc3prog: Dieser kann sowohl den Prom wie auch den FPGA programmieren. Es wurde der Changeset 5 aus dem SVN Repository zusammen mit FTDILIB-0.7 und Libusb-0.1.8 getestet. Betriebsystem war ein Gentoo 2006.1. Ich gehe daher von einem Kompatibilitätsproblem in Zusammenhang mit dem Xilinx Spartan 3 in der FTDI JTAG Lib aus da auf den ersten Blick der xc3prog nichts wirklich anders macht. Dieser verwendet den MPSSE Mode und ist unerwartet schnell, schneller als unser Programm mit der JTAGLIB. Jetzt heisst es das auf Windows portieren... Mal sehen ob Zeit bleibt das Problem mit der JTAGLIB und dem Spartan genauer zu analysieren sodass sich ein Workaround mit der JTAGLIB machen lässt, oder ein Bugreport an FTDI möglich ist. MfG Martin
Hallo, ich habe hier ein eigenes Spartan 3 Board mit FT2232. Mittels (eigenem ) xc3progs auf dem ersten FT2232 Kanal programmierbar. Ueber den ersten Kanal kann ich auch mittels SPI auf Register im FPGA zugreifen. Ueber den zweiten Kanal kann ich im FIFO Mode Daten mit dem FPGA austauschen. Dazu noch Spannungsversorgung von USB Bus. Erweisst sich als recht praktisch. PS: xc3sprog braucht nur ein BIT File @Martin: LIBUSB gibt es auch fuer Windows
Hallo, mich würde mal intressieren, ob man eine XSVF Datei direkt nehmen kann und z.B. bei der FTDI JTAG Libary direkt etwa mit JTAG_ReadWrite() Funktion auf die Chain geben???? Im einfachsten Fall die Device ID auszulesen sind das ja keine 100Byte an Kommandos... Nehmen wir mal an, ich hab ne Kette mit Platform Prom und FPGA drin: und ich will von einem der Devices die ID auslesen... kann ich dann einfach in Impact diese Aktion durchführen, nur diese XSVF Datei aufzeichnen anstatt in echt? Und diese XSVF Datei dann "einfach" ohne Änderungen mit der JTAG lib übertragen??? Viele Grüße HB
Hi! Wennst das XSCF nimmst und umsetzt gehst dass mit der FTDI JTAG LIB soweit. Des Prom konnten wir damit auf anhieb programmieren. ID auslesen etc beim FPGA ging auch noch, aber den FPGA programmieren geht nicht mehr! Der Grund dafür ist mir nicht klar... MfG Martin
Martin Gschwandtner wrote:
> Des Prom konnten wir damit auf anhieb programmieren.
Mit welcher Software kann man denn das Prom programmieren? Ich habe auf
der FTDI Seite nur ein kleines Delphiprogramm gefunden um paar bytes hin
und her zuschieben (JTAG Scanning Example) .
Gibt es da noch was? Wenn ja wo?
Gruß
Andreas
Hallo, Wir sitzen hier gerade vor einem FPGA-Board mit einem FTDI 2232D und wollte es über xc3sprog programmieren und habe folgende Probleme: 1: Wenn wir USBLIB (unter Windwos) installieren verlienen wir den Zugriff auf den B Kanal des FTDI, welchen wir als virtuellen COM-Port im FIFO-Modus konfiguriert haben. Dafür klappt dann das aufspielen des Bitstreams auf den einen der beiden FPGAs (xc3s400a) auf dem Board. Gibt es dafür eine Lösung, welche beinhaltet, dass wir die Einstellungen für Kanal B weiter nutzen können? 2: Der zweite FPGA auf dem Board ist ein xc5vl50 ,für den es in der Device-Liste von xc3sprogs keinen Eintrag gibt. Wie kann man die List selber erweitern? Oder was bedeutet ID_CMD? Ciao, Christian und Marc
3 Jahre später... naja. xc3sprog... Schon der Name deutet an dass man damit Spartan3 FPGAs konfigurieren kann und nicht Virtex 5. Das FTDI Datenblatt sagt, dass man auf Kanal A dem MPSSE Modus betreiben kann und Kanal B anderweitig nutzen kann. Müsste also prinzipiell gehen.
@CM: Die Virtex ID Codes sind in SV Rev 405 eingecheckt. Mit svn co https://xc3sprog.svn.sourceforge.net/svnroot/xc3sprog xc3sprog auschecken, testen und Rueckmeldung geben. Unter Linux tut mkdir build cd build cmake .. make oder zum Bauen mit mingw unter Linux cmake -DCMAKE_TOOLCHAIN_FILE=../Toolchain-mingw32.cmake .. make zum Bauen, cmake sollte eigentlich auch unter Windows spielen, aber mit MS vc++ wird da noch nacharbeit gefragt sein und die aAbhaengigkeiten von linusb/libftdi sind auch nicht ohen. Gggf mail direkt an mich, dann versuch ich unter Linux mit ming zu bauen und schicke das Kompilat. Welcher libusb Driver ist installiert? Ich wuerde vermuten, dass die Device Driver Installation im Gegensatz zur Filter Driver Installation den zweiten Kanal unangetastet lassen sollte. Ich probiers mal unter Linux aus. Ansonsten habe ich keine V4/5/6 Hardware, so dass da intelligente Rueckmeldung/Fragen gefordert sind.
@ ich (Gast) Die Programmieralgorithmen sind zwischen XCxV und XCxS sehr aehnlich. Aus dem Namen abzuleiten, dass XCxV nicht geht, ist gewagt. Inzwischen geht auch XC2X und XC95Xx, aber der Name ist historich... Bessere Vorschlaege ?
Uwe Bonnes schrieb: > Bessere Vorschlaege ? xProg? :-) So schnell wie die Chipbezeichnungen ändert sich der Firmenname sicher nicht... Duke
Geht es denn inzwischen mit der FTDI Library nicht?
xProg? :-) Wenn A/L oder sonstwer BSDL1582 File bereitstellt, kann man das auch umsetzten. Fuer den ATMEGA/CAN ist es schon halbherzig umgesetzt. @ Johann (Gast) Was ist das Problem? Was ist die Frage?
Ich will auf einem neuen Board den neuen FTDI-USB 2.0 High Speed Chip verbauen. Dieser bietet inzwischen auch die Möglichkeit den FPGA mit JTAG zu programmieren. Jetzt habe ich gelesen das es früher einige Bugs mit dem FTDI und dem JTAG gab. Sind diese inzwischen beseitigt, so das ich den FPGA und den externen EEPROM mit Hilfe des FTDI Chips programmieren kann?
@Johann (Gast) Auf dem Board was ich zur Z. bearbeite ist ein FT2232H, ein XC6SLX45 mit SPI Flash M25P32 und ein AT90CAN128. Alles Bausteine kann ich mit dem xc3sprog/javr von Sourceforge SVN erreichen. "externen EEPROM" is SPI Flash oder was sonst?
Hello I need buy a cheap, Usb-Jtag programer, for the driver "giveio.sys", and the program, ""Alice03.c - EJTAG Debrick Utility for Alice routers v0.3; Heavily based on the WRT54G/GS EJTAG Debrick Utility v4.5/v4.8 and on Telsey MAGIC EJTAG Debrick Utility v0.9"", for programmer , a Router. This FTDI FT2232C programmer, run for this utility?; Or what usb-jtag programmer, do you think run for this utility??; thanks, Excuseme for my bad English!.
The giveio.sys driver only talks to real serial oder parallel ports (COM or LPT) with real system IO adresses like 0x378 for LPT. There is no way to talk to an USB device such as the FT2232.
You can talk to the FT2232 with libFTD2XX or libftdi/libusb, on Linux, Windows and some other systems...
Here's a xsvf player / boundary scan flasher for a ft2232 using the mpsse mode: http://wesche.we.ohost.de/Homepage/Version_3/index.php?section=PC_Delphi_FT2232_JTAG.html
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.