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
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.
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.
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.