Forum: Mikrocontroller und Digitale Elektronik Eigenes Cyclone IV Board "Can't access JTAG chain"


von Leon B. (magischerrauch)


Angehängte Dateien:

Lesenswert?

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!

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Wieso hast du das "Exposed Pad" nicht mit GND verbunden?

Ich weiß gerade nicht, ob es ohne GND-Verbindung überhaupt funktioniert 
...

Da hast du sicherlich nachgeschaut, oder?

von Leon B. (magischerrauch)


Lesenswert?


von Mampf F. (mampf) Benutzerseite


Lesenswert?

Leon B. schrieb:
> Ähm Ja...
> 
https://www.intel.com/content/www/us/en/programmable/support/support-resources/knowledge-base/solutions/rd12042013_126.html

Ja ... steht doch klar da:

"The exposed pad on EQFP packages is a ground pad that must be connected 
to the ground plane on your PCB. This exposed pad is used for electrical 
connectivity only and not for thermal purposes. "

Du hast es laut deinem Schaltplan nicht angeschlossen ...

Dann wird es deshalb nicht funktionieren.

von Leon B. (magischerrauch)


Lesenswert?

Dann probier ich es nochmal mit exposed pad. Hab mich bei dem designen 
an dem Cyc1000 orientiert und der hatte keins?

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Per Google gefunden:

"Our circuit board guy forgot to put a ground pad on the board for the 
144 pin package on the bottom of the chip. We are unable to detect it 
thru the JTAG port and assuming that is why."

Die haben die Verbindung irgendwie hingepfuscht, danach lief es dann.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Ah probier das hier mal aus:

https://forums.intel.com/s/question/0D50P00003yyR77SAE/cyclone-iii-144-qfp-package-forgot-the-ground-pad-on-circuit-board?language=en_US

Da heißt es, man würde an den Ecken etwas von einem Metal-Frame sehen 
und sie haben dort einen GND-Draht angelötet und dann klappte es :D

von Leon B. (magischerrauch)


Lesenswert?

Danke für die schnelle Hilfe ? Irgendwie war ich ziemlich blind bei der 
Fehlersuche

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Halt uns bitte auf dem Laufenden, ob du das Anlöten des Drahtes bei dir 
auch was bringt xD

Schon sehr interessant!

von Leon B. (magischerrauch)


Lesenswert?

Das wäre schon top, wenn das funktioniert. Aber bin leider gerade im 
Urlaub ohne Lötstation

von Leon B. (magischerrauch)


Lesenswert?

Wobei ich auch nicht den Metal-Frame sehe - vielleicht etwas feilen??

von Leon B. (magischerrauch)


Lesenswert?

Ha ich habe einfach ein Jumperkabel genommen, an die Ecke gehalten und 
der FPGA funktioniert?

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Leon B. schrieb:
> Ha ich habe einfach ein Jumperkabel genommen, an die Ecke gehalten
> und
> der FPGA funktioniert?

Super, gratuliere! ???

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.