Forum: Mikrocontroller und Digitale Elektronik Reengineering: Siemens S65 Display


von Christian K. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe mal angefangen, mich mit dem Display aus dem Siemens S65
Mobile zu beschäftigen (auch M65, CX65). Es bietet 132x176 Pixel mit
16-bit Farbtiefe. Dazu einen recht gut zugänglichen Anschluss und
preiswert bei Ebay...

Leider habe ich keinen Zugriff auf die Spezifikation des integrierten
EPSON Display Controllers, daher habe ich mal ein paar Messungen mit
einem Speicher-Oscilloskop (siehe Anhang) des Daten-Traffics gemacht.
Dekodierte Befehlssequenzen stehen im Excel Sheet. Die Beschreibungen
zu den Bildern in der Textdatei.

Probleme:
a) Unglücklicherweise scheinen die Sequenzen mit keinem der mir
bekannten EPSON Display-Kontroller übereinzustimmen. (z.B. Nokia 6100)

b) Siemens scheint immer den ganzen Display-Speicher zu schreiben, d.h.
wenn ich eine Zahl eingebe, wird nicht nur diese Zahl, sondern der
vollständige Display-Speicher geschrieben. Sollte es keine Befehle für
variable Windows geben, wäre das Display für µC Anwendungen schlecht
geeignet.

c) Mein ATmega128 Board ist defekt, solange ich auf Ersatz warte, kann
ich nichts ausprobieren...

Anschlussbelegung Display:
1: RS
2: Reset
3: CS
4: clock
5: data
6: 2.8V
7: gnd
8: 2.8V
9: LED
10: LED

Falls jemand helfen möchte, sehr gerne...

Grüße
  Christian

von Christian K. (Gast)


Angehängte Dateien:

Lesenswert?

O.k. jetzt habe ich auch den Startup analysieren können. Die Scree-Shots
findet ihr im zip File, auch eine kurze Beschreibung.

Der Startup besteht aus insgesamt 6 Sequenzen die teilweise recht lang
auseinander liegen.

Im folgenden sind die Sequenzen zu einer zusammengefasst. Die
nachfolgenden Bytes werden also als Init Commands an das Display
geschickt:

FD FD FD FD EF 00 EE 04 1B 04 FE FE FE FE EF 90 4A 04
7F 3F EE 04 43 06 EF 90 09 83 08 00 0B AF 0A 00 05 00
06 00 07 00 EF 00 EE 0C EF 90 00 80 EF B0 49 02 EF 00
7F 01 E1 81 E2 02 E2 76 E1 83 80 01

Danach beginnt der Clear Screen, wobei erstaunlicherweise Einsen in den
Speicher geschrieben werden.

Der initale Screen wird noch mit zwei leading Command Wörtern
geschrieben:
EF 90
00 00

Danach folgt das eigentliche Kommando das auch später immer wieder für
Screen updates verwendet wird
EF 90
05 00
06 00
07 00

Ab hier wechselt RS von high nach Low und 371712 data bit's werden in
das Display RAM geschrieben. (132*176*16=371712)

Da das Interface mit 13MHz clock läuft, dauert die Übertragung der
Display-RAM Daten (gemessen) 28.5945ms.

So, im Grunde steht jetzt einer ersten Implementierung und Test nichts
mehr entgegen...

Grüße
  Christian

von Christian K. (Gast)


Lesenswert?

Vielleicht noch zur Info, ich habe das alles an einem S65 mit Software
Version 16 gemessen...

Ausserdem ist ziemlich sicher, das im S65 der Display-Inhalt per
Hardware an das Display übertragen wird, denn es gibt keinerlei
Störungen bei den 28ms dauernden Übertragungsbursts. Die Kommandos
dagegen liegen zeitlich auseinander und scheinen daher eher per
Software generiert zu sein.

von Michael (Gast)


Lesenswert?

Hallo,

hervorragende Arbeit.

Kannst Du bitte mal die genaue Typenbezeichnung Deines Displays noch
posten? Bei vielen Handys werden Displays von unterschiedlichen
Herstellern eingesetzt, mit Controllern, die unterschiedliche
Befehlssätze haben, siehe Nokia-Handy 6100. Wäre schade, wenn man sich
dann bei Ebay genau das falsche Display ersteigert...

Gruß
Michael

von Christian K. (Gast)


Angehängte Dateien:

Lesenswert?

Hier ein Bild mit Anschlussbelegung.

Ich glaube nicht, dass es verschiedene Controller Hersteller wie beim
Nokia gibt. Dieses Display ist eine spezial-Anfertigung für Siemens
(ESxxx). Ausserdem gibt es keinerlei Feedback vom Display zum Mobile.
Man könnte also gar nicht detektieren das ein anderes Display verwendet
wird...

Grüße
  Christian

von Christian K. (Gast)


Angehängte Dateien:

Lesenswert?

Tschuldigung, Tipp-Fehler bei der Pin-Belegung, erster Pin muss RS
heissen, hier korrigiertes Bild

von Michael (Gast)


Lesenswert?

Sind das eigentlich 1,8V oder 3,3V Logikpegel bei RS, CS, CLK, DAT
usw.?

Gruß
Michael

von Christian K. (Gast)


Lesenswert?

Habe ich leider nicht gemessen, ich gehe aber von 1.8V aus. Auf meiner
Platine habe ich beide Spannungen auf 2.8V gelegt, da das die Display
Kontroller üblicherweise können. Die 5VµC Pegel habe ich mit
Spannungsteiler (470/610) abgesenkt.

Bisher funktioniert es bei mir aber noch nicht (nur buntes Rauschen auf
dem Display). Vielleicht muss ich mir mehr Mühe geben das original
Timing nachzustellen (hatte bisher kaum Zeit)

Die LED Spannung ist ungefähr 10V@20mA.

von Joachim (Gast)


Lesenswert?

Ich denke, es sollte herausgefunden werden, welcher Controller
eingesetzt wird.
Das "Nachstellen" des Timings halte ich für eine schlechte Lösung.
Ich befasse mich auch mit dem Display, habe aber auch nur die
Anschlussbelegung gefunden.
Das Problem ist, dass die Datenblätter vieler 132x176 TFT controller
nicht veröffentlicht sind. Da muss man erst mal die Hersteller fragen,
ob sie Unterlagen rausrücken.

von nox (Gast)


Lesenswert?

Hallo,


interessante sache was ihr da macht.
Kann man dann diese Displays für eigene Bildausgabe nutzen, wenn
man herausgefunden hat, welche daten man eigeben muss ?

Oder wofür macht ihr das ?


Ciao,
nox

von Axi (Gast)


Lesenswert?

@ Christian K.

Hast du die Controller von HIMAX schon einmal in Betracht gezogen? Ich
bin auf den Hersteller einmal zufällig gestoßen.

http://www.himax.com.tw/ch/product/mbline.asp

Ich meine hier den Controller "HX8302"!


5 Minuten später habe ich durch google folgenen Thread hier gefunden.
Ist eventuell interessant.
http://www.mikrocontroller.net/forum/read-1-159313.html

Eventuell HIMAX einfach mal wegen dem DB anschreiben...


Gruß

von Axi (Gast)


Lesenswert?

Ach ja, hier noch ein Link (ebenfalls im angebenen Thread) für DBs
bezüglich Handys etc.

Such mal nach "siemens", findest manchmal recht nützliche Dinge.
http://www.eserviceinfo.com/index.php?language_file=lang-english.php

Gruß

von Jochen (Gast)


Lesenswert?

das cx65 hat zwischen display und µC den epson chip s1d13716
an dem ist auch die kamera vom handy angeschlossen

von Jochen (Gast)


Angehängte Dateien:

Lesenswert?

ach hier noch ne pdf dazu

von Jochen (Gast)


Lesenswert?


von Jochen (Gast)


Lesenswert?

das s65 wird wahrscheinlich den s1d13732 haben wie im dem oben
angegebenen thread schon festgestellt wurde da dieser auch noch ne SD
karte unterstützt

von Christian K. (Gast)


Lesenswert?

Das mit dem s1d13732 passt sehr gut zu der Beobachtung, dass das
Display-Memorie per hardware upgedated wird, die control commands vmtl.
aber nicht.

von Christian K. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

meine erste Test-Software läuft und ich kann damit Bilder auf dem
Display darstellen bzw. den Inhalt des RAM's beschreiben und sichtbar
machen... Hier ein erstes Bild (ganz frisch) von Versuchsaufbau mit dem
neuen init-Bild.

Grüße
  Christian

P.S: Ich schweige lieber, warum die SW nicht direkt am Anfang
funktioniert hat, am Timing lag es aber nicht. Obwohl ich das Timing
(bzw. die Verzögerungen zwischen den Command-Zugriffen) etwas
hingefummelt habe. Sie ist aber bei weitem kürzer als ich im Original
gemessen habe.

von Christian K. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

für alle die es interessiert, hier der erste Source-Code (AVR) zum
Ansteuern des S65-Displays.

Er füllt das Display zu je 1/3 mit reinem rot, 1/3 reinem Grün und 1/3
reinem Blau in der lcd_clrscr() function. (o.k. später wird das mal ein
echtes clrscr)

Aufpassen müsst ihr bei der Wartezeit zwischen der INIT1 und INIT2
Sequence in lcd_init(). Diese sollte so um die 29ms+/-3ms betragen
(genauer habe ich das nicht ausgetestet). Wenn sie zulang oder zukurz
ist geht das Display nicht. Hier also an euren µC anpassen. Die
eingestellten Zeiten sind für ATmega32 mit 8MHz.

Verschaltung ist in port_init_io codiert und lcd.h definiert:
#define LCD_CS     PB0
#define LCD_RESET  PB1
#define LCD_RS     PB2
#define LCD_MOSI   PB5
#define LCD_MISO   PB6
#define LCD_SCK    PB7

Beim Anschluss des Display's an die Pegel-Anpassung denken, bei mir
Spannungsteiler 470/610. Ich betreibe beide Versorgungsspannungen mit
2.8V.

Grüße
  Christian

von Dirk M. (avr-nix)


Lesenswert?

abo

von Gerald (Gast)


Lesenswert?

Hallo,

wollte mal nachfragen, ob sich hier noch was tut oder ob das Projekt
schon wieder auf Eis liegt?

von Christian K. (Gast)


Angehängte Dateien:

Lesenswert?

....

Gibt's eigentlich schon weitere S65-Display-Nutzer?

Gruesse
  Christian

von Christian K. (Gast)


Lesenswert?

na endlich weiss ich warum einige hier im Forum doppelt posten....

von MartinK (Gast)


Lesenswert?

Hi Christian K.

Das Bild sieht gut aus, die Ansteuerung scheint zu funktionieren.
Kompliment!
Muss ich für die serielle Ansteuerung ein genaues Timing
einhalten bzw. brauch ich eine gewisse Mindestgeschwindigkeit
der Signale, oder reicht auch ein langsames Timing?

MartinK

von Dirk M. (avr-nix)


Lesenswert?

cool - kannst dumal den Code posten, endlich mal eine altanative zum
6100 von Nokia :-) wie gross ist das Display eigentlich?

Und gibts das Display nur einmal ? Ich meine beim Nokia 6100 Display
gibts 3 Chipsätze :-/

von Michael N. (nurmi)


Lesenswert?

abo

von Christian K. (Gast)


Lesenswert?

Bevor jetzt alle losrennen und sich das Display kaufen für eine
Plug&Play Lösung...

Es gibt derzeit noch ein grosses Problem mit dem Display:

Es lässt sich nur das ganze Display in einem Rutsch beschreiben. Die
Sequenz um Unterabschnitte zu beschreiben sind mir nicht bekannt.

D.h. soll sich irgendwo ein Pixel ändern, muss einmal das vollständige
Display-RAM upgedatet werden. Das sind immerin 371712bit's und das
dauert bei 8MHz SPI Takt schon ca. 50ms ohne Inhalts Berechnung

Ich würde mich allerdings freuen, wenn interessierte
experimentierfreudige Zeitgenossen hier unterstützen könnten, oder wenn
jemand an die Programmiersequenz herankommen könnte. Ich habe bisher nur
sehr wenig mit den Program-Sequenzen experimentiert und noch nichts
gefunden.

Gruesse Christian

P.S: Meine Textlösung ist derzeit nur ein ganz einfacher Hack, bei dem
ich das Display in 16x12 SpaltenxZeilen geteilt habe und mir für jedes
Element den Character (8-bit) und Farbe (16-bit) merke. (576bytes).
Damit kann ich dann jederzeit den Display-Inhalt rekonstruieren. Wenn
sich ein Zeichen auf dem Display ändert, wird das in die Matrix
eingetragen und das Bild neu gezeichnet.

von Christian K. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

das Siemens S65-Display hat jetzt seine letzten wichtigen Geheimnisse
preisgegeben.... Ich habe die Befehlssequenzen um Teile des Screens zu
beschreiben entschlüsselt :-)

Gerade habe ich die allseits geliebte (nicht nur wegen der schönen
Font's) glcd graphic library für den AVR auf das Display portiert,
siehe Foto.

Ich kann das Display jetzt bedenkenlos empfehlen. Vorteile gegenüber
Nokia 6100 Display:

a) Grösse
b) Auflösung (132x176) anstelle (132x132)
c) 65536 Farben (16-bit) anstelle 4096
d) einfacher grosser Anschluss, leicht zu löten
e) Kompatiblität (es gibt zwar verschiedene Ausführungen, aber die sind
kompatibel)

Grüße
  Christian

von Läubi (Gast)


Lesenswert?

Coole Sache, kannst mu mal Kompletten Schaltplan + benötigert Hardware +
Software auf deiner Seite bereit stellen? Ich denke daran haben viele
Interesse ;)

von Mark D. (mark_de_jong)


Lesenswert?

ABO

von Thomas S (Gast)


Lesenswert?

