Forum: Projekte & Code Einfacher Osziloskop - Bascom


von Avr N. (avrnix) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hier habe ich mal in Anlehnung vom Berhards " einfaches DIGITAL-
Oszilloskop (800 Datenpunkte) Assembler" habe ich mal in Bascom Basic
geschrieben.
Es ist einfach gestrickt und wäre dankbar wenn weitere Verbesserungen
einflissen würden.
Später wird noch mehr hinzukommen, da der Mega 32 noch nicht
ausgelastet ist.
Display habe ich das Toschiba TLX-1391 (T6369) 128x128 genommen.
Sollte 100µs für eine Messung machen und eine Messreihe hat 770
Messungen.

Für Anregungen und Tips wäre ich Dankbar, vielleicht sogar eine
Erweiterung. Später kommt es auf www.comwebnet.de wenn einige Sachen
drinne sind ( Oszi, Logikanayler, Logiktester ,?,?)

Alles soll einfach und nachbaubar sein.

AVRNix
Das Gerät müsste bis 10Khz messen können.

von Avr N. (avrnix) Benutzerseite


Angehängte Dateien:

Lesenswert?

Das ist die Grundschaltung die ich benutzt habe.

 Jetzt brauche ich nur was zur Wechselspannungsmessung und zur
Umschaltung der Spannungsmessung.

Das Gerät Misst bis 5V bzw. AREF. Kommt später AREF mit dem LM336 2,5V

von Avr N. (avrnix) Benutzerseite


Angehängte Dateien:

Lesenswert?

Noch ein Bild - leider ist der Kontrast schlecht.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Wie wär's wenn du dafür eine Seite in der Artikelsammlung erstellst?
Einfach die Vorlage von hier rauskopieren
http://www.mikrocontroller.net/wikisoftware/index.php?title=Vorlage_f%C3%BCr_Projektbeschreibung&action=edit
und hier einsetzen, anpassen und abspeichern:
http://www.mikrocontroller.net/wikisoftware/index.php?title=Einfaches_Oszilloskop_mit_Bascom-AVR&action=edit

von herbört (Gast)


Lesenswert?

10 kHz? da misst man ja schneller wenn man nen ADC an den Parallelport
hängt..

von Avr N. (avrnix) Benutzerseite


Lesenswert?

Man könnte auch einen externen schnelleren AD Wandler dranhängen.
Klar man kann auch 2000€ für einen teuern bezahlen.

Für einfache Sachen reicht es. Für Verbesserungsvorschläge habe ein
offenes Ohr und mein Teil ist PC unabhängig ;)

Aber es soll auch bezahlbar sein.

Wer anregungen hat , her damit! :)

von Sigma-N (Gast)


Lesenswert?

@Avr-Nix

Hut ab! Vor allem nicht mies machen lassen durch "Experten", die
vielleicht selbst nicht mal eine Taschenlampenbatterie wechseln
können. Mit einem externen Wandler wäre die Sache natürlich fixer
und immer noch bezahlbar.

Gruß Sigma-N

von Benedikt (Gast)


Lesenswert?

Wieso externer Wandler ?
z.B. mit einem R8C uC der einen 300kHz Wandler besitzt, kann man
wunderbar ein Oszi mit LCD bauen, das 100kHz Signale abtasten kann.
OK, damit ein Sinus noch einigermaßen wie ein Sinus aussieht, sollte
die Frequenz zwar unter 50kHz liegen, aber immerhin ist das ganze dann
brauchbarer als ein 10KS/s Oszi.
Alternativ gehen auch AT90PWM oder ein kleiner dsPIC. Diese beitzen
500kS/s oder gar 1MSs/s ADCs.

von Avr N. (avrnix) Benutzerseite


Lesenswert?

Ich habe es auf einen AVR gemacht, soll dafür sein und nicht für eine
anderen µC Typ. Wie würde es den beim AVR gehen?

von Benedikt (Gast)


Lesenswert?

