Grafikdisplay mit LC7942 / LC7940 Controller

Gast #435652
Lesenswert?

Moin Leute, mir ist ein Grafikdisplay mit 240x64 Pixeln in die Hände 
gefallen, ähnlich diesem hier bei Pollin (Grafik-LCD POWERTIP PG-24064G) 
http://www.pollin.de/shop/detail.php?pg=NQ==&a=NTM1OTc4OTk= mit einem 
LC7942 und drei LC7940 in die Hönde gefallen. Das Teil hat zwölf 
Anschlüsse, von denen zwei für die nicht vorhandene 
Hintergrundbeleuchtung sind. Bleiben also noch zehn Pins. Die 
Beschaltung ist fast wie bei dem Pollin (Datenblatt ist dort auch zu 
finden), hab sie gestern soweit es geht ausgeklingelt, kann sie heute 
Abend posten (hab das Display leider gerade nicht hier und kann euch 
somit auch nicht die genaue Bezeichnung sagen, hab allerdings eh nichts 
gefunden im Netz).

Das Ding wird seriell geladen, hat zwei (drei) Clock-Eingänge (einmal 
füe die Zeilen, einmal für die Spalten).

Hat jemand sowas schonmal am PC-Port betrieben oder mittels MC 
programmiert? Wie muß ich mir die Programmierung vorstellen? Erst die 
3x80 BITs für die Spaltentreiber (LC7940) und dann 80 mal die 64 BITs 
des Zeilentreibers, der dann 80 mal schneller laufen muß als die 
Spaltentreiber?

MfG BC
#435659
Lesenswert?

