Forum: PC-Programmierung FT245RL über D2XX => FT_GETSTATUS nach FT_WRITE


von Der T. (Gast)


Lesenswert?

Hallo,

ich verwende den FT245RL. Nach dem Schreiben von 13Byte via FT_WRITE 
bekomme ich ein FT_OK, sowie die Meldung über 13 gesendete Bytes.

Am FT245 ist momentan keine aktive Hardware (bzw. Controller ist noch 
doof).

Ich bin nun davon ausgegangen, dass mit FT_GETSTATUS wieder 13 über den 
Pointer lpdwAmountInTxQueue zurückliefert. Dort bekomme ich allerdings 
0..?!?

Nun gut - nächster Versuch!

Kleines Quick&Dirty-Prog in den Controller, welches einfach 55 Bytes an 
Datenmüll in den FT245 schreibt. Dieses mal kann ich die 55 über den 
Pointer lpdwAmountInRxQueue erfahren bzw. die Daten auch über FT_READ 
lesen.

Nächster Versuch: Daten senden

Wieder ein kleines Quick&Dirty-Programm, dass nur die daten abholt und 
auf ein paar Status-LEDs ausgibt. Auch dies funktioniert.

ABER: Der Befehl FT_GETSTATUS liefert mir bei der TxQueue immer 0..?!?

Hat jemand einen Tipp für mich?

Ich würde gerne vor dem senden prüfen, ober die Queue noch ausreichend 
frei ist.

Noch ein Phänomen: Wenn ich mehr als 128 Bytes per FT_WRITE schreiben 
will, so bricht der Befehl mit einem Timeout ab und liefert 0 
erfolgreich geschriebene Bytes..?!?

: Verschoben durch User
von Jim M. (turboj)


Lesenswert?

Der T. schrieb:
> Ich bin nun davon ausgegangen, dass mit FT_GETSTATUS wieder 13 über den
> Pointer lpdwAmountInTxQueue zurückliefert. Dort bekomme ich allerdings
> 0..?!?

Bei welcher Baudrate? Bedenke dass FT_Getstatus ein USB Frame (1ms) 
Verzögerung haben kann. Dann sind bei ausreichend hoher Datenrate die 
Puffer leer.

von Der T. (Gast)


Lesenswert?

Keine Baudrate - das ist ein paralleles Interface!

Mittlerweile habe ich herausgefunden, dass damit der D2XX-Treiber und 
nicht der Puffer im FT245 gemeint ist!

z.B. kann dieser 65536 Bytes im RX-Buffer aufnehmen. Der TX-Buffer ist 
im Prinzip immer leer, da die Daten sofort per USB verschickt werden und 
je nach eingestelltem Timeout für den FT245-RX-Buffer verworfen oder 
vorher ausgelesen werden..

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.