Forum: FPGA, VHDL & Co. FPGA reagiert nicht auf Programm, nur Rauschen auf Pins


von entchen (Gast)


Lesenswert?

Hallo zusammen!

Ich bin ein absoluter Neuling in Sachen FPGA. Daher entschuldigt, wenn 
die Problemlösung trivial sein sollte....

Also Folgendes:
Ich benutze einen FPGA der Marke XILINX Spartan6, programmiert wird im 
ISE Webpack. Ich habe ein kleines Testprogramm in VHDL geschrieben, um 
so einen ersten Einstieg zu bekommen. Es handelt sich um ein AND Gatter:
1
library IEEE;
2
use IEEE.STD_LOGIC_1164.ALL;
3
4
entity AND1 is
5
    Port ( A : in  STD_LOGIC;
6
           B : in  STD_LOGIC;
7
           C : out  STD_LOGIC);
8
end AND1;
9
10
architecture Behavioral of AND1 is
11
12
begin
13
14
C <= (A AND B); 
15
16
end Behavioral;

Das UCF. File:
1
NET "A"  LOC = "P5" | IOSTANDARD = LVTTL ;
2
NET "B"  LOC = "P6" | IOSTANDARD = LVTTL ;
3
4
NET "C"  LOC = "P7" | IOSTANDARD = LVTTL;

Ich lege also nun eine Spannung an P5 und P6 an (3,5V) und dann sollte 
an P7 gemäß der Wahrheitstabelle eines AND-Gatters ein High-Pegel 
anliegen.

Allerdings kann ich mit einem Multimeter nur ein Rauschen von 80 mV 
feststellen.

Ich kann den FPGA ohne Fehler programmieren, dazu habe ich das 
Statusregister ausgelesen. Der DONE PIN besitzt den Wert 1.

Ich habe auch versucht, andere Pins anzusprechen, aber überall nur ein 
Rauschen von 80mV....

Ich habe absolut keine Ahnung, was falsch sein kann. Wie gesagt, ich bin 
absoluter Neueinsteiger, habe früher mit Atmel µC gearbeitet, da war 
alles überschaubar ;)

Gruß

von Georg A. (georga)


Lesenswert?

> (3,5V)

Ist schon grenzwertig. Versuche lieber, bei max. 3.3V zu bleiben...

> Ich habe absolut keine Ahnung, was falsch sein kann.

- Sagt dir das Pinlisting nach dem Routing auch die richtigen Pins? 
Nicht, dass das UCF aus irgendwelchen Gründen ignoriert wird.

- Es gibt beim internen Startup des FPGAs die Möglichkeit, das an einen 
Takt zu binden. Das Feature muss bei dir ohne Takt natürlich aus sein 
(müsste bei den Bitstream-Optionen sein).

- Kannst du statisch auf die Pins was geben (C<='1')?

von Christoph Z. (christophz)


Lesenswert?

Was ich hier von dir sehe, sieht für mich mal soweit gut aus und ich 
würde auch erwarten, dass das wie gewünscht funktioniert.

Aber irgendwo muss ja noch ein Problem sein.

- Gibt der Synthesizer oder das Place&Route Warnungen aus? Hast du alle 
durchgelesen und verstanden? Da steckt oft sehr wichtige Information 
drin.

- Bist du sicher, dass die Pins die du nutzt P5, P6 und P7 am Gehäuse 
des FPGA sind und nicht die Bezeichnung auf deinem Board (und der FPGA 
Pin anders heisst)? Dein FPGA müsste 256 Pins oder mehr haben um Pins 
mit P* zu haben.

- Bist du sicher, dass du dein Design in den FPGA geladen hast und nicht 
ein anderes Design?

Sonst habe ich grad keine Ideen.

von Georg A. (georga)


Lesenswert?

> Dein FPGA müsste 256 Pins oder mehr haben um Pins mit P* zu haben.

Nein, bei TQFP heissen die Pins nur P*, das könnte schon passen.

von entchen (Gast)


Lesenswert?

Hallo,