Per PC kannst du die Ansteuerung vergessen.
Per uC geht das schon eher, aber ist auch sehr Timing kritisch:
Du musst für jede Zeile 240Bits laden (die Pixeldaten für eine Zeile), 
diese mit einem Latch Impuls speichern, die nächste Zeile laden, mit 
einem Latchimpuls speichern usw. Das ganze 64x, macht also 
15360Bits/Bild.
Wenn das Bild fertig ist, wird der Firstlinemarker gesetzt und das Bild 
beginnt wieder von oben.
Das ganze muss mal etwa 60-80x pro Sekunde machen. Das ergibt eine 
Datenrate von etwa 1MBit/s. Falls du das ganze noch schneller 
hinbekommst (die theoretische Grenze liegt bei etwa 3,5MBit/s, dann 
kannst du auch noch Graustufen erzeugen indem man nur jedes zweite, 
dritte, vierte, usw. Bild anzeigst.
Gast #435676
Lesenswert?

Aha, also 240 BIT reinlöffeln, dan latch-Impuls (Welcher ist das ?) . 
Speichert er die Daten oder werden die dann mit den ankommenden Daten 
der nächsten Zeile gelöscht, sprich wir das Bild Zeilenweise aufgebaut 
und die Zeilen sind weiterhin zu sehen oder wird immer wenn eine 
geschrieben wird die vorhergehende gelöscht?

MfG BC
Gast #435691
Lesenswert?

Ein AVR mit internem SRAM von mindestens 2kByte kann das Display über 
seinen synchronen seriellen Port bedienen.
Daztenblätter zu den LC... hier
http://pdf1.alldatasheet.com/datasheet-pdf/view/41024/SANYO/LC7942.html
http://pdf1.alldatasheet.com/datasheet-pdf/view/41022/SANYO/LC7940ND.html
der Zeilenübernahmeimpuls im 7940 heisst LOAD, der Pixeltakt CP, der 
Bildwechselimpuls geht auf den 7942
Gast #435750
Lesenswert?

Hallo!

Ich hab auch so ein Display hier liegen...
Ich hab auch noch einen LC7980 dazu - 64pin QFP64-A Gehäuse - der is ein 
etwas intelligenterer parallel programmierbarer gLCD controller mit SRAM 
Anbindung.

Ich hab schon versucht direkt mit einem µC das Display anzusteuern - 
funktionierte auch, hab aber leider noch keinen mit 2k SRAM... (schon 
bestellt)

Ich hab dir mal die Datenblätter angehängt, die ich hab...

Ich wär interessiert an einem Projekt um einen µC als high level 
Displaycontroller zu verwenden - dachte da an einen mega64 oder mega128 
da man ja noch etwas SRAM übrig hat und trotzdem die 2k für den 
Displaycontent voll reinbringt...

Grüße aus Österreich

Markus
Angehängte Dateien:
#435797
Lesenswert?

Ja, ich mache gerne alles per Software. Ich löte sogar von fertigen LCDs 
die Controller aus und schließe einen mega8 oder 8515 an, nur um 
Graustufen auf dem LCD darstellen zu können. Bei dem 240x64 LCD sollten 
mit einem mega8515@16MHz und SRAM etwa 8 Graustufen möglich sein.
Ich hätte sogar eine fertige Software (in C + Assemblerroutinen) um 
solche LCDs mit bis zu 256 Graustufen anzusteuern (vorausgesetzt der uC 
ist schnell genug), aber leider darf ich diese nich veröffentlichen, 
denn damit verdiene ich etwas Geld.

Ich könnte aber die Software soweit downgraden, dass diese die LCDs nur 
in Schwarzweis ansteuert...
Gast #436086
Lesenswert?

So, jetzt hier, das Display ist ein WD-G2406G-1GNNa.

Die Pinbelegung (soweit ausgeklingelt):

PIN1:LC (7940's, PIN77, SDI)
PIN2:DIO(7942)
PIN3:NC (bzw. Drahtbrücke nicht eingelötet, geht sonst an 7940's, PIN73, 
M)
PIN4:CP (7942)
PIN5:CP (7940's, PIN100, CP)
PIN6:VEE
PIN7: VDD/DispOFF/V1 (7942, alle drei gebrückt)
PIN8: VSS/AS/LS (7942, alle gebrückt)
PIN9: Transistor VEE (Basis)
PIN10:Transistor VEE (Kollektor oder Emitter)
PIN11/PIN12 Beleuchtung (nich vorhanden)

PIN9 und 10 sind anscheinend für die Kontrasteinstellung zuständig.

Zum testen würd ich ne reine Softwarelösung erstmal bevorzugen, ich 
würds auch am LPT probieren, auch wenn mehr als 2 oder 3 FPS bestimmt 
nicht drin sind, zum testen reichts erstmal.

MfG BC
Gast #436098
Lesenswert?

@Benedikt: SW wär ja schon mal ein ganz guter Anfang!!!
  wär nett wenn du das machen könntest!

@Browncoat: Ja, Pin9/10 sind für die Kontrasteinstellung - An Pin 10 
solltest du (wenn du Glück hast) eine negative Spannung haben, die du 
über ein Poti gegen GND in Pin 9 einspeisen kannst und damit den 
Kontrast einstellen. Wenn nicht, dann brauchst du irgendeine neg. 
Spannungsquelle (-12V). Wenn du so ca. -8V (gegen GND) am Pin 9 
einspeist hast du einen "neutralen" Kontrast.

Meine Belegung ist wie folgt:
Pin    |   Funktion
-------+-------------------------------------------
   1   | D
   2   | FLM
   3   | M
   4   | CL1
   5   | CL2
   6   | N/C
   7   | VDD - +5V
   8   | VSS - GND
   9   | VEE - Kontrast (~ -8V)
  10   | N/C

Grüße

Markus
#440963
Lesenswert?

Da dises Thema irgendwie eingeschlafen is, versuch ich mal es wieder 
etwas zu beleben...

Hab mir schon Gedanken gemacht, selbst eine Lösung zu finden...

Mein Fazit:
- mega8535@14,7456MHz als (G)MPU
- SRAM dran - 11 Bit Adressleitungen (LC3564BM-70)
- Datenfütterung per USART

Programmieren werde ich das ganze in ASM über eine INT-Routine und SPI.

Ich bin gerade dabei, das zu coden.

Wenn ich meinen Brerchnugen trauen kann, sollte ich ein Bild mit 60Hz 
bekommen wenn ich den SPI prescaler auf 16 stelle (theoretisch).
Bei Prescaler = 4 solten sich sogar 240Hz ausgehen (Graustufen)

Grüße

Markus
#440989
Lesenswert?

Im Anhang ein einfacher LCD Controller für alle möglichen LCDs die 1bit 
Daten benötigen.
Die Software ist in C geschrieben, sollte daher verständlich sein.
Man kann einiges noch optimieren, aber ich denke es ist ein gutes 
Beispiel um die prinzipielle Ansteuerung zu verstehen.
In der LCD.h muss man den Port, die Pins und die LCD Auflösung 
einstellen.
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren