Hallo zusammen, ich hoffe ihr könnt mir helfen, ich bin etwas ratlos. Ich arbeite mit dem Spartan-3AN Starter-Kit von Digilent und möchte das parallele NOR Flash nutzen. Mein Versuchsaufbau dazu ist: BRAM Adressen: 0x0000.0000 - 0x0000.1fff NOR FLASH Adressen: 0x8700.0000 - 0x87ff.ffff Board: J26: M0 set, M1 free, M2 set J46: free Meine Applikation (ein LED Lauflicht) habe ich per Linker-Skript komplett in das BRAM gelegt. Der Bitstream ist mit dieser Applikation initialisiert. Wenn ich nun in XPS "Device Configuration" -> "Download Bitstream" ausführe läuft das Programm. "Device Configuration" -> "Program Flash Memory" ist zwar erfolgreich ("Flashwriter completed successfully"), aber der FPGA scheint weder die Konfiguration zu laden (DONE LED bleibt dunkel) noch das Programm auszuführen. Ich hoffe jemand weiß Rat! klaus
> J26: M0 set, M1 free, M2 set
Das ist m.W. der JTAG Konfigurations-Modus.
Hier solltest du schon auf den Parallelen Master umschalten...
Ich tippe auf: M0 set, M1 set, M2 free
Aber das dürfte auch im Manual stehen... :-/
Danke, ich habs mal probiert. Bei dieser Einstellung konfiguriert sich das FPGA aber aus dem seriellen SPI flash. Die Jumper aktivieren Pull-Down Widerstände, sodass ein gesetzter Jumper afaik einer 0 entspricht. Ich benutze den Schaltplan des Demo-Boards und die da angegebenen Jumper-Settings. Laut dem wäre das mit M1 set und M2 set schon so in Ordnung. Da ich auch schon geprüft habe, dass die Konfiguration wirklich im PROM steht, bin ich ratlos warum es nicht klappt.
>> J26: M0 set, M1 free, M2 set : > Ich benutze den Schaltplan des Demo-Boards und die da angegebenen > Jumper-Settings. > Laut dem wäre das mit M1 set und M2 set schon so in Ordnung. Und, hast du das auch probiert?
Ich sehe gerade ich habe mich verschrieben, ich meinte M0 set und M2 set (Master BPI Mode). Aber probiert habe ich auf jeden Fall das richtige Jumper-Setting, aber inzwischen einfach auch alle anderen Möglichkeiten :-) M1 set und M2 set ist der Master SPI Mode und der funktioniert auch wie gedacht, das habe ich bereits getestet. Was ich noch nicht geschrieben habe, was vielleicht auch wichtig ist, wäre folgendes: Ich habe einfach die Datei "/implementation/download.bit" die vom XPS erzeugt wird geflashed. Da ich darin die Start-Marker der Konfiguration gesehen habe FF FF ... AA 99 denke ich dass das so funktionieren müßte. Oder was habe ich übersehen ? Muss man "download.bit" noch irgendwie weiterverarbeiten bevor man sie flashen kann ? Wie ist das mit Bit-Swapping in diesem Fall ?
> Oder was habe ich übersehen ? Muss man "download.bit" noch irgendwie > weiterverarbeiten bevor man sie flashen kann ? Muss man für den Flash nicht ein .mcs-File generieren? Duke
Duke Scarring schrieb: >> Oder was habe ich übersehen ? Muss man "download.bit" noch irgendwie >> weiterverarbeiten bevor man sie flashen kann ? > > Muss man für den Flash nicht ein .mcs-File generieren? > > Duke Ja muss man. Die Platform Flashes wollen mit einem mcs gefüttert werden.
> Ja muss man. Die Platform Flashes wollen mit einem mcs gefüttert werden.
Ich benutze das NOR flash, bzw. konkret das M29DW323, welches auf dem
Starter Kit verbaut ist, nicht das Platform Flash. Zum Download habe ich
das XPS verwendet.
Okay, das mit dem MCS Format werde ich jetzt testen. Was passiert denn
zusätzlich bei der Umwandlung ins MCS Format ? MCS ist ja praktisch das
Intel Hex Format, soviel ist mir bekannt - werden hierbei vielleicht
noch bits geswapped ? Ausgangspunkt für diese Umwandlung ist aber schon
die "download.bit" oder?
Das ist aber offenbar etwas aufwendiger: http://www.xilinx.com/products/boards/s3astarter/reference_designs.htm#parallel_flash_programmer Du kannst das NOR-Flash gar nicht "einfach so" programmieren...
Ja, bei Generate PROM File wird das .bit File in ein .mcs File umgewandelt. Das Bit File kann man nur direkt in den FPGA laden, das macht XPS. Da wird ja beim Start jeder Session das Bit File in den FPGA geldaden...
Hmmm, alles sehr strange...
Also ich habe jetzt mein "download.bit" genommen und mit Impact in ein
MCS File verwandelt. In diesem MCS File waren die bits geswapped, und
ein kleiner "Header" (der im .BIT file vorhanden ist) wurde entfernt.
Dieses MCS File habe ich dann mit einem anderen Tool wieder ins binäre
rückübersetzt und mit XPS in das NOR flash geschrieben.
Richtig geraten: Geht wieder nicht...
> Du kannst das NOR-Flash gar nicht "einfach so" programmieren...
Mit XPS geht das ganz gut. Da gibts "Device Configuration" -> "Program
Flash Memory". Wenn man sonst nichts umstellt, schreibt das Tool einfach
die Datei die man dabei angibt 1:1 ins NOR flash. Das habe ich auch
geprüft, die Programmierung vom Flash funktioniert. Nur die automatische
Konfiguration aus dem selbigen will nicht klappen.
klaus schrieb: > Hmmm, alles sehr strange... > > Also ich habe jetzt mein "download.bit" genommen und mit Impact in ein > MCS File verwandelt. In diesem MCS File waren die bits geswapped, und > ein kleiner "Header" (der im .BIT file vorhanden ist) wurde entfernt. > Dieses MCS File habe ich dann mit einem anderen Tool wieder ins binäre > rückübersetzt und mit XPS in das NOR flash geschrieben. > > Richtig geraten: Geht wieder nicht... Hm...will XPS denn kein MCS File, wenn es den Flash direkt programmieren soll? Und kann der Spartan überhaupt aus einem x-belibigen NOR-Flash booten? Ich meine, BPI geht nur vom Xilinx Platform Flash....müsste aber auch erst nochmal die Doku raussuchen...ich hatte das so verstanden, dass das Design und der Bootloader im Platform Flash ist, und dann das große Programm aus dem Flash saugt. Die FPGA Konfig im NOR Flash...hmm...
Stimmt soweit, der kann von beliebigen parallelen Speichern booten. Aber da sind jede Menge Einstellungen, die zu tun sind (Timing...), vielleicht passt da was nicht zusammen.
> Hm...will XPS denn kein MCS File, wenn es den Flash direkt programmieren > soll? Ne, als Vorauswahl bietet das Tool SREC und ELF. Es bietet auch noch die Option eine Datei vor dem Upload ins SREC Format umzuwandeln. Das Tool scheint davon auszugehen, dass zunächst ein SREC-Bootloader gestartet wird, der dann den Rest erledigt. Grundsätzlich schreibt es einfach die Dateien so wie sie sind ins NOR Flash. Man muss vorher aber eine funktionierende Konfiguration ins FPGA bringen damit das geht. > Stimmt soweit, der kann von beliebigen parallelen Speichern booten. > Aber da sind jede Menge Einstellungen, die zu tun sind (Timing...), > vielleicht passt da was nicht zusammen Dem würd ich gerne nachgehen. In welche Doku hast du geschaut ?
klaus schrieb: > > Dem würd ich gerne nachgehen. In welche Doku hast du geschaut ? UG332
Okay, danke dir. Ich habe mir gerade noch überlegt: Nach dem Reset leuchtet die INIT LED, d.h. der INIT Pin am FPGA ist Low. Laut Manual kommt dafür u.a. auch ein CRC Fehler in der Konfiguration in Frage. Evtl. liegt ja hier das Problem. Weiß jemand wie sich das mit dem CRC verhält? Wie kann man den im Bitstream prüfen, wie sieht das .BIT Dateiformat aus?
Okay, des Rätsels Lösung, falls jemand nochmal dieses Problem haben sollte: Wenn man das NOR flash nutzen möchte, muss man bit-swapping (Bits in einem Byte spiegeln) UND byte-swapping (je 2 Bytes tauschen) anwenden. Man muss erst mit Impact die erzeugte .bit Datei in eine .bin Datei konvertieren und bit-swapping dabei aktivieren. Anschließend muss diese .bin Datei mit einem eigenen kleinen Skript oder Programm ge-byte-swapped werden. Dann kann man das ganze via SDK ins NOR flash programmieren...
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.