FTDI FT232H SPI Problem

OP #3554932
Lesenswert?

Hallo zusammen,

Ich verwende für ein Projekt einen FT232H mit dem ich von einem ADC per 
SPI Daten lese. Dabei sollte ich 16Mbps übertragen. (30Mbps sind laut 
Spec möglich.

Ich verwende den D2XX Treiber.
Denn Speed auf dem SPI kriege ich gerade mal so knapp hin = also 
akzeptabel.

Das Problem:
Ich möchte kontinuierlich Daten lesen. Ich kann mir also meine commands 
für den MPSEE in einem Buffer zusammenstellen: 2^32. diese kann ich dann 
mit dem FT_Write übertragen.
Aber um kontinuierlich Daten zu lesen, muss ich anschliessend wieder! 
dieses command set an den FTDI senden. Dies resultiert in einem 
"timeout" auf dem SPI von etwa 100us - 300us. Also während dieser Zeit 
lese ich keine Daten vom ADC. Dies ist nicht gerade schön, wenn man mit 
dem ADC ein Signal mit 1MHz sampeln möchte. Im Anhang sieht man den 
timeout...

Hat jemand eine Idee, wie ich kontinuierlich die Daten per SPI lesen 
kann. Oder muss ich das Projekt schon in der Prototypenphase beerdigen?

Ist eine sehr spezifische und schwierige Frage. Wenn jemand trotzdem 
eine Idee hat. Danke vielmals

Gruss
Joel
Angehängte Dateien:
OP #3555782
Lesenswert?

Hallo Christian und Rolf,

Danke für eure Antworten.

Ich finde das schon ein bisschen übel wenn man 30Mbps verspricht und 
dann in solche timeout Probleme läuft.

Der FTDI hat zwei Buffers in der HW: TX und RX. Beim read hat der FTDI 
Treiber zudem einen Buffer auf der PC Seite, bei dem die Daten von der 
HW immer wieder zurück auf den PC geflasht werden. Als User kann man den 
abfragen und auslesen. FTDI hätte eigentlich genau das gleiche für den 
write machen müssen. Das man einen Buffer auf der Treiber Seite hat, und 
wenn er gefüllt wird, wird er wieder an die HW gesendet...

Wirklich schade. Vielleicht kann ich noch etwas retten. Ansonsten muss 
die HW geändert werden.

Gruss
Joel
Gast #3555806
Lesenswert?

Joel Lauber schrieb:
> Ich finde das schon ein bisschen übel wenn man 30Mbps verspricht
Das ist der Unterschied zwischen brutto und netto.
Ich kenne das jeden Monat von der Lohnabrechnung...

BTW: Wenn man sich vorher informiert hätte, wüßte man auch, das sich USB 
nicht für 30Mbps kontinuierliches Datenstreaming eignet.

Um einen ADC anzubinden würde ich einen geeigneten Mikrocontroller oder 
FPGA mit genügend Pufferspeicher verwenden.

Niklas

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