Forum: Mikrocontroller und Digitale Elektronik Mal Wieder: Oszilloskop im Selbstbau


von Manuel K. (manuel1139)


Lesenswert?

Momentan denke ich über folgende Situation nach:

Ich habe einen ADC mit z.B. max. 20 MSPS. Damit sollte ich locker einen 
Sinus von 1 MHZ aufzeichnen können (20 Samples pro Welle sollte doch
schön erkennen lassen wie das anliegende Signal aussieht).

Das wären dann aber auch 1.000.000 Trigger pro Sekunde. Mal ganz 
abgesehen
davon das ich da eine Übertragung von ca. 1MB pro sekunde zum PC 
realisieren müsste, könnte ich die Daten wohl kaum an meinem Bildschirm 
in dieser Geschwindigkeit anzeigen lassen. Die gängen 
Bildschirm-wiederholungsfrequenzen liegen ja bekanntlich bei etwa 50 bis 
120HZ.

Meine Überegung war jetzt nur einen Teil der Daten an den PC zu 
übertragen. Wenn ich aber auf eine Wiederholfrequenz von z.B. 50 
herunterrechne dann hab ich ja nur noch jeden 20.000sten Trigger am 
Bildschrim? Wie würdet ihr vorgehen? Wie machen das die Großen auf dem 
Markt?

Gruß,
  Manuel Kampert

von Macc (Gast)


Lesenswert?

Mit einem Speicher von einer Zeile, diesen Speicher fuellen und dann 
langsam auslesen. Wieviele Trigger auch immer verloren gehen, auch 
kommerzielle Scopes machen das so.

von Sascha (Gast)


Lesenswert?

Mein Vorschlag:

Du richtest dir einen Puffer ein (das koennte der RAM eines uC sein oder 
externer SRAM).
Sobald eine Triggerbedingung eintrifft, schreibst du Analogwerte in den 
Puffer, bis dieser voll ist.
Dann kannst du den Pufferinhalt in aller Ruhe zum PC uebertragen.
Wenn dieser Vorgang abgeschlossen ist, dann kannst du warten, bis die 
Triggerbedingung wieder eintritt usw.

Da du aber vielleicht auch vor dem Trigger etwas sehen moechtest, 
koenntest du auch einen Ringpuffer einrichten.
Dieser wird durchgaengig beschrieben. Sobald die Triggerbedingung 
eintritt, zeichnest du noch die Haelfte der Groesse des Ringpuffers 
weiter auf.
Dann stoppst du die Aufzeichnung und du kannst die Daten zum PC 
uebertragen.
So hast du vor und nach dem Trigger Daten.

von Christian R. (supachris)


Lesenswert?

Bei sowas sollte man immer bedenken: Um Messtechnik zu bauen, muss die 
vorhandene Messtechnik mindestens doppelt so "gut" sein.

von Manuel K. (manuel1139)


Lesenswert?

Momentan arbeite ich mit dem Spartan Starter Kit von Xilinx. Da schreib 
ich die Daten in den vorhandenen SRAM (256k). Das mit dem Ringbuffer hab 
ih mir auch schon überlegt - So werd ich es wohl auch machen.

Aber das da soviele Trigger verloren gehen geht mir irgendwie nicht aus 
dem Kopf :-)

@Christian R.
Da hast du sicherlich recht. Das ganze ist für mich aber mehr Hobby und 
ein Projekt bei dem man/ich (hoffentlich) einiges lernen kann. Soll nix 
professionelles werden.

Gruß,
  Manuel

von Obelix (Gast)


Lesenswert?

Was meinst du denn zu den verlorenen Tiggern? Denkst du, du könntest dir 
alle getriggerten signale anschauen, wenn sie z.B. 1000 mal in der 
Sekunde aufgefrischt werden? Dann hast du aber schnelle Augen.

von Feadi F. (feadi)


Lesenswert?

> Bei sowas sollte man immer bedenken: Um Messtechnik zu bauen, muss die
> vorhandene Messtechnik mindestens doppelt so "gut" sein.

Typischer Fall von 'Henne und Ei' Problem? Oder ist die Geschichte mit 
den Ausserirdischen in Roswell doch wahr, und da kommt die 'doppelt so 
gute' Messtechnik - die benötigt wird - her? ;)

von Macc (Gast)


Lesenswert?

Ok, man kann die Triggerausbeute verbessern, indem man auf peak modus 
geht. Dabei wird pro horizontaler wert, nich ein vertikaler gespeichert, 
sondern zwei. Das minimum und das maximum der gemessenen werte ueber das 
Zeitfenster. Ein zusaetzlicher Zeilenbuffer. So kann man auch waehrend 
der Uebertragung messen.

von Macc (Gast)


Lesenswert?

Ich vergass noch den Mittelwertmodus zu erwaehnen. Dabei wird waehrend 
des Zeitfensters gemittelt.

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.