ich habe einen XC6SLX9, da sind die Pins alle mit Pxx gekennzeichnet. 
Den Fehler, einen falschen Pin erwischt zu haben, kann ich zu 100% 
ausschließen, das habe ich x-fach gecheckt.
Auch eine statische Zuweisung (C<='1') ist erfolglos. Es gibt auch sonst 
keine Fehler- oder Warnmeldungen. Wo kann ich denn das besagte 
Pinlisting einsehen?

Danke!

von Christian R. (supachris)


Lesenswert?

Sind denn die VCCIO Pins richtig angeschlossen?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

entchen schrieb:
> Ich habe auch versucht, andere Pins anzusprechen, aber überall nur ein
> Rauschen von 80mV....
Wie sieht denn die Hardware aus? Ist das ein fertiges Eval- Board?

von Oliver (Gast)


Lesenswert?

Hallo

ich habe mit einem Oszi alle Spannungsversorgungen überprüft. Alles so 
wie es sein soll, kein Kurzschluss oder Ähnliches.

Das Board an sich sollte fehlerfrei sein.
Gibt es vielleicht noch ein Startup Signal, welches an den FPGA geführt 
werden muss, damit dieser anläuft?


Gruß

von Christian R. (supachris)


Lesenswert?

Nee, der läuft von alleine an. Wenn DONE high wird (achtung, open 
drain!) dann hat er ein Design geladen. Prog_B low pulsen lädt neu, aber 
wenn du nur über JTAG das Bitfile rein lädtst bringt das ja nix.

von Oliver (Gast)


Lesenswert?

So ich habe tatsächlich einen Fehler entdeckt:

Der FPGA lässt sich programmieren; es wird kein Fehler ausgeworfen.

Wenn ich aber danach versuche, das Statusregister auszulesen, dann 
bekomme ich Fehlermeldungen:
1
INFO:iMPACT - Current time: 25.04.2014 13:09:09
2
PROGRESS_START - Starting Operation.
3
Maximum TCK operating frequency for this device chain: 25000000.
4
Validating chain...
5
Boundary-scan chain validated successfully.
6
'1': Programming device...
7
 LCK_cycle = NoWait.
8
LCK cycle: NoWait
9
done.
10
'1': Reading status register contents...
11
[0] CRC ERROR                                                              :         0
12
[1] IDCODE ERROR                                                           :         0
13
[2] DCM LOCK STATUS                                                        :         1
14
[3] GTS_CFG_B STATUS                                                       :         1
15
[4] GWE STATUS                                                             :         1
16
[5] GHIGH STATUS                                                           :         1
17
[6] DECRYPTION ERROR                                                       :         0
18
[7] DECRYPTOR ENABLE                                                       :         0
19
[8] HSWAPEN PIN                                                            :         1
20
[9] MODE PIN M[0]                                                          :         1
21
[10] MODE PIN M[1]                                                         :         1
22
[11] RESERVED                                                              :         0
23
[12] INIT_B PIN                                                            :         1
24
[13] DONE PIN                                                              :         1
25
[14] SUSPEND STATUS                                                        :         0
26
[15] FALLBACK STATUS                                                       :         0
27
INFO:iMPACT:2219 - Status register values:
28
INFO:iMPACT - 0011 1100 1110 1100 
29
INFO:iMPACT:579 - '1': Completed downloading bit file to device.
30
INFO:iMPACT:188 - '1': Programming completed successfully.
31
 LCK_cycle = NoWait.
