Hallo, ich fange gerade an Bascom zu erlernen und möchte ein GLCD von Pollin ansteuern. http://www.pollin.de/shop/dt/MTA3OTc4OTk-/Bauelemente/Aktiv/Displays/LCD_Modul_EPSON_ECM_A0428.html Ich hab schon im Forum und Google gesucht, aber ich habe nichts über dieses Display gefunden. Hat dies jemand schon mal angesteuert oder genauer untersucht? Es ist ziehmlich neu bei Pollin. schon mal danke für eure Hilfe.
>ich fange gerade an Bascom zu erlernen und möchte ein GLCD von Pollin >ansteuern. Es gibt kein Datenblatt zu dem Teil. Also Finger weg. Und nur mal so nebenbei: Ich möchte Auto fahren lernen. Kann ich das mit einer Mondrakete machen?
holger schrieb: > Und nur mal so nebenbei: Ich möchte Auto fahren lernen. > Kann ich das mit einer Mondrakete machen? text lcds kann ich ansteuern, jetzt möchte ich es mit GLCD´s probieren. OK danke
>text lcds kann ich ansteuern, >jetzt möchte ich es mit GLCD´s probieren. Dann nimm was mit KS0108 oder besser T6963.
Oder ein Nokia 3310 LCD. Ist ein super Teil. Gibts für nen 5er bei ebäh und die Ansteuerung ist im Internet sehr gut dokumentiert. Es gibt sogar fertige Libs.
Ok Ich werde es mir nicht kaufen. Ich schau mal bei Ebay. Danke
>Es gibt kein Datenblatt zu dem Teil. Also Finger weg.
Na ja , sooo schlimm ist es auch wieder nicht.
Da ein SED 1330 drauf ist, kann man eine Menge ausprüfen.
Touchpanel scheint eine Tastaturmatrix zu sein.
Ansonsten ist mir für ein ernstes Projekt die Platine zu groß.
Wigbert
habe jezt auch 2 Stk geholt. gleich auch bilder gemacht: 1,5 Mb: http://nest.roboterbastler.de/temp/DSCF4097.JPG 1,5 Mb: http://nest.roboterbastler.de/temp/DSCF4098.JPG Die teile stammen von "NORTEL Meridian M3000 Touch-Screen NT Business PHONE" : http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=350396324747 http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=140383821376
BILD: Kabel-Pinout Hat jemmand idee, was für SO-8 (mit Bezeichnung "1251") neben den Elkos ist? Und wofür da noch UV-ROM benuzt wird?
soo... jezt gibt es Lebenzeichen! :) wenn man negative spannung anlegt - bekommt man "pulsirende" Streifen aufm LCD zu sehen... wenn man jezt 5V Spannung kurzzeitig "kurzschliesst" - Streifen werden anders posizioniert. (SED1330 muss wohl Initialisiert werden) morgen - nachsten Schritt : SED1330 Initialisieren
Contrast-Spannung sollte ca 17-24 Volt sein (so sthet auch bei Pollin). Display als "Dual-panel display" initialisieren. Aufm Bild ist nur bits-müll zu sehen (G-RAM muss ich noch clear-en). Rechts-unteren bereich bleibt blank - muss ich noch rausfinden, woran's liegt.
Kontrastspannung sollt doch -17..24V sein. Ist das S-Ram nicht zu klein, um die ganze Fläche zu bemalen? Wigbert
>Wigbert: Kontrastspannung sollt doch -17..24V sein. Ja, "minus 17..24V" :) >Wigbert: Ist das S-Ram nicht zu klein, um die ganze Fläche zu bemalen? Stimmt! also... Erstens: Beinchen /CS beim SED1330 von der platine ablöten und auf GND setzen. Zweitens: SRAM und UVROM rauslöten und stattdesen "ordentliches" SRAM-IC draufsetzen und dann kann man weiter mit der Initialisierung spielen :) diese CODE sollte für'n Angang genug sein:
1 | SED1330_INIT: |
2 | ; http://homepages.sover.net/~snowleop/gdisp3/init.txt |
3 | |
4 | ldi byte_to_send,0x40 ; Send System Set command |
5 | rcall SEND_COMMAND |
6 | ldi byte_to_send,0b00111011;0x30 ; = Internal CG, 32 character CGRAM, 8 lines/char, single |
7 | ; pane, No invert, LCD, Normal Shift clock |
8 | rcall SEND_DATA |
9 | ldi byte_to_send,0b10000011;0x87 ; = 8 pixel-wide characters, 2 frame AC drive |
10 | rcall SEND_DATA |
11 | ldi byte_to_send,0b00000111;x07 ; = Vertical character size = 8 pixels |
12 | rcall SEND_DATA |
13 | ldi byte_to_send,0x1F ; = 32 display character bytes per row C/R |
14 | rcall SEND_DATA |
15 | ldi byte_to_send,0x23 ; = Total address range per row = 36 bytes (this byte must |
16 | ; be at least four greater than the C/R |
17 | rcall SEND_DATA |
18 | ldi byte_to_send,0x7F ; = 128 display lines total |
19 | rcall SEND_DATA |
20 | ldi byte_to_send,0x20 ; = low byte of virtual screen width in byte count. |
21 | rcall SEND_DATA |
22 | ldi byte_to_send,0x00 ; = high byte of virtual screen width in byte count. |
23 | rcall SEND_DATA |
24 | |
25 | |
26 | ldi byte_to_send,0x44 ; Send Scroll Command |
27 | rcall SEND_COMMAND |
28 | ldi byte_to_send,0x00 ; = low byte of layer1 text home address |
29 | rcall SEND_DATA |
30 | ldi byte_to_send,0x00 ; = high byte of layer1 text home address |
31 | rcall SEND_DATA |
32 | ldi byte_to_send,0xFF ; = 128 scan lines for text layer |
33 | rcall SEND_DATA |
34 | ldi byte_to_send,0x00 ; = low byte of layer 2 graphic home address |
35 | rcall SEND_DATA |
36 | ldi byte_to_send,0x10 ; = high byte of layer 2 graphic home address |
37 | rcall SEND_DATA |
38 | ldi byte_to_send,0xFF ; = 128 scan lines for graphics layer |
39 | rcall SEND_DATA |
40 | |
41 | |
42 | ldi byte_to_send,0x5A ; Send horizontal scroll command |
43 | rcall SEND_COMMAND |
44 | ldi byte_to_send,0x00 ; = no horizontal scroll adjustment |
45 | rcall SEND_DATA |
46 | |
47 | ldi byte_to_send,0x5B ;Send Overlay Selections Command |
48 | rcall SEND_COMMAND |
49 | ldi byte_to_send,0b00000000 ; = |
50 | ; (layer 2 can ONLY be graphics) |
51 | rcall SEND_DATA |
52 | |
53 | |
54 | ldi byte_to_send,0x58 ; Send command |
55 | rcall SEND_COMMAND |
56 | ldi byte_to_send,0x56 ; |
57 | rcall SEND_DATA |
58 | |
59 | |
60 | ldi byte_to_send,0x4C ; Send Command to Auto Cursor Increment by +1 |
61 | rcall SEND_COMMAND |
62 | |
63 | ;;;;; --- Clear memory --- |
64 | ldi byte_to_send,0x46 ; Send Cursor Write command |
65 | rcall SEND_COMMAND |
66 | ldi byte_to_send,0x00 ; = low byte of cursor address |
67 | rcall SEND_DATA |
68 | ldi byte_to_send,0x00 ; = high byte of cursor address |
69 | rcall SEND_DATA |
70 | |
71 | |
72 | ldi byte_to_send,0x42 ; Send Memory Write command |
73 | rcall SEND_COMMAND |
74 | |
75 | ldi ZH,0x02 |
76 | ldi ZL,0x00 |
77 | NEXT_SPACE: |
78 | ldi byte_to_send,0xff ; = |
79 | rcall SEND_DATA |
80 | sbiw YH:YL,0x01 |
81 | brne NEXT_SPACE |
82 | |
83 | |
84 | ldi byte_to_send,0x46 ; Send Cursor Write command |
85 | rcall SEND_COMMAND |
86 | ldi byte_to_send,0x00 ; = low byte of cursor address |
87 | rcall SEND_DATA |
88 | ldi byte_to_send,0x10 ; = high byte of cursor address |
89 | rcall SEND_DATA |
90 | |
91 | |
92 | ldi byte_to_send,0x42 ; Send Memory Write command |
93 | rcall SEND_COMMAND |
94 | |
95 | ldi ZH,0x11 |
96 | ldi ZL,0x80 |
97 | NEXT_BYTE: |
98 | ldi byte_to_send,0xff ; = |
99 | rcall SEND_DATA |
100 | sbiw YH:YL,0x01 |
101 | brne NEXT_BYTE |
102 | |
103 | |
104 | |
105 | ;;; |
106 | ;Send Memory Write command 42h |
107 | ;Send 512 bytes of data of value 20h ; Sending 512 ascii blank characters |
108 | ;Send 3584 bytes of data 00h ; Clearing CGRAM area |
109 | ;Send 4096 bytes of data 00h ; Clear graphics area |
110 | |
111 | |
112 | ldi byte_to_send,0x5D ; Send Cursor Format Command |
113 | rcall SEND_COMMAND |
114 | ldi byte_to_send,0x04 ; = five pixels wide cursor |
115 | rcall SEND_DATA |
116 | ldi byte_to_send,0x86 ; = Vertical Cursor Size=7 pixels, block cursor |
117 | rcall SEND_DATA |
118 | |
119 | |
120 | ldi byte_to_send,0x59 ; Send Display On Command |
121 | rcall SEND_COMMAND |
122 | ldi byte_to_send,0x14 ; = Layer 2 on, layer 1 on, cursor off |
123 | rcall SEND_DATA |
124 | |
125 | |
126 | ldi byte_to_send,0x5C ; Send Set CGRAM Address Command |
127 | rcall SEND_COMMAND |
128 | ldi byte_to_send,0x00 ; = low byte of CGRAM address |
129 | rcall SEND_DATA |
130 | ldi byte_to_send,0x04 ; = high byte of CGRAM address |
131 | rcall SEND_DATA |
132 | |
133 | |
134 | ;;; NOW DRAW A DOT IN THE UPPER LEFT CORNER: |
135 | ldi byte_to_send,0x46 ;Send Set cursor Command |
136 | rcall SEND_COMMAND |
137 | ldi byte_to_send,0x00 ; = low byte of graphics address |
138 | rcall SEND_DATA |
139 | ldi byte_to_send,0x10 ; = high byte of graphics address |
140 | rcall SEND_DATA |
141 | |
142 | |
143 | ldi byte_to_send,0x42 ; Send Memory Write command |
144 | rcall SEND_COMMAND |
145 | ldi byte_to_send,0x80 ; = left hand dot of the byte at 1000h |
146 | rcall SEND_DATA |
147 | |
148 | |
149 | ;;; NOW PLACE A CHARACTER IN THE LEFT COLUMN, TOP ROW |
150 | ldi byte_to_send,0x46 ; Send Set cursor Command |
151 | rcall SEND_COMMAND |
152 | ldi byte_to_send,0x00 ; = low byte of text address |
153 | rcall SEND_DATA |
154 | ldi byte_to_send,0x00 ; = high byte of text address |
155 | rcall SEND_DATA |
156 | |
157 | |
158 | ldi byte_to_send,0x42 ; Send Memory Write command |
159 | rcall SEND_COMMAND |
160 | ldi byte_to_send,0x23 ; = "#" in top, left corner character position. |
161 | rcall SEND_DATA |
>>Wigbert: Ist das S-Ram nicht zu klein, um die ganze Fläche zu bemalen? >Stimmt! Wieso? 128 * 280 / 8 = 4480. 8kB RAM ist ausreichend. >Zweitens: SRAM und UVROM rauslöten und stattdesen "ordentliches" SRAM-IC >draufsetzen In dem ROM stehen sicher Zeichensätze. Willst du nur den internen Zeichensatz benutzen?
>Wieso? 128 * 280 / 8 = 4480. 8kB RAM ist ausreichend.
ja und? Willst jedes mal ein Takt auf ein 2 Bild warten.
2 Bilder sollten schon im S-Ram reinpassen. Im Eprom wird wohl
das Menübild drin sein. Wundert mir , das da nach der Init nichts
passiert.
Wigbert
hallo sorry dass ich so lang nichts geschrieben hab. Echt klasse von euch. Ich kaufs mir doch. :)
Hallo liebe Bastlergemeinde, ich habe mir auch so ein LCD zugelegt. Kann mir jemand sagen, wo man da die Betriesspannungen anlegt und wieviel ? Schonmal vielen Dank Gruss Frank
Frank M. schrieb: > Hallo liebe Bastlergemeinde, > ich habe mir auch so ein LCD zugelegt. Kann mir jemand sagen, > wo man da die Betriesspannungen anlegt und wieviel ? > Schonmal vielen Dank > Gruss > Frank Hallo Frank, micha (Gast) hat oben schon ein Bild angehängt. Hier noch mal als Link: http://www.mikrocontroller.net/attachment/preview/87933.jpg mfg Tom
Oh, das hatte ich übersehen. Nur das Bild mit 5V gesehen. Gut wenn ich mal Zeit habe, werde ich's mal testen. Gruss Frank
Hat schon jemand etwas angezeigt bekommen ? Würde mich auch interresieren ob der Touch funktioniert und wo die Anschlüsse sind. Gedenke mir das Teil zu kaufen , würde sich gut in mein neustes Projekt einfügen. mfg Moritz
Schönes Display eigentlich. Datasheets sind auch einfach zu bekommen, aber der Controller hat schon viele Funktionen... - G-RAM kann er bis 64kB - also 8x soviel wie da jetzt drauf sind. - Es gibt verschiedene Layer für das Composing (ob das mit nur 8kB RAM geht?) - der Controller kann bis zu 640x256px ansteuern (das wären genau 20kB) - 5x7px Font mit 160 Zeichen fest eingebaut - bis zu 64 8x16px Zeichen in externem Character Generator RAM (1kB) - bis zu 256 8x16px Zeichen in externem ROM (4kB) - 4,5-5,0V Betrieb Offene Fragen: - Was ist der große ECM-A0045? - Ist ein externes Character Generator RAM verbaut? - Wie ist das Touchscreen implementiert? 18x6 Pads kann man ja erkennen. Nur was kommt am Kabel davon an? Ein serielles Signal? Ggfs. könnte mal jemand die unbekannten Pins mit dem Oszi durchmessen, der Tochscreen sollte ja auch ohne Display was ausspucken.
Stefan_Z schrieb: > Was ist der große ECM-A0045? Ich weiß nur, dass ECM heißt: Epson Custum Made mfg Tom
Hallo, ich habe etwas über das display herausgefunden: Quelle: http://www.google.de/url?sa=t&source=web&cd=7&ved=0CDwQFjAG&url=http%3A%2F%2Frulings.cbp.gov%2Fhq%2F1999%2F959229.doc&rct=j&q=ECM-A0428&ei=wIrXTJX5J8_tOcWrqM0J&usg=AFQjCNGqDu6VdihvkKq83xJ8QG-DKbLnpA&sig2=ohuNLrQq44ZQvfpxld3Rjw&cad=rja ich habe aus dieser Quelle heraus gefunden, dass das Display angeblich in einem Telefon "Meridian M3000" drin gewesen sein sollte. (In dieser Quelle handelt es sich um zwei Displays, um des eine Epson und um noch ein anderes). mfg Tom
Hmm also was ich damit sagen wollte: Sollte einfach anzusteuern sein, mit etwas Knobeln sogar vollständig... So schwer ist Display-Ansteuerung ja nciht wenn man mal Pins und Protokoll hat. Ich scheue ehrlich gesagt den Pollin-Versand, sonst würd ich mal eins ankabeln. Bei der Pinbelegung haben wir noch 6 Mystery-Pins, oder? Zu wenig um die ganzen Tasten als Binärwert auszugeben - also liegt da sicher noch ne I2C oder SPI oder sowas drauf.
Stefan_Z schrieb: > Bei der Pinbelegung haben wir noch 6 Mystery-Pins, oder? Hallo Stefan, nein nur 3 das mit der Matrix könnte auch so ähnlich aufgebaut sein (statt SPI, I²C): http://t0.gstatic.com/images?q=tbn:ANd9GcQeZWB8xOihNJxLLcWs8dh37MVGctZh1zWfv2FhL0B60a4WYOA&t=1&usg=__HSCqo7x97uU30ofFR4GhNZIKFwU= mfg Tom
Wie gesagt: Wer's zuhause liegen hat: bitte mal die noch unbekannten Pins ans Oskar hängen und schauen was da kommt, wenn man auf dem LCD rumfingert... Oder man zeichnet mal diese Irrsinns-Logik nach die da an HC74ern anscheinend den Touch irgendwie auswertet. Was ich erkennen kann: A) 18 Dioden die anscheinend an die zwei 4028er 1-of-10 decoder angeklemmt sind. http://www.komponenten.es.aau.dk/fileadmin/komponenten/Data_Sheet/4000/4028.pdf.pdf B) Darunter sind dann ein 4050 Hex non-inverting buffer http://ics.nxp.com/products/hef/datasheet/hef4050b.pdf und ein 74HC174 Hex FlipFlop http://www.datasheetcatalog.org/datasheet/philips/74HC_HCT174_CNV_2.pdf C) Dann zwei 74HC373 Schieberegister http://www.edutek.ltd.uk/Binaries/Datasheets/7400/74HC373.pdf und ein 74HC74 Dual FlipFlop http://i2c2p.twibright.com/datasheet/74HC_HCT74_3.pdf D) Über dem Kabel / Controller dann noch: 74HC32 Quad 2-input OR gate http://i2c2p.twibright.com/datasheet/74HC_HCT32_4.pdf 74HC04 Hex inverter http://www.nxp.com/documents/data_sheet/74HC_HCT04.pdf 74HC00 Quad 2-input NAND gate http://www.nxp.com/documents/data_sheet/74HC_HCT00.pdf Dieser Wust an Logik dient vermutlich einerseits der Matrix-Ansteuerung der Tasten und andererseits der Ausgabe der Ergebnisse. Dass an dem großen IC CPU dransteht macht mich natürlich neugierig, was diese CPU denn so macht. Und vor allem wann sie das macht was sie soll? Ggfs dient die echt nur der Tastenauswertung und weils ein IC mit Parallel-Output war wird die Logik dann zum seriellen Wandeln genutzt?
Hi, Hab das ding nun , kann die unbekannten Pins aber nächste Woche erst an ein Oszi hängen . Hab kein eigenes und komm erst nächste Woche wieder ins Labor in der FH. Versuch dann an ein Speicheroszilloskop zu kommen. Dann kann ich die ergebnisse speichern und hochladen. mfg Moritz
Das wäre natürlich hammer. Ich tippe aber wie gesagt auf was serielles, insofern - wenn du eh schon in der FH bist - häng doch noch nen Logic-Analyzer mit dran ;-)
Gut, dann muss ich aber in ein anderes Labor , im Hochfrequenzlabor haben wir sowas nicht , aber ich weiß wo sowas steht. Muss ich mal fragen ob ich da mal rein kann =), da haben wir immerhin einen der an einem Pc angeschlossen ist , sonst nur seeeehr alte Kästen.
Hallo, ich habe mir heut das Display bei Pollin gekauft. Ich habe es mir ehrlich gesagt kleiner vorgestellt. Man sieht ja total die Touchmatrix. Dazu muss ich noch was sagen als ich heut beim Pollin war (es is ja jetzt der Superschnäpchenmarkt): Ich ging in Halle 1 an die Warenanforderung und ein Mitarbeiter tippte es ab, dann sagte ich, dass ich gern dieses Display haben wollte, aber im Katalog war es nicht. Er suchte im System nach Display´s und zeigte sie mir. Da gab es ein Display das werder im Katalog noch im Internet ist und ich auch noch nicht gesehen habe. Vielleicht wieder ein neues? :). mfg Tom
Jo Pollin ist halt ne Reste-Rampe. Wenn die nur 50 Stk. davon haben lohnt's ja kaum das Ding in den Katalog zu übernehmen. Und wenn du weder ein Probe-Exemplar, noch ein Foto davon hast, wird es wohl ewig ein Geheimnis bleiben ;-)
Stefan Z. schrieb: > Und wenn du weder ein Probe-Exemplar, noch ein Foto davon hast nein das habe ich leider nicht. Hat jemand eine einfache Schaltung um die Minus 17 Volt zu erzeugen? am Besten mit dem MC34063A. mfg Tom
Daniel Pirngruber schrieb: > Hallo! > > Ist noch jemand an diesem LCD aktiv? Hallo ich bin noch aktiv. Ich muss leider auf meine Spule für den mc34063a warten. mfg Tom
Toll das ich nicht alleine bin! Ah bastelst du dir die -17v für den Kontrast? Ich versuch schon seit einigen Tagen das Lcd mit einem mega32 anzusteuern leider bisher ohne erfolg ...
Hallo Daniel Zum glück bin ich auch nicht allein. Ja ich bastel mir gerade die -17 volt In welcher Programmiersprache programmierst du? MfG Tom
hab eine simple sed1330 lib im netz gefunden geschrieben in C http://www.tklinux.de/sed1330.html bei interesse. hab aber gerade einen fehler gefunden ich hab das cs vergessen muss mir mal ein kabel anlöten um es mit dem controller zu verbinden. aber auch wenn ich einen kontakt mache und den µC starte sehe ich nur schwarze blaken und flimmern.
Daniel P. schrieb: > sehe ich nur schwarze > blaken und flimmern. wird das Display (der Controller) richtig initalisiert? daran könnte es liegen. Ich prog. in BASCOM MfG Tom
Für BASCOM hatte ich auch schon einen code nur leider gleiches ergebnis. Basic gefält mir vom programmieren her auch sehr gut da ich als Hobbybastler den Code besser verstehe mit C oder Assembler hatte ich noch nicht soviel zutun.
Hab das Display hinbekommen. Es zeigt mir schon einigermasen etwas an. Hab auch das problem das rechts unten ein Teil leer bleibt. Schätze mal das problem kommt noch von der initalisierung. Aber wichtig wie micha schon geschrieben hat unbedingt W/S auf 1 setzten (Double Panel) mfg Pirni
So ich kann zwar was auf dem lcd sehen aber leider alles doppelt. Hab bei denn init werten probleme. Wenn man w/s auf 1 setzt muss man bei sl1 und sl2 die werte ändern was ich auch gemacht habe aber dann verschiebt sich das bild immer und ich sehe alles zweifach. kann mal jemand seine werte posten? oder mir einen tip für die berechnungen geben? mfg Daniel
So hab einaml meine Testdatei gepostet der code in BASCOM ist von www.compsys1.com/workbench. Ich hab einmal begonnen ihn anzupassen nur leider ohne erfolg. Vielleicht hat jemand eine Idee. mfg Daniel
Hallo! Hat schon jemand die Kontrastregelung herausbekommen? Soweit ich mitbekommen habe sind a die -17 -24V ja nicht die regelung für den Kontrast. Man müste ihn ja soweit Drehen können bis das man alle pixel sieht. Ich denke nach längeren versuchen das dieses Display im Singel Panel angesteuert wird nur sieht man nichts eben wegen des Kontrasts da sich ja die Cycels in Singel und Dual Panel ändern. Oder denke ich da jetzt komplett in eine falsche richtung? mfg Daniel
Es sieht so aus, als würde der ECM irgend etwas senden und damit vielleicht die Streifen verursachen. Da sind 3 Leitungen, die zu den 74ern führen und allesamt Eingänge sind. Mal sehen, was passiert, wenn man da Spannung drauf gibt...
noch mal nachgemessen.... Einer der Eingänge ist ein Ausgang -.- CS vom SED führt zum hc32 "nebenan" und wird da ständig auf high gezogen. Kein Wunder, dass der SED sich taub stellt.... Es scheint, als hinge CS an einem ODER, dessen einer Eingang dauernd an +5v hängt ?! Mal sehen, was da los ist....
Seltsam.... Es scheint, als würde ein Eingang vom hc32 eine Spannung liefern ?!
der HC32 war kaputt... mit neuem ic sieht es so aus: /CS wird von Pin 6 durchgereicht, wenn Pin 17 auf 0 gezogen wird. (beides am Flachbandkabel vom Draht mit GND aus gezählt)
grmpf, bei mir tuts auch nicht :( naja, 8€ sind noch verkraftbar...
Hy! Kann mir jemand erklären wie man die Layer(sad1 - sad4) berechnet? Ich hab schon das internet durchsucht aber nichts gefunden das past. mfg Daniel
Hallo, ich habe mich auch schon eine Weile mit dem Display beschäftigt. Im Anhang mal der SourcCode mit einer Initialisierung für dieses Display von Pollin. Man beachte: Der SRAM beträgt zwar 8KB doch leider sind nicht so viele Adressleitungen vom SED1330 herangeführt. Somit kann dieser erst voll benutzt werden, wenn zusätzlich Drähte gezogen werden (sonst nur 1KB). Der normale "verdrahtete" Speicherbereich lässt gerade mal den Textspeicher voll nutzen. Der anghängte Code baut auf dem hier auf bzw. wurde angepasst: http://www.tklinux.de/sed1330.html Vielleicht hilft es ja jemanden weiter. Wenn ich den SED mit 128x280 Pixel initialisiere, entstehen bei mir in der zweiten Hälfte des Displays zwei Pixelzeilen als Kopie von der ersten beiden Pixelzeilen. Aus disem Grund wird das Display jetzt bei mir mit 130x280 Pixel und dem Wert für Zeilenkorrektur (IV=0) initialisiert. Jetzt entsteht aber eine Pixelleerzeile, die nicht angesprochen werden kann. Aber es sind keine Artefakte der ersten Pixelzeile zu sehen. Habt ihr auf euren Displays das gleiche Problem oder ist dieser "defekt" nur bei mir? Gruß Dirk
Daniel P. schrieb: > Hy! > > Kann mir jemand erklären wie man die Layer(sad1 - sad4) berechnet? Ich > hab schon das internet durchsucht aber nichts gefunden das past. > > mfg Daniel Hallo Daniel, SAD1 ist der erste Teil des Textspeichers hier kann man Adresse 0x0000 vergeben. SAD2 ist der erste Teil des Grafikspeichers. Dies berechnet man wie folgt: Du kannst in einer Zeile 46 Textzeichen bei einer Breite von 6 Pixel darstellen bzw. hast eine Zeichenhöhe von 8 Pixel. Damit kannst du auf dem ganzen Display 46 Textzeichen x 16 Textzeilen = 736 Textzeichen anzeigen. Demzufolge muss der Grafikspeicher hinter diesem Bereich liegen. Also SAD2 > 736. Kann auch 0x1000 sein. SAD3 ist der zweite Teil des Textspeichers. Er muss eigentlich nahtlos an dem ersten Teil anschließen. Im ersten Teil lassen sich 46 x 8 Zeichen darstellen. Somit ist SAD2= SAD1 + 368 (46 x 8 Zeichen). SAD4 ist der zweite Teil des Grafikspeichers. Er berechnet sich wie folgt: Das Display ist im Blockmodus aktiv. Dies bedeutet mit einem Adresszugriff werden in einer Zeile 6 Pixel beschrieben (gleich wie Textzeichenbreite). Damit hat man auf der ersten Hälfte des Grafikspeicher einen Speicherbedarf von 46 Blöcke x 64 Zeilen = 2944. SAD4 muss also SAD2 + 2944 sein. Alle Angaben ohne Gewähr ;-) Gruß Dirk
Hallo! Danke Dirk für die Infos! Meine berechnungen haben zwar gestimmt abder das mit dem Speicher wußte ich nicht deshalb zeigt mir das lcd keine Grafiken an. Welche Pins müssen das verbunden werden damit der gesamte RAM genutz werden kann?
Hallo, schau mal auf den Fotos. Es müssten die höherwertigen Adressleitungen (VA10, VA11, VA12) sein. Ein Blick in die Datenblätter vom SED1330 und SRAM hilft.
Daniel P. schrieb: > deshalb zeigt mir das lcd keine > Grafiken an. Grafik müsste das Display trotzdem anzeigen. Nur wiederholt sich diese auf dem Display immer wieder. Hast du den Grafikspeicher beim Initialisieren eingeschaltet? Der Parameter P1 bei DISP ON/OFF muss für eingeschaltete Grafik- und Textausgabe auf 0b01010100 stehen (Cursor nicht sichtbar).
Hy Dirk! Hatte es nach dem Epson bsp aus der Doku auf 0x47 stehen. Da stand grafik und courser an. Wenn ich es auf deinen wert ändere sehe ich 3 Streifen über das LCD aber keine Grafik. Hab bei den funktionen Clear Graphic und Clear Text die Werte von 0xff auf 0x00 bzw 0x20 geändert. Hab bei deinem Code nachgesehen da sind sie ebenfals geändert. Hab auch die Leitungen nachgelötet aber sehe keine Grafik nur der Textmodus funktioniert. mfg Daniel
Hallo, Welche Funktion zum Schreiben einer Grafik benutzt du? Die aus sed1330.c? Die GLCD_Pixel()-Funktion arbeitet im Original invertierend. Der Parameter show (on, off, fill, clear) muss dann auf "off" gesetzt werden oder du verwendest die angepassten Funktionen aus meinem Projekt. Dirk
Ich benütze die Originale. Wenn ich eine Linie zeichne sehe ich sie 4x auf dem Display und jeweils drei zeichen dazu. Die Init hab ich aus deinem Code übernommen.
Das hört sich an, als ob deine zusätzlichen Adressleitungen nicht richtig verbunden sind bzw. das Fehlerbild zeigte sich bei mir ohne diese. Hast du die Pins vom SRAM angehoben? Nicht das sie irgendwo noch auf Masse gezogen werden.
Hy! Ja hatte einen kleinen Kontakt zur Masse. Jetzt läuft alles super! Danke für den Tip! Wenn mann jetzt die Tastenmatrix noch rausfinden könnte würde das gesmate Display funktionieren. mfg Daniel
Schön, wenn ich Dir helfen konnte. Du verwendest doch die Init von mir. Hast du da nicht auch eine Pixelzeile, die du nicht beschreiben kannst? Erzeuge mal bitte ein gefülltes Rechteck von der oberen Displayhälfte bis zur unteren und poste mal, ob fehlerfrei oder nicht. Des Weiteren: Verändere bei der Initialisierung den Parameter IV=0 zu IV=1, den ersten ScreenLine-Wert von 65 auf 64 und die Auflösung auf 128x280 statt 130x280. Schreibe dann in die erste Zeile einen Text. Siehst du beschriebene Pixel in der Mitte des Displays? (Kopie der ersten beiden Pixelzeilen) Du würdest mir damit sehr helfen. Dann weiß ich ob mein Display defekt ist oder noch ein anderer systematischer Fehler vorliegt. Die Tastenmatrix ist ein Thema für sich. Ich habe keine Ahnung, wie man die abfragen könnte. Da ich das Display jetzt selber nicht mehr bei Hand habe, kann ich auch nicht experimentieren. Dirk
Hallo! Ja wenn ich IV=1 setze sehe ich eine Pixelreihe Ich habe jetzt 280x128 IV=0 und SAL1 64 SAL2 64 und kein fehler. Wenn ich ein Rechteck zeiche von 0,0 zu 280,128 dann zeichnet das Display aber nicht ganz nach X2. ca. die Reihe wo die schwarzen aufgedruckten Striche sind bleibt leer. Der Textlayer Funktioniert aber bis ganz nach außen. Die Tastenmatrix wird auch schwer werden da der CPU ECM-A0045 damit verbunden ist (soweit ich gesehen hab). Und von dem gibts kein Datenblatt. Ich hab einmal ganz simple die Spannung gemessen. Ich hab in der letzen reihe ca 2v wenn ich jetzt die letzte reihe drücke habe ich 0v drücke ich eine andere reihe steigt die Spannung wider an. Die ersten 6 Leitungen vom blau Weißen Flachband geben die reihe an. Die sind Breiter als der rest. ich denke mal das der ecm a0045 das auswertet. dort liegt das problem denke ich... mfg Pirni
Mit nem Logic-Analyzer könnte man ja mal schauen, was der Prozi bei Tastendruck so ausspuckt, oder?
Daniel P. schrieb: > Ja wenn ich IV=1 setze sehe ich eine Pixelreihe > Ich habe jetzt 280x128 IV=0 und SAL1 64 SAL2 64 und kein fehler. > Wenn ich ein Rechteck zeiche von 0,0 zu 280,128 dann zeichnet das > Display aber nicht ganz nach X2. ca. die Reihe wo die schwarzen > aufgedruckten Striche sind bleibt leer. Der Textlayer Funktioniert aber > bis ganz nach außen. Mache mal bitte das ganze nicht von ganz oben, da sich ja die erste Pixel Reihe wiederholt. Also Rechteck von (0,5) bis (276,123). Bei komplett schwarz sieht man es nicht. Du meinst auf der rechten Seite wird nicht ganz an den Rand gezeichnet? Das liegt an der Grafikfunktion. Sie adressiert nur 6x46 Pixel in einer Zeile. Die letzten 4 Pixel werden nicht angesprochen bzw. erfolgt hier schon der Zeilenumbruch. >Mit nem Logic-Analyzer könnte man ja mal schauen, was der Prozi bei >Tastendruck so ausspuckt, oder? Ich kann mir vorstellen, dass man die einzelnen Adressfelder der Matrix abfragen muss, bevor der ECM antwortet. Erstmal sollte man herausfinden, welcher Bus verwendet wird. Bei SPI muss ja bei einem angelegtem Takt an SCLK bei MISO etwas passieren, voraus gesetzt CS ist mit Masse belegt. Aber halt haben wir nicht nur 3 Leitungen? SPI hat 4 und I²C hat 2. Welcher Bus kommt denn noch in Frage?
Hallo, ist jemand schon weitergekommen mit der Touch-Matrix? Ich erstelle grad einen Schaltplan in Eagle. naja mal sehen wie weit ich komm. mfg Tom
Die "CPU" ist wohl parallel angebunden, dazu dienen die beiden 8-bit-latches ('373). Die Datenleitungen D0-D7 des SED1330 sind mit D0-D7 (Eingänge) des rechten sowie Q0-Q7 des linken Latches verbunden. LE des rechten und /OE des linken Latches hängen über etwas Adresslogik an /WR bzw. /RD. Als zusätzlicher Adresseingang dient Leitung 17 des Kabels (wenn man die rote Ader 1 nennt), gleich neben D7. Wenn diese Leitung H ist, erreicht man den SED1330, bei L die Latches zur "CPU". Einzelheiten: * Der SED1330 bekommt sein /CS von Pin 6 des '32, was der Ausgang eines oder-Gatters ist. Eingänge sind die Pins 5 (Ader 5 (/CS) des Kabels) und 4 (über einen Inverter (12/13 des '04) an Ader 17), so daß besagter zusätzlicher Adresseingang durch Low-Pegel /CS sabotieren kann. * LE vom rechten Latch hängt über einen Inverter (10/11) am Ausgang eines oder-Gatters (Pin 3 des '32), dessen Eingänge die Pins 1 (verbunden mit Ader 7: /WR) und 2 sind; letzterer ist die oder-Verknüpfung (Pins 8, 9 und 10 des '32) der Adern 5 (/CS) und 17 (die zusätzliche Adressleitung). * /OE vom linken Latch ist die oder-Verknüpfung (Pins 1, 12 und 13 des '32) von Ader 8 (/RD) und Pin 8 des '32 (Verknüpfung von /CS und der zusätzlichen Adresse). Wer das Display schon irgendwo angeschlossen hat, kann also versuchen, vom Touchscreen zu lesen. Wahrscheinlich muß man den aber erst durch einen Schreibzugriff konfigurieren oder zumindest anschalten; man sollte also die Scanleitungen beobachten, ob das gelungen ist. Ich würde erwarten, daß sich eine der Adern als Interruptausgang erweist, mit dem die "CPU" meldet, daß eine "Taste" gedrückt wurde. Den Scancode kann man dann durch einen Lesezugriff erfahren. Wahrscheinlich setzt der Lesezugriff auch gleich den Interrupt zurück; jedenfalls ist Pin 11 des '32 (/OE vom linken Latch) mit 13 des '00 verbunden; ein Lesezugriff hat also noch "Nebenwirkungen".
Ergänzung: Der Interruptausgang ist Ader 18, leider nicht level-triggered, d.h. da kommt nur ein kurzer L-Impuls; wenn man den verpennt, ist er verloren. Aus zwei Gattern des '00 ist ein einfaches Flipflop aufgebaut, indem Pins 10 und 11 sowie 8 und 12 miteinander verbunden sind. CPU Pin 34 ist der Interruptausgang (Ader 18) und mit Pin 9 des '00 verbunden, kann also durch einen L-Puls Pin 8 auf H setzen. Pin 8/12 ist auch mit CPU Pin 39 verbunden, so daß die CPU mitbekommt, ob der Interrupt schon "abgeholt" wurde. Das passiert durch einen Lesezugriff: wie schon erwähnt ist /OE des linken Latches mit Pin 13 des '00 verbunden; ein Lesezugriff setzt das Flipflop also durch den L-Impuls auf /OE wieder zurück. Wer statt des Impulses lieber einen Pegel als Interruptsignal haben will, muß ihn sich also an Pin 10/11 (L-aktiv) oder 8/12 (H-aktiv) des '00 abgreifen.
Hallo zusammen, schonmal ein Danke an alle für die bisherigen Forschungserkenntnisse. Aufgrund der Infos habe ich mir am Samstag mal zwei Displays beim Pollin mitgenommen. Display läuft bei mir mit dem Code von Dirk (an Microship Pic angepasst) Hab bisher nur Text ausprobiert Die Funktion GLCD_Text funktioniert aber nur für die Zeilen 0 bis 5, bei höheren Zeilen malt er an falsche Stellen. Das muss ich noch debuggen, liegt vieleicht nur am PIC Compiler, das der igentwas falsch optimiert in der Addressberechnung. Aber mit:
1 | lcdTextCursor(0,0); |
2 | lcdSendCommand(0x42); |
3 | for(i=0;i<736;i++) |
4 | {
|
5 | lcdSendData('*'); |
6 | }
|
Lässt sich das Ganze Display mit Sternchen von Oben Links bis Unten Rechts vollschreiben. Das sich die ersten zwei Pixel Zeilen in der Mitte wiederholen ist bei mir mit 128x280 iv=1 ScreenLines=64 auch so, siehe Bild (DONE) Das man CE vom 1330 an Pin 5 des Kabels bekommt wenn Pin 17 des Kabels auf High liegt kann ich bestätigen. An den fehlenden Addressleitungen habe ich noch gemessen. Es ist so: 1330 Pin 33 VA10 ist mit SRAM Pin 21 (A10) verbunden, hier muss man garkeinen Fädeldraht ziehen. 1330 Pin 34 VA11 muss man an das SRAM fädeln, aber nicht am SRAM. SRAM Pin 23 A11 geht über den 0 Ohm Widerstand an JP1 auf GND. Widerstand raus und dann kann man sich hier anlöten. Die andere Seite des Jumpers würde übrigens SRAM A11 mit 1330 Pin 44 (VR/W) verbinden. 1330 Pin 35 VA12 muss man an das SRAM fädeln, und hier muss der Pin am SRAM nach Oben gebogen werden weil dieser sonst auf GND liegt. Grüße Dennis
OK, dann ist jetzt klar, wofür die Jumper da sind: um die Bestückung mit kleineren Speicherchips zu ermöglichen (die haben ein "Write Enable" oder so an der Stelle, wo bei den großen A11 sitzt). Daraus folgt, daß die vorgesehene Anwendung mit wenig Speicher auskommt; wahrscheinlich sind dann auch beim EPROM die höheren Adressleitungen auf GND gelegt und es steht nur ein interessanter Font bzw. Hintergrundbild drin. Wer den SED1330 schon in Betrieb hat, kann ja mal nachsehen: das EPROM belegt die Adressen ab 0x8000 (Chipselect kommt von Pin 3 des '00, was eine NAND-Verknüfung von VA15 (Pin 27 des 1330) und dem invertierten (Pin 3/4 des '04) /VCE (Pin 45 des 1330) ergibt. SRAM-Chipselect ähnlich (Pin 6 vom '00), aber mit invertiertem (Pin 1/2 des '04) VA15).
Nosnibor schrieb: > Lesezugriff setzt das Flipflop also durch den L-Impuls auf /OE wieder > zurück. Hast Du mal geschaut, ob man dann mit einem Lesezugriff bei Leitung 17 auf LOW ein Datum bekommt, das irgendwie mit dem Touchscreen zusammenhängt?
Dennis schrieb: > 1330 Pin 34 VA11 muss man an das SRAM fädeln, aber nicht am SRAM. > SRAM Pin 23 A11 geht über den 0 Ohm Widerstand an JP1 auf GND. > Widerstand raus und dann kann man sich hier anlöten. > Die andere Seite des Jumpers würde übrigens SRAM A11 mit 1330 Pin 44 > (VR/W) verbinden. > > 1330 Pin 35 VA12 muss man an das SRAM fädeln, und hier muss der Pin am > SRAM nach Oben gebogen werden weil dieser sonst auf GND liegt. Laut Datenblatt vom SED1330 ist die Zählweise/Pinnummer anders. VA11 ist demnach Pin 32 VA12 ist demnach Pin 31 http://www.lcd-module.de/eng/pdf/zubehoer/sed1330.pdf Seite 14. Habe ich ein falsches Datenblatt?
Na dein Datenblatt passt, ich hatte mich da nur verzählt. Umgelötet hab ichs aber richtig :)
Moin, der Thread ist zwar schon etwas aelter, aber ich bin erst vor kurzem dazu gekommen, mich naeher mit dem Display zu beschaeftigen. Daher moechte ich jetzt hier meine Erkenntnisse veroeffentlichen, einiges wurde ja auch schon geschrieben. Ich habe einfach mal alle meine Aufzeichnungen gescannt und angehaengt. Zunaechst mal zum LCD selbst: wie schon bemerkt ist die obere Displayhaelfte keine exakte Haelfte, sondern 66 Pixel hoch -- fuer die untere Haelfte bleiben folglich 62 Pixel. Das Display muss also als 132 Zeilen hoch mit 66 Pixeln pro Haelfte initialisiert werden, damit sich keine Zeilen wiederholen oder fehlen (mit IV=1). Damit im Textmodus nichts doppelt oder abgeschnitten ist, muss die Texthoehe ausserdem ein Vielfaches dieser 66 Pixel betragen, es sind also nur 112 Pixel hohe Zeichen moeglich. Mit dem internen Zeichensatz passen dann 12 Zeilen auf das Display (fuer die unterste Zeile sind noch genau sieben Zeilen Platz). Ich habe ein kleines Testprogramm fuer den ATtiny2313 angehaengt, mit dem der Text- und nach der Ergaenzung der beiden Adressleitungen zum RAM auch der Grafikmodus getestet werden kann. Fuer den Grafikmodus muss die Grafik als Binaerdatei per RS232 an den Controller gesendet werden, zwei Beispiele befinden sich im Verzeichnis "images". Verwendet man Text mit 6 Zeichen Breite, werden auch nur 6 Pixel pro Byte im Grafikmodus verwendet. Die Grafik kann unter Linux z.B. so gesendet werden:
1 | stty -F /dev/ttyS0 115200 raw -echo |
2 | cat images/6px_test.bin >/dev/ttyS0 |
Die Kontrasteinstellung fuer das Display erfolgt auch mit dem ECM-Controller, es wird ein 6-Bit-Wert in das 74HC174 geschrieben und steuert ueber das Widerstandsnetzwerk RA1 den 1251 an, der dann die Kontrastspannung entsprechend einstellt. Ich vermute dass der 1251 ein Doppel-Opamp ist, von dem nur eine Haelfte (Pins 5, 6, 7) genutzt wird. Da ich die Befehle fuer den ECM nicht herausgefunden habe, habe ich stattdessen das Widerstandsnetzwerk und den 1251 ausgeloetet und ueberbrueckt, so dass sich der Kontrast jetzt direkt durch die Spannung an Pin 3 einstellen laesst. Sie liegt bei mir bei ca. -8,5V. Fuer den Touchscreen habe ich mal die Beschaltung herausgezeichnet. Ueber die beiden 4028 wird eine der 18 Spalten mit high-Pegel angesteuert, der ECM erhaelt dann die Signale der 6 Zeilen mit externen Pulldowns und Puffern. Die einfachste Loesung, um den Touchscreen zu verwenden duerfte wohl sein, den ECM auszuloeten und die Leitungen mit einem AVR anzusteuern. Die Abfrage duerfte wohl genauso wie bei einer gewoehnlichen Tastenmatrix funktionieren. Das Zeichensatz-EEPROM habe ich auch mal ausgelesen, es enthaelt nur einen Zeichensatz mit 11px Zeichenhoehe und 8px Breite (16 Byte pro Zeichen, da der SED1330 keine 11-Byte-Zeichen unterstuetzt), der Rest ist ungenutzt. Den Zeichensatz habe ich auch mit angehaengt, ich hoffe das macht keine Copyright-Probleme. Gruss, Arne
Help ! I have a epson ECM-A0806 a litle diferent from above. I dnd't found any info/ datasheet for conect with a arduino Please help
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.