www.mikrocontroller.net

Forum: Projekte & Code Einfacher Osziloskop - Bascom


Autor: Avr Nix (avrnix) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Avr Nix (avrnix) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Avr Nix (avrnix) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Noch ein Bild - leider ist der Kontrast schlecht.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht 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....
und hier einsetzen, anpassen und abspeichern:
http://www.mikrocontroller.net/wikisoftware/index....

Autor: herbört (Gast)
Datum:

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

Autor: Avr Nix (avrnix) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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! :)

Autor: Sigma-N (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Avr Nix (avrnix) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Benedikt (Gast)
Datum:

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

Autor: Avr Nix (avrnix) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie ?

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Indem man einfach den ADC Prescaler entsprechend einstellt ?

Autor: Avr Nix (avrnix) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der steht auf Automatisch- ergo - müsste der ja die 40KHz bringen

Autor: Benedikt (Gast)
Datum:

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

Autor: Avr Nix (avrnix) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Benedikt (Gast)
Datum:

Bewertung
-1 lesenswert
nicht 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.

Autor: Avr Nix (avrnix) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: ,,,, (Gast)
Datum:

Bewertung
1 lesenswert
nicht 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...

Autor: Ronny Schmiedel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Avr Nix (avrnix) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ronny Schmiedel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ronny Schmiedel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Malte __ (malte) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Avr Nix (avrnix) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Malte __ (malte) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Wigbert Picht (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Avr Nix (avrnix) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Wigbert Picht (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Avr Nix (avrnix) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Bestückung

Autor: Avr Nix (avrnix) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
die Platine

Autor: Avr Nix (avrnix) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
der Schaltplan

Autor: Wigbert Picht (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Avr Nix (avrnix) Benutzerseite
Datum:

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

Autor: Wigbert Picht (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Wigbert Picht (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: Avr Nix (avrnix) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Wigbert Picht (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So heisst der Stecker in Deiner Schaltung (Into0-Into7).Oder?

Autor: Avr Nix (avrnix) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Wigbert Picht (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Avr Nix (avrnix) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Wigbert Picht (Gast)
Datum:

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

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Wigbert Picht (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hauke Radtki (Gast)
Datum:

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

Autor: Wigbert Picht (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Avr Nix (avrnix) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Avr Nix (avrnix) Benutzerseite
Datum:

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

Autor: Avr Nix (avrnix) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Adresse zum einfachen Osziloskop auf der Homepage hat sich geändert.

Die ist neu:

http://comwebnet.weimars.net/index.php?option=com_...

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.