Auf einem AVR kann man den ADC mindestens auf 40kHz takten, ehe das
Signal zu stark verzerrt wird.

von Avr N. (avrnix) Benutzerseite


Lesenswert?

Wie ?

von Benedikt (Gast)


Lesenswert?

Indem man einfach den ADC Prescaler entsprechend einstellt ?

von Avr N. (avrnix) Benutzerseite


Lesenswert?

Der steht auf Automatisch- ergo - müsste der ja die 40KHz bringen

von Benedikt (Gast)


Lesenswert?

Automatisch gibts beim AVR nicht, oder ist das so ein Bascom Müll ?

von Avr N. (avrnix) Benutzerseite


Lesenswert?

Bevor du hier was sagst solltest du auch mal die Überschrift lesen -da
steht was von BASCOM. Es ist für Leute die mit BASCOM AVR arbeiten.

Und darauf bezieht sich das alles hier.

von Benedikt (Gast)


Lesenswert?

Die Überschrift zeigt, das du nicht schreiben kannst, und deine Beiträge
bestätigen die Meinung vieler, das BASCOM Programmierer nicht
programmieren können.
Ich wollte ja eigentlich nur helfen, aber dazu habe ich jetzt keine
Lust mehr.

von Avr N. (avrnix) Benutzerseite


Lesenswert?

Danke für deine Hilfe. Aber wo ist der bezug zum Projekt ?

Es gibt viele BASCOM Programmier und die machen auch Projekte die sich
nicht verstecken brauchen.

Also, das vielleicht C oder ASM effektiver sind, schön und gut.

Ich wollte - zu meinen Projekt - gerne Hilfe haben, nicht ein gerede
über die bessere Programmiersprache. Oder wie du sagst BASCOM -Müll,
somdern auch die Hardwareseite verbessern.

Da frage ich mich wo da die Hilfe ist?

Ich bedanke mich trozdem für deine Bemühungen.

von ,,,, (Gast)


Lesenswert?

@Benedikt

Mh genau BASCOM Programierer können garnix und der Code ist natürlich C
der ausieht wie Basic, weil das kann ja eh nix was?!
Ich glaub auf deine "Hilfe" kann man verzichten, wenn ich angemacht
werden will geh ich sonstwohin wo sich unfreundliche Leute rumtreiben.
tz...

von Ronny Schmiedel (Gast)


Lesenswert?

@ Avr-nix
Schönes Projekt und lass Dich nicht entmutigen von solchen
Wichtigtuern. Ich programmiere auch in Bascom (und Assembler) und habe
schon so einige Projekte hinter mir. Der Programmierstil ist
entscheidend und nicht die Sprache.
So nun zum Prescaler:
Schau mal auf Seite 204 und auf Seite 216 des Datenblattes. Dort
findest Du die Anleitung, wie Du die Register entsprechend setzen mußt.

Ich würde auch nochmal den Befehl "fusing" überdenken, braucht sehr
viel Rechenzeit. Vielleicht findest Du eine andere Lösung.

Gruß
Ronny

von Avr N. (avrnix) Benutzerseite


Lesenswert?

@ronny:

Denke darüber nach, allerdings ist das nach der Messreihe.
Das Datenblatt werde ich auch nochmal zu Hilfe nehmen.

Kann man den in Bascom das so beeinflussen die in C bzw ASM?
Ich benutze GETADC Routie mit dem Prescaler AUTO

In der Hilfe sagt folgedes aus:
PRESCALER
  A numeric constant for the clock divider. Use AUTO to let the
compiler   generate the best value depending on the XTAL

Also hat man doch nach einen Compilervorgang die "Optimale"
Einstellung.

Und dieser Code wird dann erstellt laut der Hilfe:

The following ASM is generated(depending on the chip)

In _temp1,ADCSR ; get settings of ADC
Ori _temp1, XXX ; or with settings
Out ADCSR,_temp1 ; write back to ADC register

Und der Auto als Prescaler nimmt den höchsten Wert ( 200Khz)


Frage:

