Forum: FPGA, VHDL & Co. spartan 3 jtag im impact


von philipp (Gast)


Lesenswert?

Hallo!

Ich habe in Spartan 3 Board gebaut und versuche nun diesen über JTAG mit 
Impact zu programmieren. ID auslesen funktioniert einwandfrei. Doch wenn 
ich das FPGA programmieren will bricht impact ab weil "done pin did not 
go high"
ich verwende den dlc9 programmer, habe alla leitungen (TDI, TDO, TMS, 
TCK Vref und gnd) an die jeweiligen pins angeschlossen. init ist noch 
frei.

woher weiß impact das done nicht auf high geht? da hängt doch klein 
kabel dran?
oder meint impact tdo?
die done led bleibt jedenfalls auf low (pullup vorhanden).

hat jemand eine ahnung was da nicht stimmt?

lg
Philipp

von Uwe Bonnes (Gast)


Lesenswert?

Wer treibt "DONE"? Je nach Einstellung macht das der FPGA selbst, oder 
ein (nicht zu hochohmiger) Pullup. Mach Dir den ganzen Klapperatismus 
nochmal klar. Ich vermute Dein Problem dadran.

von philipp (Gast)


Lesenswert?

ich hab auf done einen 1k pullup, und im den bitstream options den 
internen pullup ausgeschalten. danach hab ichs umgekehrt probiert.  hat 
beides nicht geklappt.

von Michael (Gast)


Lesenswert?

Hast Du auch an die M0,M1,M2 Leitung gedacht. Damit kann man den 
Betriebsmodus des FPGA einstellen. Welcher der richtige ist, kann im 
Datenblatt nachgelesen werden

von philipp (Gast)


Lesenswert?

ja, die m0 -m2 hab ich richtig eingestellt ich kann den status der pins 
uber da auslensen des statusregisters im impact sehen. und der passt.

von philipp (Gast)


Lesenswert?

ich hab hier noch das log vom impact:

PROGRESS_START - Starting Operation.
Chain TCK freq = 33000000.
Validating chain...
Boundary-scan chain validated successfully.
'1':Programming  device...
done.
'1': Reading status register contents...
CRC error                                         :         0
RESERVED                                          :         0
DCM locked                                        :         1
DCI Matched                                       :         1
legacy input error                                :         0
status of GTS_CFG_B                               :         0
status of GWE                                     :         0
status of GHIGH                                   :         0
value of MODE pin M0                              :         1
value of MODE pin M1                              :         0
value of MODE pin M2                              :         1
value of CFG_RDY (INIT_B)                         :         0
DONEIN input from DONE pin                        :         0
ID_ERROR                                          :         0
RESERVED                                          :         0
RESERVED                                          :         0
INFO:iMPACT:2219 - Status register values:
INFO:iMPACT - 0011 0000 1010 0000 0000 0000 0000 0000
INFO:iMPACT:579 - '1': Completed downloading bit file to device.
INFO:iMPACT:580 - '1':Checking done pin ....done.
'1': Programming terminated, Done did not go high.
PROGRESS_END - End Operation.
Elapsed time =      1 sec.

von Bustle (Gast)


Lesenswert?

Die Belegung von M0, M1 und M2 spielt bei der JTAG-Programmierung keine 
Rolle. Funktioniert immer.

Im ISE von Xilinx kannst du unter "StartUp Option" in den "Process 
Properties" die "FPGA-Start-Up Clock" einstellen. Sollte auf "JTAG 
Clock" stehen, wenn das dein Programmer von selber nicht korrigiert.

Miss mal den Done-Ausgang mit einem Oszi oder Multimeter nach. 
Vielleicht hast du beim Löten ein paar Pins "zusammenkelebt".

Gruß
Bustle

von philipp (Gast)


Lesenswert?

das mit der startup clock macht der programmer...
die pins hab ich auch alle durchgemessen, konnte keinen fehler finden.

was ich nicht verstehe ist wie der jtag programmer dedektiert ob "done" 
high oder low ist.

von Bustle (Gast)


Lesenswert?

Das "Done"-Signal wird über das JTAG Kabel übertragen. Frag mich aber 
nicht wie genau...

Hast du auch gemessen ob das Done-Signal nach der JTAG konfiguration von 
Low nach High wechselt?

Kann mir sonst keine Erklärung liefern... aber ich würde auch mal noch 
nicht annehmen, dass der FPGA defekt ist.

Von welcher Firma ist der Programmer? Benutze doch denn von Xilinx...

von philipp (Gast)


Lesenswert?

der programmer ist von xilinx (dlc9 usb platform cable)
done bleibt immer auf low!

ich hab in einem paper von xilinx gelesen das man den pull up von done 
bis 300 ohm klein machen kann, das hab ich auch ausprobiert, keine 
änderung.
was mich verwundert ist dass alles funkt bis done high werden soll und 
dann bricht er ab.
auch die 10000x idcode read loop funktioniert einwandfrei.
kann ein sein dass ich an done dann noch einen 74lvcxxx eingang habe? 
der sollte aber eigentlich nicht stören.

von Bustle (Gast)


Lesenswert?

Ok, dann bist du mit dem Programmer wenigstens auf der richtigen Seite.

30Ohm ist klein genug, da reicht auch locker ein 4k7.

Nein, das mit dem 74LVC... kann ich mir auch nicht vorstellen. Aber 
sicherheitshalber würde ich das Füsschen dieses Bausteins doch mal nach 
oben biegen.

von Bustle (Gast)


Lesenswert?

Gab es eine Lösung zu dem Problem? Würde mich und wahrscheinlich auch 
noch ein paar andere interessieren.

von philipp (Gast)


Lesenswert?

ich habe die logig ics ausgelötet und neu eingelötet, alles 
funktioniert, ich glaube dass beim ersten löten ein kurzschluss 
entstanden ist, wobei ich mir nicht erkläten kann wo er war, aber jetzt 
geht alles
danke für die hilfe!
philipp

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.