Atmega8 und KS0108

sebo1989

Neues Mitglied
25. Nov. 2009
39
0
0
Sprachen
Hallo,

ich hoffe ihr könnt mir helfen!
Ich versuche seit einigen Wochen ein Anag Vision AV128641 mit meinem Atmega8 zum laufen zu kriegen!

http://www2.produktinfo.conrad.com/datenblaetter/175000-199999/181677-da-01-en-GRAFIK_MODUL_STN_GELB_GUEN_GELB_128X64.pdf

Dataport = Portd , Controlport = Portb , Ce = 0 , Ce2 = 1 , Reset = 2 , Enable = 3 , Rd = 4 , Cd = 5 , Mode = 8

Ich habe schon das ganze Internet durchsucht und sämtliche Programmbeispiele ausprobiert.

Vom Display kommt ausser einem Flackern keine Rückmeldung.
Ich bin langsam echt verzweifelt.
Was mache ich falsch?

Mit freundlichen Grüßen
Sebastian
 
Hallo Sebastian,

willkommen im Forum.

Leider habe ich mit LCD's noch nicht soviel gemacht, deswegen überlasse ich die Hilfe mal den Spezialisten. Aber lies doch mal diesen Thread Probleme mit LCD's am Mega8 oder Cassios Beiträge zur LCD- Ansteuerung. Und stelle doch bitte den ganzen (relevanten) Code ein; Bascom, nehme ich an. Dann ist es einfacher, zu helfen.


Grüsse,

Michael
 
Hallo Sebo!

Da muss ich Grandpa recht geben....
Gerade bei einem Grafikdisplay wären weitere Infos zur Fehlersuche von Nutzen. ;)

Das du in BASCOM porgrammierst sehen wir ja schon an der Config,
nun fehlt noch der Anschlussplan, dein kompletter BASCOM-Code und vielleicht noch ein Foto.
Dann gestaltet sich die Fehlersuche auch wesentlich einfacher.

Du kannst aber auch selbst erst mal HIER schauen, vielleicht bringt dich das ja schon weiter? :)

Schöne Grüße und willkommen im AVR-Praxis Forum! :ciao:

Cassio
 
Hallo,

also aus dem Datenblatt geht schon mal hervor, das das Grafik-LCD den
Controller KS0108 (Samsung) drin hat (und zwar anscheinend 2Stk davon).
Der KS0107 ist ein 64Ch-Common-Treiber. Aber ich schätze mal, das hast
du auch schon durchgekaut ...
Aber bei GLCDs und BASCOM da ist dann bei mir leider auch erst mal Schluß ;)

Gruß
Dino
 
Guten Morgen!

Ich bin gerade noch in der Schule.
Erstmal den Code:

Code:
'Autor: S. Gosselke
'Zweck: LCD
'-------Festlegungen------------------------------------------------------------

$regfile = "m8def.dat"
$crystal = 3686400                                          'Quarz: 3,6864 MHz
$lib "lcdsg.LBX"
$baud = 19200
$hwstack = 32
$swstack = 10
$framesize = 40
Wait 2

Print "Config"
Config Graphlcd = 128 * 64sed , Dataport = Portd , Controlport = Portb , Ce = 0 , Ce2 = 1 , Reset = 2 , Enable = 3 , Rd = 4 , Cd = 5 , Mode = 8


Dim X As Byte , Y As Byte



Print "Cls"
Cls

Wait 1

Setfont Font8x8

Lcdat 1 , 1 , "123"

Lcdat 2 , 1 , "123" , 1                                     ' will inverse the text


Wait 1
Line(0 , 0) -(127 , 64) , 1                                 'make line
Wait 2
Line(0 , 0) -(127 , 64) , 0                                 'remove line

For Y = 1 To 20
   Circle(30 , 30) , Y , 1
   Waitms 100
Next

Wait 1
Glcdcmd &H3E , 1 : Glcdcmd &H3E , 2                         ' both displays off
Wait 1
Glcdcmd &H3F , 1 : Glcdcmd &H3F , 2                         'both on



'Showpic 0 , 0 , Plaatje                                     'show a comnpressed picture
End                                                         'end program


$include "font8x8.font"


'Plaatje:
'include the picture data
'$bgf "bild1.bgf"

Das "showpic" musste ich erstmal auskommentieren weil die Demo von Basom nur 4KB Code unterstützt.

PortD vom Atmega ist mit den Datenleitungen am Display verbunden.
PortD.0 mit DB0 usw.
PinC.0 = CS1 // PinC.1 = CS2 // PinC.2 = RST // PinC.3 = E
Die restliche Config von den Steuerleitungen kann ich erst heut Mittag posten, wenn ich wieder zuhause bin, dann gibts auch Bilder.

EDIT: Hab noch was vergessen, die $lib "lcdsg.LBX" ist die gleiche wie die $lib "glcdKS108.lbx", unterschied sind nur die geänderten Wartezeiten aufgrund des geringen Taktes. Mein 14MHz Quarz ist auf dem Weg.

