FT2232H und SN74V3690

Gast #6633945
Lesenswert?

Ich nutze einen Ft2232 im synchronen FIFO modus in Verbindung mit einem 
SN74V3690. Das ganze wird per libftdi angesteuert und der callvack 
thread läuft dauerhaft. Der SN74V3690 wird per fpga mit Daten befüllt. 
Leider läuft da manchmal etwas schief und der FTDI liefert massenweise 
Daten wo keine sein sollten. Auch wenn der fifo nicht durch den fpga 
befüllt wird. Hat schon mal jemand solche Probleme gehabt?
#6633963
Lesenswert?

Stefan B. schrieb:
> synchronen FIFO modus

Verwende ich auch aber direkt von FPGA zu FTDI.

Ob man das FT245 Interface dafür gedacht ist. Der FTDI Baustein ist 
selber ein FIFO. Und leider ist der nicht so ganz einfach zu bedienen. 
Das TXE entscheidet ob der FTDI die Daten übernommen hat, da sind die 
Timings suboptimal.

Ich verwende den mit dem D2XX Treiber. Funktioniert wunderbar.
Gast #6634111
Lesenswert?

Gustl B. schrieb:
> Stefan B. schrieb:
>> synchronen FIFO modus
>
> Verwende ich auch aber direkt von FPGA zu FTDI.
>
> Ob man das FT245 Interface dafür gedacht ist. Der FTDI Baustein ist
> selber ein FIFO. Und leider ist der nicht so ganz einfach zu bedienen.
> Das TXE entscheidet ob der FTDI die Daten übernommen hat, da sind die
> Timings suboptimal.
>
> Ich verwende den mit dem D2XX Treiber. Funktioniert wunderbar.

Die Idee dahinter war den SN74V3690 zu nehmen, da der noch etwas größer 
ist und ich mehr zwischenspeichern kann. Der SN74V3690 wird im FWFT 
Modus betrieben und ist definitiv für die 60Mhz Clock des FTDI 
ausgelegt. Ich weiß auch nicht wo die zusätzlichen Daten herkommen 
sollen. Kann mir nur vorstellen, dass entweder der FPGA massiv in den 
FIFO schreibt (Muss ich noch prüfen aber unwahrscheinlich) oder der FTDI 
irgendwie zu viel liest und an der Stelle etwas nicht stimmt.
#6635748
Lesenswert?

Frank K. schrieb:
> Schon mal überlegt ob die 27 Ohm sein müssen oder deine FPGA Schaltung
> Unfug macht?

Die 27 Ohm sind schon OK, FPGA Schaltung, ja, kann sein.

Ich finde das RT# sollte noch genutzt werden weil das ist ja so:

Der FTDI hat TXE# unten, der FIFO/FPGA legt Daten an und legt WR# auf 
Low. Dann nach der Flanke zieht der FTDI TXE# hoch, das kann recht 
beliebig passieren. Und das sagt, dass diese Daten die zu der vorherigen 
Flanke anlagen nicht im FTDI übernommen wurden. Der FIFO/FPGA muss die 
also nochmal anlegen für einen Takt wenn TXE# wieder unten ist.
Das erklärt aber nicht dein Problem. Dir fehlen ja keine Daten sondern 
du bekommst zu viele. Du könntest mit Oszi/Logikanalysator gucken ob die 
Daten am FIFO Ausgang irgendwie toggeln während TXE# aber high ist. Das 
sollte nicht passieren.
Gast #6635922
Lesenswert?

Danke für die Antworten. RT ist ein Eingang am FIFO und im Datenblatt 
des FIFO als Retransmit beschrieben. Das brauche ich nicht daher ist das 
deaktiviert fest auf 0V. Ich frage mich auch gerade was es für einen 
Unterschied machen würde wenn die Daten toggleln wenn TXE high ist. 
Ignoriert der FTDI die Daten dann nicht einfach?

Die Kommunikation ist ja folgende: Ich fülle Daten in den FIFO und nicht 
in den FTDI Chip. Sobald der FIFO read pointer Daten hat geht OR auf 0. 
Also WR# im FTDI wird zu Null das heißt es kann geschrieben werden. TXE# 
kann ja prinzipiell immer 0 sein. Damit sagt der FTDI nur, dass er Daten 
in seinen FIFO schreiben möchte.
#6635936
Lesenswert?

Stefan B. schrieb:
> Ich frage mich auch gerade was es für einen Unterschied machen würde
> wenn die Daten toggleln wenn TXE high ist. Ignoriert der FTDI die Daten
> dann nicht einfach?

Ja.

Stefan B. schrieb:
> Also WR# im FTDI wird zu Null das heißt es kann geschrieben werden.

Nicht im FTDI. Das besagt, nicht dass geschrieben werden kann, sondern 
dass geschrieben werden soll in den FTDI.

Stefan B. schrieb:
> TXE# kann ja prinzipiell immer 0 sein. Damit sagt der FTDI nur, dass er
> Daten in seinen FIFO schreiben möchte.

Das Signal gibt der FTDI aus und das zeigt an ob der FTDI Daten 
aufnehmen kann oder nicht. Wenn also WR# low ist und TXE# high, dann 
nimmt der FTDI keine Daten an.

Ja vom Prinzip her machst du alles Richtig. Ich vermute den Fehler eher 
auf der FPGA Seite, also dass du da mehr in den FIFO schreibst als du 
schreiben möchtest oder so.

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