Laut Datenblatt kann der AVR ATM 32 -> 15KSps

Vielleicht schmeisse ich jetzt was durcheunander, aber kann er 200KHz
samplen oder jetzt mit 15 KSps.

Ich bin jetzt von den 15KSps ausgegangen bei der Messung.

von Ronny Schmiedel (Gast)


Lesenswert?

Das ist zwar nach der Meßreihe geht aber in die Meßzeit mit ein
(for/next-Schleife).
Die Register kannst Du genauso setzen wie in C oder ASM.
Bsp Voreinstellung:

ADMUX = &B11000000 'interne Referenz und Kanal ADC0
ADCSRA = &B11010111 'ADC ein, Start ADC, Vorteiler 128 für 125Khz
ADC-Takt

Die 200Khz (was eh nicht geht bei 16Mhz) ist die Taktrate des
AD-Wandlers, die Samplingrate hängt vom Programmcode (auch was noch
folgt bis zur nächsten Messung) und ob Single-Messung oder
Freerun-Messung. Der AVR braucht eine gewisse Anzahl von ADC-Takten zum
Wandeln (siehe Seite 206 Datenblatt).
Ich habe mich am Anfang auch ums Lesen des Datenblattes gedrückt, aber
da kommt Du nicht dran vorbei.

Gruß
Ronny

von Andi (Gast)


Lesenswert?

"Use AUTO to let the
compiler   generate the best value depending on the XTAL

Also hat man doch nach einen Compilervorgang die "Optimale"
Einstellung."

Optimal(?) vielleicht, aber nicht die maximal mögliche. Den ADC kann
man schneller clocken, dann hat er aber nicht mehr die volle
10Bit-Auflösung. Wenn dir 7-8 Bit reichen kommst du bis etwa 80kHz
Samplingrate. Der ADC braucht 13 Clocks für Wandlung und Sampling, das
gibt also einen ADC-Clock von etwa 1 MHz. Bei 16MHz Quartz also einen
Teiler von 16 einstellen statt AUTO.

Gruss Andi

von Ronny Schmiedel (Gast)


Lesenswert?

Also meineserachtens sollte die ADC-Taktrate zwischen 50 und 200 khz
liegen. Darüber ist dann der 10-bit-Wert mehr und mehr "verrauscht".
(siehe Datenblatt und AVR-GCC-Tutorial von hier)

Gruß
Ronny

von Malte _. (malte) Benutzerseite


Lesenswert?

@Ronny:
Wenn man 10 Bit braucht ist das sicher richtig, aber wenn einem 8 Bit
reichen kann man den ADC auch gerne schneller betreiben. Ich bastel
hier gerade ein ähnliches Projekt und habe mich auf 7Bit Auflösung
beschränkt. Der Flaschenhals ist bei mir derzeit aber die
Geschwindigkeit der seriellen Schnittstelle zur Übertragung der Daten
zum PC.

von Avr N. (avrnix) Benutzerseite


Lesenswert?

@Andi: habe den Teiler auf 16 eingestellt :) geht echt schneller.
Wie mache ich den Timebase einstellung?

Bei der alten Variante mache ich eine Messreihe und nehme entspreched
jede xten Wert zur Darstellung.

Da jetzt die Abtastung viel höher ist bekomme ich nicht das Signal ganz
auf dem GLCD.

Als nächstes versuche ich mal den AD Wandler in BAscom in ASM zu
proggen.

Das Datenblatt werde ich heute Abend durchgehen. habe mal es
Überflogen.
Bei Freerunning Mode (Normal Conversion S207)braucht er 1x 13 ADC Takte
sonst 1,5-2 Takte für jede Wandlung

Da sind doch 10BitWandler drinne, wieso ist dann 8Bit schneller das
wird doch nur auf Zwei ADCH + L Register reingepackt und ich lese bei
8Bit nur ADCH aus (S.203)
Sehe ich das soweit richtig?

von Malte _. (malte) Benutzerseite


Lesenswert?