display ist bestellt

von Uwe Blank (Gast)


Lesenswert?

Wo bekommt man die glcd her?
Nokias funktionieren gut bei mir, mal probieren ob das Siemens schöner
ist.

von Tobias S. (tobias)


Lesenswert?

Hi,

Wieviel Strom zieht den das Display auf der 2.8V Schiene?

Mit welchem Regler hast du die erzeugt? Einfach LM317 mit ein paar Rs ?


Gruss Tobias

von Axi (Gast)


Lesenswert?

@ Tobias:

"Beim Anschluss des Display's an die Pegel-Anpassung denken, bei mir
Spannungsteiler 470/610. Ich betreibe beide Versorgungsspannungen mit
2.8V."

von Tobias S. (tobias)


Lesenswert?

Hi,
das habe ich auch gelesen :)

Mich interressiert gerade aber mehr, wieviel mA das Display fuer die
Logik benoetigt.

Gruss Tobias

von Mark D. (mark_de_jong)


Lesenswert?

@Christian:

Gratuliere, sehr gute Arbeit.
Frage, wie gross ist der Abstand zwischen die kontakte vom Display.

Ich möchte eine Platine mit controller und taster für das S65 Display
machen.

P.S. kannst du bitte die schaltpläne und software posten?

Grüße Mark,

von Dirk M. (avr-nix)


Lesenswert?

Wieder ein Meilenstein für Handydisplay und sogar ohne datenblatt!

von Christian K. - cnkz@yahoo.c (Gast)


Lesenswert?

@Mark:

Willst Du das kommerziell verwerten?

von Mark D. (mark_de_jong)


Lesenswert?

Hallo Christian,

Ich möchte für mein hexapod, spinnenroboter, einen MMI bauen.

Vielleicht werde ich, wenn die frage da ist, auch die Platine anbieten,
aber dann als Open Source (GPL) was die Software angeht.

Ich werde kein geheimniss aus die Software machen, auch werde ich die
quellen in der Software vermerken.

Wie du auf meine homepage (www.mdejong.de) sehen kannst mache ich auch
keine geheimnisse aus die schaltpläne.

Grüße Mark,

von Dirk M. (avr-nix)


Lesenswert?

Jo ein komplett Bausatz oder Gerät wäre nicht schlecht!
Wäre die Frage wie teurer? Und wie Ausgereift wäre der treiber.

von Mark D. (mark_de_jong)


Lesenswert?

Die Platine werde ich nur als komplettes module (90mmx60mm), mit oder
ohne display verkaufen.

Die bauteile sind nämlich klein (0,5mm pitch).

MSP430F15x / MSP430F161x Controller.

Anschlusse:
I2C master/slave und rs232.

Spannungversorgung für controller, display und beleuchtung.
Die beleuchtung soll regelbar sein (PWM).

Ich suche im moment noch nach einen connctor für das Display.

@Christian:
Hast Du eine idee welche controller auf das S65 display ist, vielleicht
kann ich an das Datenblatt kommen!

Grüße Mark,

von Christian K. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

natürlich werde ich die Software und auch einen Schaltplan in der
Codesammlung veröffentlichen. Gebt mir nur noch ein paar Tage (ja ich
muss leider auch arbeiten und habe nicht viel Freizeit) zum Erstellen
der Doku.

Zum Pin-Abstand:
1/20 inch, d.h. ca. 1.3mm. Ich habe ein Foto meiner "Lötkünste"
angehängt.

Zur Stromaufnahme:
habe ich nicht gemessen, werden aber nur ein paar mA sein

Und noch etwas:
Da offensichtlich andere unter meinem Namen posten, glaubt nur den
Postings mit Bild :-)

Grüße
  Christian

von Andreas (Gast)


Lesenswert?

Hmmm, die waren jetzt aber beide mit Bild ;)

von Thomas K. (thomas_k)


Lesenswert?

@Christian K.

Bitte registrier dich doch. Dann gibt's dieses Problem nicht mehr :)

abo

von Mark D. (mark_de_jong)


Lesenswert?

@Christian:

Könntest Du mir die source code schon mal schicken, ich habe jetzt ein
display und möchtes gerne spielen.

Grüße Mark,
Mark(at)mdejong.de

von Dieter (Gast)


Lesenswert?

Nicht so egoistisch, ich habe nämlich auch ein Display und möchte auch
spielen!

Also bitte hier posten, dann haben alle etwas davon!

von Christian K. (christiank)


Lesenswert?

Hallo,

die Doku und die Sourcen sind online.

http://www.mikrocontroller.net/forum/read-4-243641.html?reload=yes#243641

Grüße
  Christian

P.S: Ich habe mich jetzt beim Forum angemeldet, daher der neue Name...

