Timing für XCF16PVOG48C

Gast #3025970
Lesenswert?

Hallo Leute,

ich habe ein Board gebaut auf dem der FT2232H (USB auf JTAG) Converter 
von FTDI vorhanden ist. Dann habe ich das Tool XC3SPROG verwendet.

Ich möchte mir alle Teilnehmer in der JTAG Kette anzeigen lassen. Leider 
wird der PROM und der FPGA nicht erkannt. Wenn ich jedoch den Taskkopf 
an den TCK Pin vom FT2232H anlege, dann funktioniert alles so wie es 
soll. Der FPGA und der XILINX PROM XCF16PVOG48C wird erkannt. Dies ist 
auch reproduzierbar. Immer wenn ich den Taskkopf wieder entferne 
funktioniert es nicht mehr und wenn ich in wieder ranhalte geht alles.

Die Daten schalten mit der fallenden TCK Flanke und die Daten liegen 
stabil an wenn eine steigende TCK Flanke auftritt.

Zwischen steigender und fallender TCK Flanke vergehen 340ns.

Ich finde jetzt kein Datenblatt mit den Timings vom XCF16PVOG48C.
Gast #3026086
Lesenswert?

Ich habe das gefühl das der FTDI Chip falsch konfiguriert ist. Dieser 
übernimmt nicht die Daten mit der steigenden Flanke sondern mit der 
fallenden Flanke.

Der PROM schaltet die Daten (TDO) mit der fallenden Flanke. Wenn jetzt 
auch noch der FTDI mit der fallenden Flanke die Daten abfragt dann kommt 
genau dieser Fehler zustande. Durch den Taskkopf der eine Kapazität 
besitzt verändert sich leicht das Timing und es funktioniert. Dies merke 
ich auch wenn das Board länger ausgeschaltet war. Dann funktioniert 
alles. Sofern es 5 Minuten angeschaltet ist, schlägt die Übertragung 
fehl. Dies liegt daran das ein Bauteil leicht warm wird und die 
Schaltzeit sich verändert.
Gast #3026241
Lesenswert?

DIES HABE ICH GEFUNDEN BEI XC3SPROG

this concludes to:
8   - Change TDI with the negative edge
9   - Sample TDO at the negative edge


BEIM XPROM habe ich im Datenblatt gelesen, das die Daten mit der 
fallenden Flanke geändert werden. Wenn jetzt der FTDI CHIP mit der 
fallenden Flanke die Daten abfragt dann wird es nicht immer sauber 
funktionieren.
Gast #3027785
Lesenswert?

Ich habe dies bei Xilinx gefunden:

Test Data Out. This pin is the serial output for all JTAG instruction 
and data registers.
The state of the TAP controller and the current instruction determine 
the register
(instruction or data) that feeds TDO for a specific operation. TDO 
changes state on the
falling edge of TCK and is only active during the shifting of 
instructions or data
through the device. TDO is an active driver output.



Demnach benötige ich keinen PULLUP, da TDO einen aktiven Treiber besitzt
Gast #3028178
Lesenswert?

So ich habe mal den XC3SPROG Quellcode überflogen. Dabei ist mir 
folgendes aufgefallen

/*out on -ve edge, in on +ve edge */

buf[0] = ((tdo)?(MPSSE_DO_READ |MPSSE_READ_NEG):0)
|((tdi)?MPSSE_DO_WRITE:0)|MPSSE_LSB|MPSSE_WRITE_NEG;

Wenn ich dies richtig interpretiere, dann wird TDI mit der fallenden TCK 
Flanke gesetzt. Dies ist ja auch richtig. Somit wird die Setup Time für 
TDI eingehalten, da die Daten am XILINX PROM oder am FPGA mit der 
ansteigenden TCK Flanke übernommen werden.

Jedoch das TDO Signal wird mit der negativen TCK Flanke eingelesen. 
Genau hier liegt der FEHLER. Laut FPGA und XILINX PROM Datenblatt wird 
das TDO Signal mit der fallenden TCK Flanke verändert. Deshalb kann ich 
nicht die gleich Flanke benutzen um das Signal einzulesen. Dadurch wird 
die Setup Time vom FTDI Chip verletzt. Beim FT2232H muss z.B. das TDO 
Signal vor eintreffen der ansteigenden TCK Flanke mindestens 11ns stabil 
anliegen.

Das einhalten der Setup Zeit sollte jedoch kein Problem darstellen. Da 
das TDO Signal mit der fallenden TCK Flanke verändert wird muss der FTDI 
Chip das TDO Signal mit der ansteigenden TCK Flanke einlesen.

Das Problem ist nur wer verändert mir jetzt den XC3SPROG Quellcode so 
das ich es testen kann? Ich will nichts daran ändern weil ich nicht weis 
was alles dadurch nicht mehr funktioniert. Ich kann natürlich auch eine 
Kapazität an den TDO Pin löten, jedoch ist das nicht gerade die beste 
Lösung, da ich nicht weis ob beim FTDI Chip die Schmitt Trigger Eingänge 
aktiviert sind

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren