8 ADCs über SPI an uC

Gast #2982097
Lesenswert?

Hallo,

für mein neustes Projekt benötige ich 8 ADCs mit 3MS, die alle 
gleichzeitig sampeln.

Nun habe ich bereits einen ADC herausgesucht. SPI, 3MS, 10Bit, alles 
super, aber:
Aus dem Datenblatt entnehme ich, dass das Sampeln mit dem Herunterziehen 
der nCS Leitung erfolgt und die Daten über SPI gleich rausgeschoben 
werden, was ja meiner Forderung nach gleichzeitigem Sampeln im Wege 
steht.

Mich würde interessieren wie ihr das so macht.

Grüße
Michael
(Firma: Raich Gerätebau & Entwicklung) #2982118
Lesenswert?

>Aus dem Datenblatt entnehme ich, dass das Sampeln mit dem Herunterziehen
>der nCS Leitung erfolgt und die Daten über SPI gleich rausgeschoben
>werden, was ja meiner Forderung nach gleichzeitigem Sampeln im Wege
>steht.

Wieso?
Braucht's halt 3SPI's. Wo ist das Problem? Mit einem AVR brauchst du da 
ohnehin nicht mal dran denken.

Grüsse
#2982130
Lesenswert?

@  Michael Sonst (Gast)

>Nun habe ich bereits einen ADC herausgesucht.

Welchen?

>Aus dem Datenblatt entnehme ich, dass das Sampeln mit dem Herunterziehen
>der nCS Leitung erfolgt und die Daten über SPI gleich rausgeschoben
>werden, was ja meiner Forderung nach gleichzeitigem Sampeln im Wege
>steht.

Warum? Weil ein normaler SPI-Master nicht 8 Stück gleichzeitig auslesen 
kann? Ok, das ist ein Problem. Mit einem CPLD ginge es aber, dort kriegt 
man 8 SPI-Master rein, die man dann vom uC aus lesen kann, ggf. sogar 
mit parallelem (memory mapped) Interface. In die Richtung wird es so 
oder so laufen, denn du hast ja immerhin 3x8=24 Msmps = 240Mbit/s, die 
du in Echtzeit irgendwo speichern musst. Ein kleiner AVR kann das nicht 
mehr, ein größerer ARM kann das auch nur memory mapped oder über 
anderes, schnelle Schnittstellen.
Gast #2982139
Lesenswert?

Habe sowas ähnliches gemacht. 16ADC 12Bit 3MSamples. Gemeinsamer Clock 
und nCS, separate Datenleitunge. Die ADC's werden von einem FPGA 
angesteuert, funktioniert wunderbar. Problematisch wird aber die 
Übertragung zum Computer.
Gast #2982250
Lesenswert?

@Falk Brunner:
-Den MAX11117.
-Hatte schon drüber nachgedacht die Datenleitungen in je ein Latch zu 
schieben.

@Tach:
Ja, warum? 240MBit/s Ist ja nicht unbedingt viel.

@Delta:
Klingt sehr ähnlich =) Ist das öffentlich?

Grüße
Michael
Moderator (Firma: Titel) Persönliche Seite #2982488
Lesenswert?

Ich würde mir mal anschauen, ob ich mit 8 Wandlern eine Daisy Chain 
aufbauen könnte. Immerhin steht im Datenblatt, dass der Baustein QSPI 
könne. Dann hast du einen einzigen SS für alle ADCs. Siehe dort unten:
http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus

Allerdings habe ich den schlimmen Verdacht, dass da bei Maxim einer 
nicht weiß, was QSPI ist...
Gast #2982576
Lesenswert?

@Lothar: Laut Datenblatt hat der Baustein nur VDD, GND, AIN, nCS, DOUT, 
SCLK, kein MISO :-/

Ehrlich gesagt ist das doch nicht wirklich eine Sonderlocke die ich da 
basteln will. Seltsam, dass es hierzu so wenig Informationen gibt.

Grüße
Michael
Gast #2982618
Lesenswert?

Michael Sonst schrieb:
> @Tach:
> Ja, warum? 240MBit/s Ist ja nicht unbedingt viel.

