Hallo, ich möchte eine Firmwareupdate-Option für das Platform Flash XCF04S (welches im JTAG-Chain ist) anbieten. Am Labortisch programmiere ich es mit dem XILINX Parallelportkabel PC3 - werde mir aber irgend wann mal ein USB-Kabel zulegen... Mein Lösungsansatz (nach Tagelangem googeln) wäre folgender: Ich biete eine USB-Schnittstelle für Firmwareupdates an. An der USB-Schnittstelle hängt ein USB/Serial-Wandler. An der seriellen Schnittstelle hängt ein Mikroprozessor. Der Mikroprozessor bedient den JTAG ACE Player von XILINX. [[http://www.xilinx.com/support/documentation/application_notes/xapp424.pdf]] Den JTAG ACE Player würde ich evtl. auf einem CPLD (z.B. XC9572) laufen lassen. Mir kommt mein Lösungsansatz aber reichlich umständlich vor - hat da eventuell jemand von Euch einen Besseren Vorschlag? Wie macht Ihr Firmwarupdates von FPGAs im Feld? Ich habe mir auch schon die FTDI-Lösung mit dem FT2232 angeschaut. Habe mir extra von Amontec den JTAG-KeyTiny gekauft (da ist ein FT2232D drauf) Jetzt ist nur die Frage, wie man die DLL von FTDI nutzen muss. Das Demoprogramm von FTDI macht nur irgendwelche kryptischen SCAN-INs und SCAN-OUTs...??? Aber wie man eine SVF-Datei in den PROM schiebt, habe ich noch nirgends gefunden. Und z.B. OPENOCD geht nicht für XILINX - habe es zumindest nicht zum laufen gebracht. Gruß, Andreas
Auf der Xilinx Site gibt es eine Appnote wo beschrieben wird wie man mittels nem uC und dem SVF File den FPGA beschreiben kann, in der Codesammlung gibt es auch ein "low-cost" configuration rom mit einem Tiny von Falk, vieleicht ist das ne option?
Hm, wir denken hier auch immer mal über eine Option nach, wie man unsere Geräte, die meist aus mehreren FPGAs bestehen, am besten im Feld aktualisieren könnte. Die XAPP058 ist schon mal ein Ansatz....werd auf jeden Fall weiter mitlesen hier....
Hallo, habe gerade versucht, den Player im XC9572 zu synthetisieren. Ergebnis: Der Player benötigt 145 Macrocells (XC9572 hat aber nur 72). Es müßte dann also mindestens ein XC95216 sein. Der hat dann schlappe 160 Pins, von denen gerade mal ca. 20 genutzt werden... Das habe ich mir dann schon etwas anders vorgestellt... Irgendwie "schnuckeliger" ;-) Kennt jemand evtl. eine Alternative mit mindestens 150 Macrocells und höchsten ca. 50 Pins? Oder sollte die FTDI-Schiene doch die Bessere sein...??? @Läubi: Beitrag "SVF-Interpreter (z.B. Xilinx CPLDs) im Mega32" tut eigentlich genau das, was ich will. Leider gibt es keinen C-Code --> Ich hätte schon gern einen PIC verwendet... Eventuell beiße ich halt in den sauren Apfel und schreib mir den SVF-Player halt selber. Wobei ich mir sicher bin, dass hier das Rad bestimmt zum n-ten mal neu erfinden muss! Vielleicht schaffe ich es aber auch ohne PIC - direkt mit der DLL von FTDI - mal schaun. Gruß, Andreas
Naja, in der XAPP058 ist ja der Quellcode für einen SVF Player für beliebige µC drin, das sollte helfen. Ich hatte das mal auf einem TI DSP implementiert. Ging ganz gut, damit einen CPLD zu programmieren. Müsste man noch mal probieren, ob das auch mit dem Platform Flashes geht.... Wieso es allerdings noch keinen SVF Player für den FT2232 gibt, ist mir auch rätselhaft, der ist doch geradezu dediziert dafür.
wie wäre es damit http://www.embedded-projects.net/index.php?page_id=157 der Quelltext ist da auch verfügbar.
Ich arbeite an und mit xc3sprog, mit DLC5 Clones, FT2232 und Cypress FX2. Auf sourceforge habe ich relativ aktuelles Fileset. Inzwischen habe ich auf das CMake System umgestellt und kann (bei vorhandener win32-libusb und win32-libftdi) auf fuer Windows crosskompilieren. Damit faellt das ganze SVF gedoehns weg, selbs ein MCS File braucht man nicht mehr, sondern das Bitfile fuer XC3S bzw. XCF, Jedec fuer XC95XL|XV und an der Portierung von JAVR arbeite ich gerade. Aktuelle Files bei Interesse und gegen das Versprechen der Rueckmeldung...
@Uwe Kannst du mit xc3sprog auch die PROMs, also die XCFxx, über den FT2232 unter Windows programmieren? Ich habe das bisher noch nicht hinbekommen. FPGAs gehen wunderbar, bei PROMs startet der PC neu (mit der originalen Version) bzw. die Daten im PROM werden gelöscht, aber nicht richtig beschrieben (mit einer verbastelten Version). Die XAPP058 hatte ich auch mal auf einen FT2232 portiert, damit konnte ich problemlos FPGAs programmieren, nur bei PROMs versagte auch diese Software.
Unter Linux geht das Programmieren von XCF mit dem Bitfile. Das Crosskompilat habe ich bisher noch nicht ausprobiert. Dazu muss ich dann auf dem Rechner einer Arbeitskollegen libusb-win32 installieren. Ich hoffe, den Test unter Win32 nimmt mir jemand anderes ab. Xc3sprog kennt jetzt auch eine verify Option, damit loescht Du dir nicht das PROM und kannst trotzdem sehen, ob die Kommunikation klappt. Ich habe jetzt einen takeover request fuer sourceforge xc3prog gestellt, mal schauen, wann und wie er bearbeitet wird.
Hi Gemeinde, Uwe: Takeover klingt gut, das Projekt schien mir recht tot. Bekam auch nie eine Antwort auf eingereichte Patches. Gibt ueberdies noch eine weitere brauchbare OpenSource-Ware namens xilprg, mit der programmiere ich normalerweise die EEPROMs / FPGAs direkt ueber ein gehacktes X-Board, oder per Impact mit dem cblserv. Leider auch alles etwas verwaiste Projekte, habe die Patches also nur lokal. Fuer den FT2232 hab ich einen XSVF-Player, allerdings basiert der auf einer optimierten JTAG library die nicht OpenSource ist (Teil des ICEbear JTAG adapter). Allerdings gibt's bei den XSVF-Files ab und an Timing-Probleme unbekannter Art, wenn direkt per Impact erzeugt. Wenn erst nach SVF und dann nach XSVF konvertiert, geht's. Aber da nicht wirklich praktikabel, liegt die Loesung eher in der Schublade. Habe den Code mit der Bitbang-Option (nicht per MPSSE, der Teil ist in der JTAG library) mal angehaengt. Fehlen wohl nur noch die paar I/O-Funktionen. Vielleicht nutzt's ja wem. Gruesse, - Strubi
> ich möchte eine Firmwareupdate-Option für das Platform Flash XCF04S > (welches im JTAG-Chain ist) anbieten. Was hängt da für FPGA dran? Hast du da noch Platz? Kannst du mit dem Kommunizieren (z.B. über einen uC)? Ich programmiere das Config-Prom z.B. über einen Prozessor, der über ein paar FPGA-Pins an der JTAG-Schnittstelle des Config-Proms hängt, das Prom. Beim nächsten Start wird das FPGA dann mit den neuen Daten aus dem Config-Prom geladen. Das Ganze basiert auf dem XSVF-Player von Xilinx.
Lothar Miller wrote: >> ich möchte eine Firmwareupdate-Option für das Platform Flash XCF04S >> (welches im JTAG-Chain ist) anbieten. > Was hängt da für FPGA dran? Hast du da noch Platz? Es ist ein Spartan XC3S400. Habe noch ca. 200 Slices frei. > Kannst du mit dem Kommunizieren (z.B. über einen uC)? Ja, kann ich. Es ist ein MicroBlaze implementiert - der hängt auch an einer seriellen Schnittstelle. > Ich programmiere das Config-Prom z.B. über einen Prozessor, der über ein > paar FPGA-Pins an der JTAG-Schnittstelle des Config-Proms hängt, das > Prom. Beim nächsten Start wird das FPGA dann mit den neuen Daten aus dem > Config-Prom geladen. Das Ganze basiert auf dem XSVF-Player von Xilinx. Das wollte ich auch zuerst machen - weil es das Naheliegendste ist! Ich bin dann aber (glaube ich) an der Größe des XSVF-Players gescheitert. Ich habe (noch) kein externes SRAM dran und bin auf BRAM beschränkt... Und BRAM habe ich nur noch ca. 5kB frei. Könntest Du evtl. etwas C-Code des Players posten? Wie sieht denn dann die JTAG-Chain bei Dir aus? Hast Du den JTAG-Port des XCF04S Parallel auf einige IOs gelegt - oder wie machst Du das? Das war auch ein Problem - ich wußte/weiß nicht, wie ich vom Microblaze aus die JTAG-Pins ansteuern kann... Gruß, Andreas
> Könntest Du evtl. etwas C-Code des Players posten? Den bekommst du bei Xilinx über den Link in der XAPP058 Du könntest den Player auch auf dem Download-Rechner (PC, Laptop) laufen lassen, und die Daten byteweise zum FPGA übertragen. Das muß dann nur noch mit den passenden Pins wackeln. > wie ich vom Microblaze aus die JTAG-Pins ansteuern kann... Du kannst die JTAG-Pins des FPGAs nicht ansteuern. Stattdessen nimmst du belieige freie FPGA-Pins und klemmst dort dran die JTAG-Schnittstelle des Proms. Dann gibst du die Signale auf diesen User-IO-Pins aus.
Lothar Miller wrote: >> Könntest Du evtl. etwas C-Code des Players posten? > Den bekommst du bei Xilinx über den Link in der XAPP058 Habe ich mir gerade (nochmal) besorgt. > Du könntest den Player auch auf dem Download-Rechner (PC, Laptop) laufen > lassen, und die Daten byteweise zum FPGA übertragen. Das muß dann nur > noch mit den passenden Pins wackeln. Bin gerade dabei, es mit dem FTDI-Baustein zu probieren. >> wie ich vom Microblaze aus die JTAG-Pins ansteuern kann... > Du kannst die JTAG-Pins des FPGAs nicht ansteuern. OK, so habe ich das auch verstanden... > Stattdessen nimmst du belieige freie FPGA-Pins und klemmst dort dran die > JTAG-Schnittstelle des Proms. Dann gibst du die Signale auf diesen > User-IO-Pins aus. Dann muss man nur noch einen Multiplexer verwenden - weil ja die JTAG-Schnittstelle einerseits nach draussen geführt ist - und andererseits direkt für das Firmwareupdate benutzt wird... Aber das soll das Problem nicht sein.
Hallo, ich bin nun so weit, dass ich die .xsvf-Datei mittels eines Prozessors und dem (modifizierten) C-Code von XAPP058 abspielen kann. ABER: Leider funktioniert das nur für einen CPLD (XC9572). Für den Spartan und den Platformflash geht es nicht. Ich kann nicht mal die IDs auslesen... An der Chain liegt es nicht - weil mit dem PC3 Programmierkabel geht es ja auch... Hat jemand eine Idee, an was sowas liegen kann? Beste Grüße, Andreas
Hallo nochmal, ich habe mir die Spannungspegel der JTAG-Schnittstelle nochmal mit dem Oszi angeschaut: Sieht alles gut aus! Hohe Flankensteilheit ist vorhanden. Spannungspegel (HIGH) von 3,3V ist da. Auf der TDO-Leitung tut sich auch was. --> Die Chain schein also schon zu funktionieren und zu antworten. Beim Auslesen des ID-Codes kommt aber immer 00000000 zurück. Läuft da eventuell mit dem Reset oder so was schief??? Bleibt die Frage: Was ist JTAG-mäßig bei dem CPLD anders zum FPGA bzw. Platform Flash??? Kann man eventuell die JTAG-Schnittstelle auch zu langsam ansteuern? Gruß, Andreas
Bei Openocd wird gerade xsvf eingebaut. Dann hat man endlich ein JTAg für alle Problem. ARM und FPGA Programmierung.
Oh, klingt interessant. Ich kenn zwar außer FPGA und ARM noch andere JTAG-ANwendungen, aber ein Schritt in die Richtung ist es schon. Bleibt noch die Frage, ob es mit den Platform Flashes überhaupt klappt.
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.