Hallo zusammen.
Ich habe mich nun durch die Grundlagen durchgearbeitet. Heisst:
- Blink-LED
- Taster-Abfrage
- serielle Datenübertragung
- Analogwertverarbeitung
- Temperaturanzeige
- Multiplexing 7-Seg-Anzeige
- LCD-Ansteuerung im Textmodus
Jetzt habe ich vor ein Grafik-Display anzusteuern. Doch bevor ich mir
eins bestelle, wollte ich erst mal in Erfahrung bringen, wie sowas geht.
Ich hab nun gehofft ich finde in den entsprechenden Datenblätter der
Pollin-Displays etwas. Aber Fehlanzeige. Auch Google spuckt da nicht
soviel aus.
Hat jemand von euch gute Links dazu?
Würde mich freuen
In diesem Sinne ein frohes Fest
E7C schrieb:> Jetzt habe ich vor ein Grafik-Display anzusteuern. Doch bevor ich mir> eins bestelle, wollte ich erst mal in Erfahrung bringen, wie sowas geht.
Da gibts große Unterschiede.
Im einfachsten Fall kannst du nur am LCD einen Punkt setzen.
Das wars. Alles andere musst du selber in Software erledigen. Linien
zeichnen, Bögen zeichnen, Flächen füllen, Text malen, etc.
Alles, in dem du die zu setzenden Punkte bestimmst und dem LCD den
Auftrag gibst: Dieser und jene Punkte sind auf schwarz zu setzen
Am anderen Ende stehen Displays, die einen Prozessor mithaben, der auch
mit graphischen Primitiva umgehen kann. So wie bei deinem Text-LCD. Dem
hast du auch nicht gesagt "Pixel setzen" sondern 'A' hinmalen und der
Prozessor am LCD hat gewusst wie das geht.
Beides hat Vor und Nachteile.
Auf der einen Seite hast du mit Einzelpixel setzen alles in der Hand.
Jede Linie, jeder Buchstabe sieht exakt so aus, wie du dir das
vorstellst.
Dafür musst du in deinem Programm allerdings Routinen dafür haben und
die Übertragung zum Display dauert länger, weil es mehr Datenvolumen
gibt
Auf der anderen Seite hast du mit einem intelligenten Display schnelle
Erfolgserlebnisse, die Übertragung geht schnell, musst dafür aber mit
dem zufrieden sein, was dir der Hersteller an Grundmitteln anbietet.
Wenn das nicht reicht, landest du erst wieder beim Pixel setzen und hast
Geld für ein Display ausgegeben, dessen Fähigkeiten du nicht nutzt.
Gibt es denn für beide Varianten kleine Tutorials, dass ich erstmal
weiss, wie das ganze realisiert wird? Dann kann ich mich immernoch für
ein Display entscheiden. Am besten ich kaufe direkt beide, und nimm das
mit Prozessor für die schnellen Erfolgsergebnisse, um mich dann dem Kern
weiter zu nähern
> Ich habe mich nun durch die Grundlagen durchgearbeitet. Heisst:
Wohlgetan. :-)
> Ich hab nun gehofft ich finde in den entsprechenden Datenblätter> der Pollin-Displays etwas. Aber Fehlanzeige.
Wirklich? Ich finde fuer einen Restpostenverhoekerladen liefert Pollin
meist erstaunlich viel Unterlagen zu ihren LCDs. Also Datenblatt vom
Display, Datenblatt zum TreiberIC und manchmal sogar noch ein
Beispielprogramm.
> Doch bevor ich mir eins bestelle, wollte ich erst mal in Erfahrung> bringen, wie sowas geht.
Das Prinzip ist einfach. Du musst ein Display kaufen und es an deinen
Controller anschliessen. Es gibt Displays die haben einen parallelen Bus
(8080 oder 68k) und welche mit einem seriellen Datenbus. (SPI oder gar
I2C)
Manche Displays haben auch beide Busse und man kann sich aussuchen
welchen man verwendet. Manchmal hat der Hersteller das aber schon
festgelegt und du kannst das nicht mehr umstellen. Datenblatt genau
lesen!
Fuer kleine Microcontroller ist der serielle Bus meistens besser weil
man da weniger Pins braucht. Bei manchen LCDs kann man dann aber nur
Daten zum LCD schicken und nicht zuruecklesen. Datenblatt genau lesen!
Wenn man nicht lesen kann dann muss man im Controller ein Shadowram des
LCDs verwalten. Sowas ist eigentlich immer klug weil es schneller ist
als aus dem LCD zu lesen. Allerdings sollte der Controller dann genug
internes Ram haben. Datenblatt genau lesen und Taschenrechner
einschalten!
Danach kann man nun Kommandos ans LCD schicken. Es gibt Displays da
kannst du nur Pixel ein oder ausschalten. Wenn du aber Linien malen
willst oder Text ausgeben ist es deine Aufgabe dich darum zu kuemmern.
Dann sollte dein Controller genug Flashram haben um einen Zeichensatz
unterzubringen.
Es gibt auch Controller die haben soetwas eingebaut. Allerdings gibt es
dann manchmal keine deutschen Sonderzeichen. Das prangern wir an. :-)
Mach dir auch klar das der Hersteller eines LCDs von irgendwoher ein IC
kauft, dessen Datenblatt du lesen musst, und woanders ein Panel. Beides
montiert der zusammen und nennt das LCD und schreibt dazu ebenfalls ein
Datenblatt. Es ist wichtig zu verstehen das man es auch so programmieren
kann das ein LCD nichts anzeigt oder gar kaputt geht. Das kommt davon
wenn man das Datenblatt der LCD Hersteller nicht liesst und man glaubt
im Internet alles abschreiben zu koennen.
Manche LCDs benoetigen noch eine Kontrastspannung. Die kann auch negativ
sein. Und sie muss nicht auf GND bezogen sein, manche Hersteller geben
diese Spannung relativ zur positiven Versorungsspannung an. Also genau
alles im Datenblatt lesen.
viel Glueck
Olaf
> Gibt es denn für beide Varianten kleine Tutorials, dass ich erstmal> weiss, wie das ganze realisiert wird?
Die heissen Datenblaetter und werden vom Hersteller mitgeliefert. Es
gibt keinen verbreiteten Standard wie bei den TextLCDs mit
Hitachicontroller.
Jeder macht das seinen eigenen Kram.
Selbst wenn du zwei Displays mit demselben ControllerIC drauf von
verschiedenen Herstellern hast so kann es dir passieren das die ihre
Pixel an verschiedenen Stellen im Speicher abbilden. Auch die
Initialisierung kann unterschiedlich sein.
Olaf
Hier könnte man eigentlich noch einen dritten Typ unterscheiden, weil
von Pollin die Rede ist: Die controllerlosen Displays, deren Inhalt
kontinuierlich aufgefrischt werden muß.
Also mal am Beispiel:
"Vollintelligente" Displays haben in den allermeisten Fällen einen
Toshiba T6963C Controller. Dieser beinhaltet sogar einen
Zeichengenerator, d.h. man kann auf das Display auch Text schreiben,
ohne ihn sich aus Pixeln zusammenbauen muß. Umfangreicher Befehlssatz.
Kann viel, kostet viel (vergleichsweise). Heute selten zu bekommen, hin
und wieder bei Pollin. Übliche Auflösungen sind 128x64 oder 128x128.
Leicht zu benutzen.
"Halbintelligente" Displays haben einen Grafikspeicher, der meist
byteweise beschrieben wird. Dieser Speicher wird 1:1 auf das Display
abgebildet. Es ist empfehlenswert, Typen zu benutzen, in denen dieser
Speicher nicht segmentiert ist, dies macht die Ansteuerung einfacher.
Ein typischer Vertreter ist dieses Exemplar hier:
http://www.pollin.de/shop/dt/NDU2OTc4OTk-/Bauelemente/Aktive_Bauelemente/Displays/LCD_Modul_SHARP_M078CKA_A3QKLA0057.html
Ebenso zählen die EA DOGM Grafikdisplays zu dieser Klasse:
http://www.reichelt.de/?;ACTION=28;LA=3;ARTICLE=101652;GROUPID=3007;GROUP=A5213;SID=28G34rYawQARwAAFIi8CQ5839615382a8c379debba458d0152474
Man findet häufig auch Examplare mit Seiko Epson Controller.
Etwas anspruchsvoller zu benutzen, dafür aber billig und leicht
erhältlich.
"Unintelligente", controllerlose Displays wie dieses:
http://www.pollin.de/shop/dt/NDU3OTc4OTk-/Bauelemente/Aktive_Bauelemente/Displays/LCD_Modul_E8504CZZ.html
müssen kontiniuerlich mit Daten versorgt werden, um ein Bild
darzustellen. Es gibt hier im Forum ein Projekt auf AVR-Basis dazu (der
ist aber gut beschäftigt und kann dann nichts anderes mehr tun), oder
man kann so etwas wie den S1D13705 benutzen, der hier unter "Markt"
angeboten wird. Dann hat man einen Controller, der sich um das Display
kümmert. Ziemlich komplex, bietet aber größere Auflösungen als die
beiden oben beschriebenen Typen.
Zu den Controllern,
Die KS0107 / KS0108 sind wahrscheinlich am verbreitetsten, gibt viel
viel Code dazu. Sind meist die günstigsten und hat nahezu jeder
Elektronikversender mit Displays im Programm. Sehr oft gibt es die in
128x64 und 128x128
Die T6963 haben, wie schon gesagt, ein wenig eigenen Grips, aber im
Grunde immer noch anzusteuern wie die KS0108 / 7. Die T6963 sind
meistens grösser als die KS0108. Habe eines von Pollin mit 256x64 für ca
15 Euro, aber schon seit gut 2 Jahren. Nicht mehr im Programm...
Dann gibts noch die, welche sie per UART, SPI, I2C, ... ganz intelligent
ansprechen lassen. Meistens von EA (Electronics Assembly), oft schon
TFT, 65k Farben, touch usw. Allerdings kosten die wirklich viel. Die
haben dafür aber einen richtig guten Befehlssatz (ziehe Line von x1,y1
nach x2,y2, Kreise, Bars, Text, Bitmaps, ...).
OLEDs sind solangsam auch recht günstig zu bekommen, allerdings nicht in
riesengrößen. Es gibt auch haufenweise Code dazu. Soweit ich mich
erinnere gibts bei Watterott welche mit Beispielcode. Schau auch mal bei
steitec vorbei, da gibts coole ARM-Stamps mit farb-Tocuhscreendisplays
für unter 50 Euro.
Ich würde dir ein T6963 empfehlen, haste schonmal die ganze Textk**ke
nicht am Hals und du kannst dich um Grafik kümmern. Auch wenn die etwas
teurer sind als andere, kostet sie trotzdem nicht die Welt. Guck mal auf
ebay usw. Da bekommste 128x128 aufwärts für ca 20 Euro.
Wenn du per USB an Rechner willst, schau dir mal die SP14Q002 von
Wallbraun Elektronics an, da hab ich zwei, finde ich total genial :)
320x240 S/W mit Touchscreen. Allerdings nich ganz so Kontrastreich, im
Sonnenlicht kannste die nicht lesen und der Winkel ist auch nich so
100%ig. Aber wenns kein Fernseher werden soll, wirds schon reichen ;)