Na dann :-)
Ich hab das auch schon mal gemacht.
Waren 10x 14Bit x 3MHz, also geringfügig mehr...allerdings hatte ich 
einen FPGA und konnte mir mit entsprechend vielen SPI-Schnittstellen 
bzw. Logik behelfen.

Entweder willst Du die Daten direkt im uC weiterverarbeiten oder Du 
willst Sie irgendwohin übertragen.
Beides ist nicht gerade ohne (persönliche Meinung).
Delta hatte ja schon erwähnt dass selbst eine Übertragung zum PC nicht 
ohne ist. Evtl. mit Gigabit-Ethernet ;-)
Moderator (Firma: Titel) Persönliche Seite #2982697
Lesenswert?

Michael Sonst schrieb:
> @Lothar: Laut Datenblatt hat der Baustein nur VDD, GND, AIN, nCS, DOUT,
> SCLK, kein MISO :-/
Dann ist das Datenblatt schon auf der ersten Seite Müll, denn QSPI ist 
SPI, nur eben "Queued" als Daisy Chain...

Michael Sonst schrieb:
> @Tach: Ob ich einen FPGA, oder einen uC dahinter hänge wollt ich auf
> Grundlage dieses Threads u.a. entsccheiden. :-)
Nimm einen MachXO, lies alle ADC parallel ein und gib sie irgendwie 
dorthin weiter, wo du die Daten eigentlich brauchst. Wo brauchst du die 
eigentlich?

Oder du nimmst einen ADC, der Daisy Chain kann, oder, oder oder...
Gast #2982785
Lesenswert?

Die CPU könnte (ohne CPLD) 8 Bit parall. einlesen, und zwar je Befehl 
die einzelnen Databits der 8 SPI-Slaves. Macht (für die 8 ADCs) 10 
EinleseBefehle je Wert, insges 333ns, also 33ns je einzelnen 
EinleseBefehl.
(Die gelesenen Bits müssten danach nat noch aufgeteilt werden, was nat 
wieder etwas Rechenleistung kostet).
(damit noch Rechenleist. übrig bleibt, müssten die EinleseBefehle nat 
schneller abgearb. werden)
#2982848
Lesenswert?

@  MCUA (Gast)

>die einzelnen Databits der 8 SPI-Slaves. Macht (für die 8 ADCs) 10
>EinleseBefehle je Wert, insges 333ns, also 33ns je einzelnen
>EinleseBefehl.

Nebenbei muss aber noch der SPI-Takt generiert werden, und das synchron.

Naja, solche Tricks sind machmal schon OK, aber irgendwann wird es 
albern. Ein FPGA macht das mit einem müden Lächeln.
Gast #2982858
Lesenswert?

>Nebenbei muss aber noch der SPI-Takt generiert werden,
Kann aus den \RD-Signal abgezweigt werden (bzw ist das selbe), muss 
nicht synchr sein.

>Naja, solche Tricks sind machmal schon OK,
sagte ja nicht dass das die einzigste Möglichkeit wäre, aber Manche 
verwenden auch dicke Brummer, wo s überhaupt nicht nötig wäre.
Ausserdem, schnell genug lesen muss die CPU sowiso können, da hilft auch 
ein FPGA nicht (sofern man es nicht als Co-Proz benutzt).
Gast #2982967
Lesenswert?

Tach schrieb:
> Delta hatte ja schon erwähnt dass selbst eine Übertragung zum PC nicht
> ohne ist. Evtl. mit Gigabit-Ethernet ;-)

Ich verwende zur Übertragung des Streams USB3 (mit dem Cypress FX3). 
Steckt aber noch in den Kinderschuhen.

Falk Brunner schrieb:
> Ein FPGA macht das mit einem müden Lächeln.

;) Kann ich bestätigen.

Michael Sonst schrieb:
> Ob ich einen FPGA, oder einen uC dahinter hänge wollt ich auf
> Grundlage dieses Threads u.a. entsccheiden. :-)

Was willst du denn machen? Was willst du mit den gewonnen Daten 
anstellen? Verarbeiten, Komprimieren, Speichern, Anzeigen usw?

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