von Markus Rudolf (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe ein Problem mit dem L2F50 Display.

Ich habe einen ARM9 mit Linux drauf, als Hardwareanbindung einen FPGA
mit 512 Word FIFO der mir eine "gepufferte" SPI zur Verfügung stellt
sowie einen Framebuffertreiber samt Consolentreiber dafür geschrieben.

QT Embedded läuft auf dem Framebuffer, nur sahen die Menüs irgendwie
komisch aus (siehe Anhang). Also hab ich mir mal ein Testprogramm
geschrieben, welches mir die RGB Werte als Farbverlauf ausgeben sollte.
Hängt dran, einschließlich Ausgabe auf dem TFT.

Erwarten würde ich pro Zeile von links nach rechts 32 Pixel von schwarz
bis sattrot, dann 64 Pixel von schwarz bis sattgrün, und dann 32 Pixel
von schwarz bis sattblau.

Die Position der Farbbits in dem 16bit Wort ist wirklich 565, das habe
ich mit einem anderen Testprogramm durchprobiert.

Es sieht momentan aus wie 3-4-3 RGB auf 5-6-5 RGB gemapped. In der
Mitte des Fotos auf Höhe der Mitte vom Stecker sieht man das es 8
verschiedene Rotstufen, 16 Grünstufen und 8 Blaustufen gibt, das Foto
ist nicht besonders gut gebe ich zu, aber ich kann das hier auf dem
Display eindeutig sehen.

Kann das Demoprogramm mal jemand mit einem AVR und der Demosoft von
Christian testen, weil ich befürchte daß das LCD nicht richtig
initialisiert wird.

Hatte jemand schonmal das L2F50 laufen mit definiv 5-6-5 Farben ? Weil
ich glaube nicht daß das bei dem Textdemo weiter aufgefallen wäre.

Markus

von Ssss S. (sssssss)


Lesenswert?

Hi!

>Hatte jemand schonmal das L2F50 laufen mit definiv 5-6-5 Farben ?
Weil
>ich glaube nicht daß das bei dem Textdemo weiter aufgefallen wäre.
Also ich habe bei mir ein rgb565 von einer cmos cam auf dem display
angezeigt.
Da wäre mir sowas aufgefallen denke ich...

Bye, Simon

von Ssss S. (sssssss)


Angehängte Dateien:

Lesenswert?

uuuppss  sorry ich hab ein LS020 !!

Hab mal ein Foto angehängt (wobei ich aber nur rgb555 anzeige glaub
ich, bit0 vom grün is immer 0)

Also da würde man das sehen ...

von Markus Rudolf (Gast)


Lesenswert?

Ja, bei dem LS020 mag das ja gehen....

Markus

von Markus Rudolf (Gast)


Angehängte Dateien:

Lesenswert?

So, ich hab jetzt nochmal den Kram an den AVR umgeklemmt, und Christians
Demoprogramm soweit angepasst, daß diese Gradienten gezeichnet werden
müssten wie die aus meinem letzten Posting. Es auf dem AVR genauso
SCH... aus wie auf dem ARM9.

Kann jemand begefügtes AVR Projekt mal mit seinem L2F50 testen ? Das
würde sehr weiterhelfen denke ich.

In dem ZIP ist auch nochmal ein Screendump (Clock.bmp)von meinem QT
Embedded, welches ich mit cat /dev/fb0 > file.raw ausgelesen habe und
dann mit IrfanView nach BMP gewandelt.

So sollte es eigentlich aussehen, in Wirklichkeit aber siehe
"qt_embedded_small.jpg" im ZIP File.

Christian: kannst du das vielleicht auch nochmal bei dir testen ?

Danke!

Markus Rudolf

von SuperUser (Gast)


Lesenswert?

Hallo Markus,

habe es bei mir getestet, sieht erst mal genauso aus wie bei dir. In
den ersten Spalten sieht man von schwarz ausgehend immer heller
werdendes rot, das kippt dann plötzlich auf intensives rot dass sich
nicht mehr verändert. Grün und blau ist ähnlich.

Grüße
  Ch.

von Markus Rudolf (Gast)


Lesenswert?

So, wenns keiner macht muss mans wie immer selbst machen ;)

Hab gerade mal mit nem FPGA den Init vom L2F50 mitgesniffed und den Bug
gefunden der zu dem komischen Farbmode führt.

In der Inittabelle "gcp64_0[29]" ist ein Byte falsch.

   static const uint8_t gcp64_0[29] =
     {
  0x11,0x27,0x3C,0x4C,0x5D,0x6C,0x78,0x84,0x90, // OK
    0x99,0xA2,0xAA, 0xB2,0xBA,0xC0,0xC7,0xCC,0xD2,//OK
    0xC7<-(D7!!!),0xDC,0xE0,0xE4,0xE8,0xED,0xF0,0xF4,0xF7,  // NOK
    0xFB,0xFE //OK
     };

