Hallo,
ich habe ein eigenes Entwicklungsboard mit einem EP4CE6E22C8N designed
und 5 Stück fertigen lassen. Allerdings wollen die Dinger nicht so recht
und ich kann nicht die Ursache entdecken. Daher hoffe ich, dass ihr mich
mit eurer Erfahrung unterstützen könnt.
Das Problem:
Ich kann zwar über AS den Flash programmieren, aber dieser nicht den
FPGA. Über JTAG geht es dann garnicht. Die CONF_DONE LED leuchtet dabei
durchgehend. Also ist CONF_DONE durchgehend auf 0V.
Hier erstmal meine Schaltung:
Bild 1: Ich verwende für 3,3V und 1,2V Schaltregler und für 2,5V einen
Linearregler. Außerdem habe ich einen Verpolungsschutz. Die Schaltung
funktioniert aber soweit.
Bild 2: Die Spannungsversorgungsanschlüsse haben jeweils Kondensatoren
zum Glätten.
Bild 3: Nochmal ein Überblick
Bild 4: Für JTAG, NSTATUS und MSEL sind meines Erachtens auch die
passenden Pull-ups und -downs benutzt.
Bild 5: Für AS hat der Flash seinen eigenen Anschluss.
Bild 6: Zuletzt gibt es dann noch 8 LED's, 2 Knöpfe und einen 50MHz
Oszillator.
Bild 7: Die Platine ist ein 4 Layer Board. Hier zunächst Top.
Bild 8: Und Bottom.
Meine Messungen:
1. sind mir der Widerstand zwischen 3,3V, 2,5V, 1,2V und 0V augefallen,
im Vergleich zu einem ähnlichen Entwicklungsboard:
Funktionierend:
3,3V -> 0V: 500 Ohm
2,5V -> 0V: 500 Ohm
1,2V -> 0V: 350 Ohm
Mein Board:
3,3V -> 0V: 1.000 Ohm
2,5V -> 0V: 200 Ohm
1,2V -> 0V: 760 Ohm
Das könnte natürlich an den Schaltreglern liegen, die bei dem
Vergleichsboard durch Linearregler ersetzt sind, und daran, dass das
Vergleichsboard überall 4,7K Widerstände benutzt.
2. was kritischer sein dürfte sind die Spannungen, die ich an den JTAG
und AS Anschlüssen gemessen habe:
JTAG:
Funktionierend (in V):
(0) (3) (2) (2) (0)
(0) (2) (3) (2) (3)
_______| |_______
Mein Board:
(0) (3) (1) (1) (0)
(0) (0) (2) (1) (2)
_______| |_______
Fehler: Trotz Pull-up, TDI und TMS auf 2V
AS:
Funktionierend (mit RST gedrückt):
(0) (3) (0) (3) (0)
(0) (0) (0) (3) (0)
_______| |_______
Mein Board:
(0) (3) (0) (1) (0)
(1) (0) (2) (1) (1)
_______| |_______
Fehler: IO 6, 8, 13 auf 'X' und nicht '0' bzw. '1'
NConfig trotz Pull-up auf 2V
DCLK nicht auf '0'
Falls sich jemand fragt warum ich nicht einfach ein bestehendes
Entwicklungsboard nehme: Mir macht es Spaß so etwas zu entwerfen und ich
möchte den FPGA für Projekte wie Roboter mit diversen
Ultraschallsensoren, Motoren, WLAN Modul... benutzen. Dazu benötige ich
keinen großen RAM wie bei dem CYC1000, aber viele IO's. Außerdem würde
ich, wenn die Platine funktioniert, auch den Cyclone IV durch einen
Cyclone 10 mit mehr Logikelementen ersetzen. Ich habe auch schon diverse
Erweiterungen entworfen, die funktionieren. Nur halt der FPGA selber
nicht.
Ich danke dann schon mal im Vorraus!