Schonmal vielen Dank für die zahlreichen Antworten

MfG
Sebastian
 
Hier das Bild und die Belegung des Controlports.

PinC.0 = CS1
PinC.1 = CS2
PinC.2 = RST
PinC.3 = E
PinC.4 = R/W
PinC.5 = D/I

MfG
Sebastian
 

Anhänge

  • glcd.JPG
    glcd.JPG
    35,9 KB · Aufrufe: 61
Hallo Sebo!

Danke, dass du unserer Aufforderung nach mehr Input nachgekommen bist. ;)

Jetzt musst du mir nur noch erzählen, was du mit einem Flackern meinst. :hmmmm:

Was macht das Display denn nun genau.... und was macht es nicht?


Nur mal interessenhalber.... Hast du die "glcdks108.lbx" denn auch schon mal ausprobiert?
Ich benutze zum Testen nämlich auch immer nur einen 4MHz Quarz. ;)


Gruß,
Cassio
 
Also das Flackern sind denke ich nur kleine schwankungen in der Stromversorgung;)
Also es ist nur wahr zu nehmen, wenn man schräg auf das Display guckt.

Ansonsten macht das Display nichts:cray:

Natürlich hab ich zuerst die Standart lib ausprobiert, als es damit nicht funktionierte hab ich im Internet gelesen, dass ich mal die Pausenzeiten verlängern sollte.

Die Fusebits müsste ich richtig gesetzt haben, eine kleine LED-Blinkschaltung funktioniert und auch im richtigen Takt.

MfG
Sebastian
 
Hi Sebo !

Klingt sehr merkwürdig...
Ich kann mir das immer noch nicht so richtig vorstellen.

Flackern, Schwankungen, leicht sichtbar? :hmmmm:

Den Kontrast kannst du aber schon vollständig aufdrehen, so dass das Display komplett mit "Pixeln" bedeckt ist?

Ach so...
Es ist ja bestimmt nur "Kosmetik", aber kommt auf einen Versuch an.
Stell doch mal das
$lib "lcdsg.LBX"
einiges tiefer ein. Quasi kurz vor der Config für das LCD.
Und wenn du einmal dabei bist, dann entferne auch gleich das
Wait 2
vor "Print Config"

Nutzt du eine serielle Verbindung, um die Printmeldungen am PC zu verfolgen, oder warum hast du die Print-Anweisungen im Code eingepflegt?

Gruß,
Cassio
 
Hi,

Klingt sehr merkwürdig...
Ich kann mir das immer noch nicht so richtig vorstellen.

Flackern, Schwankungen, leicht sichtbar? :hmmmm:
ich könnte mir schon vorstellen was das sein könnte (wenn man nur schräg
aufs Display schaut).
Evtl ne Energiesparlampe/Neonröhre/... zur Beleuchtung ?
Ich tippe auch Schwebungseffekte zwischen der Wiederholfrequenz des
Displays und den 100Hz mit der eine Leuchstoffröhre leuchtet.
Oder die Wiederholfrequenz des Displays ist wegen langsamem Flüssigkristall
so niedrig das man es flackern sieht (10-15Hz oder so) ...
Irgend so etwas könnte es sein.

Gruß
Dino
 
Hi Sebo !

Klingt sehr merkwürdig...
Ich kann mir das immer noch nicht so richtig vorstellen.

Flackern, Schwankungen, leicht sichtbar? :hmmmm:

Den Kontrast kannst du aber schon vollständig aufdrehen, so dass das Display komplett mit "Pixeln" bedeckt ist?

Ach so...
Es ist ja bestimmt nur "Kosmetik", aber kommt auf einen Versuch an.
Stell doch mal das
$lib "lcdsg.LBX"
einiges tiefer ein. Quasi kurz vor der Config für das LCD.
Und wenn du einmal dabei bist, dann entferne auch gleich das
Wait 2
vor "Print Config"

Nutzt du eine serielle Verbindung, um die Printmeldungen am PC zu verfolgen, oder warum hast du die Print-Anweisungen im Code eingepflegt?

Gruß,
Cassio

Hallo,
Code wird gerade übertragen, dauert etwas;)
Nein, den Kontrast kann ich nicht soweit drehen, dass die pixel sichtbar sind.
Hab mich aber an die Anleitung gehalten und ein 10K Poti zwischen + und - geschaltet und den Schleifer auf den Kontrast.

Hab deine Änderungen beachtet und schieb das ganze gerade auf den Chip.
Muss gestehen, ich hab den Code im Inet gefunden und einfach so übernommen, halt nur kurz die Pinbelegung geändert.

Ja, also Beleuchtung dienen mir hier 3 Leuchtstoffröhren mit EVG.

