Forum: Mikrocontroller und Digitale Elektronik ADC mit USB-Schnittstelle


von Michael2x3 (Gast)


Lesenswert?

Hallo,
ich möchte einen ADC über USB auslesen. Wie gehe ich da am besten vor ? 
Viele ADCs bieten ja eine SPI-Schnittstelle an. Bei SPI ist die 
Datenübertragungsrate jedoch zu gering für meine Anwendung. Was für 
einen Chip empfehlt ihr mir um die Daten direkt vom ADC in meinen PC 
einzulesen.
Danke!

von Martin (Gast)


Lesenswert?

gleich ein fertiges Produkt: NI USB-6009

von Michael2x3 (Gast)


Lesenswert?

Hm der kommt wohl nicht in frage. Ich will mit 100 MHz abtasten und 
16Bit werte haben.

von Ich (Gast)


Lesenswert?

Schreib mal, was Du realisieren möchtest. Was soll gemessen werden, 
Abtastrate, Auflösung? Was steht fest? Hast Du schon einen konkreten ADC 
im Blick?

Sonst wird das hier zu unkonkret.

von Ich (Gast)


Lesenswert?

Parallelpost :-(
Ok, bei den Bedingungen erst den ADC raussuchen ... die Auswahl ist dann 
nicht mehr so groß: 
http://www.digikey.de/product-search/de?FV=fff40027%2Cfff80183%2C2640005%2C5700038&mnonly=0&newproducts=0&ColumnSort=0&page=1&stock=1&quantity=0&ptm=0&fid=0&pageSize=100

Dann mal kurz die Datenrate überschlagen, du hast dann 1,6 GBit/s. Das 
könnte mit einem USB 3.0 gerade noch so zu machen sein. Dazwischen 
brauchst Du einen schnellen FPGA mit genügend RAM zum Puffern.

Vorschlag: Nach fertigen PCI(e)-Karten suchen. Du kommst mit selbst 
bauen nicht preiswerter, wenn Du nicht schon viel Erfahrung hast.

von Michael2x3 (Gast)


Lesenswert?

Ich will mein Eingangssignal mit nem 16Bit ADC und 100 MHz abtasten. Der 
Eingangsspannungsbereich ist 2V, will also eine Auflösung von ca. 30µV.
Die Daten sollen direkt auf den PC.
Einen ADC den ich ins Auge gefasst habe ist zum Beispiel:
http://www.ti.com/lit/ds/symlink/ads42lb69.pdf

von Ich (Gast)


Lesenswert?


von Michael2x3 (Gast)


Lesenswert?

Hm gibts da keine preiswertere Lösung. Was ich mir vorgestellt habe ist 
einfach einen Chip zu benutzen über den ich vom PC aus den ADC ansteuern 
kann.
Vllt könnte das interessant sein z.B.
http://www.ftdichip.com/Products/ICs/FT600.html

von Ich (Gast)


Lesenswert?

Wie oben schon geschrieben, USB 3.0 könnte gehen. Dazu halt FPGA mit 
Speicher, so ungefähr wie hier: 
http://www.ftdichip.com/Corporate/Press/FT601%20camera%20demo.pdf (nur 
eben mit ADC statt Kamera)

Und einige Wochen Arbeitszeit, je nach Vorkenntnissen auch mehr.

von Helmut S. (helmuts)


Lesenswert?

Michael2x3 schrieb:
> Hm gibts da keine preiswertere Lösung. Was ich mir vorgestellt habe ist
> einfach einen Chip zu benutzen über den ich vom PC aus den ADC ansteuern
> kann.
> Vllt könnte das interessant sein z.B.
> http://www.ftdichip.com/Products/ICs/FT600.html

1.
Auch mit diesem Chip benötigst du ein zusätzliches FPGA und zumindest 
internes BRAM um ein FIFO zu realisieren.

2.
Die nächste Frage ist dann wie muss denn eine Software auf dem PC 
aussehen um so schnell die Daten einzulesen. Erst wenn dieser Frage 
geklärt ist würde ich mit Punkt 1 weitermachen.

von Achim S. (Gast)


Lesenswert?

Michael2x3 schrieb:
> Was ich mir vorgestellt habe ist
> einfach einen Chip zu benutzen über den ich vom PC aus den ADC ansteuern
> kann.

Das stellst du dir zu einfach vor. Der ADC ist nur ein Teilaspekt, das 
ganze Drumherum muss ebenfalls stimmen.

Selbst der von dir herausgesuchte 16 Bit ADC liefert übrigens nur 
effktive 12 Bit (gut 74 dB SNR), die niederwertigsten 4 Bit zeigen also 
ganz offiziell nichts anderes als Rauschen. Und auch das erreichst du 
nur, wenn Drumherum alles annähernd perfekt läuft (der CLK-Jitter also 
z.B. nicht größer als ~200ps wird....).

Meine Empfehlung:
- wenn du wirklich glaubst, diese Performance zu brauchen, dann kaufe 
eine fertige Lösung und zahle den dafür verlangten Preis (selbst bauen 
ohne viel Erfahrung kannst du diese Performance nicht). Es kann durchaus 
günstigere Produkte geben als die von NI, aber für wirklich wenig Geld 
bekommst du das nicht gekauft.
- ansonsten überlege, ob deine Anforderungen nicht einfach überzogen 
sind und kauf z.B. ein (wesentlich günstigeres) 12 Bit 
Datenerfassungssytem.

von Helmut S. (helmuts)


Lesenswert?

> (der CLK-Jitter also z.B. nicht größer als ~200ps wird....).

Sicher ein Tippfehler - eher 200fs.

von Michael2x3 (Gast)


Lesenswert?

okay nehmen wir mal an ich komme mit 12 Bit aus. Die 100 MHz sind aber 
trotzdem Pflicht. Was wäre die geschickteste Lösung ? Ist es 
realisierbar so eine Schaltung zu entwerfen ohne große Erfahrung ?

von Markus (Gast)


Lesenswert?

Was willst du den erreichen?
Vllt. Reicht ja ein DSO.

Ansonsten fertige Lösung mit PCIe

von Marian (phiarc) Benutzerseite


Lesenswert?

Michael2x3 schrieb:
> 12 Bit 100 MHz
> Ist es
> realisierbar so eine Schaltung zu entwerfen ohne große Erfahrung ?

Nein.

Michael2x3 schrieb:
> Was wäre die geschickteste Lösung ?

Fertige DAQ kaufen, oder wenn kein Streaming benötigt wird ein DSO als 
Frontend verwenden.

von -gb- (Gast)


Lesenswert?

Hallo, muss es ein PC sein? Also müssen alle Daten dort hin? Gibt einige 
Boards mit ADC und FPGA. Da könntest du dann im FPGA schon filtern und 
so Zeug um dann nur noch weniger Daten zum PC zu schicken.

von Michael2x3 (Gast)


Lesenswert?

ja doch die Daten sollen auf den PC ohne vorher irgendwie verarbeitet 
geworden zu sein

von -gb- (Gast)


Lesenswert?

Ja das ist sportlich 16bit bei 100msps sind 200mbytes/s dann ein board 
mit ADC und FPGA und Gigabit? Sowas gibt es fertig. Willst du das dann 
nur wegschreiben oder damit viel rechnen? Schafft das der PC?

von Achim S. (Gast)


Lesenswert?

Helmut S. schrieb:
> Sicher ein Tippfehler - eher 200fs.

genau so ist es natürlich ;-)

Michael2x3 schrieb:
> ja doch die Daten sollen auf den PC ohne vorher irgendwie verarbeitet
> geworden zu sein

müssten die Daten kontinuierlich über lange Zeiten übertragen werden? 
Oder reicht es, einige MB am Stück aufzunehmen und kann man sich dann 
Zeit für die Datenübertragung machen.

Marian B. schrieb:
> oder wenn kein Streaming benötigt wird ein DSO als
> Frontend verwenden.

Ohne Streaming wäre ein DSO natürlich eine preisgünstige Möglichkeit. 
Nur ist man da leider weit von 12 Bit echter Auflösung weg (von 16 Bit 
ganz zu schweigen). Ich bin wahrscheinlich nicht auf dem laufenden, aber 
ich weiß  eigentlich nur von LeCroy-DSOs, die über 8Bit ADCs hinausgehen 
(und ich habe mir noch nie selbst angeschaut, was von der nominellen 
Auflösung dann beim Messen wirklich übrig bleibt und was im Rauschen 
untergeht).

