Forum: FPGA, VHDL & Co. Altera Cyclone EP1C3T100 lädt nicht im Active Serial Mode


von Günter (. (dl4mea)



Lesenswert?

Hallo,

mich nervt ein Problem und ich komm nicht mehr weiter. Mein Altera 
Cyclone EP1C3T100I7N lädt seine Konfiguration nicht aus dem EPCS1 
Configuration Device. Dies ist mein erstes FPGA-Design und ich kann 
daher nicht einfach Altbewährtes rüberkopieren.

Die Beschaltung des AS ist im File "active_serial_my_circuit" enthalten. 
Sie ist so auch im Sphinx Demoboard
http://download.inventronik.de/Sphinx-C100/Sphinx-C100-Docu-de.pdf
gelistet.
Ein Vergleich mit dem Datenblatt für die seriellen Configuration Devices
http://www.altera.com/literature/hb/cfg/cyc_c51014.pdf
Seite 3-4 zeigt ebenfalls diese Schaltung, abzüglich des JTAG-ports.

Das Verhalten ist, dass die Sequenz, die im File "initcycle_fail" 
gezeigt ist (verwackelt, 0.5s Belichtungszeit vor dem Logikanalyzer 
(Tektronix 7D02, prähistorisch)), peroidisch alle 18µs abläuft: NCS wird 
low aktiv, dann kommen 2x 8 Clocks, auf ADSI werden die Datenwörter 0x05 
0xff übertragen. Genau wie im Altera-Datenblatt S. 3-19 beschrieben. 
NSTATUS geht nach '1' in diesem Zyklus (high-impedance seitens des FPGA, 
schön als Ladekurve erkennbar). CONF_DONE bleibt brav auf '0'.

Im Vergleich dazu in "initcycle_ok" dasselbe Diagramm, aber mit meinem 
Demoboard "Pluto-II" aufgenommen. Hier sieht man, daß der Datenausgang 
"DATA" des seriellen Config Device per Default (oder durch eine frühere 
Aktion) '1' ist und als Status aktiv 8x '0' übertragen wird.

Ich habe die beiden Config-Devices auch schon getauscht, das 
Pluto-II-Board lief mit dem auf meinem Board programmierten, umgekehrt 
läuft es auch nicht. Programmieren des Config-Device auf meinem Board 
klappt also. Natürlich habe ich schon auf Kurz-, Masse- oder 
Nebenschlüsse etc. am Board geprüft, nichts gefunden.
Ich habe in die DATA Leitung einen 100R eingebaut, damit ich sehe, ob 
das FPGA ggf. die Leitung nach GND zieht, aber auch da sehe ich nichts, 
was irgendwann irgendwo auf eine '1' hindeuten würde.
Das FPGA sitzt auf einer soweit irgendwie möglich geschlossenen 
Massefläche, an die an allen VCCio und VCCcore je ein 100nF 
angeschlossen ist. Siehe "fpga-groundplane".

Das POF-File wurde mit Quartus 9.1SP2 erstellt, Compressed Mode ist 
abgeschaltet. Aber das kann es eigentlich nicht sein, dazu müßte ja 
wenigstens mal was eingelesen werden.

Hat jemand hier irgendeine Idee was hier der Falls ein kann? Warum 
reagiert das Config Device nicht auf die Kontaktaufnahme seitens des 
FPGA, oder liegt der Fehler schon früher, weil der DATA Pin ja garnicht 
erst auf '1' geht?

Danke fürs Lesen, und schon jetzt auch Danke für mögliche Antworten.

Günter

von Lattice User (Gast)


Lesenswert?

Ich bin zwar kein Altere User, aber was mir aufgefallen ist dass in 
deinem Schaltplan /CS und ADSI vom Flash nicht mit dem FPGA verbunden 
ist. Dat goht nit.

von Günter (. (dl4mea)


Lesenswert?

Hallo,

doch, ist. Ist nicht gezeigt weil über Signal und Signalname. Das ist 
ein Pin mit zwei Funkionen.

Ciao, Güntre

von Lattice User (Gast)


Lesenswert?

Günter (dl4mea) schrieb:
> doch, ist. Ist nicht gezeigt weil über Signal und Signalname. Das ist
> ein Pin mit zwei Funkionen.

Sind diese 2 Pins auf einem anderem Sheet?

Würde ich trotzdem nochmal überprüfen, es gibt zwar im gezeigten 
Schaltbild ein Label CS0_N, es sieht aber so aus als ob dieses keinem 
Signal zugeordnet ist.

(Mein Motto: Trau keinem Layouter, auch wenn du es selbst bist :_) )

Gruss

von Günter (. (dl4mea)


Lesenswert?

Hallo,

ja, es ist alles verbunden, was man hier sieht ist nur ein Ausschnitt 
aus der Seite. Sonst wären die mit dem LA direkt am EPCS1 
aufgezeichneten Signale ja garnicht vorhanden, und der fehlende DATA 
wird nur von diesem getrieben.

Ciao, Günter

von Harald F. (hfl)


Lesenswert?

Trotzdem, bei aller Freundschaft: Die Verbindung des nCSO des FPGA zum 
Chipselect des EPCS ist im Schaltbild nicht zu sehen. Die Leitung vom 
Stecker zum EPCS gibt es, daher kannst Du den EPCS auch programmieren. 
Aber vom FPGA zum EPCS??? Pin 12 des FPGAs ist doch n/c!

Harald

von Lattice User (Gast)


Lesenswert?

Mach mal einen Pullup an DATA und miss nochmal.
Muss natürlich auch ohne gehen, aber in der Vergleichsmessung ist DATA 
auch High wenn der EPCS1 nicht treibt.

von Günter (. (dl4mea)


Lesenswert?

Lattice User schrieb:

> Mach mal einen Pullup an DATA und miss nochmal.

Ok, das war auch meine letzte Idee, einfach nur um zu sehen ob da was 
ist. Und schon hatte ich das gesuchte High...

Und als ich dann mit dem Tastkopf auf den Pin 7 des FPGA draufhielt, 
fingen plötzlich meine LEDs an zu blinken...

Ich liefer, nachdem ich mit meinem kleinen Sohn gespielt habe und ihn im 
Bett habe, noch ein Foto nach. Auch unter dem Mikroskop ist nicht zu 
sehen daß das kein Kontakt war.

Danke fürs Mitdenken!!!

Ciao, Günter

von Günter (. (dl4mea)


Angehängte Dateien:

Lesenswert?

Hallo,

hier das Bild mit dem nicht gelöteten Pin, derjenige an der mittleren 
Leiterbahn. Ich hatte hier schon mit dem Skalpell rumgekratzt und 
außerdem gehts mit der Digicam durchs Mikroskop nicht ganz so gut. Der 
Pin lag schön brav in eine Wanne von Lötzinn, hatte aber keinen Kontakt.

Fragt man sich natürlich warum nicht vorher die Leitungen alle 
durchgeklingelt. Vielleicht wäre es da aufgefallen, aber vielleicht auch 
nicht, durch den Druck der Prüfspitze kurz Kontakt und danach wieder 
abgehoben.

Ich wußte halt auch nicht daß der DATA im FPGA seinen Pullup angeboten 
bekommt, sagte ja, mein erstes Design mit einem FPGA. Wie man sonst 
schneller draufkommen hätte können? Ich glaub kaum schneller, da muß man 
durch.

Danke für eure Hilfe, und vielleicht ist es ja für den einen oder 
anderen auch mal ein Gedankenanstoß wenn etwas nicht funktioniert.

Günter (dl4mea)

von Harald F. (hfl)


Lesenswert?

Die schönsten Probleme sind die gelösten Probleme!

Ein Nachsatz noch von mir. Viele Altera-User schließen das FPGA, das 
EPCS und den Blaster genau so an, wie du das gemacht hast. Klar, das ist 
ja auch so beschrieben. Aber es gibt eine zweite Möglichkeit, und die 
sollte man kennen. Dabei werden lediglich die JTAG-Pins des FPGAs an den 
Blaster-Stecker angeschlossen. Die Verbindung von EPCS und FPGA bleibt 
wie gehabt. nConfig, nStatus und ConfDone werden mit pull-ups versehen. 
Und was soll das Ganze? Nun, dadurch, dass das FPGA mit dem JTAG-Pins am 
Blaster hängt, kann man Funktionen wie Signal-Tap benutzen, und wenn ein 
NIOS im FPGA drin ist, dann wird über diese Pins auch debuggt. Die 
Programmierung des EPCS findet dann "durch das FPGA hindurch" statt. 
Altera nennt das JTAG indirect configuration, und das ist eigentlich die 
Methode der Wahl.

Grüße,
Harald

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.