Hallo.. ich komm einfach nicht weiter und hab nun auch schon fast das ganze Forum hier durchgelesen - scheitere aber daran, dass irgendwie alles richtig scheint, mein Display aber weiss bleibt, der Reset passiert (kurz eine weisse Linie), aber danach alles hell. Koennt ihr mir helfen? also: Ich hab ein 128x64 Display (ZL12864C2 von Zhongli) [blau/weiss] mit T6963c-Controller und einen PIC16F877 (siehe Sourcecode, den ich an einen Code hier aus dem Forum angelehnt habe). Angeschlossen ist es an PORTA [die Steuerleitungen] und PORTC [die Datenleitungen]. Das Display selbst hat folgenden Anschluss: 1 = Frameground 2 = GND 3 = Vcc (+5V) 4 = Vee (NC when single +5V in use) 5 = /WR 6 = /RD 7 = /CE 8 = C/D 9 = /RST 10-17 = DB0..DB7 18 = FS 19 = LED A 20 = LED K Ich habe Pin4 zunaechst nicht angeschlossen, denn scheinbar "braucht" das Display die Vee nicht (es liegen -5V an diesem Pin an, wenn ich +5V an Vcc lege). Der Reset-Eingang ist ueber eine RC-Schaltung realisiert. Nun soll mein Programm das Display initialisieren und dann ein X ausgeben und mit blinkendem Cursor auf mich warten... ich sehe kurz, dass das Display ein wenig flackert [wenn man es schraeg haellt] aber mehr auch nicht. Danach ist es wieder strahlend weiss und gut. Stelle ich das Programm ein bisschen um, so dass er permanent einen Buchstaben ausgibt > mainlp: > func disp_writeChar, #'X' > goto mainlp dann fuellt sich das Display auch mit X'en, die aber sehr sehr schwach gegenueber dem weissen Hintergrund dunkler sind und das Display zeigt auch an jeder Text-Position dieses X. Der Cursor blinkt dann allerdings endlich (leider auch sehr sehr schwach) Tja und zu guter letzt; ich hab das Display auch an den Parallelport meines Rechners angeschlossen und gehofft, dass eins der LCD-Programme es zum Laufen bekommen, aber auch hier tut sich dabei mal genau garnichts ausser, dass das Display auch weiss wird. [hier hatte ich nun auch mal -12V an das Vee gelegt(aus dem Rechnernetzteil), ohne dass sich irgendwas veraendert hatte] Brauche da mal einen Tip. Ist das Display kaputt oder gibts noch irgend- eine Hoffnung? Rene.
Hast du ein Datenblatt von dem Teil ? Ich vermute das da ein Poti nach GND oder VCC angeschlossen werden muss. Wie willst du sonst den Kontrast einstellen. Der ist bei dir scheinbar falsch. >hier hatte ich nun auch >mal -12V an das Vee gelegt Autsch !
hier das Datenblatt.. (dieses hatte mir der Verkaeufer geschickt) na gut, sollten dann wohl am Vee wohl doch nur max. -7V angelegt sein, aber irgendeine "Reaktion" des Displays hatte ich schon erwartet - oder "funktioniert" der Rest des Displays etwa garnicht wenn Vee nicht passt? (und warum sagt das Datenblatt dann [NC when single +5V in use])
hier noch das original DB vom Hersteller [leider kann ich nicht viel Chinesisch, aber die Angaben kann man ja lesen und passen zum anderen DB]
Hat das Ding ein Poti auf der Platine ? Irgendwie muss der Kontrast doch einstellbar sein. Im Datenblatt steht dazu einfach nichts. >oder "funktioniert" der Rest des Displays etwa garnicht >wenn Vee nicht passt? Doch das funktioniert auch ohne VEE. Man sieht halt nicht viel ;) >(und warum sagt das Datenblatt dann [NC when single +5V in use]) Also wenn an VEE eine negative Spannung raus kommt ist der Wandler schon Onboard. Also besser keine externe negative Spannung einspeisen.
Hallo, LCD-Datenblätter haben oft die unangenehme Angewohnheit, nicht genau zum vorhandenen Display zu passen... Es scheint (mindestens) 2 Varianten zu geben. Die 5V only Version erzeugt offenbar Vee selbst, meist daran zu erkennen, daß irgendwo Ladungspumpen (oft die berühmten 7660) auf der Leiterplatte zu finden sind und oft auch dort ein Einstellregler für den Kontrast. Bei dieser Version ist dann Pin 4 nicht beschaltet. Ansonsten eben die übliche Version: Einstellregler ca. 20k zwischen GND und -10...-15V und dann Kontrast einstellen. Maximalspannung für Vee ist mit -30V, also -25V an Vee angegeben, Deine -12V sollten also nicht geschadet haben. Ich hatte schon Displays mit dem T6963C, die recht empfindlich auf die Kontrasteinstellung reagiert haben, zuviel Vee erzeugte erst ein negativ-ähnliches Bild, noch mehr ergab keine erkennbare Anzeige mehr. Wenn Du irgendwas erkennen konntest, ist zumindest die Ansteuerung nicht ganz falsch. Gruß aus Berlin Michael
Hallo @Michael: ja, der 7660 ist drauf, aber kein Poti :( @holger: Eben dass im Datenblatt so garnichts zu Beschaltung zu finden ist, hatte mich ja auch gestoert und deshalb dachte ich, T6963c ist T6963c. Leider tut sich nicht wirklich viel - ich hatte nur festgestellt, dass der Reset das Display auch wirklich bis auf eine helle Linie dunkel schaltet (so wie das sein soll [huebsch dunkelblau]).. Ziehe ich den /RESET dann aber wieder auf 1, wird das Display weiss und zeigt das beschriebene Verhalten... Am Anfang hatte ich noch gedacht, dass vielleicht die Pinbelegung nicht passt, aber die entsprechenden Pins des Anschlusses gehen auch an die richtigen Beinchen des T6963...
>@Michael: ja, der 7660 ist drauf, aber kein Poti :(
Belaste VEE doch mal vorsichtig, z.B. 10k von VEE nach GND,
und schau mal ob sich was tut. Poti wär natürlich günstiger.
Hallo, T6963c ist auch T6963c... Nur, das ist nur der Controller, der das Interface zwischen dem µC und der LCD-Ansteuerung erledigt. Dazu kommen je nach Displaygröße noch Zeilen- und Spaltentreiber, Spannungserzeugung (meist ein 4-fach OPV mit einer Widerstandskette an den Eingängen). Für Zeilen- und Spaltentreiber ist Vee die Betriebsspannung, Bezugspunkt ist dafür der +5V-Anschluß und gegen diesen ist sie negativ. Wenn 7660 drauf sind, wird sie also auf dem Display selbst aus den +5V erzeugt. Etwas eigenartig bleibt nur, daß es keine Einstellmöglichkeit gibt, der T6963c unterstützt da meines Wissens nach keine Softwarelösung. Damit sollte also eigentlich der Kontrast richtig sein, nur dann wäre ja was zu sehen... Das mit der Linie beim Reset ist normal, da läuft der Displayrefresh noch nicht, wenn der dann stabil ist, verschwindet diese. Vee scheint ja bei Dir an der intern erzeugten Vee zu hängen (auch wenn "nicht angeschlossen" im Datenblatt steht...), sonst würdest Du dort nicht -5V messen. Andererseits sind die -5V nach dem Datenblatt eigentlich etwas niedrig, als typisch ist 12,8V (-7,8V gegen GND) angegeben, daß würde auch eher zu meiner Erfahrung bei dieser Displaygröße passen. Es müßten eigentlich auch 2x 7660 drauf sein, mit einem wären nur -5V möglich. Gruß aus Berlin Michael
ok.. hab euch mal 3 Bilder vom Display gemacht... darauf erkennt man auch den Aufbau und die Anzeige des Displays - Ich werde mir morgen mal aus unserer Hardwarekiste ein paar Potis suchen und den Vorschlag von holger testen. Mal sehen, ob sich was tut.
Also ich habe den Vorschlag von holger mal ausprobiert - ein 10K-Poti zwischen -12V und dem Vee. Geholfen hat es leider nicht, ausser, dass das Display ganz weiss wird, wenn ich das Poti bei fast 0 Ohm habe :( Bin richtig ratlos, denn es "veraendert" sich ueberhaupt nichts, waerend man das Poti verstellt. Habt ihr noch ein paar Vorschlaege, was man mit dem Display anstellen kann? Rene.
Hallo, ich kann PIC-ASM nicht so toll lesen, nur AVR, Z80, 6502 und so, aber: Statusmask ist bei Dir 0x51, wieso? STA0 und STA1 sind die Flags für normales Read/Write-Busy, wäre also 0x03. alle anderen sind undefiniert wrnn normale Read/Write-Befehle geschickt wurden. Für die Auto-Befehle sind STA2 und STA3 zuständig, da auch nur jeweils das eine Bit, welches für das angeforderte Kommando zuständig ist. So am Rande: das Teil hat eine Busanbindug. Grundstellung ist also WR, RD, CE auf H, Rest ist erstmal egal. Wenn ich sowas mit Pin-Gewackel am AVR mache, halte ich mich zu meiner eigenen Übersicht immer an den "üblichen" Busablauf. Zum Schreiben: Port auf Output (keine Ahnung, wie der PIC das macht) Daten ausgeben C/D setzen (hier min. 100ns Zeit bis ->) CE auf L -> Jetzt ist der Baustein selektiert. WR auf L (mindestens für 80ns) WR auf H CE auf H -> Chip ist deselectiert Zum Lesen Port auf Eingang (keine Ahnung siehe oben ;) C/D setzen (hier min. 100ns Zeit bis ->) CE auf L-> Jetzt ist der Baustein selektiert. Bei Busy-Wait hier die Schleife rum RD auf L (hier min. 150ns Zeit bis ->) Daten einlesen RD auf H Schleife Ende CE auf H Fertig. So verliere ich nicht den Überblick und das ist z.B. auch die Abfolge bei MemoryMapped-Anschluß des Displays an einen µC. Was mir noch auffiel: Du setzt OR-Mode aktiv, was hast Du eingeschaltet, Text- und Grafik oder nur Text? Grafikspeicher und Textspeicher beim Init gelöscht? Habe ich mir nicht weiter angeschaut, wegen PIC-ASM lesen können... ;-) Gruß aus Berlin Michael
Hallo, ja, Pic-Assembler ist doch ein wenig "anders" als Z80-Code :) Meine Statusmaske wird in der Speicheradresse 0x51 gesichert, aber fuer die Abfrage dann auf #0x03 gesetzt [wie du beschrieben hast] - das sollte also schonmal passen. Mein Pic wird mit 20Mhz getaktet, was bei einem internen Prescaler von 1:4 einem Befehl pro 200ns entsprechen sollte. Dh. ich muesste selbst ohne Warteschleifen/NOPs aukommen. Die aktuellen Sequenzen fuer das Senden von Kommandos sieht so aus: CD setzen RD setzen CE loeschen WR loeschen - 4x NOP [nur, damit alles auch wirklich ankommen kann] WR setzen CE setzen Beim Senden von Daten wird lediglich CD auch noch geloescht und nachher wieder zurueckgesetzt. .. zum Modus: Hab den OR-Modus aktiviert, da ich auch gern Text und Grafik-Modus gleichzeitig nutzen will - dafuer schreib ich am ende der Initialisierung auch 0x9F als Displaymode. Geloescht wird der Ram des Displays noch (!) nicht - hatte gehofft, auch ohne das ein paar "sichtbare" Ergebnisse produzieren zu koennen. Aber scheinbar werd ich darum nicht rundrumkommen...
Hallo, ok, daß passt dann also soweit. Wenn nach dem Init nur Grafik eingeschaltet wird, gibt es normalerweise mehr oder weniger zufällige Pixelmuster mit dem Ram-Inhalt nach PowerOn. Das ist bei meinen Displays mit dem T6963C eigentlich ganz gut erkennbar, wenn man den Kontrast einstellt. Irgendwie alles etwas seltsam... Ich habe übrigens den Z80-Code aus dem T6963C-Datenblatt damals 1:1 (naja, so wie nötig ;)) auf den AVR getragen und da hat sich mein erstes sofort gemeldet. Gruß aus Berlin Michael
Hi im Anhang ist ein funkt. Code vielleicht vergleichst du die funnkt. gruss Anton
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.