mikrocontroller.net

Forum: FPGA, VHDL & Co. Paralleles Flash mit Spartan-3AN


Autor: klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
> 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...  :-/

Autor: klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> 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?

Autor: klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ?

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Impact --> Generate Prom File

Autor: klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist aber offenbar etwas aufwendiger:
http://www.xilinx.com/products/boards/s3astarter/r...

Du kannst das NOR-Flash gar nicht "einfach so" programmieren...

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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 ?

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
klaus schrieb:

>
> Dem würd ich gerne nachgehen. In welche Doku hast du geschaut ?

UG332

Autor: klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.