Forum: Mikrocontroller und Digitale Elektronik ADC Daten Verwaltung und Darstellung.


von Dextrose (Gast)


Lesenswert?

Guten Abend, eigentlich beschäftige ich mich momentan mit einem ganz 
anderem Thema, allerdings ist mir das so eine Frage hochgekommen die 
mich beschäftigt.
Mir geht es darum wie Daten aus schnellen ADCs (>100Msps) eigentlich 
verarbeitet werden. Ich stelle mir das ganze wie folgt vor:

Ein ADC macht seine Messungen. Diese schreibt er in einen dazu passenden 
Speicher, z.B. in einen RAM. Der RAM besteht evtl. aus mehreren 
parallelen einzelnen Speichern um mehr Speicher zu haben und damit die 
Daten auch so schnell aufgezeichnet werden können, falls ein einzelner 
RAM zu langsam ist.
Nun kommt der Punkt an dem ich nicht weiß wie es weiter gehen könnte. 
Der RAM ist irgendwann mal voll und zur Darstellung des Signales muss er 
ausgelesen werden. Dies könnte ja nun ein normaler ATmega machen. 
Allerdings dauert dies auch wesentlich länger und der ADC hört mit 
seinen Messungen auch nicht auf um nichts zu verpassen.

Liege ich nun mit meiner Vorstellung richtig?
Wie werden die Daten nach der Speicherung weiter verarbeitet damit sich 
Schreibe und Lesevorgang nicht in die Quere kommen?
Eine Vermutung von mir wäre, einfach so viel RAM zu benutzen, bis man 
zum Auslesen genug zeit hat bevor der jeweilige RAM wider beschrieben 
wird.
So was würde aber bedeuten das der Speicher bei noch höheren Sample 
Raten wahnsinnig steigen würde.

von Christian R. (supachris)


Lesenswert?

Sowas macht man oft auch mit Dual Port RA oder FIFOs, und nach der 
(getriggerten) Messung gibts eine Totzeit zum Auslesen und Anzeigen der 
Daten. Je nach Hersteller z.B. von schnellen Oszilloskopen gibts da noch 
unterschiedliche Ansätze die Totzeit zu minimieren.

von Michael S. (rbs_phoenix)


Lesenswert?

Bei 8bit und 160MSps mit einem 16Mx8bit RAM nach 100ms voll. So schnell 
wird das ein AVR bestimmt nicht auslesen können. Dafür sind FPGAs 
bestimmt besser geeignet, zumal die ADCs i.d.R. ja kein 
Speicherinterface haben, sondern die Daten parallel ausgeben und ein 
"Wandlung ist fertig" Ausgang haben. Die FPGAs können die Daten auch 
noch komprimieren, sodass mehr Zeit gespeichert werden kann oder dass 
weniger Speicher ausreicht. Ein SRAM in der dieser Größe ist schweine 
teuer. SDRAM dagegen ansich spott billig, aber die Ansteuerung ist 
aufwendiger.

Ich habe mir auch mal 2 Dinge überlegt.
1. Ein schneller Logikanalyzer. Die Inputs gehen direkt an die Eingänge 
von einem SRAM und die Adresse wird mit einem Zähler bestimmt, der z.B. 
durch einen 100MHz Takt die Adresse hoch zählt. Doch um eine gewisse 
Menge speichern zu können, braucht man schon etwas an Speicher. Und SRAM 
mit 4Mx8bit oder 8Mx8bit kostet bei Mouser 50€+ (ohne MwSt) und ist im 
ätzenden BGA Gehäuse.

2. Ein schnellen ADC mit FPGA und SDRAM als Oszi. Mouser bietet ja 
250MSPS ADCs schon für 15-35€ an, als FPGA wollte ich Altera nehmen (hab 
n Demoboard und sie sind auch bei Mouser zu haben) und SDRAM gibts auch 
billig im TSOP Gehäuse. Da ist neben dem Know-How wie man die analogen 
aber auch digitalen Signale mit der Frequenz routet, auch der FPGA ein 
Problem. Ich habe spaßeshalber mal geguckt. Wenn man mit (glaube) über 
166MHz ein SDRAM beschreiben will, braucht man solche FPGAs, die nicht 
mehr im TQFP Gehäuse kommen, sondern im BGA mit >200 Pins. Das wiederum 
hat zur Folge, dass man selbst mit 4 lagigen PCBs und "normalen" Vias 
nicht mehr hin kommt. Und dann wird die Platine ja schnell richtig 
teuer. Für das Geld der Platine kkann man sich ja schon fast n neues 
Rigol Oszi kaufen, das mit Sicherheit besser funktioniert. Ich sehe es 
sonst eher so, dass es ums bauen geht, aber bei den Preisen hört es dann 
doch irgendwann auf ;)

100MSPS sind schon einiges für kleine bis mittlere uCs. Ich hab 
jedenfalls beide Ideen verworfen ;)

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.