Es bleibt ein 10Bit Wandler, aber wenn du ihn schneller als im
Datenblatt angegeben betreibtst, sind irgendwann die niederwertigsten
Bits reines Rauschen und damit wertlos, die höherwertigen (zB. 8Bit)
aber noch gut benutzbar. Wenn du 8Bit aus ADCH auslesen willst musst du
dafür vorher das ADLAR Bit setzen, sonst stünden in ADCH nur die oberen
2 Bit.

von Wigbert Picht (Gast)


Lesenswert?

Hallo,
Mich würde interessieren,ob das Projekt weiter verfolgt wird.
Wo kriegt man das Display her.Vielleicht kann man auch eine
Libary für andere Displays erstellen.

von Avr N. (avrnix) Benutzerseite


Lesenswert?

Das Projekt mache ich später weiter, das Display mit dem T6963C bekommt
man in verschieden Auflösungen und lässt sich gut anpassen im
Programm.

Eine C Lib gibt es in der Codesammlung. Im Bascom ist die Lib schon
drinne.

Da bei mir der Kontrast schei... ist. Probiere ich es mit einen Siemens
 S65 Farb Display, allerdings steht es am Anfang des Projekts.

Da ich kein ASM kann, werde ich sehen wie ich schnelles Sampling und
Timebaseeinstellung optimieren lassen.

von Wigbert Picht (Gast)


Lesenswert?

Danke für die Info.
Ich wollte schon in Bascom bleiben.Ist demnächst eine Veröffentlichung
eines Bords vorgesehen?.Sonst muss ich selbst ran.

von Avr N. (avrnix) Benutzerseite


Angehängte Dateien:

Lesenswert?

Bestückung

von Avr N. (avrnix) Benutzerseite


Angehängte Dateien:

Lesenswert?

die Platine

von Avr N. (avrnix) Benutzerseite


Angehängte Dateien:

Lesenswert?

der Schaltplan

von Wigbert Picht (Gast)


Lesenswert?

Dank für das schnelle Reinstellen.
würde es Dir es was ausmachen, das Bord als Eagle-Datei zu
übersenden?.
Als Display, so nehme ich an, wirst Du das selbe wie auf
Deiner Hompage verwenden wollen (Typ 020....)?
Dann mal ran.Hab son Ding bestellt.

von Avr N. (avrnix) Benutzerseite


Lesenswert?

Das Board ist für T6963C Display - den S65 werde ich später reinstellen

von Wigbert Picht (Gast)


Lesenswert?

Ja richtig,es werden wohl dann nur 5 Pins benötigt und
2,9V Versorgung zusätzlich.OK besten Dank erstmal.Vielleicht
kriegst Du es bis Jahresende hin.Ich hab Geduld.Das neue
Display muss auch erst mal am Testbord laufen.

von Wigbert Picht (Gast)


Lesenswert?

Hallo,
für die S65 Ansteuerung reicht doch der Stecker PL3(SPI)?
LCD.. muss dann doch nicht mehr herausgrführt werden?
Dein "Kontakt" auf Deiner Hompage funktioniert irgendwie
nicht(Error 80)

von Avr N. (avrnix) Benutzerseite


Lesenswert?

