mikrocontroller.net

Forum: FPGA, VHDL & Co. Nexys 4: SPI-Flash mit iMPACT schreiben -> Fehler


Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo an alle,

nach meinen ersten Designs möchte ich die nun dauerhaft im SPI-Flash des 
Nexus-4 Board speichern. Dazu habe ich in iMPACT mittels des PROM 
Formatters eine Vorlage für ein 128 Mbit SPI Flashs samt MCS File 
erzeugt.

Beim Programmieren kommet es jedoch zur Fehlermeldung:

<pre>
INFO:iMPACT - Current time: 3/12/14 9:02 AM
// *** BATCH CMD : Program -p 1 -dataWidth 1 -spionly -e -v -loadfpga
PROGRESS_START - Starting Operation.
Maximum TCK operating frequency for this device chain: 66000000.
Validating chain...
Boundary-scan chain validated successfully.
1: Device Temperature: Current Reading:   41.52 C, Min. Reading:   37.09 
C, Max. Reading:   42.01 C
1: VCCINT Supply: Current Reading:   0.999 V, Min. Reading:   0.987 V, 
Max. Reading:   1.008 V
1: VCCAUX Supply: Current Reading:   1.784 V, Min. Reading:   1.781 V, 
Max. Reading:   1.784 V
Unprotect sectors: FALSE
SPI SLAVE TYPE in Cse_Operate.c is 99
Core is not loaded.
INFO:iMPACT - Downloading 
/opt/Xilinx/14.7/ISE_DS/ISE/data/cse/cseflash/artix7/xc7a100t_xsdbspi.co 
r  core file.
INFO:iMPACT - Creating XC7A100T device.
PROGRESS_START - Starting Operation.
'1': Programming device...
 Match_cycle = NoWait.
Match cycle: NoWait
 LCK_cycle = NoWait.
LCK cycle: NoWait
done.
INFO:Cse - Status register values:
INFO:Cse - 0011 1111 1001 1110 0000 1000 0000 0010
INFO:Cse - '1': Completed downloading bit file to device.
INFO:Cse - '1': Programming completed successfully.
PROGRESS_END - End Operation.
Elapsed time =      1 sec.
key: dclk_has_reset, value: 0
key: period_frc, value: 0
key: period_int, value: 10
Found Slave on Bus Index.
Found Slave on Bus Index.
Slave Int Type is 99, slave Index is 0 , SPI_SLAVE is 99
Slave Type is 99, slave Index is 0
SPI core clock speed value = 0xA801.
PROGRESS_START - Starting Operation.
'1': IDCODE is '012018' (in hex).
'1': ID Check failed.
INFO:Cse - The operation did not complete successfully.
'1': Configuration data download to FPGA was not successful. DONE did 
not go high, please check your configuration setup and mode settings.
PROGRESS_END - End Operation.
Elapsed time =      3 sec.
</pre>

Ein direktes programmieren des FPGAs mit dem Bit-File funktioniert ohne 
Probleme. Woran kann es hier liegen?

Danke im Voraus
Martin

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, was genau ist denn für ein SPI Flash auf dem Board verbaut? Laut 
Schaltplan sollte da ein Spansion S25FL128S drauf sein, aber die ID die 
Impact bei dir ausliest (012018) passt da nicht. Der S25FL128S sollte 
eine 0117xx bringen, 0118xx wäre der 256S. Welche Flash unterstützt 
werden, findest du hier: 
http://www.xilinx.com/support/documentation/sw_man...
Es gibt auch einen Umgebungsvariablen-Schalter zum skippen des ID Code 
Checks, aber der hilft meistens auch nicht, da dann Impact nicht weiß, 
wieviele Sektoren usw. zu programmieren sind. Die Variable weiß ich 
leider nicht auswendig, kann ich auf Arbeit morgen mal gucken.

Achja, du musst natürlich beim Zuordnen des MCS Files zum SPI Flash 
genau den Flash-Typ auswählen, der verbaut ist.

