| www.lamepage.de | |
| [ lamepage · Hardware · GFX LCD ] | |
|
|
GFX-LCDBetrieb eines grafischen LC-Displays mittels SED1335/S1D13305 am ParallelportÜbersichtVorwortVor einiger Zeit gab es bei Conrad Electronic ein günstiges LCD-Panel im Restpostenmarkt. Es handelt sich hierbei um ein grafisches Display von EPSON, mit der Bezeichnung ECM-A0635-2. Dieses monochrome LCD hat eine Auflösung von 320x240 Pixeln und eine integrierte Hintergrundbeleuchtung. Der nötige Konverter, der die Hochspannung für die Beleuchtung erzeugt, wurde mitgeliefert. Weiterhin war eine Anschlußbuchse für das am LCD angebrachte Flexkabel dabei.Hier soll nun eine Möglichkeit beschrieben werden, wie das LCD an einem passenden Controller betrieben werden kann. Als Controller wird hier der SED1335 von Seiko/Epson (Von Epson gibt es einen kompatiblen Typ: S1D13305) verwendet. Die Verbindung mit dem Rechner geschieht über dessen Parallelport. Die Software wurde unter Linux (Kernel 2.2.x), geschrieben und getestet. Achtung: Um die in dieser Anleitung angegebene Hardware nachzubauen
bedarf es einiger Erfahrung im SMD-Löten.
Neues, Änderungen, usw.
DownloadScans vom Epson Datenbuch: EpsonLCD_TCMA0635-1.tar.gz (Achtung: ca. 4.2 MB!) Die ganzen Schaltpläne, Stücklisten, Programme, usw. gibt es hier: gfxlcd-0.3.tar.gz Dateien im Archiv und dessen Beschreibung: Unterverzeichnis /cflres-ctrl-0.3 (CFL/RESET-Controller) -------------------------------------------------------- control_logic3.brd - Schaltplan control_logic3.sch - Layout part-list - Bauteilliste reedrel.lbr - Bibliothek fü das Reed-Relais shematics_cflres_ctrl.pdf - Schaltplan als PDF Unterverzeichnis /gfxlcdctrl-hw-1.7 (LCD-Controller) ---------------------------------------------------- 62256SO28L.lbr - Bibliothek für das statische RAM 62256 (32Kx8) im SOJ28 Gehäuse lcdcon.lbr - Bibliothek für die LCD-Anschlußbuchse new_hand5_1_8_64k_smd.brd - Das Layout new_hand5_1_8_64k_smd.sch - Der Schaltplan part-list - Bauteilliste sed1335F0B_QFP60.lbr - Bibliothek für den SED1335F0B im QFP-60 Gehäuse shematics_lcd_ctrl.pdf - Schaltplan als PDF Unterverzeichnis /gfxlcdtest-0.7 (Das Testprogramm) --------------------------------------------------- Makefile - Das Makefile für gfxlcdtest.c README.hantronix - Beschreibung des Hantronix Beispielcodes [1] font_pearl_8x8.c - Der Zeichensatz den das LCD anzeigen soll gfxlcd.h - Headerfile gfxlcdtest.c - Das Testprogramm sed133x.h - SED1335 Headerfile testbild2_bw.pbm - Eine Grafik 320x240 (PBM-Format _ohne_ Header!) [1] nicht im Archiv enthalten. Den Beispielcode gibt es auf der Hantronix Webseite (siehe unten). Unterverzeichnis /sed-mdacon-0.1.4 (Der Kerneltreiber) ------------------------------------------------------ README - README zum Kernelmodul mdacon_sed.c - Kernelmodul Unterverzeichnis /lcd-supply-1.2 (Spannungsversorgung) ------------------------------------------------------ LCD_PowerSupply.brd - Das Layout (Eagle) LCD_PowerSupply.pdf - Schaltplan der Eagle-Version als PDF LCD_PowerSupply_print.png - Belichtungsvorlage LCD_PowerSupply.sch - Der Schaltplan (Eagle) lcdsupply1_1.pdf - V1.1 Schaltplan in PDF part-list - V1.1 Bauteilliste part-list.eagle - Bauteilliste der Eagle-Version TL497A.lbr - Bibliothek für den TL497A Die HardwareDie Schaltpläne und Layouts für den LCD-Controller und den CFL-Controller wurden mit der Light-Version von Eagle erstellt. Man kann diese kostenlos bei Cadsoft Computer GmbH herunterladen. Bei dieser Version ist die Größe des Layouts auf eine halbe Europlatine beschränkt, was aber in den meisten Fällen ausreicht.Die Harware ist nach und nach entstanden, d.h. als erstes wurde der LCD-Controller entworfen und zusammengebaut. Als dieser dann funktionierte, kam die Spannungsversorgung hinzu. Denn es werden drei Betriebsspannungen benötigt, 12V für den CFL-Konverter, 5V für die Logik und -22V für das Display. Anfangs (im Experimentierstadium) wurde das hier auch mit drei Spannungsquellen gemacht, die 12 und 5V aus dem PC und die negative Spannung von einem Labornetzteil. Das dies keine dauerhafte Lösung sein konnte, dürfte einleuchten. Anschließend kam noch der CFL/RESET-Controller dazu, da man ja gerne das Licht steuern sollte. Das DisplayHier ein paar Bilder vom Conrad-Display und dem CFL-Konverter: Der LCD-ControllerDas Hardware-Layout des Controllers basiert auf der Schaltung aus der Hantronix Application Note, es beinhaltet also den SED1335, 64k RAM und ein bisschen Logik. Es wurde teilweise etwas erweitert, wie z.B. um die Kontroll-Schaltung für die neagtive Betriebsspannung.Schaltbild (PDF-Version): Stückliste: Part Value Device Package Library Sheet C1 12p C0805 C0805 ipc-rcl 1 C2 12p C0805 C0805 ipc-rcl 1 C3 100n C1206 C1206 ipc-rcl 1 C4 100n C1206 C1206 ipc-rcl 1 C5 100n C1206 C1206 ipc-rcl 1 C6 100n C1206 C1206 ipc-rcl 1 C7 100n C1206 C1206 ipc-rcl 1 C8 100n C1206 C1206 ipc-rcl 1 D1 1N4148 DMLL-41 MLL-41 ipc-rcl 1 IC1 74HC04 7404 SO14 74xxsmd 1 IC2 74HC32 7432 SO14 74xxsmd 1 P1 25k B25P B25P trimpot 1 Q1 10MHz SM49 SM49 quartz 1 Q2 BC817 SOT23_N SOT23 ipc-rcl 1 Q3 BC807 SOT23_P SOT23 ipc-rcl 1 R1 100k R0805 R0805 ipc-rcl 1 R2 47k R0805 R0805 ipc-rcl 1 R3 4.7k R0805 R0805 ipc-rcl 1 R4 100k R0805 R0805 ipc-rcl 1 SV1 ML10 ML10 ML10 con-ml 1 U$2 62256SOJ 62256SOJ SOJ-28/3 62256SO2 1 U$3 LCD_CON14 LCD_CON14 CON_LCD lcdcon 1 U$4 SED1335 SED1335 QFP60-BB sed1335F 1 U$5 62256SOJ 62256SOJ SOJ-28/3 62256SO2 1 X1 M25H M25H M25H subd 1 Den SED1335 gibt es z.B. bei Spezial Electronic, das RAM und die anderen Kleinteile gibt es bei Conrad Electronic. Das größte Hindernis ist die doppelseitige Platine. Denn
sowas richtig zu belichten und zu ätzen ist nicht ganz einfach, da
ja beide Seiten deckungsgleich übereinander liegen müssen. Vielen
Dank geht hier an Peter Sobisch, der diese Platine wahrlich kunstvoll geätzt
und gebohrt hat. Ein weiteres Problem, bzw. ein ganzes Stück Arbeit,
ist das Durchkontaktieren. Das wurde hier händisch mit ganz dünnem
Draht gemacht. Dazu wurde eine einzelne Ader von normalem Schaltdraht durch
die Bohrung gesteckt und auf beiden Seiten vorsichtig verlötet. Eine
Sauarbeit, wirklich.
Hier zwei Bilder von dem fertigen LCD-Controller:
Die SpannungsversorgungDer LCD-Controller braucht zwei Bestriebsspannungen, einmal die +5V für die Logik und einmal -22V für das eigentliche Display. Der CFL-Konverter benötigt für den Betrieb +12V. Es liegt also nahe, aus einer einzigen Spannung, nämlich den +12V, die beiden anderen zu erzeugen. Für die +5V ist das kein größeres Problem, man nimmt einfach einen 7805 Längsregler und fertig ist die Laube. Um die relativ hohe negative Spannung zu erzeugen, wird sich hier des Schaltreglers TL497A von Texas bedient. Die Schaltung selbst ist die Referenzschaltung aus dem TL497-Datenblatt Seite 7, mit den entprechenden Werten für -22V. Da der Chip und auch der 7805 teilweise etwas warm werden, ist es angebracht diese mit kleinen Kühlkörpern auszustatten.Stückliste (Version 1.1): Part Value ---- ----- R1 1.5R R2 18k R3 10k Poti R4 1.2k R5 20R/1W L1 470µ D1 1N4002 U1 TL497A U2 7805 C1 47µ/35V C2 100n C3 150p C4 47µ/35V C5 100µ C6 100n C7 10µ Hier die Schaltung (PDF-Datei) und ein Bild:
Neu: Eagle-Schaltplan und Layout von der Spannungsversorgung. Vielen Dank geht hier an Ralf Grafe, der sich die Mühe gemacht hat: Stückliste (Eagle-Version 1.2): Part Value Device Package Library Sheet C1 100n C2,5-3 C2.5-3 capacitor-wima 1 C2 100n C2,5-3 C2.5-3 capacitor-wima 1 C3 10u CPOL-EUE3.5-8 E3,5-8 rcl 1 C4 150p C2,5-3 C2.5-3 capacitor-wima 1 C5 47u CPOL-EUE3.5-8 E3,5-8 rcl 1 C6 100u CPOL-EUE3.5-8 E3,5-8 rcl 1 C7 100n C2,5-3 C2.5-3 capacitor-wima 1 C8 100u/25V CPOL-EUE3.5-8 E3,5-8 rcl 1 D1 1N4001 1N4004 DO41-10 diode 1 D2 1N4004 1N4004 DO41-10 diode 1 IC1 7805 78XXL 78XXL v-reg 1 L1 L-EU0207/10 0207/10 rcl 1 POWER 22-23-2021 22-23-2021 con-molex 1 R1 1,5 R-EU_0207/10 0207/10 rcl 1 R2 20/1W R-EU_0207/10 0207/10 rcl 1 R3 18k R-EU_0207/10 0207/10 rcl 1 R4 1k2 R-EU_0207/10 0207/10 rcl 1 R5 10k TRIM_EU-PT10S PT-10S pot 1 SV2 ML10 ML10 ML10 CON-ML 1 U$1 TL497A TL497A DIL14 TL497A 1 Hier die Schaltung (PDF-Datei):
Der CFL/RESET-ControllerDiese Schaltung ist ein mieser Hack. Sie steuert die CFL Hintergrundbeleuchtung und die Reset-Leitung des SED1335. Diese Logik ist (leider) notwendig, weil keine Steuerleitungen am Parallelport mehr frei sind, die das sonst direkt übernehmen könnten. Die Resetleitung und das Licht werden über ein FlipFlop gesteuert, das Licht zusätzlich noch über ein Relais.Wenn man auf die Steuerung der Hintergrundbeleuchtung und der Reset-Leitung (ist ja nicht umbedingt erforderlich) verzichten kann, braucht man diese Schaltung nicht. Nachtrag: Ich empfehle es, diese Schaltung nicht zu benutzen, bzw. nachzubauen, da sie mit "heißer Nadel gestrickt" wurde und nicht zuverlässig funktioniert. Stückliste: Part Value Device Package Library Sheet BUS ML10 ML10 ML10 con-ml 1 C1 100n C5B2,5 C5B2,5 cap 1 C2 100n C5B2,5 C5B2,5 cap 1 C3 100n C5B2,5 C5B2,5 cap 1 CFL MA03-1 MA03-1 MA03-1 con-lstb 1 D1 1N4148 1N4148 DO35-10 diode 1 EXT MA04-1 MA04-1 MA04-1 con-lstb 1 IC1 74HC30 7430 DIL14 74xx 1 IC2 74HC175 74175 DIL16 74xx 1 IC3 74HC00 7400 DIL14 74xx 1 R1 4.7k 0204/7 0204/7 r 1 R2 4.7k 0204/7 0204/7 r 1 R3 4.7k 0204/7 0204/7 r 1 SUPPLY MA03-1 MA03-1 MA03-1 con-lstb 1 U$2 REED REED REED reedrel 1 Der Stecker BUS muß dann folgendermaßen mit dem LCD-Controller, bzw. dem parallelen Port verbunden werden: CFL-Controller (BUS) LCD-Controller/Parallelport ------------------------------------------------------------ 1 - A0 ------- 14 - /FEED 2 - D3 ------- 5 - D3 3 - /RD ------- 16 - /RESET 4 - D2 ------- 4 - D2 5 - /WR ------- 1 - /STROBE 6 - D1 ------- 3 - D1 7 - D7 ------- 9 - D7 8 - D0 ------- 2 - D0 9 - /CS ------- 17 - /SELOUT 10 - /RESET_OUT ------- Reset SED1335 = Diode 1, Anode Hier die Schaltung (PDF-Version) und ein Bild von dem Controller (die Platine auf der rechten Seite):
Die SoftwareLeider braucht fast jede Hardware auch ein Stück Software um eingermaßen sinnvoll zu funktionieren. Hier gibt es nun zwei Sachen: ein einfaches Testprogramm und einen Kernel-Treiber. Wer sich für die Programmierung des SED1335 interessiert, sollte sich auf jeden Fall das Datenblatt von der Seiko-Seite besorgen. Ein TestprogrammDies ist ein einfaches Testprogramm mit ncurses-Oberfläche, womit man die grundlegenden Funktionen des LCDs ausprobieren kann. Zum kompilieren einfach in das Verzeichnis wechseln und make eingeben. Dann das Programm als root aufrufen, da es direkt auf den parallelen Port zugreifen muß. Nach dem Start erscheint im oberen Teil das Menu und im unteren sind Logging-Ausgaben zu sehen. Hier ein Screenshot und ein Bild der Ausgabe auf dem LCD:
Funktionen: 1 - Display on = Schaltet das LCD an 2 - Display off = Schaltet das LCD aus 3 - Enter sleep Mode = Bringt den SED und das LCD zum schlafen 4 - Wakeup from Sleep Mode = Weckt den SED und das LCD wieder auf 5 - Display default GFX = Zeigt die Grafik an (testbild2_bw.pbm) 6 - Display default Text = Zeigt einen Text an 7 - Clear GFX Screen = Löscht den Grafikbildschirm 8 - Clear Text Screen = Löscht den Textbildschirm 9 - Cursor off = Schaltet den Text-Cursor ab 0 - Cursor on = Schaltet den Text-Cursor ein c - Console Mode = Ein pseudo Konsolenmodus. Man kann tippen. (Beenden mit .) r - read Cursor address = Liest die aktuelle Cursor-Adresse g - GFX Test = Zeichnet eine Sinus-Kurve (ziemlich langsam!) s - read Status flag = Liest das Status-Flag vom SED o - read control port = Liest den Controlport (Parallelport) b - get byte at cursor address = Liest das Byte an der aktuellen Cursor-Position a - attribute test = Zeigt ein paar Buchstaben invers an e - Reset SED = Resetet den SED w - Backlight on = Schaltet die Hintergrundbeleuchtung ein v - Backlight off = Schaltet die Hintergrundbeleuchtung aus x - Exit = Beendet das Programm mdacon - Der KerneltreiberDieses Kernelmodul ermöglicht es, das LCD als eine weitere Konsole zu betreiben. Es basiert auf dem Kerneltreiber für ein Toshiba T6963C-LCD-Controller, der von Alexander Frink (siehe auch http://wwwthep.physik.uni-mainz.de/~frink/linux.html) geschrieben wurde. Im Original basiert er aber auf dem Konsolentreiber für VGA und MDA Karten, der im Kernel-Tree enthalten ist (linux/drivers/video/mdacon.c).Nun denn, ich habe den Treiber soweit auf den SED1335 angepaßt, daß man ihn als Modul bauen kann und er auch einigermaßen funktioniert. Den Treiber vgacon.c, der fest in den Kernel integriert werden kann, habe ich jedoch noch nicht umgeschrieben. Vielleicht kommt das aber noch, es sollte so schwer nicht sein. Um den Treiber einzubinden geht man so vor:
Probleme:
Hier ein paar Bilder von der Konsole:
Links
|
| ↑ | 3.4.2002 by Carsten Voß | ↑ |
| Last changed: 14.03.2008 • Powered by nothing • Web 1.0 compatible | ||