Forum: FPGA, VHDL & Co. Problem mit JTAG und S6: Done Pin bleibt Low.


von Christian H. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen!

Ich habe ein Custom Spartan 6 Board mit PROM. Beide werden im 
Boundary-Scan korrekt erkannt.
Leider funktioniert das Konfigurieren über JTAG bei beiden Chips nicht.
Die Logs von IMPACT befinden sich im Anhang, der Schaltplan ebenfalls. 
Auf dem Schaltplan fehlt, dass an den Spannungspin vom JTAG VCC_AUX=2,5V 
angeschlossen sind und sich am Program_B Pin ein Pull-UP (3,9k nach 
VCCO_2=3,3V) befindet.
Mich wundert, dass beide Mode-Pins als High erkannt werden. Ist der 
angeschlossene Widerstand evtl. zu groß?
Manchmal kommt beim Prom erst beim Verify ein Fehler. Der schlägt dann 
bei Position 0 fehl.
Für JTAG verwende ich ein Parallel-Kabel von Digilent. Leider habe ich 
nur das. Sonst würde ich mal ein USB-Kabel probieren.
Folgendes habe ich, teils nach Suche im Internet, schon probiert:
- "use high Z instead of bypass" in IMPACT anwählen
- drive done pin high Einstellung aktivieren bei Generate Programming 
File
- Pegel und Signalform habe ich mit mit dem Oszilloskop angesehen. Die 
sehen so weit vernünftig aus.
- Den Analogen Schalter habe ich mit einem Kabel überbrückt.

Ich habe 3 identische Platinen, zwei habe ich bisher getestet und bei 
beiden besteht das gleiche Problem. Daher denke ich nicht, dass es ein 
Problem mit einer Lötstelle ist.

Bisher hat leider nichts geholfen. Die Datenverbindung scheint aber zu 
funktionieren, da der Boundary-Scan funktioniert.
Wahrscheinlich ist etwas ganz dummes und offensichtliches aber ich komme 
nicht drauf.
Hat jemand eine Idee?

Viele Grüße,
Christian

von nuess0r (Gast)


Lesenswert?

eine zickende konfiguration beim fpga ist schon frustrierend. sieht so 
einfach aus und doch gibs viele tücken... könnte da noch schöne 
anekdoten erzählen.

einen offensichtlichen fehler habe ich grad nicht gefunden. sieht im 
schema meines spartan3 boards ähnlich aus.

pinning von deinem jtag stecker scheint ein anderes zu sein.

Christian H. schrieb:
> Für JTAG verwende ich ein Parallel-Kabel von Digilent. Leider habe ich
> nur das. Sonst würde ich mal ein USB-Kabel probieren.

kontrolliere den aufdruck auf der JTAG stecker seite. dort sollte stehen 
bis zu welcher minimalen I/O spannung das kabel funktioniert. ältere 
digilent kabel laufen nicht mit 2.5V (dann müsstest du ein paar 
widerstände zu hilfe nehmen. xilinx hat ein app note für 3.3V JTAG.)

sieh mal nach, ob du den JTAG clock langsamer einstellen kannst. das 
sollte irgendwo im "cable setup" einstellbar sein (wenn mich meine 
erinnerung nicht täuscht)

wenn der FPGA nicht richtig konfiguriert ist, probier es ein zweites 
mal.

> - Pegel und Signalform habe ich mit mit dem Oszilloskop angesehen. Die
> sehen so weit vernünftig aus.

wie sieht es aus wenn du daten und clock GLEICHZEITIG ansiehst? brav 
steile flanken? clock nicht zu früh? pegel schön über etwa 2.2 V?

> - Den Analogen Schalter habe ich mit einem Kabel überbrückt.
sicher mal ein guter versuch die komplexität zu reduzieren.

ich habe aber ein verständnis problem mit dem schalter:
du schaltest TDO um zwischen einem externen programmer und einem 
on-board programmer. TDO ist der daten AUSGANG des proms. geht also auf 
die EINGANGE des on-board und des externen JTAG programmers. wieso muss 
man das umschalten?

was auf dem schema irgendwie auch fehlt ist die verbindung vom on-board 
programmer und TDI...

ist der EZ-USB FX2 schon bestückt? was machen seine I/Os, könnten die 
reinfunken?
(sieh dir das xilinx app note an zum thema 3.3 V JTAG falls du mit dem 
FX2 den FPGA konfigurieren möchtest. der FX2 hat 3.3 V an seinen 
ausgängen!)


hoffe du kommst damit einen schritt weiter

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


Lesenswert?

Christian H. schrieb:
> Mich wundert, dass beide Mode-Pins als High erkannt werden.
> Ist der angeschlossene Widerstand evtl. zu groß?
Der UG380 sagt:
1
The specific configuration mode is selected by setting the appropriate level on the mode 
2
input pins M[1:0]. The M1 and M0 mode pins should be set at a constant DC voltage level
3
either through pull-up or pull-down resistors (2.4 kΩ), or tied directly to ground or 
4
VCCO_2.

Weiters lesen wir:
1
The DONE pin is by default an open-drain output with an internal pull-up. An 
2
additional external pull-up is recommended. The DONE pin has a programmable 
3
active driver that can be enabled via the BitGen option -g DriveDone.
Du hast da eher ein paar Pull-down Widerstände drin (R100+R22).
> - drive done pin high Einstellung aktivieren bei Generate Programming
> File
Aber wenn das nichts hilft...  :-/

von Christian H. (Gast)


Lesenswert?

Hallo,

Vielen Dank für Eure Tipps!

Folgendes habe ich noch an den Boards gemacht:
- Widerstände an den Mode-Pins überbrückt -> Mode wird korrekt erkannt.
- Widerstand an Done (ich meine der war es) auf 330 Ohm verkleinert.
An den Pulldown durch R100 hatte ich auch schon gedacht, aber der war es 
nicht schuld.
- Kompatiblen Nachbau des Platform-Cable gekauft. Damit hat es dann auf 
Anhieb funktioniert.


Zum On-Board-JTAG:
Ja, es sind nicht alle Komponenten gezeigt. Es gibt noch weitere 
Analogschalter, die die Signale umschalten. Außerdem muss am 
JTAG-Stecker TDI nach TDO durch einen Jumper gebrückt werden.

Das mit den 3,3V vom FX2 ist ein guter Punkt. Ich werde in die App-Note 
mal reinschauen.

Leider habe ich beim dritten Board das Problem, dass im Boundary Scan 
nur der Flash auftaucht. Ich tippe da mal auf eine schlechte 
Lötverbindung am FPGA...

Danke und viele Grüße,
Christian

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.