32
LCK cycle: NoWait
33
INFO:iMPACT - '1': Checking done pin....done.
34
'1': Programmed successfully.
35
PROGRESS_END - End Operation.
36
Elapsed time =      1 sec.
37
INFO:iMPACT - Current time: 25.04.2014 13:09:11
38
Maximum TCK operating frequency for this device chain: 25000000.
39
Validating chain...
40
Boundary-scan chain validated successfully.
41
'1': DNA = '100110010010001111101011011110000100100011011010000111000'
42
INFO:iMPACT - Current time: 25.04.2014 13:09:14
43
Maximum TCK operating frequency for this device chain: 25000000.
44
Validating chain...
45
Boundary-scan chain validated successfully.
46
'1': Reading bootsts register contents...
47
[0] VALID_0 - ERROR OR END OF STARTUP (EOS) DETECTED                       :         0
48
[1] FALLBACK_0 - FALLBACK RECONFIGURATION ATTEMPT DETECTED                 :         0
49
[2] RESERVED                                                               :         0
50
[3] WTO_ERROR_0 - WATCHDOG TIME OUT ERROR                                  :         0
51
[4] ID_ERROR_0 - FPGA DEVICE IDCODE ERROR                                  :         0
52
[5] CRC_ERROR_0 - CYCLIC REDUNDANCY CHECK (CRC) ERROR                      :         0
53
[6] VALID_1 - ERROR OR END OF STARTUP (EOS) DETECTED                       :         0
54
[7] FALLBACK_1 - FALLBACK RECONFIGURATION ATTEMPT DETECTED                 :         0
55
[8] RESERVED                                                               :         0
56
[9] WTO_ERROR_1 - WATCHDOG TIME OUT ERROR                                  :         0
57
[10] ID_ERROR_1 - FPGA DEVICE IDCODE ERROR                                 :         0
58
[11] CRC_ERROR_1 - CYCLIC REDUNDANCY CHECK (CRC) ERROR                     :         0
59
[12] STRIKE CNT - STRIKE COUNT FOR FALLBACK ATTEMPTS                       :         0
60
[13] STRIKE_CNT - STRIKE COUNT FOR FALLBACK ATTEMPTS                       :         0
61
[14] STRIKE_CNT - STRIKE COUNT FOR FALLBACK ATTEMPTS                       :         0
62
[15] STRIKE_CNT - STRIKE COUNT FOR FALLBACK ATTEMPTS                       :         0
63
'1': Reading status register contents...
64
[0] CRC ERROR                                                              :         0
65
[1] IDCODE ERROR                                                           :         0
66
[2] DCM LOCK STATUS                                                        :         1
67
[3] GTS_CFG_B STATUS                                                       :         0
68
[4] GWE STATUS                                                             :         0
69
[5] GHIGH STATUS                                                           :         0
70
[6] DECRYPTION ERROR                                                       :         0
71
[7] DECRYPTOR ENABLE                                                       :         0
72
[8] HSWAPEN PIN                                                            :         1
73
[9] MODE PIN M[0]                                                          :         1
74
[10] MODE PIN M[1]                                                         :         0
75
[11] RESERVED                                                              :         0
76
[12] INIT_B PIN                                                            :         0
77
[13] DONE PIN                                                              :         0
78
[14] SUSPEND STATUS                                                        :         0
79
[15] FALLBACK STATUS                                                       :         1


Vielleicht liegt es daran?

von noerror (Gast)


Lesenswert?

Oliver schrieb:
> Wenn ich aber danach versuche, das Statusregister auszulesen, dann
> bekomme ich Fehlermeldungen:

Und wo genau ist da jetzt der Fehler?

von Oliver (Gast)


Lesenswert?

Hallo,

die Meldung des Statusregisters nach der Programmierung und das Ergebnis 
nach erneutem Auslesen des Statusregistres ist nicht identisch, z.B. ist 
der Done und INIT_B Pin nicht gesetzt...

von noerror (Gast)


Lesenswert?


von Christian R. (supachris)


Lesenswert?

Da stimmt wohl was mit der Beschaltung des Prog_B oder Init_B Pins 
nicht. Im Boot Status und History steht drin, dass kein File geladen 
wurde, also hat jemand nach dem Programmieren nochmal an der Prog_B 
Leitung gezupft oder die Spannung ausgeschalten oder so. Dass der FPGA 
intern nur einen SRAM für die Config hat, weißt du, oder? Also Spannung 
weg = Config weg.

von Ralf (Gast)


Lesenswert?

JTAG clock herabsetzen. Könnte ein schlechtes HW-Design sein

von Oliver (Gast)


Lesenswert?

Hallo zusammen,

