Forum: Mikrocontroller und Digitale Elektronik Neues MiniProjekt: SerialComScope


von Albert M. (Firma: Bastler aus Mönchengladbach) (albertm) Benutzerseite



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.

: Bearbeitet durch User
von Heisenberg (Gast)


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.

von Albert M. (Firma: Bastler aus Mönchengladbach) (albertm) Benutzerseite


Lesenswert?

Da hast Du absolut Recht.
Es ging mir aber zuerst nur mal darum zu sehen, wie schnell meine 
Software bei der Darstellung ist. So eine Art Machbarkeits-Studie.
Da ist anscheinend auf der PC-Seite noch ziemlich Luft drin, z.B. für 
eine mitlaufende FFT.

: Bearbeitet durch User
von Mike (Gast)


Lesenswert?

Wenn ich das Ganze mit einem 20 Mhz Quarz und dieser Baudrate betreibe, 
zeigt die Scopeanzeige nur noch senkrechte Striche an... 
Übertragungsfehler?

von Albert M. (Firma: Bastler aus Mönchengladbach) (albertm) Benutzerseite


Lesenswert?

Mike schrieb:
> Wenn ich das Ganze mit einem 20 Mhz Quarz und dieser Baudrate betreibe,
> zeigt die Scopeanzeige nur noch senkrechte Striche an...
> Übertragungsfehler?

... und da wunderst Du Dich?

von Albert M. (Firma: Bastler aus Mönchengladbach) (albertm) Benutzerseite


Angehängte Dateien:

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.

: Bearbeitet durch User
von Hollow (Gast)


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).

von Albert M. (Firma: Bastler aus Mönchengladbach) (albertm) Benutzerseite


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?

: Bearbeitet durch User
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.