Den 7ms delay hab ich auch wieder mit drin. Da ist wirklich ne lange
Pause an der Stelle. Evtl. gehts aber auch so. Ich hab nur das eine
Byte geändert und es lief. Evtl. kann Christian ja nochmal testen, ich
hab keine Lust den AVR wieder aufzubauen, bin nächste Woche auf
Dienstreise.

Schönes Wochenende !

Markus

von Klaus Appen (Gast)


Lesenswert?

Was ist RS für ein Signal? Danke!

von Gast (Gast)


Lesenswert?

Schon mal auf Christians Seite geschaut?

http://www.superkranz.de/christian/S65_Display/DisplayIndex.html

von Klaus Appen (Gast)


Lesenswert?

Hat er seine Seite gelöscht?

von Klaus Appen (Gast)


Lesenswert?

warum? @ Christian

von Avr N. (avrnix) Benutzerseite


Lesenswert?

Die geht doch!

von Dieter Bohlen (Gast)


Lesenswert?

ne buuuuuuhh

von Gast (Gast)


Lesenswert?

Wow, heute Morgen ging sie noch, jetzt aber nicht mehr.

von Magnus Müller (Gast)


Angehängte Dateien:

Lesenswert?

Das ist nicht fair!

von Avr N. (avrnix) Benutzerseite


Lesenswert?

Weiter oben müste doch eine PDF Datei sein die sozusagen die Kopie der 
HP ist.
Schade ist es schon!

von Gast (Gast)


Angehängte Dateien:

Lesenswert?

Hier ist sie.

von Christian (Gast)


Lesenswert?

Hi,

www.superkranz.de hat den Provider gewechselt. Ist in Kürze wieder 
online...

BR
  Christian

von Daniel R. (sliderbor)


Lesenswert?

Sorry, dass ich den alten Thread wieder ausgrabe, aber ich habe noch 
eine wichtige Frage!

Auf der Seite von Christian ist das L2F50xxx Display nicht so 
ausführlich beschrieben wie die anderen, daher wollte ich fragen, ob es 
denn genauso läuft und ob ich mich auch an seinem Code orientieren kann. 
Oder gibt es irgendwas, was noch nicht geklärt ist bzw. was ich wissen 
sollte?