die Fehler werden immer merkwürdiger....
Jetzt komme ich auch nicht mehr in den Programmiermodus hinein, es 
erscheint:
1
write cmd failed C0000011.
2
write cmdbuffer failed 20000015.
3
write cmdbuffer failed 20000015.

Jetzt bin ich richtig ratlos.... Vielleicht sollte ich mich wirklich 
lieber weiter mit µC beschäftigen :(

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Oliver schrieb:
> Das Board an sich sollte fehlerfrei sein.
Welches Board?
Ich warte immer noch auf die Antwort zu meiner Frage im 
Beitrag "Re: FPGA reagiert nicht auf Programm, nur Rauschen auf Pins"

Wenn das dein "eigenes" Board ist, dann wäre der Schaltplan und das 
Layout interessant...

: Bearbeitet durch Moderator
von Peter B. (funkheld)


Lesenswert?

Bei Fehlermeldungen wird das Programm nicht  fertig compiliert.
Das sind nur Warnungen die nichts aussagen über deine Funktion.

Du kannst im Programm die Pins die du nicht brauchst auf "lo" setzen.
Dann funktioniert es.
Also kontrollier dein PINS.

Gruss

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter, du bist erst seit 2 Wochen im FPGA Geschäft unterwegs. Dazu hin 
noch mit FPGAs einer anderen Firma. Meinst du, es ist sinnvoll, dass du 
hier Ratschläge gibst?

von Fpgakuechle K. (Gast)


Lesenswert?

Lothar Miller schrieb:
> Peter, du bist erst seit 2 Wochen im FPGA Geschäft unterwegs. Dazu hin
> noch mit FPGAs einer anderen Firma. Meinst du, es ist sinnvoll, dass du
> hier Ratschläge gibst?

Bitte zur Sache. Sind Peters Vorschläge bzgl. unbenutzer Pins und 
Fehleranalyse zweckdienlich oder nicht?

MfG,

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Fpga Kuechle schrieb:
> Lothar Miller schrieb:
>> Peter, du bist erst seit 2 Wochen im FPGA Geschäft unterwegs. Dazu hin
>> noch mit FPGAs einer anderen Firma. Meinst du, es ist sinnvoll, dass du
>> hier Ratschläge gibst?
>
> Bitte zur Sache. Sind Peters Vorschläge bzgl. unbenutzer Pins und
> Fehleranalyse zweckdienlich oder nicht?
Sie sind NICHT zweckdienlich, weil kein Wort dazu verloren wird, WIE das 
zu machen ist. DASS man die Zuordnung kontrollieren muss, ist eh klar. 
Und wie man die Pinzuordnung macht wurde auch erwähnt...

von FPGA-Analysator (Gast)


Lesenswert?

Peter mischt den ganzen Laden auf. Köstlich :-)

Und das geilste ist, dass sein Tipp auch noch stimmt: Wenn man die 
nichtbenutzten Pins auf lo hat ( er meint sicher pulldown) dann kriegt 
man sofort mit, ob das routing stimmt und der pin überhaupt gemapped 
wird.

Hat hier schon einer dran gedacht, mal das PINout file zu checken?

Und, ist überhaupt der richtige FPGA eingestellt?

Egal, irgendwo hast Du Recht:

Wenn in einigen Jahren die Bierbachs haufenweise die Foren bevölkern und 
ihr Halbwissen weitergeben, haben die Millers keine Chance mehr. Dann 
dominieren deren Vorschläge die threads und die Ergebnisse werden immer 
mittelmässiger, mir kanns Recht sein.

Ich lach mich schlapp.

von Christian R. (supachris)


Lesenswert?

Laut Statustegistern ist gar kein Bitfile geladen worden, da sind die 
Pin Zuordnungen erst mal zweitrangig. Ich tippe auf fehlenden Pull Up am 
Init_B Pin.

von Peter B. (funkheld)


Lesenswert?

Miller hin oder her ...ich weiss nicht was er er real in der 
Bundesrepublik produziert. Ist mir total unbekannt.

Gruss