von Michael2x3 (Gast)


Lesenswert?

Naja die zu übertragende Datenmenge wäre dann mit overhead so 2,0 
Gbit/s. Eine Messung dauert ca. 200s. Genau die Daten sollen erst einmal 
nur weggeschrieben werden. Der PC dafür wird auch erst noch angeschafft.

von Achim S. (Gast)


Lesenswert?

Michael2x3 schrieb:
> 2,0
> Gbit/s. Eine Messung dauert ca. 200s.

dann geht's halt kaum für kleines Geld ;-)

Diese Jungs hier sind in der schnellen Erfassung großer 
Analogdatenmengen nicht übel:

www.4dsp.com/solution_configurator.php?ad_samplingFreq=100&ad_channels=& 
function1[]=ad_1&form_factor=PCIe&find=

von Pandur S. (jetztnicht)


Lesenswert?

200 sec * 200MByte waeren 40GByte...  Vergiss das mal. Der PC kann das 
nicht. Windows kann das nicht, und etwas anderes auch nicht. Das 
Einzige, was das kann ist einen ADC direkt an eine Festplatte 
anzuschliessen mit einem FPGA dazwischen. Ich wuerd eine solid state 
disk verwenden. Eine drehende Platte kann das auch nicht.

von Helmut S. (helmuts)


Lesenswert?

>  waeren 40GByte...

Das sinnvollste wäre da ein Rechner mit 64GByte oder mehr. Das kann man 
kaufen. Damit wäre das Problem Festplatte gelöst.

von Pandur S. (jetztnicht)


Lesenswert?

Und der schreibt das ohne Unterbruch ? Vielleicht wenn du den Treiber 
selbst schreibst...

von Marian (phiarc) Benutzerseite


Lesenswert?

Jetzt Nicht schrieb:
> 200 sec * 200MByte waeren 40GByte...  Vergiss das mal. Der PC kann das
> nicht. Windows kann das nicht, und etwas anderes auch nicht. Das
> Einzige, was das kann ist einen ADC direkt an eine Festplatte
> anzuschliessen mit einem FPGA dazwischen. Ich wuerd eine solid state
> disk verwenden. Eine drehende Platte kann das auch nicht.

>200 MB/s konstant halten ist auf einem PC schon länger kein Problem mehr - man 
braucht natürlich einen anständigen Controller, Platten und Dateisystem. Mit 
Windows wird das allerdings, in der Tat, schwierig.

von J. A. (gajk)


Lesenswert?

Ich schrieb:
> http://sine.ni.com/nips/cds/view/p/lang/de/nid/13309

Dachte gerade, dieses Teil wäre auch geeignet:

http://www.thomann.de/de/focusrite_scarlett_2i2.htm

Aber ich sehe gerade 96kHz - da fehlt der Faktor 1000 zu den 100 MHz.

Das wird definitiv TEUER.

von -gb- (Gast)


Lesenswert?

Dieses http://redpitaya.com hat ADC, SATA, FPGA, CPU und Ethernet. Also 
kein Ahnung wie die ADCs wirklich sind aber sieht ganz gut aus.

von Frank K. (fchk)


Lesenswert?

Michael2x3 schrieb:
> Hm gibts da keine preiswertere Lösung. Was ich mir vorgestellt habe ist
> einfach einen Chip zu benutzen über den ich vom PC aus den ADC ansteuern
> kann.

Vergiss das. Aus dem "einfach einen Chip zu benutzen" wird dann sowas 
hier:

http://spectrum-instrumentation.com/de/m4i4410-x8

Schau Dir diese Karte genau an und überlege, ob Du die nachbauen 
könntest.

fchk

von Michael2x3 (Gast)


Lesenswert?

was wäre es denn für ein controller den ich bräuchte ?
meint ihr der taugt was ?
http://pdf1.alldatasheet.com/datasheet-pdf/view/427053/CYPRESS/CYUSB3014.html

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.