Forum: Mikrocontroller und Digitale Elektronik FTDI FT232H SPI Problem


von Joel L. (spank)


Angehängte Dateien:

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

von Christian R. (supachris)


Lesenswert?

Ohne Puffer in der Hardware wird das nix denn Windows und auch Linux 
kann auch gerne mal Pausen bis in den hundert ms Bereich machen wenns um 
USB geht. Für sowas ist USB nicht gemacht.

von Rolf (Gast)


Lesenswert?

Christian R. schrieb:
> Für sowas ist USB nicht gemacht.

USB schon, siehe isochrone Übertragungen für Audio Anwendungen. Der FTDI 
ist dafür nicht gemacht.

von Christian R. (supachris)


Lesenswert?

Bei ISO wird zwar die Bandbreite garantiert aber nicht, dass auch 
wirklich alles ankommt, da kann auch was verloren gehen. Der FTDI macht 
das aber sowieso nicht.

von Joel L. (spank)


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

von Niklas (Gast)


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

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.