: Bearbeitet durch User
Autor: Lattice User (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian R. schrieb:
> Hm, was genau ist denn für ein SPI Flash auf dem Board verbaut? Laut
> Schaltplan sollte da ein Spansion S25FL128S drauf sein, aber die ID die
> Impact bei dir ausliest (012018) passt da nicht

012018 -> S25FL128P
Siehe
http://www.spansion.com/Products/memory/Serial-Fla...

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Laut der Liste wird der ja nur vom Kintex unterstützt... 
Bestückungsfehler bei Digilent?

Autor: Lattice User (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian R. schrieb:
> Laut der Liste wird der ja nur vom Kintex unterstützt...
> Bestückungsfehler bei Digilent?

Der klassische SPI 1 Bit Mode sollte IMO immer gehen.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sicher, aber dazu muss impact erst mal wollen. Das kann manchmal sehr 
widerspenstig sein. ID Check Failed sagt ja eigentlich schon dass er 
nicht will/kann. Kann man denn den S25FL128P beim Assign MCS File 
auswählen?

Autor: Lattice User (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian R. schrieb:
> Sicher, aber dazu muss impact erst mal wollen. Das kann manchmal sehr
> widerspenstig sein. ID Check Failed sagt ja eigentlich schon dass er
> nicht will/kann. Kann man denn den S25FL128P beim Assign MCS File
> auswählen?

Das muss der OP beantworten, ich habe mich nur geäussert weil ich mich 
auch gerade mit neuen Spansion Flashs beschäftigt habe.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schon klar, die Frage war auch an ihn gerichtet.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab eben mal getestet, für den Artix 7 kann ich den S25FL128P gar 
nicht auswählen.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hatte mal wieder Zeit zu testen. Und zwar habe ich den S25FL128S 
ausgewählt. Damit funktioniert der ID-Check. Wenn ich das Programmieren 
starte, bleibt Impact bei 0% hängen und es tut sich nichts mehr. Hier 
der Log dazu:
Selected part: S25FL128S
// *** BATCH CMD : attachflash -position 1 -spi "S25FL128S"
Unprotect sectors: FALSE
// *** BATCH CMD : assignfiletoattachedflash -position 1 -file "/home/rschilling/vhdl-projects/knight-rider/Knight Rider.mcs"
// *** BATCH CMD : attachflash -position 1 -spi "S25FL128S"
INFO:iMPACT - Current time: 3/16/14 2:40 PM
// *** BATCH CMD : Program -p 1 -dataWidth 1 
PROGRESS_START - Starting Operation.
Maximum TCK operating frequency for this device chain: 66000000.
Validating chain...
Boundary-scan chain validated successfully.
1: Device Temperature: Current Reading:   38.07 C, Min. Reading:   34.13 C, Max. Reading:   38.56 C
1: VCCINT Supply: Current Reading:   1.002 V, Min. Reading:   1.002 V, Max. Reading:   1.005 V
1: VCCAUX Supply: Current Reading:   1.793 V, Min. Reading:   1.790 V, Max. Reading:   1.793 V
INFO:iMPACT - Creating XC7A100T device.
PROGRESS_START - Starting Operation.
'1': Programming device...
 Match_cycle = NoWait.
Match cycle: NoWait
 LCK_cycle = NoWait.
LCK cycle: NoWait
done.
INFO:Cse - Status register values:
INFO:Cse - 0011 1111 1001 1110 0000 1000 0000 0010 
INFO:Cse - '1': Completed downloading bit file to device.
INFO:Cse - '1': Programming completed successfully.
PROGRESS_END - End Operation.
Elapsed time =      3 sec.
 Match_cycle = NoWait.
Match cycle: NoWait
 LCK_cycle = NoWait.
LCK cycle: NoWait
INFO:iMPACT - '1': Checking done pin....done.
'1': Programmed successfully.
INFO:iMPACT - Current time: 3/16/14 2:40 PM
// *** BATCH CMD : Program -p 1 -dataWidth 1 -spionly -e -v -loadfpga 
PROGRESS_START - Starting Operation.
Maximum TCK operating frequency for this device chain: 66000000.
Validating chain...
Boundary-scan chain validated successfully.
1: Device Temperature: Current Reading:   34.13 C, Min. Reading:   33.64 C, Max. Reading:   38.56 C
1: VCCINT Supply: Current Reading:   1.005 V, Min. Reading:   1.002 V, Max. Reading:   1.005 V
1: VCCAUX Supply: Current Reading:   1.793 V, Min. Reading:   1.790 V, Max. Reading:   1.793 V
Unprotect sectors: FALSE
SPI SLAVE TYPE in Cse_Operate.c is 0 
INFO:iMPACT - Downloading /opt/Xilinx/14.7/ISE_DS/ISE/data/cse/cseflash/artix7/xc7a100t_xsdbspi.cor core file.
INFO:iMPACT - Creating XC7A100T device.
PROGRESS_START - Starting Operation.
'1': Programming device...
 Match_cycle = NoWait.
Match cycle: NoWait
 LCK_cycle = NoWait.
LCK cycle: NoWait
done.
INFO:Cse - Status register values:
INFO:Cse - 0011 1111 1001 1110 0000 1000 0000 0010 
INFO:Cse - '1': Completed downloading bit file to device.
INFO:Cse - '1': Programming completed successfully.
PROGRESS_END - End Operation.
Elapsed time =      1 sec.
key: dclk_has_reset, value: 0
key: period_frc, value: 0
key: period_int, value: 10
Found Slave on Bus Index.
Found Slave on Bus Index.
Slave Int Type is 99, slave Index is 0 , SPI_SLAVE is 99 
Slave Type is 99, slave Index is 0 
SPI core clock speed value = 0xA801.
PROGRESS_START - Starting Operation.
'1': IDCODE is '012018' (in hex).
'1': ID Check passed.
 '1': Erasing Device.
'1': Using Sector Erase.
'1': Erasing non-volatile quad-enable bit...
'1': Programming Flash.

Weiß jemand woran es diesmal scheitert?

lg Martin

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es sollte ungefähr so weitergehen:
...
'1': Erasing Device.
'1': Using Sector Erase.
'1': Erasing non-volatile quad-enable bit...
'1': Programming Flash.
'1': Reading device contents...
done.
'1': Verification completed.
'1':Programming in x4 mode.
W25Q64BV Status Register Contents = 0x0200.
...
Wie lange hast Du gewartet?

Duke

Autor: Paul Gardner-Stephen (paul_g93)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat jemand eine Antwort auf dieses Problem zu finden?
(Ich habe auch die gleich Problem mit meinem Nexys4).

Paul.

Autor: Christoph Z. (christophz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat von euch schon mal jemand versucht den Support von Digilent zu 
diesem Problem anzusprechen?

Autor: Paul Gardner-Stephen (paul_g93)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe entdeckt, dass seit Adept ist nicht für die Nexys4 unterstützt.
Das ist beschrieben in dem neuer Nexys4 Referenzhandbuch.

Ich habe versucht, die Werkzeuge verwenden, um das Flash-Programm 
gegeben, und wird stattdessen ein FPGA Programm, um es direkt zu tun.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal mit VIVADO probiert? Der kann ja seit 14.1 auch Flashes 
programmieren. Ist zwar noch gruseliger als Impact, aber naja.

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.