Hallo Leute, zur Zeit möchte ich ein GLCD "NANYA LMC 76S026A" mit der Auflösung 128_128 mit T6963-controller in Betrieb nehmen und steuere es über ein MCP23S17-Port-Expander über den SPI-Bus. Die Unterprogramme für den MCP23S17 sind bereits mit anderen GLCDs oder LCDs erprobt und werden als Einwandfrei angenommen. SPI läuft vorerst auf 62 kHz. Schneller geht auch. Leider erscheint auf dem Nanya-GLCD keinerlei Schrift. Es erscheint überhaupt nichts. Nur beim Einschalten erscheint eine Linie, die nach dem Initialisieren weg ist. Der Kontrast ist so weit eingestellt, daß man eine leichte Verdunkelung der Bildfläche erkennen kann. Stärkerer Kontrast bringt ebenfalls keine Strukturen. Was seit Anfang an funtioniert, ist die Ausgabe des Status-Registers. Es erscheinen sinnvolle-Bit-Werte. Erstaunlich ist nur ein unterschiedliches Verhalten dieser Bits nach dem Programmieren per SPI-Interface des Mega88. Erst erneutes Einschalten der Betriebsspannung bringt sinnvolle Bits und läßt das Programm wieder laufen. Programmierstecker sei abgezogen. Auf dem Display ist ein 8k-RAM verbaut. Das heißt die Adressen, die man für Text, Grafik und CG-RAM vorgibt, müssen in diesem Bereich sinnvoll angegeben sein. Genau an dieser Stelle kenne ich mich nicht wirkich aus. Das bedeutet, daß meine bisherigen Versuche erfolglos waren trotz Studium des Datenblattes und diverser zusätzlicher Dokumente. Vielleicht kann mir jemand die Vorgaben für den T6963-Controller speziell für das 128x128 GLCD erklären bitte oder es findet jemand im Codebeispiel einen Fehler. Verwendet habe ich diese Datenblätter: http://www.pollin.de/shop/downloads/D120993D.PDF Datenblatt allgemein: http://www.lcd-module.com/fileadmin/eng/pdf/zubehoer/t6963c.pdf Zusatzinfos/Erklärung, was im Datenblatt genau gemeint ist: AN-029-Toshiba_T6963C.pdf https://www.sparkfun.com/.../AN-029-Toshiba_T69... Notizen eines umbekannten Progammierers zu einem speziellen von ihm programmierten Display: http://www.krafti.co.uk/steve/t6963c.htm T6963C Data PDF My interpretation of the T6963 data sheet - 2nd draft revised 4/98 in Abode Acrobat format. Programmbeispiele von hier: Beitrag "LCD Library T6963c" mit freundlichem Gruß
Schaltung herzeigen! Du weißt, dass dieses Display -15V braucht, um irgendetwas anzuzeigen, und dass es im Gegensatz zu anderen T6963-basierten Displays keinen integrierten DC-DC-Wandler hat? Ich frag ja nur. fchk
Hallo, ja, weiß ich und die -14,5 ... -16 Volt kommen aus dem daneben aufgebauten DC-Wandler auch raus. Diesen Punkt wollte ich mit diesen Sätzen hier bereits abgehandelt wissen: "Der Kontrast ist so weit eingestellt, daß man eine leichte Verdunkelung der Bildfläche erkennen kann. Stärkerer Kontrast bringt ebenfalls keine Strukturen." Sonst hätten diese beiden Sätze keine Berechtigung. Die Schaltung ist nicht geheim, jedoch nicht als vorzeigbares Bild vorhanden, da es sich um ein Einzelstück handelt. Im Prinzp erstelle ich die Schaltungen immer als Tabellen, die die Verbindungen zwischen den Sockeln darstellen. Am selben PORT-Expander kann noch im anderen Sockel ein 128x64 GLCD mit KS0108-controller angeschlossen werden, das einwandfrei geht. Die Zuordnung der Signale erfolgt so wie in den defines angegeben. Siehe auskommentierter Teil am Ende des Programmbeispiels. Im Wesentlichen geht es mir um das richige Einstellen der Adressbereiche. Es ist eines mit 8 k RAM. mfG
Also, mal davon ausgehend, dass die Ports alle richtig verknubbelt sind und die Timings stimmen, ist die Aussage, dass die Linie nach dem Initialisieren verschwindet schon mal recht gut, denn das heisst, dass das Display zumindest "etwas" verstanden hat. Deinen Code hab ich überflogen und kann damit nix anfangen, zu wirr. Daher hab ich auch nicht weiter danach gesucht, ob du das RAM des Displays löschst. Falls nicht, solltest du nämlich nach dem Aktivieren der Ausgabe (Text- und/oder Grafik-RAM) völlig wirre Pixel oder eben Texte sehen (so war's zumindest immer bei meinen Displays), d.h. falls ich das löschen übersehen habe, nimm es mal raus und schau ob was angezeigt wird. Ansonsten gibt's bzgl. der RAM-Aufteilung an sich keine Vorgaben, die kannst du dir selbst festlegen. Ausgehend von 8x8 Pixeln für die Schriftgröße wären das also bei 128x128 Pixeln Displaygröße: (128 x 128) / 8 = 1024 Byte für Grafikbereich => 0x0400 (128 / 8) x (128 / 8) = 256 Byte für Textbereich => 0x0100 Du kannst frei wählen, ob du nun z.B. den Grafikbereich an den Anfang schiebst, dann den Text und den Rest zur freien Verwendung, oder zuerst freier Platz und dann Text-/Grafik. Kannst meinetwegen auch Text, dann freier Bereich und dann Grafik, aber das wär n bisschen unsinnig, zumal du für den CharacterGenerator ja evtl. auch noch Platz brauchst. Ich habe das RAM i.d.R. immer von hinten aufgefüllt, also freier Platz beginnend bei 0x0000, somit brauch ich nicht noch groß Offsetrechnung machen, wenn ich den freien Bereich für Applikationsvariablen benutze (Offsetrechnung musst du zwar für Grafik-/Text eh machen, aber wenigstens einen Offset kann man sich dann sparen). Die Berechnungen dazu sind ja auch relativ einfach. Die TextArea entspricht der Anzahl der horizontalen Pixel geteilt durch die horizontale Zeichenbreite, bei FS = 0 als 128 / 8 => 16. Dasselbe gilt für die GraphicArea. Kannst mal hier reingucken: http://www.hantronix.com/files/down/t6963app.pdf Da steht ne passende Initialisierung drin - musst sie halt für deine Anwendung passend füllen (auf den Displaymode achten!). Das ist die Grundinitialisierung, für CG etc. musst du dann entsprechend erweitern, aber damit solltest du etwas sehen. Falls du wie oben erwähnt doch das RAM vor dem Einschalten löschst, dann müsstest du spätestens dann etwas sehen, wenn du den Adresspointer auf Grafik-/Textbereich setzt und etwas hineinschreibst (ggf. mit AutoWrite-Befehl). Gruß Ralf
Ralf schrieb: > (128 x 128) / 8 = 1024 Byte für Grafikbereich => 0x0400 2048 Bytes. Besser is das...
Alles nach Datenblatt angeschlossen, auch mit Abblockkondensatoren? Stromversorgung stabil? Gibt es Compilerwarnungen? 50ms Startup time eingehalten? Wenn ein KS0108 geht und ein T6963 nicht, dann ist das doch ein Hinweis. Vielleicht habe ich das auch nicht verstanden. Schaltplan und vollständiger Programmcode wäre nett.
:
Bearbeitet durch User
Horst Meier schrieb: > Ralf schrieb: >> (128 x 128) / 8 = 1024 Byte für Grafikbereich => 0x0400 > > 2048 Bytes. > Besser is das... Öhm... war nur n Test ob er aufpasst :) Ist natürlich falsch, mein Fehler, sorry. Ralf
Hallo, erst Mal vielen Dank für die Zuschriften und den neuen Link! Mir sind die Einstellungen jetzt eher klar. Zu Testzwecken habe ich mal einen Teil des RAMs mit aufsteigenden Zahlen beschreiben und die gelesenen Werte wieder anzeigen gelassen auf dem Terminal. (siehe Dateianhang) Wie man leicht erkennt, erscheinen die Zahlen 0..63 drei Mal hintereinander, dann erfolgt ein Sprung auf 192. Vermutung: Kurzschluss der Datenleitungen D6 und D7, deshalb erscheinen Zahlen >63 nicht. Erst wenn D6 und D7 beide eingeschaltet sind, erscheinen wieder korrekte Angaben. Umstände: 20 plg Flachbandkabel mußte an die Platine angelötet werden, Lötraster kleiner als 2,54mm. Als Löter wurde der "Optimist erster Güte, gutgelaunt, Liedchen trällernd" angestellt. Ursache: Kein Mikroskop beim Löten verwendet, elektrische Endkontrolle der Lötung nicht hinreichend gut. Verfahren zum Anlöten des Flachbandkables an schmale Lötpins mangelhaft. Auswirkung: Da der Kurzschluß direkt am 128x128-display sitzt, konnte das wahlweise sparat angeschlossene andere 128x64-Display trotzdem funktionieren. Wegen dem Kurzschluß werden auch Befehle verfälscht. Vermutlich deshalb keine Anzeige auf dem Display. Abhilfe: Beseitigung des Kurzschlusses, Personal unterweisen, neues Anfordern vom Verleiher. Verleiher wechseln. Keine günstigen Displays einkaufen. Vorgaben der Einkaufsabteilung neu formulieren. Mehrkosten steuerlich absetzen. schönes Neues Jahr! mit freundlichem Gruß
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.