Forum: FPGA, VHDL & Co. Spartan 3 Starter Board flashen


von Tilo (Gast)


Lesenswert?

Hallo

Ich glaube ich sehe gerade den Wald vor lauter Bäumen nicht mehr. Ich 
habe ein kleines Testprogramm geschrieben, welches ich per impact (von 
ISE 13.1) auf den Spartan laden kann. Das funktioniert soweit.

Jetzt will ich den Code auf das Atmel Flash (AT45DB161D ) kopieren, 
damit der FPGA diesen startet. Soviel vorne weg, ich konnte des 
Programm, mit dem das Board ausgeliefert wurde kaputt machen, also 
scheine ich an der richtigen Stelle zu schreiben ;) Die Jumper sind also 
auf das richtige PROM gesetzt.

Unter Generate Programming File ist die FPGA Start-Up Clock als "JTAG 
Clock" eingestellt. Damit habe ich eine parent.bit erzeugt. Danach habe 
ich über den Wizzard die mcs-Datei erstellt. Dort habe ich SPI-Flash -> 
16M -> Checksum 0xFF und file format MCS ausgewählt. Danach hat mich 
impact nach der "parent.bit" gefragt.

Nach diesem Schritt sehe ich ein "SPI-PROM", welches mit einem "Xilinx" 
verbunden wurde.

Danach habe ich unter Baundary Scan -> Initialize Chain ausgewählt. Der 
FPGA wird gefunden. Ein Fenster geht auf, in dem ich nach der 
Konfiguration gefragt werde. Zu erst werde ich nach der .bit für den 
FPGA und danach nach der mcs für das Flash gefragt. Dort stelle ich SPI 
PROM und AT45DB161D ein.

In der graphischen Daisy-Chain des JTAG wird der FPGA mit einem Flash 
verbunden. Soweit sieht alles eigentlich ganz gut aus. Wenn ich nun das 
Flash programmierne will, wird das Flash gelöscht, beschrieben und 
verifiziert. Leider bleibt der Statusbalken immer bei 28% stehen. Ich 
erhalte ich folgende Fehlermeldung.

Wo könnte das Problem liegen?
1
INFO:iMPACT:2219 - Status register values:
2
INFO:iMPACT - 0011 1111 1100 1100 
3
INFO:iMPACT:2492 - '1': Completed downloading core to device.
4
INFO:iMPACT - Address 0x00000000 is in sector 0.
5
INFO:iMPACT - Start block = 0 for address 0x00000000.
6
INFO:iMPACT - Address 0x00053671 is not located at the start of a sector boundary. The whole sector will be erased.
7
INFO:iMPACT - Address 0x00053671 is in sector 3.
8
INFO:iMPACT - End block = 95 for address 0x00053671.
9
INFO:iMPACT - Address 0x00000000 is in sector 0.
10
INFO:iMPACT - Address 0x00053671 is not located at the start of a sector boundary. The whole sector will be erased.
11
INFO:iMPACT - Address 0x00053671 is in sector 3.
12
INFO:iMPACT - Address 0x00000000 is in sector 0.
13
INFO:iMPACT - Address 0x00053671 is not located at the start of a sector boundary. The whole sector will be erased.
14
INFO:iMPACT - Address 0x00053671 is in sector 3.
15
INFO:iMPACT - Address 0x00000000 is in sector 0.
16
INFO:iMPACT - Address 0x00053671 is not located at the start of a sector boundary. The whole sector will be erased.
17
INFO:iMPACT - Address 0x00053671 is in sector 3.
18
INFO:iMPACT - Address 0x00000000 is in sector 0.
19
INFO:iMPACT - Address 0x00053671 is not located at the start of a sector boundary. The whole sector will be erased.
20
INFO:iMPACT - Address 0x00053671 is in sector 3.
21
'1': Erasing device...
22
done.
23
'1': Erasure completed successfully.
24
INFO:iMPACT - Address 0x00000000 is in sector 0.
25
INFO:iMPACT - Address 0x00053671 is not located at the start of a sector boundary. The whole sector will be erased.
26
INFO:iMPACT - Address 0x00053671 is in sector 3.
27
INFO:iMPACT - Address 0x00000000 is in sector 0.
28
INFO:iMPACT - Address 0x00053671 is not located at the start of a sector boundary. The whole sector will be erased.
29
INFO:iMPACT - Address 0x00053671 is in sector 3.
30
INFO:iMPACT - Address 0x00000000 is in sector 0.
31
INFO:iMPACT - Address 0x00053671 is not located at the start of a sector boundary. The whole sector will be erased.
32
INFO:iMPACT - Address 0x00053671 is in sector 3.
33
INFO:iMPACT - Address 0x00000000 is in sector 0.
34
INFO:iMPACT - Address 0x00053671 is not located at the start of a sector boundary. The whole sector will be erased.
35
INFO:iMPACT - Address 0x00053671 is in sector 3.
36
INFO:iMPACT - Address 0x00000000 is in page 0.
37
INFO:iMPACT - Address 0x00053671 is in page 647.
38
'1': Programming Flash...done.
39
'1': Programming completed successfully.
40
INFO:iMPACT - Address 0x00000000 is in page 0.
41
INFO:iMPACT - Address 0x00053671 is in page 647.
42
'1': Verifying device...done.
43
'1': Verification completed successfully.
44
'1': Configuration data download to FPGA was not successful. DONE did not go high, please check your configuration setup and mode settings.
45
INFO:iMPACT - '1': Flash was not programmed successfully.
46
PROGRESS_END - End Operation.
47
Elapsed time =     81 sec.

