LCD-Modul EPSON ECM-A0428 von Pollin

#1860834
Lesenswert?

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.
Persönliche Seite #1861192
Lesenswert?

>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
Angehängte Dateien:
Gast #1868214
Lesenswert?

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
Gast #1869832
Lesenswert?

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
Angehängte Dateien:
Gast #1870616
Lesenswert?

>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
#1898411
Lesenswert?

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
Gast #1928301
Lesenswert?

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.
#1928657
Lesenswert?

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
Gast #1929784
Lesenswert?

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.
#1931967
Lesenswert?

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?
#1935091
Lesenswert?

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
#1957126
Lesenswert?

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.
#1963569
Lesenswert?

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
#1978546
Lesenswert?

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
Gast #1991884
Lesenswert?

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
Angehängte Dateien:
#1991904
Lesenswert?

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
#1997481
Lesenswert?

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).
#1997921
Lesenswert?

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
#1999508
Lesenswert?

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
#2000220
Lesenswert?

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
#2001074
Lesenswert?

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?
Gast #2006543
Lesenswert?

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".
Gast #2006762
Lesenswert?

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.
Gast #2010567
Lesenswert?

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
Angehängte Dateien:
Gast #2017643
Lesenswert?

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).
Gast #2097074
Lesenswert?

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?
Gast #2823086
Lesenswert?

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
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