: Bearbeitet durch User
von Holger (Gast)


Lesenswert?

Ist das Board Home made...als Anfänger ...
Hast du ein gekauftes 2tes Test-Board das geht ?

Hast du ein Scope ?
Hast du mal eine LED mit Driver, das Multimeter is nicht so gut.

Tip:
Ich würde mal mit Chipscope da ein Test-HDL machen, u. das via JTAG 
Clock
machen (via Project einstellen ).

Tip:
------------------------------------------
UCF
NET "A"  LOC = "P5" | IOSTANDARD = LVTTL ;

mit | PULLUP. noch dazu via UCF
------------------------------------------
Tip:
Ein RS232 Port machen .via Terminal ..
HDL Geichung RX  route to TX.
--> RS232 LoopBack und damit testen.

Tip:
Ext. Oscilator abklemmen. (evtl. Störung during Config).
######################################################################## 
#

Gruss Holger.

von Thomas T. (knibbel)


Lesenswert?

Tolle Samstagabend-Unterhaltung!

Es gab noch nicht einmal einen Schaltplan oder wenn auch nur ein Foto 
des Boards.

Ich könnte ja auch noch mal Knochen werfen und mir daraus irgendwas 
zusammenreimen, ich lass es aber wohl lieber ...

Also: Was für ein Board ist das? Schaltplan? Foto?

Gruß,
Thomas

PS: Gleich im ersten Satz vom TO steht dass er Neuling ist. Da helfen 
Tipps mit Chipscope und RS232-Port ganz besonders ...

: Bearbeitet durch User
von Lattice User (Gast)


Lesenswert?

FPGA-Analysator schrieb im Beitrag #3632085:
> Peter mischt den ganzen Laden auf. Köstlich :-)
>
> Und das geilste ist, dass sein Tipp auch noch stimmt: Wenn man die
> nichtbenutzten Pins auf lo hat ( er meint sicher pulldown) dann kriegt
> man sofort mit, ob das routing stimmt und der pin überhaupt gemapped
> wird.
>

Kann man nicht verlagemeinern, beim MachXO2 von Lattice haben die Pins 
vor der Konfiguration und wenn unbenutzt einen weak Pulldown, also low.


>
> Wenn in einigen Jahren die Bierbachs haufenweise die Foren bevölkern und
> ihr Halbwissen weitergeben, haben die Millers keine Chance mehr. Dann
> dominieren deren Vorschläge die threads und die Ergebnisse werden immer
> mittelmässiger, mir kanns Recht sein.
>

Siehe oben: Wie war das mit dem Halbwissen?

von Fpgakuechle K. (Gast)


Lesenswert?

Thomas T. schrieb:
> Tolle Samstagabend-Unterhaltung!
>
> Es gab noch nicht einmal einen Schaltplan oder wenn auch nur ein Foto
> des Boards.

Ja , da könnte wirklich die ursache liegen. Es ist ja nicht unüblich das 
der FPGA ein signal generiert das reset-Mimik des boards aktiviert. wenn 
das nach dem laden des testdesign den falschen Pegel führt, fängt die 
ganze configuration von vorn an.

MfG

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Ist mir total unbekannt.
Mir fällt auf: ich weiß von dir noch wesentlich weniger als du von mir 
wissen könntest...

> Ist mir total unbekannt.
Das ist nicht das Einzige. Können wir jetzt wieder zur Sache kommen, 
oder willst du eine persönliche Diskussion anfangen? Die können wir 
gerne mal im Knopf in Warthausen ausdiskutieren. Oder ich komme mal hoch 
zu dir im Urlaub...

Du könntest auch einfach eine PN an mich schicken und Fragen, was ich so 
mache...

von Bryan (Gast)


Lesenswert?

Lothar Miller schrieb:
>> Ist mir total unbekannt.
> Das ist nicht das Einzige. Können wir jetzt wieder zur Sache kommen,
> oder willst du eine persönliche Diskussion anfangen?

Pass auf Alter, er hat schon einen anderen hier per PM in Angst und 
Schrecken versetzt. Die neuen Alten sind nicht zu unterschätzen :-)