von Christian R. (supachris)


Lesenswert?

Du musst beim Bit-File Erstellen CClock als Startup Clock einstellen, 
dann gehts. Und die Jumper müssen auf Master SPI stehen. Dann sollte es 
klappen.
Die Fehlermeldung passt auch dazu.

von Tilo (Gast)


Lesenswert?

CCLock habe ich eben ausprobiert, das Ergebnis bleibt gleich :(

von Christian R. (supachris)


Lesenswert?

Dann passt der Mode an den M Pins wohl noch nicht.

von Tilo (Gast)


Angehängte Dateien:

Lesenswert?

Guten morgen

Ich hab nochmal alles überprüft.

J1 (SPI-Flash): AT45DB161D
J26 (BootMode): Master SPI
J46 (Platform Flash): offen
J16 (PROG_B): offen
Die Jumper sollten alle richtig eingestellt sein.

ISE:
Start-Up Clock: CCLK
Configuration Rate: 25

iMPACT:
Create PROM:
SPI Flash -> Configure Single FPGA
Storage Device -> 16M

Danach bekomme ich eine Meldung, dass iMPACT abgeschmiert ist. Ich sehe 
allerdings keinerlei Fehlermeldungen in den Logs.

Danach habe ich über Boundary Scan die JTAG chain absuchen lassen und 
meine Dateien in die Chips gelanden. Impact erkennt selbst, dass die mcs 
Datei für ein SPI Flash ist und veribdet den xc3s700a mit einem externen 
Flash-Baustein. Wenn ich bei Programming Properties "load FPGA with 
bitstream" statt "load FPGA with Flash contents" einstelle, erhalte ich 
keine Fehlermeldung.
Nach einem Powercycle startet der FPGA allerdings auch nicht.

Laut Handbuch müsste ich alles richtig gemacht haben. Ich habe die bit- 
und mcs-File angehängt. Es handelt sich nur um einen Zähler, der die 
LEDs blinken lässt. SW0 ist Stop, "South" ist Reset.

Was kann ich noch versuchen?

von Tilo (Gast)


Lesenswert?

Nachtrag:
Den Fehler erhalte ich, wenn die mcs Datei schon existiert. Lösche ich 
diese vorher von Hand, ist der Fehler weg.

Beim Verknüpfen des Flash mit der mcs Datei erhalte ich eine Warnung:
WARNING:iMPACT - Configuration File 
'E:/Xilinx/test2/counter_led_test/parent.mcs' does not have data 
correctly formatted for this Configuration Mode, As per the Preference 
setting the Byte Swapping will be  automatically performed.


Ich erhalte keine Fehlermeldungen.

von Christian R. (supachris)


Lesenswert?

Sieht laut Handbuch erst mal richtig aus. Dass iMpact immer mal 
abschmiert ist normal, daran muss man sich gewöhnen. komisch ist nur, 
dass der das Byteswapping anmeckert. Und auf dem Board ist auch wirklich 
ein Atmel Flash? Kein ST? Kann eigentlich nur noch das mcs Format 
irgendwie falsch sein....

von Tilo (Gast)


Lesenswert?

Auf dem Board sind 2 Flash-Bausteine.
Mit zwei Jumpern kann man auswählen, ob das Ateml oder das ST Flash als 
PROM verwendet werden soll. Mit dem ST habe ich das selbe Ergebnis.

Ich denke ich werde mal versuchen, ob ich den direkten Mode hinbekomme.

von Christian R. (supachris)


Lesenswert?

Am Programmieren selber liegt es nicht, denn das Verify klappt ja. Nur 
bootet der FPGA nicht vom Flash. Da ist entweder der Inhalt des MCS 
Files und dann des Flashes falsch oder der Mode passt doch irgendwie 
nicht. Da müsste man nochmal schauen, ob Schaltplan und Handbuch 
übereinstimmen.

von Tilo (Gast)


Lesenswert?

Schon sonderbar.

Ich habe im nächsten Schritt das Platform Flash und einen andeeren 
Dateinamen verwendet. DAs ging.
Danach habe ich die beiden SPI Flash ebenfalls mit anderem Namen 
verwendet, da ging dann auch alles.
Dann iwder den alten Daeinamen mit dem Atmel und plötzlich ging das 
auch. Schon ein wenig eigenartig, nun ja.

Danke für deine Hilfe!

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
Noch kein Account? Hier anmelden.