EDIT: Code ist im Chip aber es tut sich immer noch nichts :(
Gruß Sebastian
 
Ahh es tut sich was!

Das Display gibt wirr Pixel aus, mal auf dem ganzen Display, mal nur rechts oder links.

Ich mache mal eben Fotos und lade sie hoch.

MfG
 
Hallo,

Ja, also Beleuchtung dienen mir hier 3 Leuchtstoffröhren mit EVG.
also mit sehr hoher Wahrscheinlichkeit irgendwelche Effekte von den 100Hz des
Röhren-Lichts und der Wiederholfrequenz des LCD-Controllers.
Jetzt weißt du wenigstens, das dein LCD in Ordnung ist :p
Auf jeden Fall läuft der Controller auf dem GLCD und steuert das Display an.

Jetzt muß nur noch deine eigene Ansteuerung laufen ;)
Das kommt aber auch noch ...

Gruß
Dino
 
Also jetzt versteh ich gar nciht mehr,
hab den Controller jetzt ca. 5mal neu gestartet, 3mal hat er mir diese wilden Pixel dargestellt und jetzt gibt das Display wieder gar nichts aus.
Naja erstmal ein Foto des Displays, leider etwas überblendet.
 

Anhänge

  • glcd2.JPG
    glcd2.JPG
    21,5 KB · Aufrufe: 37
......und ein 10K Poti zwischen + und - geschaltet und den Schleifer auf den Kontrast.

Hi Sebo!

Was meinst du mit: Poti zwischen + und - ? :hmmmm:

Das Display erzeugt die negative Kontrastspannung selbst!
Das Poti gehört also zwischen Vout (Pin 18) und VDD (+5V bzw. Pin 2).
Der Schleifer geht dann an VLCD (Pin 3)!

Hast du das so gemacht?

Gruß,
Cassio
 
Ja, genau das meinte ich.

Also das Display macht diese Pixel wenn ich D/I mit der Hand berühre also pin4.

CS1 und RST stehen dauerhaft auf HIGH.

Im Datenblatt ist über RST ein Strich, bedeutet das, dass ich sie Signalleitung invertieren muss?

Gruß
Sebastian
 
Hi !

OK, dann bin ich wegen des Kontrastpotis nun schon mal beruhigt! ;)

Dann sind wir nun also wieder beim Anfang. :rolleyes:

Hast du alle Anschlussdrähte (Lötbrücken) noch einmal genau überprüft?

Ich würde auch bei der eigentlichen Lib bleiben, also die "glcdks108.lbx" benutzen.

Hast du mal in BASCOM unter "Options/Compiler/LCD" einige Ports eingestellt?
Auch wenn diese nicht alle komplett sind und ggf. nicht richtig sind.... aber es müssen Ports sein, die es auf dem Mega8 auch gibt (also z.B. nicht PortA).


Grüße,
Cassio
 
Hi Sebastian,

Im Datenblatt ist über RST ein Strich, bedeutet das, dass ich sie Signalleitung invertieren muss?
das bedeutet das der Anschluß "Low aktiv" ist.
Also GND erzeugt einen Reset und Vcc (+5V) ist für die normale Arbeit.
Genau so wie beim Atmel. Mit nem Taster nach GND wird der Reset ausgelöst.
Das sieht man in manchen Anleitungen auch so ... /RST oder !RST oder so.

Ich schreib es zB immer mit dem / davor in den Anleitungen wenn man nur
ASCII zur Verfügung hat.

Gruß
Dino
 
Hast du alle Anschlussdrähte (Lötbrücken) noch einmal genau überprüft?

Ich würde auch bei der eigentlichen Lib bleiben, also die "glcdks108.lbx" benutzen.

Hast du mal in BASCOM unter "Options/Compiler/LCD" einige Ports eingestellt?
Auch wenn diese nicht alle komplett sind und ggf. nicht richtig sind.... aber es müssen Ports sein, die es auf dem Mega8 auch gibt (also z.B. nicht PortA).


Grüße,
Cassio

Hi,
hab gerade nochmal alle Anschlüsse überprüft.
Okay, habs gerade mit der "glcdks108.lbx" versucht, kein Unterschied.
"Options/Compiler/LCD" hab ich mal ausgeführt und alle Ports mal eingestellt sind also alle verfügbar. Hab auch vorher im Skript nachgelesen, ob ich alle Ports so benutzen kann, müsste so gehen!

Gruß
Sebastian
 
Hi Sebastian,


das bedeutet das der Anschluß "Low aktiv" ist.
Also GND erzeugt einen Reset und Vcc (+5V) ist für die normale Arbeit.
Genau so wie beim Atmel. Mit nem Taster nach GND wird der Reset ausgelöst.
Das sieht man in manchen Anleitungen auch so ... /RST oder !RST oder so.

Ich schreib es zB immer mit dem / davor in den Anleitungen wenn man nur
ASCII zur Verfügung hat.

Gruß
Dino

Okay, danke!
Weiß der Atmega denn, dass Reset "Low aktiv" ist?

Gruß Sebastian
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)