von Carsten H. (Gast)


Lesenswert?

Was ist denn hier los?
Wie bist du denn drauf?

von Sinus T. (micha_micha)


Lesenswert?

Naja, der Peter, alias "Funkheld" ist auch schon z.B. im 
Robotrontechnik-Forum sehr merkwürdig dadurch aufgefallen, dass er 
offensichtlich nicht gewillt war, sich die simpelsten Grundlagen selbst 
anzueignen. Nach entsprechenden Hinweisen, vielleicht doch mal im Netz 
oder in Büchern nach Wissen zu stöbern, wurde er dann pampig, und das 
nicht nur einmal.
Nun ist er also hier gelandet und ich kann durchaus verstehen, wenn hier 
jemandem der Kragen platzt

von BB84 (Gast)


Lesenswert?

don't Feed the troll

von Thomas T. (knibbel)


Lesenswert?

Sinus Tangentus schrieb:
> Naja, der Peter, alias "Funkheld" ist auch schon z.B. im
> Robotrontechnik-Forum sehr merkwürdig dadurch aufgefallen, dass er
> offensichtlich nicht gewillt war, sich die simpelsten Grundlagen selbst
> anzueignen. Nach entsprechenden Hinweisen, vielleicht doch mal im Netz
> oder in Büchern nach Wissen zu stöbern, wurde er dann pampig, und das
> nicht nur einmal.

[Ironie Ein]
Ach komm, Google liefert soooo viele Ergebnisse, wer soll sich denn da 
durcharbeiten?

Da kann man doch lieber in einem Forum eine Frage stellen und die 
Antwort findet sich dann im Thread direkt unter der Frage...
[Ironie Aus]

> Nun ist er also hier gelandet und ich kann durchaus verstehen, wenn hier
> jemandem der Kragen platzt

100% ACK...

Gruß,
Thomas

PS: Ich gehe mal im Robotrontechnik-Forum stöbern... :-)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter Bierbach schrieb:
> Miller hin oder her ...ich weiss nicht was er er real in der
> Bundesrepublik produziert. Ist mir total unbekannt.
So hat jeder seine Bildungslücken. Nur versucht vor so einer 
öffentlichen Antwort jeder Andere erst mal selber, diese Lücke zu 
stopfen. In diesem Fall ist das nicht arg schwer. Das Kreuzworträtsel 
der Times ist signifikant komplizierter.


Zum Thema: ich warte noch immer gespannt auf den Schaltplan...

von Weltbester FPGA-Pongo (Gast)


Lesenswert?

Sinus Tangentus schrieb:
> Naja, der Peter, alias "Funkheld" ist auch schon z.B. im
> Robotrontechnik-Forum sehr merkwürdig dadurch aufgefallen,
und nicht nur dort

Lies mal im FPGA Forum!
Über dies gibt es sogar im Xilinx Forum seit Kurzen einen Typen, der 
Fragen derselben Qualität stellt!

von Oliver (Gast)


Lesenswert?

Hallo zusammen,
hier hat sich ja einiges getan ;)

Zum Board: Dieses funktioniert, allerdings kann ich das hier nicht 
veröffentlichen, da das Teil einer Studienarbeit  an der Uni ist ;)
Ich habe den Fehler in der Zwischenzeit gefunden: Der FPGA ließ sich 
korrekt programmieren, allerdings habe ich bei den Process Properties 
wohl den Punkt enable external clock übersehen; jetzt ist der FPGA auch 
mit dem Takt versorgt und arbeitet.

Zu den Process Properties habe ich dann noch eine Frage:
Wenn ich einen externen Flashspeicher installieren und beschreiben will, 
müssen dann irgendwelche werte in den Process Properties geändert 
werden?
Ich habe vor, den Speicher M25P80 zu nehmen. Daher muss doch die 
ISP-Busweite auf 1 gesetzt werden, richtig?

Vielen Dank bisher für euer Bemühen.

von Selbständiger (Gast)


Lesenswert?

Oliver schrieb:
> da das Teil einer Studienarbeit  an der Uni ist ;)
Wieso nicht, an der Uni wird es auch publiziert?

von Fpgakuechle K. (Gast)


Lesenswert?

Oliver schrieb:

> Ich habe den Fehler in der Zwischenzeit gefunden: Der FPGA ließ sich
> korrekt programmieren, allerdings habe ich bei den Process Properties
> wohl den Punkt enable external clock übersehen; jetzt ist der FPGA auch
> mit dem Takt versorgt und arbeitet.

Wie is dann die Zeile aus dem Log
[2] DCM LOCK STATUS     :         1

zu erklären? Oder beziehst Du Dich hier auf den StartUpClock?


MfG,

von Oliver (Gast)


Lesenswert?

Hallo

ja ich meine die StratUpClock. Außerdem habe ich in den 
ProcessProperties floating bei unused IO-Pins gesetzt.

Allerdings will mein SPI Flash nicht so recht, ich kann diesen nicht 
programmieren, ein Verify funktioniert auch nicht. Checksum schlägt auch 
fehl. Die Readbackdatei zeigt mir, dass der Flash komplett leer ist.

Hier mal der Log aus iMPACT:
1
ROGRESS_START - Starting Operation.
2
Maximum TCK operating frequency for this device chain: 25000000.
3
Validating chain...
4
Boundary-scan chain validated successfully.
5
'1': SPI access core not detected. SPI access core will be downloaded to the device to enable operations.
6
INFO:iMPACT - Downloading core file C:/Xilinx/14.5/ISE_DS/ISE/spartan6/data/xc6slx9_spi.cor.
7
'1': Downloading core...
8
 LCK_cycle = NoWait.
9
LCK cycle: NoWait
10
done.
11
'1': Reading status register contents...
12
INFO:iMPACT:2219 - Status register values:
13
INFO:iMPACT - 0011 1100 1110 1100 
14
INFO:iMPACT:2492 - '1': Completed downloading core to device.
15
'1': IDCODE is '13' (in hex).
16
'1': ID Check passed.
17
 '1': IDCODE is '13' (in hex).
18
'1': ID Check passed.
19
 '1': Erasing Device.
20
'1': Using Sector Erase.
21
'1': Programming Flash.
22
'1': Reading device contents...
23
Failed at address, 0
24
'1': Verification Terminated
25
INFO:iMPACT - '1': Flash was not programmed successfully.
26
PROGRESS_END - End Operation.
27
Elapsed time =     14 sec.

So wie das scheint, erfolgt im FPGA der korrekte Aufbau der 
SPI-Schnittstelle. Auch wird der Flashspeicher richtig erkannt 
(M25P80)...

Auch im Internet und auf Xilinx konnte ich keine weitere Beschreibung 
des Problems finden!

Gruß

von Georg A. (georga)


Lesenswert?

> ja ich meine die StratUpClock.

Hm, was habe ich nochmal im ersten Antwortpost als zweite Möglichkeit 
eines Nicht-Startens geschrieben?

von Christian R. (supachris)


Lesenswert?

Da stimmt was am Flash oder der Verbindung dahin nicht, der M25P80 hat 
ganz sicher keine ID 13. Kontrollier nochmasl die Verdrahtung und 
Spannung am Flash.

von Georg A. (georga)


Lesenswert?

> Da stimmt was am Flash oder der Verbindung dahin nicht,

Dank der Überkreuzung MOSI/MISO und den mehrfachen 
MOSI/MISO/CLK/CS-Pinbelegungen kann es gern passieren, dass man die 
Falschen verdrahtet...

BTDT ;)

Nötig sind für M1=0 & MO=1 (SPI-Flash):

CSO_B  -> /CS zum Flash
MOSI/CSI_B/MISO0 -> SI zum Flash
D0/DIN/MISO/MISO1 -> SO vom Flash
CCLK -> SCK vom Flash

von Oliver (Gast)


Lesenswert?

> Nötig sind für M1=0 & MO=1 (SPI-Flash):

