PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 192x64 GLCD an ATMega32 -- wie?



MiniMax
25.02.2010, 15:28
Hallo Zusammen,
ich möchte mir dieses GLCD Display besorgen. (http://cgi.ebay.de/192-x-64-Blue-Graphic-Display-KS0108-Controller_W0QQitemZ370308472727QQcmdZViewItemQQpt ZLH_DefaultDomain_146?hash=item56381adf97)

Bevor ich dieses tue, möchte ich aber gerne noch ein paar Fragen los werden:

Wie kann ich dieses LCD Ansteuern? So? (http://www.avr-praxis.de/forum/showpost.php?p=4861&postcount=2)

Wie kann ich z.B. dort Bilder drauf anzeigen lassen?

Und ich habe mal gelesen, dass JTAG aktiviert sein muss?!? Ich benutze aber ISP? Oder kann ich beides Aktiviert haben?

Ich hoffe ihr könnt mir Helfen \:D/

Jaecko
25.02.2010, 15:39
Da der Controller ein KS0108 ist, ist die Ansteuerung auch relativ einfach. Wenn du nen Code für ein 128x64-LCD hast (2 Enable-Leitungen), dann lässt sich der auch auf ein 192x64 (3 Enable) umbauen.
Bascom wird aber glaub ich mit dem 3-Chip-LCD Probleme haben; müsste man also irgendwie was drum rum bauen.

Bilder anzeigen geht natürlich; dafür sind die Dinger ja da.

JTAG/ISP haben mit der Ansteuerung des LCD nix zu tun. Das ist, wie du den Controller programmieren willst. Ich würd ISP bevorzugen, das dann die Pins frei sind, auf denen normalerweise JTAG liegt (also JTAG deaktivieren)

MiniMax
25.02.2010, 15:44
Hi, ah ok. und wie bekomme ich jetzt die 3 Enable hin? Hast du oder ein anderer einen Vorschlag?kann ich nicht einfach "CE3" Schreiben ?

Jaecko
25.02.2010, 16:20
Ob CE3 akzeptiert wird, müsstest einfach mal probieren.
Wenns nicht geht... hm... nen Code für C hätt ich, der wär relativ schnell umgebaut.

In Bascom würd ich ne eigene Funktion schreiben. Wenn der Inhalt von x = 0 bis x = 127 geht, dann ganz normal an die Display-Funktion weiterleiten. Ist der x-Wert 128...195 müsste man ne 3. Enable von Hand schalten (die anderen beiden deaktivieren; z.B. als Input setzen oder per Hardware mit Logikgatter) und vom x-Wert 128 abziehen; so als wär es also ein 2. Display mit 64x64.

Nachtrag: Über ein Logikgatter wärs sogar geschickter; also Enable3 fürs Display und gleichzeitigt zum wegschalten der anderen beiden Enables.

linux_80
26.02.2010, 07:43
Moin,

in Bascom ist schon länger eine extra lib dafür mit dabei:
glcdKS108-192x64.LBX

MiniMax
26.02.2010, 14:48
Hi, ah ok danke! Dann bestelle ich mir das ding mal!
thx @ all

BurningWave
26.02.2010, 17:27
http://www.mikrocontroller.net/topic/12202

Hier kannst du eine sehr gute Lib herunterladen (in C).

mfg

Berny1966
27.02.2010, 17:36
Wenn ich mal dazwischenfragen darf?

Ich hab auch dieses Display und es für ca. 3 Sekunden mit 12V anstatt 5V
belegt. Überlebt ein solches Display das?
Da ich blutiger Anfänger bin hab ich es noch nicht am laufen gehabt.
Versuch hier mit einem Atmega32 und den Board von Pollin was zu machen.

BurningWave
27.02.2010, 18:00
Atmega32


JTAG deaktiviert, richtige Taktung?

Berny1966
27.02.2010, 18:44
Atmega32


JTAG deaktiviert, richtige Taktung?

Hab das mit den Fuse-Bits mal getestet.
Über PonyProg2000 JTAG deaktiviert. Dann noch CKSEL0 aktiviert.
Laut einer vorliegenden Info sollen alle CKSEL und CKOPT aktiviert werden
um den externen Quartz als Taktgeber zu nutzen.
Seitdem erkennt PonyProg den Atmega nicht mehr!
Was ist passiert?

MiniMax
28.02.2010, 09:32
Hi,

Bei PonyProg muss das dann so aussehen, dass bei CKSEL 0-3
kein Häkchen gesetzt ist.

Wenn dus genau anders rum gemacht hast, dann hast du
den Mega16 auf externen Taktgeber programmiert. Einfach
einen Takt an XTAL1 anschliessen und die Fuses entsprechend
umstellen.

Falls du keinen Frequenzgenerator hast must du dir einen bauen
- mit NE555 einen aufbauen

Um auf einen Exteren Quarz mit 16 MHz umzustellen musst du folgendes
einstellen

CKSEL0 1
CKSEL1 1
CKSEL2 1
CKSEL3 1
CKOPT 0
SUT0 1
SUT1 1

1 = not Programmed = kein Haken
0 = Programmed = Haken

Berny1966
28.02.2010, 14:54
@MiniMax

Danke ersteinmal.

Ich hab hier ein Atmega8 Board als Taktgeber genommen.
Am Pollin-Boart ist ein 16MHz Quarz verbaut. Stört der nicht?

Kannst du mir genau erklären wie ich vorgehen soll?

Ich habs schon ausprobiert bekomm aber immer von PonyProg2000
eine Meldung: Device missing or unknow device (-24).

Edit:
Hab es nochmal durchgetestet, konnte wieder die Grundeinstellung herstelle.
Danke nochmals!

Versuche jetzt den externen Quarz als Taktgeber einzustellen.

MiniMax
28.02.2010, 15:42
Hi,
Verstehe ich das Richtig, dass der Mega 8 auf dem Pollin Board sitzt? Wenn ja, dann ist der Quarz auf dem Pollin Board für den Mega8 da!
Wie du vorgehen sollst, habe ich dir doch bereits Geschrieben:

1. Takt ranhängen
2. Mit Pony Prog verbinden
3. Fusebit so wie oben erklärt einstellen
4. µC mit Quarz versehen, und Glücklich werden

das müsste es gewesen sein!

Berny1966
28.02.2010, 16:26
Hi,
Verstehe ich das Richtig, dass der Mega 8 auf dem Pollin Board sitzt? Wenn ja, dann ist der Quarz auf dem Pollin Board für den Mega8 da!
Wie du vorgehen sollst, habe ich dir doch bereits Geschrieben:

1. Takt ranhängen
2. Mit Pony Prog verbinden
3. Fusebit so wie oben erklärt einstellen
4. µC mit Quarz versehen, und Glücklich werden

das müsste es gewesen sein!

Hab zwei Boards!

Der Quarz ist jeweils gelötet.
Aber es funktioniert ja jetzt, Danke.

Ich hab wahrscheinlich den Fehler gemacht den Takt erst nach dem
Start von PonyProg2000 dranzuhängen.

MiniMax
28.02.2010, 16:36
Ja das ist klar dass das vorher gemacht werden muss! Aber gut wenn es entlich läuft! =D>

Berny1966
28.02.2010, 16:50
Aber nochmal um auf das GLCD zurückzukommen.

Wie oben schon mal geschrieben habe ich ausversehen an meinem
Display 12 statt 5 Volt rangehängt. Verträgt er das ? Wahren ca.3-4 Sek.

Nicht wenn es defekt ist und ich Programmier mir hier ein Ast weil
es nicht läuft.

BurningWave
28.02.2010, 18:21
12V ist schon sehr viel für so ein GLCD und 3 - 4 Sekunden sind auch nicht gerade wenig. Ob das Display nun wirklich kaputt ist kann dir sicher niemand so genau sagen, weil hier der Zufall auch eine kleine Rolle spielt.

Ich denke, dass das Display kaputt ist, kann es aber nicht sicher sagen, du kannst auch Glück gehabt haben.

Hast du JTAG deaktiviert und in deinem Programm die richtige Taktfrequenz eingestellt?

Welche Lib benutzt du? Oder hast du alles selbst geschrieben? Du kannst mal die Lib ausprobieren, die ich dir oben empfohlen habe. Die hat bei mir auf Anhieb funktioniert. Programmierst du überhaupt in C? Poste mal deinen Schaltplan? Hast du den richtigen Kontrast bei deinem Display eingestellt?

Berny1966
01.03.2010, 16:51
Wie bereits geschrieben bin ich Anfänger.

Hab bis jetzt über Bascom in Basic und auf meinen Amiga einiges in C/C++programmiert.