LCD: Unterschied zwischen den Versionen
(→Pollin AVR-NET-IO) |
(Typos, EMCD) |
||
Zeile 18: | Zeile 18: | ||
Wer ein bißchen besser löten kann, benötigt keine Anschlussplatine und kann das Ganze auch direkt auf einen SUB-D Stecker löten, die Stiftnummern stehen in der Grafik dabei. | Wer ein bißchen besser löten kann, benötigt keine Anschlussplatine und kann das Ganze auch direkt auf einen SUB-D Stecker löten, die Stiftnummern stehen in der Grafik dabei. | ||
− | Bei dem YL162-90 ist zu beachten, dass Vo (Kontrast) nicht mit positiver Spannung anzusteuern ist. Die | + | Bei dem YL162-90 ist zu beachten, dass Vo (Kontrast) nicht mit positiver Spannung anzusteuern ist. Die negative Spannung ist am besten über ein 10kOhm-Potentiometer vom Pin 6 des RS232-Bausteines (Pollin AVR Board) abzugreifen. Bei ca. 5kOhm ist das Display gut zu erkennen. |
Danach muss nochmal compiliert werden: | Danach muss nochmal compiliert werden: | ||
Zeile 48: | Zeile 48: | ||
Man sollte jetzt etwas auf dem LCD lesen können. | Man sollte jetzt etwas auf dem LCD lesen können. | ||
− | === Weitere Spielereien mit dem LCD | + | === Weitere Spielereien mit dem LCD === |
− | Leider habe ich | + | Leider habe ich noch nicht rausbekommen, wie man zb. die 1wire Temperatursensoren oder die ADC oder die Ports möglichst elegant auf das LCD bekommt :-). Aber vielleicht hat ja von Euch einer eine Idee. |
− | * Unter [[Dallas 1-wire Bus#Einbindung in Control6]] findet sich ein kleines [[Control6]]-Skript, mit dem man die Messwerte von 1-wire Temperatursensoren mit Hilfe des TTY-Layers auf's Display zaubern kann --[[Benutzer:Stella|Stella]] 15:19, 26. Jun. 2009 (UTC) | + | * Unter [[Dallas 1-wire Bus#Einbindung in Control6]] findet sich ein kleines [[Control6]]-Skript, mit dem man die Messwerte von 1-wire Temperatursensoren mit Hilfe des TTY-Layers auf's Display zaubern kann. --[[Benutzer:Stella|Stella]] 15:19, 26. Jun. 2009 (UTC) |
+ | |||
==S1D15G10== | ==S1D15G10== | ||
− | Diesen LCDisplay Controller findet man in diversen | + | Diesen LCDisplay Controller findet man in diversen Mobiltelefonen. Ich habe das LCDisplay aus einem Nokia6610 ausgebaut. |
Einige Online Portale/Händler bieten es auch incl. Anschlussplatine an. | Einige Online Portale/Händler bieten es auch incl. Anschlussplatine an. | ||
− | Die folgenden Displays wurden | + | Die folgenden Displays wurden getestet: |
* Epson, S1D15G10, ausgebaut aus Nokia6610 (getestet von veyron) | * Epson, S1D15G10, ausgebaut aus Nokia6610 (getestet von veyron) | ||
* weitere? | * weitere? | ||
Zeile 99: | Zeile 100: | ||
=== Bezugsquellen === | === Bezugsquellen === | ||
− | |||
* [http://www.sparkfun.com/commerce/product_info.php?products_id=569 Sparkfun] vertreibt das LCD incl. Anschlussplatine | * [http://www.sparkfun.com/commerce/product_info.php?products_id=569 Sparkfun] vertreibt das LCD incl. Anschlussplatine | ||
* In folgenden Nokia Handys wurden diese LCDs verbaut: | * In folgenden Nokia Handys wurden diese LCDs verbaut: | ||
**6100, 6610, 7210, 7250, und 5100 | **6100, 6610, 7210, 7250, und 5100 | ||
+ | |||
+ | |||
+ | ==Ansteuerung per ECMD== | ||
+ | |||
+ | Folgende Befehle sind für's LCD vorhanden: | ||
+ | {| border=1 cellspacing=0 padding=4 class=wikitable | ||
+ | ! Kommando !! Funktion | ||
+ | |- | ||
+ | |lcd char N D1 D2 D3 D4 D5 D6 D7 D8 || Benutzer-definierbares Zeichen N erstellen mit den Daten D1..D8 (in Hex) | ||
+ | |- | ||
+ | |lcd clear ZEILE || Lösche ZEILE (0..3) oder das ganze Display (wenn ohne Parameter) | ||
+ | |- | ||
+ | |lcd goto ZEILE SPALTE || Setze den Cursor auf ZEILE und SPALTE (Ursprung ist 0/0) | ||
+ | |- | ||
+ | |lcd reinit CURSOR BLINK || Reinitialisiere das Display, schalte CURSOR aus oder ein (0 oder 1) und ob der Cursor BLINKen soll | ||
+ | |- | ||
+ | |lcd shift RICHTUNG || Schiebe die ganze Anzeige in RICHTUNG (entweder 'left' oder 'right') | ||
+ | |- | ||
+ | |lcd write TEXT || Schreibe TEXT an die momentane Cursorposition | ||
+ | |} | ||
+ | |||
+ | Diese Tabelle wurde von [[Ecmd_Reference | Ecmd Reference]] übernommen und übersetzt. | ||
+ | |||
+ | Anmerkung: Das Zeichen-definieren scheint zu funktionieren, jedenfalls wird "OK" zurückgegeben. Aber wie rufe ich das Zeichen auf, d.h. wie übergebe ich 'lcd write <hex00>'? | ||
+ | |||
[[Category:Ethersex]] | [[Category:Ethersex]] | ||
[[Category:StepByStep]] | [[Category:StepByStep]] | ||
[[Category:LCD]] | [[Category:LCD]] |
Version vom 19. November 2009, 13:56 Uhr
Diese Seite beschäftigt sich damit ein LCD an die Platine anzuschliessen und zu betreiben.
Inhaltsverzeichnis
HD44780
Die folgenden Displays wurden gestestet:
- Pollin, SC1604A, Bstnr. 120 572 (gestestet von #OR)
- Pollin, YL162-90, Bstnr. 120 060 (getestet von SuperRiggi)
- Pollin, TC1602E-01, Bstnr. 120 420 (getestet von Bitfehler)
- Solomon, LM1180SYL (getestet von Doozer)
- Conrad, AV2040, Bstnr. 181657-62, - Controller Type ks0067b auswählen - (getestet von punktl)
- Bürklin, Peaktech P204A, Bstnr. 72S1170, - Controller ks0067b (getestet von michi)
- Reichelt, Displaytech 162
- weitere?
Pollin AVR-NET-IO
Da ich ein Pollin Board verwende, hier also die Beschreibung für ein AVR-NET-IO (:biggrin:). Den Anschluss des LCD habe ich von http://www.sprut.de/electronic/lcd/lcd.gif übernommen. Die folgende Grafik zeigt den Anschluss an den Controller:
Wer ein bißchen besser löten kann, benötigt keine Anschlussplatine und kann das Ganze auch direkt auf einen SUB-D Stecker löten, die Stiftnummern stehen in der Grafik dabei.
Bei dem YL162-90 ist zu beachten, dass Vo (Kontrast) nicht mit positiver Spannung anzusteuern ist. Die negative Spannung ist am besten über ein 10kOhm-Potentiometer vom Pin 6 des RS232-Bausteines (Pollin AVR Board) abzugreifen. Bei ca. 5kOhm ist das Display gut zu erkennen.
Danach muss nochmal compiliert werden:
- make menuconfig
- Untermenu "I/O support"
- den Punkt "HD44780 Module Driver" aktivieren
- in selbiges Untermenu abtauchen und noch "Readback Support" und "Use Port C" aktivieren
- danach rausgehen, speichern, compilieren, laden
"Use Port C" nicht mehr im Menü vorhanden (Nov. 2009) -> das gibt Compilerfehler. Also manuell pinnen:
ifdef(`conf_HD44780', ` pin(HD44780_RS, PC0) pin(HD44780_RW, PC1) pin(HD44780_EN, PC2) pin(HD44780_D4, PC3) pin(HD44780_D5, PC4) pin(HD44780_D6, PC5) pin(HD44780_D7, PC6) ')
Mehr Info dazu auch unter Pins_in_Ethersex_definieren und Ethersex_Hardware_hinzufügen.
Das LCD macht nach dem Einschalten erstmal gar nix. Zum Testen geht am besten der ECMD.
- netcat 192.168.0.90 2701 aufrufen
- dann lcd write Hallo eingeben
Man sollte jetzt etwas auf dem LCD lesen können.
Weitere Spielereien mit dem LCD
Leider habe ich noch nicht rausbekommen, wie man zb. die 1wire Temperatursensoren oder die ADC oder die Ports möglichst elegant auf das LCD bekommt :-). Aber vielleicht hat ja von Euch einer eine Idee.
- Unter Dallas 1-wire Bus#Einbindung in Control6 findet sich ein kleines Control6-Skript, mit dem man die Messwerte von 1-wire Temperatursensoren mit Hilfe des TTY-Layers auf's Display zaubern kann. --Stella 15:19, 26. Jun. 2009 (UTC)
S1D15G10
Diesen LCDisplay Controller findet man in diversen Mobiltelefonen. Ich habe das LCDisplay aus einem Nokia6610 ausgebaut.
Einige Online Portale/Händler bieten es auch incl. Anschlussplatine an.
Die folgenden Displays wurden getestet:
- Epson, S1D15G10, ausgebaut aus Nokia6610 (getestet von veyron)
- weitere?
Das 130x130 1.5" FarbLCD mit dem integrierten Controller S1D15G10 wird zB. so angeschlossen:
RESET, PB0 DATA, SPI_MOSI CLK, SPI_SCK CS, PD7
Beispiel für Atmega644: pinning/hardware/etherrape.m4
ifdef(`conf_S1D15G10', `dnl /* port config for s1d15g10 lcd */ pin(S1D15G10_CS, PA3, OUTPUT) pin(S1D15G10_RESET, PA1, OUTPUT) ')
Da die Daten via SPI generiert werden, können nur die Pins für RESET und ChipSelect frei gewählt werden.
Die Stromversorgung für den LCDController sollte nicht über 4V liefern! Die Pins sollten 3.6V nicht übersteigen! Die Hintergrundbeleuchtung braucht 6V - 7V.
Da der AVR meines etherrapes mit 5V läuft, hab ich jeweils eine 3V6 Zenerdiode und einen 1k5Ohm Pullup zwischen AVR und LCD gehangen.
In menuconfig:
│ │ Load a Default Configuration ---> │ │ General Setup ---> │ │ Network protocols ---> │ │ I/O support ---> ... │ │ [*] S1D15G10 module driver (130x130-R/G/B-LCD)
Auf dem LCD wird dann ein bisschen farbiger Text auf schwarzem Hintergrund und das E-Sex Logo angezeigt.
Ist Debug und ECMD via UART aktiv, wird dies auch auf dem LCD ausgeben.
Das sieht dann so aus:
Bezugsquellen
- Sparkfun vertreibt das LCD incl. Anschlussplatine
- In folgenden Nokia Handys wurden diese LCDs verbaut:
- 6100, 6610, 7210, 7250, und 5100
Ansteuerung per ECMD
Folgende Befehle sind für's LCD vorhanden:
Kommando | Funktion |
---|---|
lcd char N D1 D2 D3 D4 D5 D6 D7 D8 | Benutzer-definierbares Zeichen N erstellen mit den Daten D1..D8 (in Hex) |
lcd clear ZEILE | Lösche ZEILE (0..3) oder das ganze Display (wenn ohne Parameter) |
lcd goto ZEILE SPALTE | Setze den Cursor auf ZEILE und SPALTE (Ursprung ist 0/0) |
lcd reinit CURSOR BLINK | Reinitialisiere das Display, schalte CURSOR aus oder ein (0 oder 1) und ob der Cursor BLINKen soll |
lcd shift RICHTUNG | Schiebe die ganze Anzeige in RICHTUNG (entweder 'left' oder 'right') |
lcd write TEXT | Schreibe TEXT an die momentane Cursorposition |
Diese Tabelle wurde von Ecmd Reference übernommen und übersetzt.
Anmerkung: Das Zeichen-definieren scheint zu funktionieren, jedenfalls wird "OK" zurückgegeben. Aber wie rufe ich das Zeichen auf, d.h. wie übergebe ich 'lcd write <hex00>'?