Neues MiniProjekt: SerialComScope

OP (Firma: Bastler aus Mönchengladbach) Persönliche Seite #3456744
Lesenswert?

Könnte ihr dieses "Abfallprodukt" von SerialComInstruments mal testen?
Es ist noch in einem rudimentärem Stadium und soll mal ein 
eigenständiges Programm werden.

SerialComScope V0.01

Schnelle Scope-Darstellung von 8 Bit ADC-Werten eines Mikrocontrollers 
über die serielle Schnittstelle.
Die Display-Auflösung entspricht mit 256x500 der eines 
Digital-Oszilloscopes. Höhere Auflösungen in der X-Achse sind beliebig 
machbar, verringern aber entsprechen die Frame-Rate.
Bei einem weiteren Ausbau sollen von Skalierung der X-Achse in 
Zeiteinheiten, Zoom usw dazu kommen. Überlegenswert wäre eine 
Übertragung von einer geänderten Abtast-Einstellung vom PC zum MC (würde 
aber event. die max.Samplerate beeinflussen, da ja darauf hin im MC 
abgefragt werden müsste).

Ich schaffe damit zur Zeit ca. 30.000 Samples/s bei 460800 Baud (siehe 
Bild mit 2 kHz Dreiecksignal). Die Framerate (Updaterate) der 
Darstellung beträgt ca. 20 Frames/s.

Folgende Eigenschaften habe ich bei Tests festgestellt:

Controller    Clock      baud     Auflösung  Samplerate/s   Frames/s
                                             incl.Transfer  500 Pixel 
---------------------------------------------------------------------
ATMega168-20  22118400   460800   8 bit      30000          20
ATMega328     16000000   115200   8 bit       6000           4

Das Beispiel-Programm für den MC in Luna kann leicht in andere Sprachen 
wie C oder Bascom sinngemäss übertragen werden.

Der Trigger arbeitet nicht immer wie er soll, vielleicht findet ihr noch 
mehr Tücken und habt noch Vorschläge.
Gast #3456923
Lesenswert?

Interessant, wie wärs wenn man statt der ungenauen Dauerschleife den 
Interrupt des ADC nutzt um eine halbwegs exakte Basisfrequenz zu 
erreichen?

Momentan kann das Anwendungsprogramm doch gar keine richtige 
Zeit(-Anzeige) berechnen um auch nur halbwegs sinnvolle Zeitabschnitte 
ablesen zu können.
OP (Firma: Bastler aus Mönchengladbach) Persönliche Seite #3459224
Lesenswert?

Demnächst gibt es eine neue Version von SerialComScope.
Anbei eine Voransicht.
Der Mikrocontroller bekommt nun die Information welche Samplerate 
eingestellt ist jeweils als 1 Byte codiert über die Schnittstelle 
geschickt.
Die Darstellung ist zoombar und in X- und Y-Achse verschiebbar.
An der korrekten Skalierung für die Y-Achse bastel ich noch.
Angehängte Dateien:
Gast #3459317
Lesenswert?

Ich denke das ist der falsche Weg, ein Oszilloskop ändert doch nicht 
seine Hardware-Samplerate! Das wäre hier Aufgabe des PC-Programms, dafür 
muss es natürlich wissen mit welcher Frequenz die Werte gesampelt 
werden.

Auf dem MC also immer Maximale Samplerate was die Schnittstelle kann und 
das Ganze über Interrupt und Free running mode mit fester Frequenz (die 
natürlich unterhalb der Ausgabegeschwindigkeit liegen muss).
OP (Firma: Bastler aus Mönchengladbach) Persönliche Seite #3459326
Lesenswert?

Hollow schrieb:
> Ich denke das ist der falsche Weg, ein Oszilloskop ändert doch nicht
> seine Hardware-Samplerate! Das wäre hier Aufgabe des PC-Programms, dafür
> muss es natürlich wissen mit welcher Frequenz die Werte gesampelt
> werden.

Da bin ich aber ganz anderer Ansicht, aber ich lass mich gern überzeugen 
:)
Aus welchem Grund wäre es sinvoll z.B. langsamere Vorgänge mit höchster 
Samplerate zu messen? Wozu soll da der enstehende Datenwust gut sein.
Das Ganze kann man auch nicht wirklich mit einem Oszi vergleichen.
Und was machen die Anwender mit schnelleren/langsameren MC's und/oder 
Schnittstellen?

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