Die Kontake werden Drähten angelötet.
5 Leitungen zur Ansteuerung und 5 Leitungen zur Stromversorgung(
2,9V,1,8V,GND, +LED,GND_LED.

Was ist ein PL3 Stecker?

von Wigbert Picht (Gast)


Lesenswert?

So heisst der Stecker in Deiner Schaltung (Into0-Into7).Oder?

von Avr N. (avrnix) Benutzerseite


Lesenswert?

PL1 ist einen Wannenstecker für den T6963C Toshiba TLX-1391 Display der
über Flachbandkabel angeschlossen wird.

für den S65 Display - braucht ja nur 10 Ltg , wobei 5 zur Ansteuerung
sind und der Rest für die Versorung dient.

Das Toschiba Display hat mehr Anschlüsse als der S65 und sind nicht
Kompatibel.

von Wigbert Picht (Gast)


Lesenswert?

Mein reden, übrigens Cristian K. schliesst den Pin 1,8 V
an 2,9 V mit an.Seltsam?
Also SPI-Schnittstelle + Stromversorgung,das wärs für S65.
Vorschlag:Vielleicht bringst Du Dein Kontakt auf der Hompage
in Gange und wir brauchen das Forum nicht "zumüllen".
Das waren bestimmt nicht die letzten Fragen.

von Avr N. (avrnix) Benutzerseite


Lesenswert?

laut Thread, soll der 1,8V nicht connect sein, habe eine Interface mit
Spannungsteiler trozdem auf 1V8 angeschlossen geht auch auf 2,9V.
Die HP bringe ich in den nächsten Tagen in Ordung.

Die 1. Version mit dem S65 denke mal kommt mit einfachen Oszi
Aufzeichnung in den nächsten Tagen Online.
Also 10Bit Messung und Ausgabe der Werte als Graph erstmal.

von Wigbert Picht (Gast)


Lesenswert?

Prima,nun ich habe nur "Stakstromelektrik" studiert,und bin
beim Ausbau Deines Projekts sicher auf Deine Hilfe angewiesen.

von Hauke Radtki (Gast)


Lesenswert?

Der 1V8 Pin ist die Interface Spannung (also die Spannung mit denen dann
das SPI des Displays läuft) und war beim Handy eben 1,8V, man kann
jedoch eine beliebige Spannung (innerhalb der spezifikationen) dort
anschließen.

von Wigbert Picht (Gast)


Lesenswert?

Danke Hauke,
teil mir mal bitte die Spezifikation mit.Vielleicht hat jemand
doch ein Datenblatt im Schubfach.In meinen Fall wäre Scharp-version
interessant.

von Hauke Radtki (Gast)


Lesenswert?

Die Spezifikation weis ich auch nicht genau aber ich denke alles von 1V
bis 3,3V sollte gehen.

von Wigbert Picht (Gast)


Lesenswert?

Hallo AVRNix,
muss noch mal dumm fragen:Brauche was für Wechselspannung?
Du hast doch auf den Display ein Sinus "gemalt".Wird nicht
nach jeden Messvorgang ein Pixel "gemalt"?
Spannungsumschaltung? Spannungsteilerkette, bei AC Kondensator vor
und mit DC vorspannen,x Achse auf Höhe der DC einstellen(Datenpunkt
verändern)
Nun ich habe nur Erfahrung mit Nokia 3310 Display.
Oder sehe ich das zu einfach.

von Avr N. (avrnix) Benutzerseite


Lesenswert?

Du hast recht :-)

Diese Grundschaltung misst Mischspannung bis Aref.
Bei Wechselspannung muss man ein Kondensator zur Abblockung der
Gleichspannung davor schalten.

Für einfache sachen noch ein Spannungteiler der aus die 5V einen Offset
von 0 auf 2,5V macht ( 2 x 10k Widerstände z.B.).

Zur Messung: Es wird eine Messreihe erstellt und auf dem LCD
ausgegeben.

Meine HP: www.comwebnet.de Kontakt sollte gehen dort gibts auch ein
Forum

von Avr N. (avrnix) Benutzerseite


Lesenswert?

So ich habe auf meiner Homepage unter Projekte/Osziloskop mit einen S65 
dieses auch auf einen S65 - Display portiert.

von Avr N. (avrnix) Benutzerseite


Lesenswert?

Die Adresse zum einfachen Osziloskop auf der Homepage hat sich geändert.

Die ist neu:

http://comwebnet.weimars.net/index.php?option=com_content&task=view&id=8&Itemid=49

eine SRAM 32 K Erweiterung ist in Planung, sowie Zusätze.
eine 8Bit 1MSPS Sampling ADC Ersatz findet man im Forum auch weitere 
Infos dort:

http://comwebnet.weimars.net/forum/forumdisplay.php?fid=20


Frohes neues Jahr 2008!
 AVRNix

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.