ADC für den Raspi i Ms Bereich

Gast #5758459
Lesenswert?

Hey,

ich bin schon seit längeren auf der Suche nach einem ADC Wandler inkl. 
Sampler für den Raspi. Ich würde gerne ein 50 kHz Signal erfassen und in 
eine Datei in den Raspberry einlesen. Wie schon gesagt, eine 
fertiglösung scheint es nicht zu geben, bin ich denn der einzige, der 
sowas sucht ?

Das Signal osziliert zwischen +/- 5V, die Frequenz kann bis zu 50 kHz 
erreichen. Die Genauigkeit sollte 12 Bit erreichen und die Samplerate 
sollte daher schon um die 1 MSps liegen.

Vielen Dank schon einmal im voraus :)

Viele Grüße, Andreas
#5758529
Lesenswert?

Andreas H. schrieb:
> Das Signal osziliert zwischen +/- 5V, die Frequenz kann bis zu 50 kHz
> erreichen. Die Genauigkeit sollte 12 Bit erreichen und die Samplerate
> sollte daher schon um die 1 MSps liegen.

Für negative Spannungen empfielt es sich ein Signal entsprechend für den 
ADC zu konditionieren (Stichwort: Bezugspunkt und Co ;))
1 MSps ist kein Problem, das kann z.B. ein ADS7476 mit SPI-Schnittstelle 
sein.
Gast #5758697
Lesenswert?

Hey, danke schonmal für deine Hilfe :) Aber das Problem ist doch, dass 
der Raspberry keine 1Msps aufzeichnen kann über SPI, zudem ist das 
Betirebssystem alles andere als ein RTOS. Somit sind die Samples sicher 
nicht im gleichen Abstand zueinander, oder täusche ich mich da? Muss es 
da nicht am adc einen internen buffer geben ?
#5758719
Lesenswert?

Ich sage da ganz einfach: falsche Plattform gewählt. Der Pi hat nun mal 
von all diesen Kleincomputern die schlechteste Peripherieausstattung.

Wenn Du geeignetes für Dein Problem suchst:

https://store.digilentinc.com/cora-z7-zynq-7000-single-core-and-dual-core-options-for-arm-fpga-soc-development/

Da fehlt dann nur noch das analoge Frontend, aber das ist ja kein 
Problem.

fchk
#5758758
Lesenswert?

M. K. schrieb:

> Öhm, so gut kenn ich den Pi nicht aber kann man mit dem den SPI nicht
> auf >16 MHz laufen lassen?

Vielleicht. Aber wenn da >>20 Tasks rumlaufen, wer garantiert denn, dass 
Du jede us eine Zeitscheibe bekommst, um das Sample auch abzuholen? In 
einem Bare-Matal-System machbar, in einem nicht deterministischen 
Multitasking-Betriebssystem nicht.

Das von mir vorgeschlagene Zynq-Board machts anders: Da sitzt im FPGA 
ein ADC, der per programmierbarer Logik gesteuert werden kann und dann 
völlig unabhängig vom Linux auf den A9-Kernen seine Samples im Block-RAM 
ablegt. Das Timing ist absolut deterministisch und im Rahmen des 
Quarzoszillators genau. Wenn das Block-RAM voll ist, kann die Software 
die Daten rausholen und analysieren. Oder man könnte sie per DMA ins 
SDRAM kopieren, was aber nur bei ganzen Blöcken sinnvoll ist und nicht 
bei Einzelwerten.

Möglichkeiten gibts viele. Man muss nur anfangen.

fchk

PS: Diese Zynq ARM-FPGA-Bausteine werden gerne in Oszilloskopen der 
Einsteigerklasse verwendet - dann aber natürlich mit externen ADCs und 
nicht mit dem internen.
#5758764
Lesenswert?

Frank K. schrieb:
> Vielleicht. Aber wenn da >>20 Tasks rumlaufen, wer garantiert denn, dass
> Du jede us eine Zeitscheibe bekommst, um das Sample auch abzuholen? In
> einem Bare-Matal-System machbar, in einem nicht deterministischen
> Multitasking-Betriebssystem nicht.

Das ist sicher dann nicht leicht, keine Frage. Aber wir wissen ja auch 
nicht was er genau wie lösen möchte ;)

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