Das Problem ist, dass es bei Ebay fast ausschließlich nur L2F50xxx 
Displays gibt. Nur ein Händler hat ein paar LS0, aber dafür auch für den 
doppelten Preis. >(

Vielen Dank und schöne Grüße!

von Daniel R. (sliderbor)


Lesenswert?

"
Sorry, dass ich den alten Thread wieder ausgrabe, aber ich habe noch
eine wichtige Frage!

Auf der Seite von Christian ist das L2F50xxx Display nicht so
ausführlich beschrieben wie die anderen, daher wollte ich fragen, ob es
denn genauso läuft und ob ich mich auch an seinem Code orientieren kann.
Oder gibt es irgendwas, was noch nicht geklärt ist bzw. was ich wissen
sollte?

Er hat glaube ich mal geschrieben, dass er es nicht weiter getestet 
hatte, daher meine Frage.

Das Problem ist, dass es bei Ebay fast ausschließlich nur L2F50xxx
Displays gibt. Nur ein Händler hat ein paar LS0, aber dafür auch für den
doppelten Preis. >(

Vielen Dank und schöne Grüße!
"

Weiß da jemand was genaues? Erfahrungswerte oder so?

von Daniel R. (sliderbor)


Lesenswert?

Kann mir keiner was dazu sagen? :(

von SuperUser (Gast)


Lesenswert?

Es funktionert so weit, du kannst pixel setzen und bitmaps schreiben. 
Eine Grafik-Library musst du allerdings selber anpassen.

von Daniel R. (sliderbor)


Lesenswert?

Das heißt die Beschaltung ist soweit identisch, nur einige Befehle 
unterscheiden sich vom LS0 zum L2F5?

Habe gestern ein L2F5xxx bestellt, werde dann mal ausführlich testen und 
fragen/berichten.

von Jens (Gast)


Lesenswert?

so da hock ich und guck n bissi doof - ich hab ein LHP88 Display und 
mich des Testprogramms von "superkranz" bedient. Folgendes Problem, wenn 
ich das orginal hex-File nehme, alles prima - das Display macht den 
Screen grün und schreibt darauf was es soll. Versuche ich dagegen den 
orginal Sourcecode entweder mit dem makefile oder mit dem Atmel Studio 
zu compailieren, dann bleibt mein Display dunkel.
Mein WinAVR ist 20071221 ... Fehlermeldung kommt, die Codeoptimierung 
hab ich au mal ausgeschaltet, Display tut trotzdem nix - kennt das 
Problem jemand und weiß vielleicht was zu tun ist???
danke ... happy eastern

von SU (Gast)


Lesenswert?

dann sag doch mal welche Fehlermeldung kommt...

von Jens (Gast)


Angehängte Dateien:

Lesenswert?

sorry hab mich vertippt - ich wollte schreiben es kommt KEINE 
Fehlermeldung, jedenfalls ned immer ... also ich versuchs noch gener zu 
erklären, gibt nämlich ne leichte Veränderung.
das orginal hex-File rennt super, trage ich im orginal Makefile noch die 
Prozressorgeschwindigkeit ein, rennts dieses hex-File auch, sobald ich 
etwas am Programm ändere, z.B. eine neue Funktion einführe, die nix 
macht bleibt das Display weiß. Selbst wenn ich "clean all" mache, meinen 
zusätzlichen Code entferne und ein neues hex-File erstelle bleibt alles 
dunkel. Erst wenn ich aus dem orginal Projekt *.o und *.d Files in mein 
Projekt kopiere, dann erhalte ich wieder ein funktionierendes hex-File.
Entweder gibt es einen "Kopierschutz" im Projekt von Superkranz oder 
meine Version von WinAVR paßt nicht richtig zu dem Cod ... oder es 
handelt sich um ein ganz anderes Problem???

Im Anhang die Meldungen von WinAVR, wenn sich auf dem Display dann nix 
mehr tut ... vielleicht hilfts

Gibt es für das LHP88 eine ein Bibliothek, die Linien zeichnen und 
Bitmaps darstellen kann?

von Daniel R. (sliderbor)


Lesenswert?

Aus deinem Logfile:

"F_CPU not defined for <util/delay.h>"

Muss das so? oO Muss da nicht die Frequenz definiert werden? Wenn ja, 
dann kann das nicht tun. Aber das weiß bestimmt jemand anders genauer. 
=)

von Jens (Gast)


Lesenswert?

ähm keine Ahnung, ich hab nie in delay.h etwas gemacht und wenn ich nix 
mache mit dem Orginal außer compailieren, dann rennt es ja

von SU (Gast)


Lesenswert?

F_CPU sollte schon definiert sein. Ansonsten stimmen die delay Zeiten 
nicht.

Füge doch mal ein #define F_CPU <deine Taktfrequenz in Hz> ein...

von Jens (Gast)


Lesenswert?

ok könnte ich machen, ABER wo füge ich das denn ein, weil wenn "clean 
all" mache und dann neu compailiere kommt ja besagte Meldung, trage ich 
dann in der besagten Datei das F_CPU ein, dann meckert er trotzdem und 
es tut sich au nix auf dem Display und in meinem Makefile ist F_CPU 
bereits eingetragen oder muß das in main.c stehen?

von SuperUser (Gast)


Lesenswert?

Im Original-Quelltext steht das

#define F_CPU 16000000

im file disp.h. Hast du die Zeile rausgeworfen?

Auch passen die folgenden Fehlermeldungen

disp.c:231: warning: operation on 'j' may be undefined
disp.c:238: warning: operation on 'j' may be undefined
disp.c:245: warning: operation on 'j' may be undefined
disp.c:252: warning: operation on 'j' may be undefined

nicht zum Original-Quelltext.

Ich schlage vor nocheinmal zurück zum Original zu gehen und von da aus 
die Fehler zu debuggen.

von SuperUser (Gast)


Lesenswert?

Alles zurück, ich habe beim falschen Display geguckt :-(

von SuperUser (Gast)


Lesenswert?

Beim LPH code muss du diesen Block

  for (i=0; i<6; i++)
  {
    lcd_comtype(ct1[i]);
    lcd_comdat(cd1[j++],cd1[j++]);
  }

ändern. Das doppel j++ scheint nicht ANSI-C konform zu sein und bei 
neueren gcc Versionen nicht zu funktionieren. Also z.B. ändern in:

  for (i=0; i<6; i++)
  {
    lcd_comtype(ct1[i]);
    lcd_comdat(cd1[j],cd1[j+1]);
    j+=2;
  }

Das ganze taucht mehrmals auf.

Das

#define F_CPU 16000000

kannst du auch hier am besten in disp.h packen, scheint zu fehlen. 
Natürlich deinen Takt angeben.

von Christian K. (christiank)


Lesenswert?

Hallo Jens,

funktioniert es jetzt? Falls nicht, ich habe den LPH Quelltext upgedated 
(auf der Web-Page). Kannst ja mal ausprobieren....

Grüße
  Christian

von Markus B. (wolframator)


Lesenswert?

Ich hab da mal ne ganz doofe Frage...

Wenn ich mir die Schaltung von Christian ansehe, dann ist für die 
Hintergrundbeleuchtung ein 180 Ohm Widerstand und eine Spannung von 15V 
angegeben. Wenn das Display jedoch 10,4V und 20mA braucht, dann kann das 
doch nicht ganz passen.

15V / 180 Ohm = 83,3 mA

Ich würde die Hintergrundbeleuchtung gerne mit 12V betreiben. Bei einem 
Widerstand von 680 Ohm wären das bei 12V dann immerhin 17mA. Zwar nicht 
die maximale Helligkeit, aber sollte nicht stören.

Hab ich irgendwo einen Denkfehler oder sehe ich das gerade zu simpel? 
Warum 180 Ohm bei 15V?

von Andreas W. (andreasw) Benutzerseite


Lesenswert?

Du musst mit der Spannung rechnen, die über dem R abfällt:

(15V - 10,4V) / 180 Ohm = 25,6mA

von Markus B. (wolframator)


Lesenswert?

Arg... Ja sch*** ding ding ding

Also für 12V ca. 80 Ohm bei 20mA.

3x 220 Ohm parallel für 21,8mA hätte ich für ne Testschaltung da. 
Ansonsten gibts ja 82 Ohm als Standardwert in jedem guten 
Elektronikladen zu kaufen :)

von Jens (Gast)


Lesenswert?

also folgendes, vielleicht verstehts jemand LPH88 Display, ATmega128 und 
ich will Striche zeichnen und mache das:

Auffruf im Programm:
x_line(0,20,174,0xffe0);  // Pos x,y Länge, Farbe

void x_line(unsigned int x, unsigned int y, unsigned int l, unsigned int
c)
{
uint16_t i;

PORTB &= ~_BV(LCD_CS);        // Auswahl Display

lcd_comtype(0x16);
lcd_comdat(0x83-y, 0x83-y);       // y - Koordinaten
lcd_comtype(0x17);
lcd_comdat(x+l, x);        // x - Koordinaten
lcd_comtype(0x21);
lcd_comdat(0x00, 0x00);        //
lcd_comtype(0x22);
lcd_write(0x76);

for (i=0; i<DISP_W*DISP_H; i++)
  {
  lcd_write16(c);        // mit Farbe ausfüllen
  }

PORTB |= _BV(LCD_CS);          // Display weg
}

es malt auch einen Strich, aber zwei Pixelreihen breit und ich versteh
bei Nacht ned wieso - ihr? Wenn ich das Ganze für Y-Richtig verbiege, is
der Strich nur ein Pixel breit, aber dafür länger als er soll und wenn 
wir schon dabei sind, welchen Zweck verfolgen:

lcd_comtype(0x21);
lcd_comdat(0x00, 0x00);        //
lcd_comtype(0x22);
lcd_write(0x76);

ich habs blind aus dem Beispiel von Superkranz kopiert ... ???

von Andreas W. (andreasw) Benutzerseite


Angehängte Dateien:

Lesenswert?

Linien zeichnet man am Besten über eine SetPixel(x,y)-Funktion:
(Die Low-Level Sachen sind im Anhang.)
1
#define RGB(r,g,b) (((r&0xF8)<<8) | ((g&0xFC)<<3) | ((b&0xF8)>>3))
2
3
void SetPixel(UINT8 x, UINT8 y, UINT16 color)
4
{
5
  lcd_cmd(0x21, ((x<<8)|y));
6
7
  lcd_register(0x22);
8
  LCD_CS_ENABLE();
9
  lcd_write(0x76);
10
  lcd_write16(color);
11
  LCD_CS_DISABLE();
12
}
13
14
...
15
x     = 10;
16
y     = 10;
17
len   = 50;
18
color = RGB(0,0,0);
19
for(i=0, i<len; i++)
20
{
21
  SetPixel(x+i, y, color);
22
}
23
...

Was die einzelnen Befehle bedeuten steht alles im Datenblatt des 
Controller:
http://www.mikrocontroller.net/attachment/10916/HD66766-10.pdf

0x16 und 0x17 - zum Setzen eines Fensters im RAM
0x21 - RAM Adresse setzen
0x22 - in den RAM schreiben
...

von ongaku (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe einen Schaltplan für das C65 und SL65 gefunden.
Vielleicht kann es  sich mal einer von den Hardwareprofis anschauen.
In beiden wird als Displaycontroller der S1D13716B02-L verwendet,
was für das L2F50 Display sprechen würde?

Vielleicht hilft es weiter.

Gruß Ongaku

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
Noch kein Account? Hier anmelden.