Hallo Leute, folgendes Szenario: ein Xilinx FPGA und der passende Platform Flash Prom sind vorhaneden. Im Normalfall schreibe ich mit JTAG die Konfigurationsdaten in das Flash Prom, dieser "konfiguriert" damit den FPGA,... beim Systemstart z.B. Um später "Firmwareupdates" durchführen zu können beabsichtige ich, dass der FPGA die Daten im Prom über JTAG überschreiben kann... also: neue Firmware wird vom PC empfangen und dann direkt in den Prom geschrieben. Hat jemand sowas schon mal gemacht? Gibt es dazu App Notes von Xilinx oder sowas??? Ehfahrungen? Viele Grüße HB
xapp 058 Geht, aber ich würde das nicht über das FPGA selber machen. Wenn dabei nämlich was schief geht, zuckt das FPGA nie mehr. Besser einen separaten "Konfigurator" verwenden. MFG Falk
Gemacht habe ich das bisher nur über uc von Aussen. Ich kann mie vorstellen, daß Dein FPGA einen JTAG Core benötigt und Du irgendwie die Umschaltung des JTAG-Anschlusses für das Flash hinbekommen musst - es muss ja einmal auf den externen und einmal auf Deinen JTAG reagieren. Und du musst dir überlegen, wie du einen Abbruch der Kommunikation abfängst: Wenn du direkt beim Empfang der Daten das flash überschreibst und dann ein Image nur halb empfangen hast, hast du nichts mehr zum booten. Du brauchst also einen Zwischenspeicher, würde ich mal sagen. Nächstes Problem: Reset! Der FPGA muss einen Reset ausführen. Der Pin dafür ist aber erst nach Konfiguration valid. Du musst also dir also eine sichere pullup-Lösung einfallen lassen, sonst kommt da garnichts hoch.
Nehmen wir an, ich habe einen FPGA mit funktionierender Konfiguration, die ich quasi ab Werk ins Platform Flash eingespielt habe. Auf dem Bord befinden sich nur FPGA und Platform Flash und ich will die "firmware" des FPGA updaten. Mir stehen aber nur Ethernet, USB oder ähnliches zur Verfügung, weil das Update direkt beim Kunden gemacht werden soll, ohne das Produkt aufzuschrauben. Ideen?
@HB >Nehmen wir an, ich habe einen FPGA mit funktionierender Konfiguration, >die ich quasi ab Werk ins Platform Flash eingespielt habe. Auf dem Bord >befinden sich nur FPGA und Platform Flash und ich will die "firmware" >des FPGA updaten. Mir stehen aber nur Ethernet, USB oder ähnliches zur >Verfügung, weil das Update direkt beim Kunden gemacht werden soll, ohne >das Produkt aufzuschrauben. Nimm nen kleinen uC mit USB/Ethernet/whatever Interface und programmiere xapp 058 rein. Ist wasserdicht. MFG Falk
Du kommst um den am FPGA vorbei geführten Programmierpfad direkt ins Platform Flash nicht herum. Ich würde es mit einem uC machen, wie von Falk beschrieben. Das Gerät ist im Normalbetrieb Stand-alone?
Ja...standalone! Wäre es eventuell ne Idee, einen zweiten Platform Flash zu verbauen, in dem eine sichere, lauffähige Version der FPGA Konfiguration abgespeichert ist? Der erste Platform Flash kann durch USB, Ethernet oder sowas das im FPGA entsprechend implementiert ist neu geflasht werden... geht dabei irgendetwas schief und der FPGA ist nicht in der Lage zu "booten" dann wird nach einer gewissen Zeit diese sichere Konfig eingespielt.
@HB >Wäre es eventuell ne Idee, einen zweiten Platform Flash zu verbauen, in >werden... geht dabei irgendetwas schief und der FPGA ist nicht in der >Lage zu "booten" dann wird nach einer gewissen Zeit diese sichere Konfig >eingespielt. Denkbar. Die neueren FPGAs (S3 & Co) unterstützen sogar mehrere Konfigurationen in einem Flash. Aber aufpassen, der Teufel steckt im Detail. MfG Falk
Firmware Updates für FPGA Anlage das JATAG Protokoll. mit Pegeln Ich habe für JATAG 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 JATAG-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.
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.