> CSO_B  -> /CS zum Flash
> MOSI/CSI_B/MISO0 -> SI zum Flash
> D0/DIN/MISO/MISO1 -> SO vom Flash
> CCLK -> SCK vom Flash

Jap, die Verdrahtung stimmt soweit. Ich habe das Board nicht selbst 
gefertigt, aber was mir auffällt, ist dass auch der D1/MISO2 Pin mit dem 
CS des SPI Flashs verbunden ist....
In der Xilinx Application Note zu SPI Flashs habe ich keinen Hinweis 
dazu gefunden...

von Oliver (Gast)


Lesenswert?

Hallo,
noch eine kurze Ergänzung:
Mit dem Oszi habe ich die Signale an den Pins INITB, PROGB, CSOB und 
CCLK erfasst.
Fazit: PROGB läuft, wie es soll, INITB geht kurz auf LOW (und sollte 
dort bleiben), wechselt dann aber zu HIGH.

Daher liegt an CCLK auch nur kurz ein Clocksignal an; CSOB  geht von LOW 
sofort wieder auf HIGH.

Was kann denn das für eine Ursache haben, dass der INITB Pin nur kurz 
auf LOW liegt? Von außen ist der INITB Pin mit einem 4,7 kOhm Pullup 
versehen

von Oliver (Gast)


Lesenswert?

ARGH, irgendwann kommt man mit den Signalen ganz durcheinander :D

Also: INITB geht kurz auf LOW, dann wieder auf HIGH (so ist es 
richtig!). Allerdings bleibt INITB nicht auf HIGH, sondren fällt schnell 
wieder auf LOW zurück, was nicht sein darf.

Hier die Signale, wie sie sein sollten:
http://www.xilinx.com/support/documentation/application_notes/xapp951.pdf 
(Seite9 oben). Streng genommen ist das eine Applicatin Note für 
Spartan3, sollte aber auch für Spartan6 gültig sein

von Christian R. (supachris)


Lesenswert?

Oliver schrieb:
> aber was mir auffällt, ist dass auch der D1/MISO2 Pin mit dem
> CS des SPI Flashs verbunden ist....

Das ist schon mal merkwürdig. Da weiß man nicht, was das Bootloader 
Design auf der Leitung macht. Kannst du die auftrennen?

Erfolgt denn ein Zugriff auf den Flash? Normal hat der M25P80 die ID 
0x20201410 also ist die 13 da ganz verkehrt.

von Georg A. (georga)


Lesenswert?

> Allerdings bleibt INITB nicht auf HIGH, sondren fällt schnell
> wieder auf LOW zurück, was nicht sein darf.

Könnte aber schon, INITB kann nach der Konfiguration als normaler Pin 
arbeiten.

von Holger (Gast)


Lesenswert?

Oliver schrieb:
> Allerdings will mein SPI Flash nicht so recht, ich kann diesen nicht
> programmieren, ein Verify funktioniert auch nicht. Checksum schlägt auch
> fehl. Die Readbackdatei zeigt mir, dass der Flash komplett leer ist.

FPGA SPI x1/x2 Configuration Interface
aus dem UG470
Link:
http://www.xilinx.com/support/documentation/user_guides/ug470_7Series_Config.pdf
oder
UG332 from Xilinx if you are working with Spartan

Viel Erfolg.

Gruss Holger.

von Holger (Gast)


Angehängte Dateien:

Lesenswert?

Christian R. schrieb:
> Oliver schrieb:
>> aber was mir auffällt, ist dass auch der D1/MISO2 Pin mit dem
>> CS des SPI Flashs verbunden ist....

Hier ist noch ein Bild dazu.
Gruss Holger.

von Holger (Gast)


Angehängte Dateien:

Lesenswert?

> M25P80 Device.

Hier als Vergleich für Spartan 3 SPI Mode. (MSPxx).

Oben auf dem Bild für (Series 7 )ist der SPI Data-Vevtor 2 Bit, Data at 
Rising edge,und falling edge.

Fazit: FPGA Device muss zum SPI Inteface passen.

Gruss Holger.

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.