Forum: Mikrocontroller und Digitale Elektronik FTDI PC-Empfangsbuffer vergrößern


von Johann (Gast)


Lesenswert?

Hallo @ all

ich benutze den FT2232H. Nun habe ich mir ein kleines Testprogramm 
geschrieben, mit dem ich ständig prüfe wie viel im Empfangsbuffer 
entahlten ist.

Nun muste ich feststellen das der Empfangsbuffer auf 65280 Bytes 
eingestellt ist. Wenn ich jetzt zwischen dem pollen 1ms Wartezeit 
einfüge, (in dieser Zeit kann die PC-CPU dann etwas anderes abarbeiten) 
dann ist der Buffer kurz vor dem Überlauf. Lieder kann ich kein 0.5ms 
warten sondern nur 1ms oder 2ms. Ist es möglich den Buffer auf PC-Seite 
zu vergrößern?

Ich habe es mit den USB-Parametern versucht. jedoch hat dies zu einem 
Neustart des PCs geführt ^^

Ich benutze den sync. FIFO Modus für die maximal Datenübertragung > 
25MByte pro Sekunde

von Johann (Gast)


Lesenswert?

Ich habe gelesen das man hierzu die Funktion "FT_W32_SetupComm" benutzen 
muß. Dies werde ich mal ausprobieren.

von Johann (Gast)


Lesenswert?

Gibt es ein Miximum für die Buffergröße hat jemand schon mal Erfahrungen 
gemacht?

von Johann (Gast)


Lesenswert?

Egal welche Parameter ich für die Buffergrößer einstelle, der Buffer 
bleibt immer bei 65280 Bytes.

Die Funktion liefert 1 als Parameter zurück, so das keine Fehler 
vorhanden sein sollen.

Muß man vielleicht danach etwas zurücksetzten?

von Johann (Gast)


Lesenswert?

Ich dachte das bereits einige diesen Baustein verwenden.

von Ralf (Gast)


Lesenswert?

Hm... Ich vermute, die Buffergröße kannst du so ohne weiteres nicht 
ändern, denn das wird ja denke ich fix in der DLL verankert sein. 
Allerdings sind 64kB ja eigentlich ausreichend, wenn jede Millisekunde 
gelesen wird (was ich auf einem Windows System bezweifle).

AN130 hast du bereits gelesen?

In welcher Sprache programmierst du überhaupt? Und wie genau sieht deine 
Software aus -> Code? Vielleicht blockierst du ja mit deinen 
Lesevorgängen den Buffer, sodass er deswegen voll läuft.

Ralf

von Anja (Gast)


Lesenswert?

Die DLL wird doch die gleiche sein wie hier:

http://www.ftdichip.com/Documents/AppNotes/AN232B-03_D2XXDataThroughput.pdf

Gruß Anja

von Johann (Gast)


Lesenswert?

Ich habe den FTDI auf den sync. FIFO Modus umgestellt. Nun erzeugt der 
FTDI-Chip den 60MHz Datentakt selbst. Die Daten werden dann über das 8 
Bit breite Interface an den FTDI-Chip übertragen.

Ich habe die WR# Leitung auf GND gelegt, so das sofern der FTDI Chip 
bereit ist Daten in den Chip geschrieben werden.

Anschließend habe ich mal den Datendurchsatz ermittelt. Mit dem neusten 
Treiber erreiche ich im sync FIFO Modus nur 11 MByte pro Sekunde, laut 
FTDI sollen es jedoch mehr als 25MByte pro Sekunde sein.

von Johann (Gast)


Lesenswert?

Ich habe mit der Funktion USB Parameter den Paketgröße auf 32768 Bytes 
vergrößert um den Overhead des Protokolls deutlich zu verringern. Nun 
erhalte ich eine Datentransferrate von 25MByte pro Sekunde (vorher nur 
11 MByte pro Sekunde)

Nachdem ich jedoch die Datenübertragung angehalten hatte und erneut 
gestartet habe, bekomme ich eine BlueScreen und der PC startet neu.

von Ralf (Gast)


Lesenswert?

Hm... Sieht aus, als ob hier der FTDI Support gefragt ist. Hast du die 
schon angeschrieben?

Ralf

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.