Forum: Projekte & Code The Siemens S65 132x176, 65536 color display with AVR


von SuperUser (Gast)


Lesenswert?

Hallo L2F50 user,

es gibt ein update für das L2F50 Display auf der Web Seite. Ein byte in
der init-sequence war falsch....

von wolf4124 (Gast)


Lesenswert?

abo

von SuperUser (Gast)


Lesenswert?

Hallo Mark de Jong,

was machen eigentlich deine Platinen?

Deine Homepage http://www.mdejong.de/ ist für mich leider nicht mehr
nutzbar dar man einen flash-plugin benötigt :-(

von KennyOswald (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!
Habe meine Platine ist auch schon fertig!
Wenn Ihr wollt veröffentliche ich das brd file.

Bild gibt im anhang.

KennyOswald

von Michael R. (rubi)


Lesenswert?

Hallo KennyOswald

Schaut ja super toll aus.
Wirst Du die professionell anfertigen lassen?
Wenn möglich würde ich gerne 1 bis 2 Stück mitbestellen.

LG
Michael

von KennyOswald (Gast)


Lesenswert?

Hallo Michael!
Zur Zeit noch nicht, aber ist geplannt. Vorerst werde ich mir eine
Platine zum testen fertigen lassen. Man weiss nie, ob ich nicht
irgendwo noch einen fehler habe.

Sammelbestellungen mach ich sehr ungern, da tauchen immer probleme
auf.
Die kosten nur für die Platine betragen nur 5€ (www.olimex.com).
Der Rest ca. 10€.


KennyOswald

von Michael R. (rubi)


Lesenswert?

Hallo KennyOswald

Ich würde mir gerne 2 mitbestellen.
Wenn Du möchtest überweise ich Dir den Betrag gerne vor der Bestellung
bei Olimex.


LG
Michael
rubitschka at hotmail dot com

von KennyOswald (Gast)


Lesenswert?

Hallo Michael!
Meinen Auftrag habe ich schon letzte Woche losgeschickt. Das einzige
was ich Dir schicken kann, sind die brd files.

mfg
KennyOswald

von Mario (Gast)


Lesenswert?

Hallo Kenny,

super! Das ist ja toll :). Die 3D-Ansicht gibt schon war her, und der
PIC sowieso :).
Soweit ich weiß bietet Olimex Nachbestellungen an. Dazu ist dann nicht
mal das File zu schicken, die brauchen nur die original Auftragnummer
oder Layout-nummer - und ich denke mit Einverständnis des Urhebers -
kann dann jeder der will dort bestellen und direkt mit OLIMEX das
abwickeln.
Ich würde beispielsweise gleich das LPC2148 Board dazunehmen :).

Und ja, bitte kannst Du die Files online stellen, danke!

Mario

von KennyOswald (Gast)


Angehängte Dateien:

Lesenswert?

Sorry für die Verspätung!
War im Urlaub.

mfg
KennyOswald

von SuperUser (Gast)


Lesenswert?

Hallo Kenny,

die 5V Block-Kondensatoren (10µF/2.2µF) scheinen mir ein wenig schwach
zu sein. Da brauchst du eine niederohmige 5V Versorgung. Ausserdem ist
der ESR üblicher ALU-Kaps (die hast du zumindest eingezeichntet im 3D)
grottenschlecht. Können bei 10µF locker 3 Ohm sein.

Beim LED Backlight können immerhin Ströme deutlich grösser als 100mA
getacktet mit 60kHz fliessen. (z.B. 3 Ohm ESR, 150mA -> 450mV
Störspannung auf der Versorgung)

Ich würde den Praxis-Test abwarten, und mir die Versorgung genau
angucken. Für grössere Stückzahlen bzw. nachbausicher würde ich das
ändern und/oder Kap's mit niedrigeren ESR wählen.

von KennyOswald (Gast)


Lesenswert?

Hallo SuperUser!

Quote:
Ich würde den Praxis-Test abwarten, und mir die Versorgung genau
angucken.

Gut werde ich machen.
Bei dem IRU1205-30 habe ich mich erst mal am Referenz Design vom
Datenblatt gehalten. Später wenn ich die Boards von Olimex bekomme,
werde ich das noch mal überprüfen.

In meiner Schaltung ist noch noch eine +5V Spannungsregler drin.

~9V || 2200µF || 330nF < 7805 > 10µF || 100nF || +5V


Für die Verbesserungsvorschläge bin ich dankbar!

Hint:
Mein Design basiert auf einem CoreBoard (www.ucapps.de) und 8 Companion
Boards, für jeweils ein S65. Die Kommunication zwischen den Boards
erfolgt 400kHz Soft IIC Bus, später mit 1Mhz.

USB wird später für Standalone am PC benutzt.

mfg
KennyOswald

von Peter (Gast)


Lesenswert?

Hallo ThJoedi,

wie schauts aus mit den PDFs hast du schon etwas rausgefunden, welcher
Controller es ist?

von Peter (Gast)


Lesenswert?

oops es geht natuerlich um das Sharp Display

von Ben (lightning)


Angehängte Dateien:

Lesenswert?

Hab das PDF wiedermal auf den neusten Stand gebracht.

Gruß Lightning

von Mario (Gast)


Lesenswert?

Danke Kenny!

Gruß
Mario

von Nico (Gast)


Lesenswert?

Ich bin grad nicht auf den neusten Stand:

Was genau kann man denn mit dieser tollen platine machen? Bzw, was
vereinfacht die?

von Christian F. (fasti)


Lesenswert?

Hi Leute!

Tolle Arbeit!
Bin gerade dabei mich auch mit dem Display zu beschäftigen. Habe ein
L2F50 und es funktioniert super.

@Spider84: Could you please post your code? I would like to see how you
did get the text to be displayed in 90° orientation. I also use the
L2F50 but I didn't get this to work. How'S your library doing? Are
you making any progress?

@all:
Ich frage jetzt nach einem Monat nochmal nach ob schon irgendwer die
Library für L2F50 umgeschrieben hat? Wenn ich in Assembler mehr
Durchblick hätte würde ich es selbst versuchen.

mfg

Fasti

von Spider84 (Gast)


Lesenswert?

@Christian: At first thx for English :) I'll find and release all my
code.

void put_char_90(uint8_t x, uint8_t y, char c)
{
  uint8_t h,ch,p,mask,he;

  LCD_Enable();  // select display

  lcd_cmd(SD_CSET);
  lcd_dat0(0x08+y);  // start is 8, not 0
  lcd_dat0(0x01);
  lcd_dat0(0x08+y+CHAR_H-1);  // end is 00x8B = 0x83+8
  lcd_dat0(0x01);

  lcd_cmd(SD_PSET);
  lcd_dat0(x);
  if (x < DISP_H-CHAR_W)
  {
    he=CHAR_W;
    lcd_dat0(x+CHAR_W-1);
  }
  else
  {
        he=DISP_H-x;
        lcd_dat0(DISP_H-1);
  }

  lcd_cmd(RAMWR);
  mask=0x80;
  for (h=0; h<he; h++){
    for (p=0; p<CHAR_H; p++){
      ch=pgm_read_byte(&ascii_tab[ c-32 ][p]);
      if (ch&mask){
        lcd_dat16(textcolor);
      } else {
        lcd_dat16(backcolor);
      }
    }
    mask=mask>>1;
  }
  LCD_Disable();
}

Now I work on Siemens x70 displays. This LCD look like c65's display.

von quba54 (Gast)


Lesenswert?

Did anybody tried to connect LS020 display to 3.3V instead of 2.9V?

von Peter (Gast)


Lesenswert?

Yes, it runs on 3.3V without Problems
have anyone find the datasheet of the LS020 display??

von Spider84 (Gast)


Lesenswert?

Some body know how to cncrement LCD contrast? I tried to use Sharp LCD,
but picture very light. :(

von Fasti (Gast)


Lesenswert?

Hi!

Sorry I can't help you with your contrast problem but I have another
question for you.
Are the displays from the newer x75 series the same displays as the old
ones or are they compatible? If the x65 Displays get outdated and its
then hard to get them, the x75 displays should be still available.
When there isn't a great difference, could you post how to communicate
with them?

Does anybody try to get the library working for the other Displaytypes?
I tried but till now with no success.

greetings

Fasti

von SuperUser (Gast)


Lesenswert?

Hi Spider84,

it think that the displays have an automatic contrast control. I had
once a light contrast also, but found that the supply voltage was much
too high. After correcting the voltage to the nominal level contrast
was o.k. again....

I've no other idea how to control the contrast

von Spider84 (Gast)


Lesenswert?

My friend works in the GSM warranty center. And he has many various
phones. I have taken from it devices with different displays and make
diferent combinations of pone+lcd. ALL WORK! ALL Displays has ONE cmd
line!
I'll say more. All Siemes x65 phones can control display contrast (by
service tool) from 0 to 255.

I make LCD Emulator based on PIC18F252 and connect it to phone. I has
tried to record commands prom phone to LCD. And I make it!
Now it look like all commands to LCD has 16bit.
For Eample:
CS = 0;
RS = 1;
PutWord(CMD);
RS = 0;
PutData(....);
CS = 1;

Phone work with LCD on 10Mhz and I can't monitor all data from phone
:( My PIC has only 1500 bytes of RAM and it is to small. I tried to put
out data to PC by UART on 115200 (my PC can't more) but it is to slow
VS 10Mhz on SPI. And now i monitor only COMMANDS (when RS = 1). And
10Mhz to high speed and PIC make many errors when recive data (3
measurmen and 3 diferent data packet :) )

Now I get IDA and FullFlash from cx65 phone and disassm it. I try to
find code work with display. Some body know ARM?

Sorry fo my English. (I native lang is Russian)

von Ale (Gast)


Lesenswert?

@Spider84:

The good news are not shadowed by language mistakes ! don't worry.
All no native speakers make more or less some mistakes with english or
with german (me !).

Have you tried to connect an external SRAM to that PIC so you have more
space ?

Which phones and LCD combinations have you tried ? (Model and/or Part
numbers)

The commands to turn-off the display or to put them in stand-by and not
known, that method is excellent to get them, may be you can capture
them.

What you refer to when you say that the PIC make errors ? in the SPI
communication ? or via RS-232 with the PC ?

(Sorry but my russian is even worst than my german :-((( )

By the way, very good work !
Ale

von Spider84 (Gast)


Lesenswert?

I have't external SRAM :( But I'll think about this...

I tried "play" with cx65, m65, s65 and with LCD from Sharp and Epson
(orange back). In all combinations. All work fine. (but different
contrast).

I think that errors makes in SPI bus. But wires length beetwen PIC and
phone not more then 3 cm.

von Ale (Gast)


Lesenswert?

@Spider84:

The errors seem to come from the "low" frequency at which the PIC SPI
can work. I read that the phones communicate at 13 MHz with the display.
Have you measured 10 MHz on that bus ?, that part you are using
(PIC18F252) when clocked at 40 MHz, allows a maximum reception
frequency (SPI SLAVE) of 10 MHz, may be can be overclocked !? (At
50/55MHz for instance ?).

Can you post some of the commands you found ?

Have you checked this page (is in english)

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

von Spider84 (Gast)


Lesenswert?

I measured 10MHz by "oscilograph" (I don't know how this device
called on English) on CKL wire. ALL Phones work with LCD on 10Mhz. I
don't know where author get info about 13 MHz, but it is wrong.

I will try to owerclock. any way I have ATMega8/16 and I can try to
make LCD Emulator on this MCs.

All of my research on work. I'll post all codes when come to work, no
I'am at home.

Yes. A I read this page many times. All information on this pages are
diferent with my research.

von SuperUser (Gast)


Lesenswert?

Hi Spider,

perhaps you should calibrate your oscilloscope.

13MHz is for sure the clock frequency in the S65 phone.

von Ale (Gast)


Lesenswert?

@Spider84:

The clock frequency can be easily measured. You can use the PIC to
generate a 10MHz  signal to use as a reference to check the clock
freq.

Can you try to reproduce the commands you capture,

I mean you turn on the phone and some commands are sent.
You turn off the phone
you turn on the phone again and the some commands should be sent.

If that match, quite probably the commands are right.

I will get this week per post my own display, so I'll test them all !

Regards,

Ale

von Christian F. (fasti)


Lesenswert?

Hi!

Habe versucht das Programm von Fabian Thiele zu compilieren (AVR-GCC
3.4.5) bekomme jedoch immer die Fehlermeldung:
s65LcdTest.c:47: warning: passing arg 1 of `fdevopen' from
incompatible pointer type

Weiss einer Rat? Woran liegt das.

Vielen Dank im Voraus

ciao

Fasti

von Ale (Gast)


Lesenswert?

Du kannst es ignorieren.
Es ist kein Fehler, es ist nur ein Warnung. Das proto von put und get
sind nicht gleich wie fdevopen erwartet. Wenn die beide Pointer haben
die gleiche Lange (z.B. 2 byte), du kannst es ignorieren. Aber das gute
es was ich habe gesagt.

von ronaldo (Gast)


Lesenswert?

Hello LUPIN,
Sorry but I don´t speak german :-(
I have the PCB ARM LPC2106 and I´ll try work my LCD Hitachi HD66766. I
can use the 3V3 in VCC?
In your rotine DISP.C have #include "disp.h" can you send it?

I used MSP430F1232 and 8051 with nokia 6110 and 3110
http://tuta.sites.uol.com.br

Sorry my English,
Regards.

von Christian F. (fasti)


Lesenswert?

Hallo!


Ich wollte mich auf diesem Wege nochmals bei Christian Kranz bedanken
für die großartige Arbeit. Ein L2F50 verziert zur Zeit gerade ein
Projekt von mir und das Display hat vieles erleichtert. Werde demnächst
mal ein LS020 probieren wegen der Library :-)
Also nochmal besten Dank

ciao
Fasi


PS: In English: Is there a big difference between the S65 and S75
Display in means of programming? spider84 did you succeed in
controlling a x75 Display?

von SuperUser (Gast)


Lesenswert?

wegen der library:

Wie Hagen schon (ganz) weit oben angemerkt hat, funktioniert das
Linien-Zeichnen nicht mit allen Winkeln. Denn dafür wurden im Original
Addressierungsmodi genutzt, die das LS020 nicht bietet.

Im Moment habe ich keine Zeit/Lust das zu reparieren (in meiner
Anwendung stört es nämlich auch nicht).

Vielleicht hat ja jemand Zeit/Lust sich das mal vorzunehmen...

von MartinS (Gast)


Lesenswert?

Moin moin,

ich spiele gerade mal ein bissl mit dem LS020 rum. Dabei ist mir
aufgefallen, dass die Beschreibung von Superkranz nicht ganz korrekt
bzw. unvollständig ist. Ich würde die Komandos anders beschreiben.
Wie es aussieht dient das Komando 0xef90 immer zum einleiten einer
Parameterübergabe (funtioniert aber auch ohne).
Darauf folgt die Parameternummer (oberen 8Bit) und der Parameterwert
(unteren 8Bit).
Parameternr.
 0x05 - Orientierung
 0x06 - Pixel Schreibposition X
 0x07 - Pixel Schreibposition Y
 0x08 - Arbeitsbereich Start X
 0x09 - Arbeitsbereich End X
 0x0a - Arbeitsbereich Start Y
 0x0b - Arbeitsbereich End Y

- Dabei setzt der Parameter 0x08 auch den Parameter 0x06 und der
Parameter 0x09 den Parameter 0x07. Diese Parameter müssen nicht alle
zusammen gesetzt werden, z.B. brauch der Parameter 0x05 nicht immer
gesetzt werden.
- Ich ändere den Status der CS-Leitung nicht vor bzw. nach jedem zu
sendenden Byte. Dabei Komandos bzw. Parameter können nicht abwechselnd
mit Daten gesendet werden. Komandos können nur nach der H->L Flanke der
CS Leitung gesendet werden. Wird dananch RS auf Daten gesetzt werden vom
Display anschließend keine Komandos mehr angenommen.

Daraus folgt, das die "clrscr" Routine (im Semplecode für das LS020
Display) von Christian nicht ohne Einschränkungen funktioniert. Es
sollten in dieser Routine auch die Parameter 0x08 bis 0x0b gesetzt
werden, da sonst unter Umständen nur ein Teil des Displays gelöscht
wird.

Kann dieses jemand bestätigen oder widerlegen?
Hat schon jemand herausgefunden, wie man die Kontrast einstellt?

von Stefan Lieven (Gast)


Lesenswert?

Hallo,

hab mir vor kurzem bei pid handy fit ebay ein ls020 besorgt und über
spi an einen mega8 mit 8mhz takt rangehängt. Ich habe das display mit
der auf christian k's page (großes lob für das tolle
reverse-engineering) beschriebenen init zum laufen gebracht, habe aber
folgende probleme:

Display lässt sich wie angegeben schreiben, nimmt die pixeldaten jedoch
statt im rgb 5,6,5 nur im rgb 2,4,2 format.

der kontrast ist sehr schlecht, je mehr aktive pixel, desto schlechter.
d.h. ein drittel schwarz und der rest weiß sieht gut aus, füllt man das
ganze display mit schwarz entsteht hellgrau.
(muss wohl am voltage-generator fürs lcd oder dessen einstellung
liegen)

vielleicht hat jemand eine ähnliche erfahrung gemacht oder weiß wie man
die init modifizieren muss um vor allem den kontrast in den griff zu
bekommen.

von SuperUser (Gast)


Lesenswert?

@Stefan:
Wenn du den Example-Code für den Atmega8 nutzt, musst du beachten, dass
dort die ASCII-Tabelle nicht ins RAM passt. D.h. du musst sie ins
PROGMEM auslagern.

Ansonsten hatte ich solche Probleme noch nicht mit dem LS020 (habe fünf
Stück im Betrieb, alle mit sehr gutem Kontrast). Überprüf auch mal die
Versorgungsspannung. Ich hatte mal versehentlich >4V angeschlossen, da
wurde der Kontrast auch schlecht.

von Stefan Lieven (Gast)


Lesenswert?

@superuser

hab die betriebsspannung leicht nach oben und unten variiert (ca 0,3V)
hat aber keinen erfolg gebracht.

Vielleicht liegts auch am display obwohl ich mir das nicht vorstellen
kann.

Wo hast du deine displays bestellt un wieviel hast du gezahlt ?

von SuperUser (Gast)


Lesenswert?

Hallo Stefan,

alle über ebay bei verschiedenen Anbietern. Ist aber schon etwas länger
her, habe mal kurz in alten emails gegraben und die folgenden drei
gefunden...

auktion.speedy
pid-handy-fit
akku-power

Keine Ahnung ob es die heute noch gibt...

von Stefan Lieven (Gast)


Lesenswert?

@superuser

Hab meins auch von pid handy fit. Verwendest du die init-sequenzen von
christian k's page oder vielleicht andere ?

das größte problem ist immer noch das falsche farbformat.

von MartinS (Gast)


Lesenswert?

Ich habe meine auch von PHF. Die Displays gibt es Heute noch, habe zwei
letzte Woche dort gekauft.

Das mit dem Init von  Christian funktioniert bei mir 100%ig.

von SuperUser (Gast)


Lesenswert?

100% die Init von der page (glcd).

von Stefan Lieven (Gast)


Lesenswert?

@superuser

Habs endlich rausgefunden: als ich die init-tables beim portieren in
den assembler kopiert hab hatte ich sie aus dem simple display example
code genommen, da fehlen ein paar bytes. Danke für den tipp dass du die
glcd verwendest. Dort stehts richtig. ;)

von SuperUser (Gast)


Lesenswert?

Hi

@Stefan,
eigentlich machen beide init's das gleiche (simple und glcd). Zwar
gibt es bei der glcd zusätzlich zur 40-byte INIT2-Table eine weitere
INIT3 table, die wird aber gar nicht benutzt.

@Martin S.
ja, die clearscr Funktion funktioniert nur richtig, wenn man die
Arbeitsbereiche nach der init nicht geändert hat bzw. wieder zurück
gesetzt hat. Auch das 0x05 muss man nicht immer wiederholen. Ein
Performance Gewinn wird sich wohl nur bemerkbar machen, wenn man
dauernd sehr kleine Daten schickt.

von Ronaldo (Gast)


Lesenswert?

Hello Cristian Kranz,
I need your help, I will try to work the LCD HD66773 with arm LPC2106,
and I got here the file "lcd.c". Inside the "lcd.c", I don´t find
the functions InitSPI() and SPI_WRITE().
Where I find this functions or the "lcd.h", can you send me it?

von SuperUser (Gast)


Lesenswert?

Hi Ronaldo,

i think you are wrong here.
a) the provided code is not for ARM-7
b) the display is not a HD66773

BR
  SU

von SuperUser (Gast)


Lesenswert?

O.k. i was wrong, there is a HD66773 display :-)

This is the code on the net for init the SPI and write to the SPI on
Atmega AVR (copied from the code at
http://www.superkranz.de/christian/S65_Display/DisplayIndex.html)

void port_init()
{
  uint8_t tmp;

  PORTB &= ~_BV(LCD_RESET);
  DDRB |= _BV(LCD_RESET);

  PORTB |= _BV(LCD_MOSI);
  DDRB |= _BV(LCD_MOSI);

  PORTB &= ~_BV(LCD_CS);
  DDRB |= _BV(LCD_CS);

  PORTB &= ~_BV(LCD_SCK);
  DDRB |= _BV(LCD_SCK);

  PORTB |= _BV(LCD_MISO);

  PORTB |= _BV(LCD_RS);  // not used from LPH display
  DDRB |= _BV(LCD_RS);

  // setup SPI Interface
  SPCR = _BV(MSTR) | _BV(SPE) | _BV(SPR0);
  SPSR = 1;  // double speed bit

  tmp=SPSR;
}

void lcd_write(uint8_t dat)
{
  SPDR= dat;
  while (!(SPSR & _BV(SPIF)));
}

von Ronaldo (Gast)


Lesenswert?

Super user,
Thanks for answer and help.
The correct name the file is "disp.c" posted here by lupin.
I need only the SPI_WRITE().

I finished the function to nokia_6100 64K to ARM LPC2106

von Eugene (Gast)


Lesenswert?

Hello! I have some questions about LCD S65!

1. On your circuit two different power supplies (2,9 V  and 1,8 V)
connected to 2,9 V. Is it realy safely?
2. Your library for AVR is for WinAvr. Have you library for
CodeVision?
3. Can I replace IRU1205CLTR  by lm317?
4. Can I replace resistors 610 Om by 560 Om?
Thanks.
Eugeny.

von Lupin (Gast)


Lesenswert?

yes
no
dont know
yes

von Eugene (Gast)


Lesenswert?

So, why on display two different power supplies?

von Eugene (Gast)


Lesenswert?

For led power supply used PWM output of AVR. I can't find BAT54 and
BSS123, placed on circuit. Please tell me analog of these parts, or
another circuit for PWM 10V-generator.

Sorry for my bad English )))

von ronaldo (Gast)


Lesenswert?

Eugene,
If you user the LM317, use the equation the datasheet:
V=1.25*(1+R2/R1)
V=2,91
R1=120r
R2=160r

von SuperUser (Gast)


Lesenswert?

Use a approx. 1A Shottky Diode (1A because of the lower forward voltage,
LED current should not be higher than 30mA)

Usa a n-channel (small power) FET with a threshold voltage compatible
to the output voltage of your uC I/O. A low Rdson of the FET reduces
the losses. Switched Current is approx. 100mA. but i propose at least a
1A type.

von Eugene (Gast)


Lesenswert?

You wrote : 1A because of the lower forward voltage...

Sorry, my English is bad... tell about this simply

von SuperUser (Gast)


Lesenswert?

I meant:
Use a shottky diode with at least 1A current capability because such
diodes have usually a lower forward voltage, compared to schottky
diodes with less current capability. Nevertheless the current through
the display backlight LED's itself - and therefore the true current
through the schottky diode - is only max. 30mA. A smaller diode would
do the job but because of efficiency use a stronger.

Same for the FET.

von Eugene (Gast)


Lesenswert?

Ok. Thanks. But on circuit I see BAT54, his current is 0,1 A and it's
works. Why?

von Eugene (Gast)


Lesenswert?

I look for proteus model for S65 display. Please, give me a link or send
to asta-la-vista@mail.ru

von Eugene (Gast)


Lesenswert?

I want to use ATMega32. Is it enougth flash memory on it?

von Eugene (Gast)


Lesenswert?

Is anybody alive here?

von Eugene (Gast)


Lesenswert?

&#1077;&#1073;&#1072;&#1085;&#1099;&#1081; &#1074;
&#1088;&#1086;&#1090;....

von Lupin (Gast)


Lesenswert?

you ask weird questions, that is why no one responses (besides everyone
is german here)

The mega32 is okay, just do the math yourself... you can interface it
with virtually every microcontroller, but with less memory you can only
store low resolution images. I guess no one has a proteus model of the
display.

For the LED step up i would just try to build the circuit of the
schematic on the site. It will work with other diodes too, but maybe
not at such a high efficiency.

von SuperUser (Gast)


Lesenswert?

full ack. to Lupin.

By the way, no idea what is ment with "proteus model" of the display

von Eugene (Gast)


Lesenswert?

You wrote "I guess no one has a proteus model of the
display.", "no idea what is ment with "proteus model" of the
display"...


So, looking this page press CTRL+F - and type proteus in search field.
You shell find link to proteus.jpg - screenshot of project with s65
display.

Lupin. May be I not understand you because of my bad english... But
tell me, if I shall use ATMega32 with library only, without long body
of main program? only library functions - how much kbytes it will be?


Oh... I have to rebuild this code for CodeVision... It will be
difficult?

von Eugene (Gast)


Lesenswert?

Hello!

I have download
http://www.superkranz.de/christian/S65_Display/data/s65_glcd_V01.zip

In install.txt I found string:
"- open \lib\makefile. and change MCU_TARGET and -DXTAL=16000000 to
your Device
- open \lib\glcd.inc and change the PORT definitions to your hardware
connection of the GLCD
- run \lib\compile.bat
"

But There is no folder "lib" in s65_glcd_V01.zip . Why?

von SuperUser (Gast)


Lesenswert?

the lib folder is renamed to glcd. You find all files in the glcd
folder.

For compilation use make instead of compile.bat

von Eugene (Gast)


Lesenswert?

Hello!

Look at code:

#elif defined (_AVR_ATmega32_)
  #define   LCD_PORT                _SFR_IO_ADDR(PORTB)
  #define   LCD_PIN                 _SFR_IO_ADDR(PINB)
  #define   LCD_DDR                 _SFR_IO_ADDR(DDRB)
  #define   LCD_CS      PB0
  #define   LCD_RESET   PB6
  #define   LCD_RS      PB7
  #define   LCD_MOSI    PB2
  #define   LCD_MISO    PB3
  #define   LCD_SCK     PB1


You can see PB2 with MOSI and PB3 with MISO. But on scheme - only
"DAT" with PB2. How to connect.

It's not all troubles.

Compiler WinAVR put warnings:
test.c:10: warning no previous prototype for 'testLines'

and same warnings for other functions on test.c

I change XTAL in two places in library. May be I do error while edit
make file?

Please, compile for me test.c for ATMega32  with 8Mhz internal RC
Oscillator.
I want to know - is the program error, or LCD error.

I connect AVR outputs with LCD inputs without resistors.
Do LCD will not work whithout resistor? or LCD will be work, but with
instability?
Do this damage LCD?

von Eugene (Gast)


Lesenswert?

Is anybody alive here?

von Fasti (Gast)


Lesenswert?

Hi!

You don't have to connect the PB3 Pin to anything on the Display,
because communication is only in one direction, MCU -> LCD. So you
connect DAT on the LCD to MOSI on the MCU.
You didn't say at which voltage your MCU runs. If its 3,3V your ok but
if it's 5V you may have ruined your display if you didn't use a
voltage divider. Use the resistor combination proposed from Mister
Kranz and it will work fine. If Powerconsumption is an important
concern for you you might use an active Levelshifter (e.g: Max3002)
instead of the resistors. This will reduce current-consumption.
I can't say anything about the warnings from the compiler by now
because I'm not at home where I can try and compile the lib.

greetings

Fasti

von Eugene (Gast)


Lesenswert?

Thanks, Fasti!

You wrote: "You don't have to connect the PB3 Pin to anything on the
Display". Ok, but my debug board has leds on each pin of each port.
When MCU is start's - PB3 led is lighting. Why? And if PB3 is not
used, why PB3 defined in library?

You wrote: "5V you may have ruined your display if you didn't use a
voltage divider".

Hmm.. MCU voltage - 5 V, LCD - 3 V. SPI without resistors voltage is
4.5 V. LCD not works, but I think, that LCD still not damaged, because
combination of lighting leds with connected LCD, and without connected
LCD is different.

You wrote: "I can't say anything about the warnings from the compiler
"

Why "can't say"? Look my previous messages...

von Eugene (Gast)


Lesenswert?

Hm... I have display LPH8836. On Mr.Kranz's site I have read "LCD
Grafic Library (GLCD) for ATMEL AVR processor (currently LS020 only)"

Where I can get library, or how can I edit library for using with
LPH8836?

von Christian F. (fasti)


Lesenswert?

Hi!

It depends on how the LEDs on your port are connected. If the Leds are
connected from Vcc to the Pin, the LED will light when the Pin is low.
If it is connected from the Pin to Ground, the LED will light when the
Pin is high. I don't know if the Port is set high or low by the
software but anyhow it's not relevant for the display. It will work
without this Pin simply because there is no Pin left on the Display to
be connected. I also don't know what the LEDs on your Board tell you
about the functionality of the display. I don' think you can say
anything from a few LEDs or I didn't get what you wanted to say. If
you don't get the Voltage from the Digital lines to 3V your display
will surely be damaged.

I've read all your messages so I don't know what you want..... I
said: I can't say anything about the warnings because I simply don't
have the library here to try out and compile it with your settings.
Another point is that the library won't work with the LPH88.... and I
don't know anybody who modified the library for the LPH Display.
Maybay you want to do it and you're capable of doing it. It would be
nice if you would Post it here when you're finished. For a start you
must analyse the code from the existing Files for the LPH88. As far as
I know, the LPH Display is the one which is the least known display of
all three types. Christian has done a lot of work to get this
information reengineered from a working handy and I understand him that
he can't do all the work to get every kind of Display working for
everyone. I appreciate his efforts of getting the library ready for the
LS020. My coding skills aren't good enough to write a library for the
LPH or in my case the L2F50 so I hope you will be doing it :-)

greets

Fasti

von Eugene (Gast)


Lesenswert?

Hm... If I make MCU power 3.3V, LCD power - 3,3 V, connection between
LCD and MCU without resistors. It's more simply, isn't it?
Are somebody tryed this method?

von Christian F. (fasti)


Lesenswert?

When you've got the possibility to drive your MCU with 3,3V do it, it
will work fine without resistors then.

von Eugene (Gast)


Lesenswert?

You wrote: "When you've got the possibility to drive your MCU with
3,3V do it"

Hm.. Strange words.. It is not difficultly.

von Christian F. (fasti)


Lesenswert?

Hi!

Definitly not strange words: for example: In my application the MCU
can't be driven with 3,3V because the other peripherals need 5V and
only the Display needs 3V so I haven't got the possibility to drive my
MCU with 3V with a reasonable effort concerning the rest of the circuit.
For me the easiest way is to get the signals for the Display to 3V and
not converting 15 other Signals to 5V.

von Eugene (Gast)


Lesenswert?

Ok, Christian, thanks.
All my peripherals can work with 3.3V.

P.S. Have you a library for LPHxxx display?

von Ronaldo (Gast)


Lesenswert?

Eugene,
Search in the google by "HD66773".
I have the HD66773 and HD66766.

von Eugene (Gast)


Lesenswert?

I understand. I have HD66773 PDF file. But I want finished library for
avr. My  programming skill not so good to write library from HD66773
datashit.

von Eugene (Gast)


Lesenswert?

What the fuck???
I can't understand!!!

On this topic I found string: "Im Moment ist das LPH88 und LS020
supported. Das L2F50 hoffentlich bald."

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

I found "LS02"  only...
Whereis the true?  Is the LPH88 supported by mr Kranz's library?

von Christian F. (fasti)


Lesenswert?

Hi!

The stated sentence says nothing about the library only that the two
Display types work with the code posted at www.superkranz.de
At the time of the posting Mister Kranz didn't hav a working code for
the L2F display. In the sentence beneath the stated, he says, that the
library only support the LS020 display by now. So in the same posting
you get the answer about the truth.

von Eugene (Gast)


Lesenswert?

I asked about LPH. Why all people write, that LPH is not supported, but
I found this link
http://www.mikrocontroller.net/attachment.php/252187/LPH_display4_V02.zip,
there written, that LPH is supported... There is the truth?

von SuperUser (Gast)


Lesenswert?

Hi Eugene,

the provided LPH display code can be used for:
-> initialising the display
-> writing bitmaps to the display
-> writing text with the given ASCII bitmap table to the display
-> switching off the display (not sure)

The GLCD library (drawing lines/circles/different fonts/frames etc) is
only available for the LS display. You are invited to make the port for
the LPH display.

von Eugene (Gast)


Lesenswert?

Heh..

I use Atmega16  Internal oscillator 8MHz
VCC - 3.2 V ( on both - 2,9V and 1,8 V)

0 = 0.00 V
1 = +3.1 V

connected as:

#define LCD_CS     PB2
#define LCD_RESET  PB3
#define LCD_RS     PB4
#define LCD_MOSI   PB5
#define LCD_MISO   PB6 //Not Connected
#define LCD_SCK    PB7

I use HelloWorldMega16.zip

Data wires length 9 cm.

I tried to on|off double speed bit, tried to set SPI speed to CPU/128

I have two displays LS020 - DON'T WORKS!!!

Help!

von Eugene (Gast)


Lesenswert?

Yes!!!!!


It Works!!!!

I use 16 MHz with 3,3V (!!! MCU works stable), double_bit=0, CPU/16

My mistake was - I tried to set CPU/128 as Spider84 wrote.

Now I try to use full library mr Kranz's. Heh - dont work.

I have leds on each pin of PORTB - while working - only PB6 (MOSI) is
lighting. It is wrong, isn't it?

There is the string in library : #elif defined (_AVR_ATmega16_)

But I cant find string #define _AVR_ATmega16_  in code.
Where it have to be placed?

von Eugene (Gast)


Lesenswert?

upp!

von Ronaldo (Gast)


Lesenswert?

Eugene,
You used 3V3 in 2,9V and 1,8V?
What full library was used?
thanks

von Eugene (Gast)


Lesenswert?


von Eugene (Gast)


Lesenswert?

YYYYYAAAAAHOOOOOOOO!!!!!!!!!!!!!!!!!!!!!11



ALLL WORKS!!!

Full library WORKS!!!!


Thanks to all!!!

von Ronaldo (Gast)


Lesenswert?

Eugene,
Haved you used the 3V3 in 2,9V and 1,8V or not?

von Eugene (Gast)


Lesenswert?

Yes. I used equal voltage on both supplies - 2.9 V and 1.8 V - I put 3,3
V. And I think, that it is not dangerous, because LCD controller chip
temperature not grow.

Now, I trying to make CodeVision library for this display.

von Ronaldo (Gast)


Lesenswert?

Eugene,
If you used the 3V3 to 2,8V and 1,8V, don´t used resistor, right!.
When you finished the Codevision library, please post here, because I
use the codevision and now I´ll try test the Hitachi HD66773
controller.

von SuperUser (Gast)


Lesenswert?

Für alle die des Löten's und Programmieren nicht so mächtig sind, hier
gibt es jetzt eine fertige Lösung zu kaufen:

www.display3000.com/d073x.pdf

Sieht auf dem ersten Blick ganz ordentlich aus.

Das einzige was mich stört, ist der fehlende Hinweis auf die
Quellen...

Grüße
  SU

P.S: Ich habe mit Peter Küsters und seinem Shop nichts zu tun

von Lupin (Gast)


Lesenswert?

Der typ bereichert sich an anderer Leute Nachforschungsarbeit die zur
freien Nutzung bereit gestellt wurde - finde ich nicht so gut: nix von
dem kaufen!

von Jens D. (jens) Benutzerseite


Lesenswert?

Seh ich auch so

von The Daz (Gast)


Lesenswert?

Mal ganz abgesehen vom offensichtlichen Klau, finde ich die Idee, ein
ready-to-use Modul anzubieten, gut. Dieses Gefrickel mit dem
Folienstecker ist ja noch ok fuer nen Prototyp, aber wenn jamand fuer
wenig Geld sowas als fertiges Paket anboete, waehre ich einer der
ersten Kunden. Das display3000 Teil ist aber zu teuer fuer meinen
Geschmack.

von Jens D. (jens) Benutzerseite


Lesenswert?

Er verkauft ja auch die Software..

von The Daz (Gast)


Lesenswert?

Ich kann nur fuer mich sprechen, aber wegen der software wuerde ich
dieses Modul nicht kaufen, sondern wegen der hardware. Wenn dann der
Preis stimmt, ist mir egal, ob da irgendwelche CDs beiliegen. Bei
PC-Hardware ist das genauso.

von Martin (Gast)


Lesenswert?

Weiß einer, um welches Display es sich handelt?
Auf seiner Homepage ist noch nichts von dem Angebot zu sehen.

von Mark D. (mdj_electronics)


Lesenswert?

Das wird er wahrscheinlich nicht sagen, ich hatte ihn mal gefragt wegen
das kleine Display, da wollte er nichts rausgeben ohne das ich einen
display mit µC kaufen würde.

Ein Datenblatt von Controller hatte er nicht.

@Christian:
Kannst Du mir bitte deine Postadresse schicken, damit ich dir denn
ersten Bausatz von meine Adapterplatine für das S65 Display schicken
kann?
Ich würde mich freuen wenn Du denn Bausatz testen könntest.

Grüße Mark,

von Eugene (Gast)


Lesenswert?

Oh... all it is slowly.. It is better to draw picture in memory on first
stage, and one-moment outputing picture to screen on second stage. How
to do it?

P.S. Have anybody functions to work with images?

von Klaus L. (keyel80)


Lesenswert?

Hallo Forum,

ich interessiere mich dafür, das S65 in einem Projekt für meine Uni zu
verwenden.

Die Displays von ebay kann man doch in jedem S65 einsetzen und das
Handy selbst kann nicht herausfinden, welches Display eingebaut ist
(lt. Aussage von Christian Kranz findet keine Rückkommunikation
statt).

Folglich müssten alle verbauten Controller doch initialisierungs- und
Befehlskompatibel sein, oder?

Ich hab ein Datenblatt für den HD66773R vorliegen. Ich habe das Gefühl,
dass bis jetzt noch keiner in ein Datenblatt geschaut hat und die
Entwicklung nur auf Reverse-Engineering basierte. Mit dem Datenblatt
müsste es doch möglich sein, eine spezifikationskonforme Software zu
implementieren, die für alle Displays passt.

Das Datasheet habe ich ganz einfach über Google gefunden - so einfach
kann das doch nicht sein, oder????


Gruß Klaus

von SuperUser (Gast)


Lesenswert?

> so einfach kann das doch nicht sein, oder????

Genau,

die Displays werden anhand interner Pull-Up's/Pull-Down's
identifiziert.

Du kannst dir ja mal die drei Ansteuer-Codes herunterladen und
vergleichen. Sofort sollte dir klar werden, dass die Displays
unterschiedliche Controller haben und unterschiedlich angesteuert
werden müssen.

Woher weisst du das ein HD66773R benutzt wird? Das einzige was bekannt
ist ist, dass die Befehlssequenzen eines Displays den des HD667xx
ziemlich ähnlich sind.

von Klaus L. (keyel80)


Lesenswert?

Danke SuperUser,

der Thread ist mittlerweile so umfangreich, dass man nicht mehr alles
lesen kann, sorry.
Ich habe die Typenbezeichnung des Controllers von Christian Kranz'
Seite, aber das scheint dann wohl nicht 100%ig sicher zu sein

Gruß Klaus

von Simon K. (simon) Benutzerseite


Lesenswert?

Hallo Leute,

Ich habe mir jetzt auch mal ein S65 Display geholt und wollte es
ansteuern.

Dafür habe ich mir eine kleine Platine gebaut mit einem Atmel ATMega16
und 470Ohm/470Ohm Spannungsteiler. Die Spannung am AVR beträgt etwa
5,2Volt, sodass ich auf etwa 2,6V Highlevel komme hinterm
Spannungsteiler. Die Flanken sehen auf meinem Oszi absolut in Ordnung
aus.

Zum Display: Die 5 Datenleitungen habe ich an die Spannungsteiler
angeschlossen. LED GND und GND habe ich miteinander verbunden und auf
meine gemeinsame Masse hier gelegt (Labornetzteil).
Nun das Problem:
Sobald ich auv den 1V8 pin auch 2,9V drauf gebe, zieht der Pin mal
locker 150mA und der Controller an der Oberkante des Display wird ganz
gut heiß.
Das Display ist des Typs L2F50. Dazu habe ich den Code von Christian
Kranz auf der Homepage verwendet, der ja von den ATM128-Registernamen
her zu den ATM16 Registernamen kompatibel sein sollte. Der Code
kompiliert auch ohne Fehler.

Wenn ich nun den 1V8 Pin unbeschaltet lasse, gibts manchmal nur bunte
Streifen nach dem Einschalten zusehen. Manchmal gibts aber auch einen
komplett schwarzen Hintergrundd mit einem weißen Streifen zu sehen, der
aber nach ein paar Sekunden sich zu bunten Streifen verwandelt.

Ich könnte mir vorstellen, dass das daran liegt, dass ich die 1V8 nicht
beschaltet habe. Wenn ich aber hier 1,8V mal anlege, zieht er auch
immernoch 30mA.. Das kanns ja nicht sein, oder?

Hat das L2F50 ne andere Belegung als die auf Christians toller Seite?
:-(

Ich bedanke mich für jeden Tipp!

von Simon K. (simon) Benutzerseite


Lesenswert?

Hatte keiner das Problem? Oder soll ich lieber noch auf ne Antwort
warten? ;)

von Jens (Gast)


Lesenswert?

Also 150mA ist definitiv zuviel...

soviel zieht das Display nicht mit der Hintergrundbeleuchtung

von Simon K. (simon) Benutzerseite


Lesenswert?

Allerdings, aber mich wundert sowieso, warum der Pin 1V8 dauernd genannt
wird, wenn man doch 2,9V draufhaut..

von Jens D. (jens) Benutzerseite


Lesenswert?

Es kann sein, dass dieser PIN eine Art IO Spannung darstellt k/a

von Simon K. (simon) Benutzerseite


Lesenswert?

Dann kann man ihn doch auch Vcc nennen oder sowas..

von Jens D. (jens) Benutzerseite


Lesenswert?

Koennte man.

Denke mal, Christian hat die Spannung gemessen, und dann so benannt.

Einige Controller (zB. der SAM7 laeuft mit einer Core Spannung von 1,8V
hat aber noch fuer die IOs 3,3V.

Denke bei dem Display ist das ähmlich, nur dass die IO Spannung kleiner
ist, als die VCC weil der Handy Controller evtl eine 1,9V IO Spannung
hat

von Eugene (Gast)


Lesenswert?

I want to suppose to put in this topic your projects with LCD s65.

Anybody know, how increase speed of working? Simple rectangle
0,0,132,176 library of mr Krans drawing during 0,5 seconds.
How to write to LCD memory, and then - output to LCD?

von The Daz (Gast)


Lesenswert?

Eugene,
0.5 seconds seems to be a bit long to me to fill the display. Even
without setting the double speed bit you should be able to achive about
10 fps (= 100msec). I don't know the details of the library you're
using but you should check your SPI speed setting. Depending on the
display type (I'm using an LS020) there are ways to improve the
performance of the code. I wrote my own optimized fill function in
assembler and got close to the max. speed of about 20 fps with an
ATMega16 running at 16MHz. So far nobody said the LCD is working with a
background buffer allowing you to write to that buffer and let it
display with a single command.

von The Daz (Gast)


Lesenswert?

@Eugene
I just read your posting dated 1.7.2006. You're using the AVR @ 8Mhz
and SPI setup at CLK/16, correct ? Well, that explains why you think
the LCD is so damn slow. It's your lame setup. First of all I would
try to use the AVR at its max. clock frequency (which is 16MHz), then
I'd setup the SPI to work at CLK/2. These two modifications would
speed up your setup by a factor of 16. Remember, to fill the LCD it
requires to send about 46k of data via the SPI to the LCD. Your setup
is capable of x-fering about 62.500 bytes / second. Using the suggested
setup you could achieve about 1.000.000 bytes / second. Of course this
requires short cable lengths and a good signal quality.

von san (Gast)


Lesenswert?

Hello,

is anybody had implemented the communication between x65 display and
PIC 18fxx5x?
I'm very interested in correct schematic, because currently I still
having problems connecting ones.

2Mario: can You, please, send me the Your schematic (with pic16)?

Thank You.

(sorry my English, my native languages are Ukrainian and Russian, and I
very little bit understand Deutsche and little bit better speak
English).

von Eugene (Gast)


Lesenswert?

Daz

No! It was first step settings.

Now my settings is 16 MHz SPI speed is CPU/2.
I use Mr Kranz's library function glcdFillRect (0,0,132,176).
I'm not sure, that screen fills in 0,5 seconds, but I sure, that is
not 10 fps.

Please send me you sample code to try on my project.

von Eugene (Gast)


Lesenswert?

Oh.. Sorry, Daz? you are right!
I setup SPI with CPU/2 and it work faster.

But if I want quickly change background from black to white - I see bad
visual effect of filling display from up to down screen border.

Ok... On s65 phone this display controlled by fast ARM processor. But
LCD clock is maximum 13 MHZ. How video clips are showing on this
display?

von Eugene (Gast)


Lesenswert?

2 San

Zdoroven'ki buly, hohol!!!

von Lupin (Gast)


Lesenswert?

Uhm yes...

simple, the ARM has a buffer in memory and then sends the memory to the
display with max. clock....

Or the display has enough internal memory to hold 2 screens and it is
possible to set one active screen and one as a backbuffer. But I think
that's not possible... I am not sure.

Having two screen buffers is the only way to reduce shearing. You could
also try to just update portions of the screen... most times you won't
need to redraw the screen as a whole.

Another method is to update even lines first, then update all uneven
lines in the next frame - this way you get twice the framerate
(theoretically, but at such a low FPS it will be visible to the user).

von Dirk Schlage (Gast)


Lesenswert?

@Simon Küppers:
Ich habe wohl das gleich Problem, und ich habe schon in einem anderen
Thread meinen LM317 beschuldigt an dem Display eine zu hohe Spannung
erzeugt zu haben.
Ich weiß aber momentan auch nichts.
Ich denke ich werde erstmal in ein oder zwei Wochen zwei neue Displays
von einer anderen Sorte ersteigern.
Und wenn sich in der Sache L2F50 wieder was tut hoffnungsfroh meine
beiden Displays nochmal testen, und hoffen, dass sie bei dieser Aktion
nicht durchgebrannt sind.

ciao
    Dirk

von Simon K. (simon) Benutzerseite


Lesenswert?

@Dirk Schlage: Hmmm, vielleicht hat das L2F50 ja eine andere Belegung?

von Fasti (Gast)


Lesenswert?

Hi!

Also bei mir läuft das L2F50 Problemlos auch mit einer LM317 Schaltung
für die 3V. Habe die Schaltung aus dem Datenblatt genommen und hat auf
anhieb funktioniert. Der LM 317 braucht mindestens 3mA - 10 mA (worst
case) Belastung um gut zu regeln und die Eingangsspannungsdifferenz
sollte mindestens 2V betragen. Auf Grund dieser Tatsache sollte der
Widerstand von VOut zu Adj zwischen 120 und 240 Ohm betragen und die
Spannung auf etwa 3V eingestellt werden bei 5 V Eingang. Wichtig sind
noch am Ein- und Ausgang einen Kondensator zu platzieren und dann
sollte das problemlos funktionieren. Ich habe noch bei meinem Display
eine Diode vor den 1,8V Eingang gehängt, sodaß dort eine etwas kleiner
Spannung als die 3V anliegen. Funktioniert tadellos und das Display
wird auch nicht heiß.

ciao

Fasti

von Dirk Schlage (Gast)


Lesenswert?

Hallo Fasti,
Die Diode doch einfach in Durchlassrichtung in Serie vor den Eingang,
oder?
Der Spannunsabfall sind dann diese 0,7V, oder?

Kann ich da auch eine Feldwaldundwiesenschaltdiode nehmen, wie eine
1N4148, oder eine die einfach nur so auschaut, ist eh wurst?
(mit der begründung, dass weniger als 20mA Strom fliessen werden?)

Oder muss es eine 1N4001 sein, die zur Stromgleichrichtung gedacht
ist?
Ich kenn mich mit Dioden überhaupt nicht aus (mit dem Rest eigentlich
auch nicht). Ich habe zwar hunderte (34 verschiedene) hier rumliegen,
aber vieleicht bis jetzt nur 3 verbaut.

Ich habe das Warmwerden zwar bei mir nicht beobachtet, aber wenn Logik
heutzutage warm wird, ausser es ist Leistungselektronik, heisst das
dann nicht, dass sie schon tot ist?

Dirk

von Fasti (Gast)


Lesenswert?

Hi!

Also eine stinknormale Kleinleistungsdiode sollte genügen, ich glaube
nicht, dass in den Pin mächtig große Ströme fließen. Es sollte halt
eine normale Siliziumdiode und keine Shottkydiode sein, wegen dem
Spannungsabfall.

Nicht unbedingt, wenn Logik heiß wird kann es auch einfach nur sein,
dass der Lastwiderstand einfach zu klein ist. Wenn die Ausgänge nicht
grad kurzgeschlossen werden und das ganze nicht zu lange dauert sollte
es der Chip überleben.

Fasti

von Dirk Schlage (Gast)


Lesenswert?

Hallo,
Auch mit Diode, kein Bild, kein Ton.



Der Spannungsabfall an der Diode beträgt etwa 0,4 V.
Da bräuchte ich jetzt etwas mehr Erfahrung.
Ich werde mir auf jeden Fall nochmal andere Displays besorgen.

Gibt es schon Erfahrungsberichte, von Leuten, die andere AVRs als den
Mega128 benutzen?

Dirk

von Fasti (Gast)


Lesenswert?

Jap, benutze Mega32!

von Mike (Gast)


Lesenswert?

Habs auch mit nem Mega32 am laufen, funktioniert problemlos

von Dirk Schlage (Gast)


Lesenswert?

Laufen eure mit 16MHz?
Sollte es auch 3.6864MHz, bzw. mit internem 8MHz-Oszillator gehen?
Ich glaube ich löte heute abend mal einen 16MHz-Quartz ein.


ciao
    Dirk

von AVRNIX (Gast)


Lesenswert?

Hatte mein LS020 - am ATMega 16 hängen mit 8MHz internen Takt, hat auch
funktioniert.

von Mike (Gast)


Lesenswert?

Meiner läuft mit 16MHz ja

von san (Gast)


Lesenswert?

2 Eugene:

I Vy, katsap, zdravstvuyte.

von Ronaldo (Gast)


Angehängte Dateien:

Lesenswert?

Hi,
Thanks all, special to Christian Kranz , my LCD LPH8836 works...
I finished to codevision_avr and used the other interface to ATMEGA323L
5V.
I need to know the command lines the function below.
Sorry my english..
Regards,

      lcd_comtype(0x05);         // what this command
      lcd_comdat(0x00,0x38);     // what this command
      lcd_comtype(0x17);         // what this command
      lcd_comdat(x+CHAR_W-1, x); // what this command
      lcd_comtype(0x16);         // what this command
      lcd_comdat(y+CHAR_H-1, y); // what this command
      lcd_comtype(0x21);         // what this command
      lcd_comdat(x,y);           // what this command
      lcd_comtype(0x22);         // what this command

von Hauke Radtki (Gast)


Lesenswert?

Soo ich hab jetzt auch mein S65 Display bekommen ... erst mal
angeschlossen (hab das ganze am STK500 auf 2,9V laufen ... der
controller funktioniert auch noch bei der Spannung.
Ich hab das ding mit der grünen Platine.

Und wie soll es auch anders sein? Das ding läuft nicht ^^
Jetzt steht aber hinten drauf: LP-8836-B Denkt ihr das macht einen
Unterschied?

von Hauke Radtki (Gast)


Lesenswert?

Ach und wenn ich das Ganze Simuliere bleigt er bei
 PORTB &= ~_BV(LCD_CS);  // select display
hängen. Das ist in Zeile 221 der disp.c
Ich hab eigentlich mit C sehr wenig am Hut und versteh jetzt auch nicht
genau was die Operatoren jetzt genau machen aber laut kommentar wird das
Display ausgewählt ... an sich keine große aktion nen portpin zu
toggeln.
Testweise habe ich mal noch weitere
PORTB &= ~_BV(LCD_CS);  // select display
hintereinander an der stelle eingefügt und er bleibt immer beim letzten
davon hängen ... sehr merkwürdig.
Ich wollte das Display nur erst mal zum laufen bringen um es dann in
Assembler neu zu schreiben, wollte nur erst mal testen obs überhaupt
geht.

Achja: Ich benutze dem Mega16.

von Mike (Gast)


Lesenswert?

Was für eine Softwaer verwendest du?
Die Lib oder SimpleDisplay?
Denn die Lib läuft soweit ich das bisher gelesen hab nur bei den LCD´s
mit brauner Folie

von Hauke Radtki (Gast)


Lesenswert?

Nene ich benutz nur Simple Display (LPH_display4_V02.zip)
Ich kenn mich halt mit C sehr wenig aus aber ich hab in den Optionen
als controller den Mega16 ausgewählt und die frequenz auf 16 MHz
gestellt (ja mein Mega läuft auch bei 2,9V  und 16 MHz noch korrekt)

von Hauke Radtki (Gast)


Lesenswert?

Naja n bisschen blöd bin ich auch ... hab vergessen die Pin
konfiguration an den mega16 anzupassen ... hatte mich auch ab dem
zeitpunkt gewundert, als ich mit dem oszi gesehen habe, dass auf der RS
leitung das clock signal lag ...
Das blöde nur ist, dass es immer noch nicht geht -.-

von Hauke Radtki (Gast)


Lesenswert?

Soooo ... jetzt sollte man noch die wirklich sehr sehr schwierig zu
erlernende Fähigkeit besitzen von 0 bis 7 zu zählen ...
Wenn man alle Kabel da ansteckt wo sie hingehören funktioniert das
ganze natürlich auch ... :>

von Iller (Gast)


Lesenswert?

Ich versuche ein Bild anzeigen zu lassen aber irgendwie will es nicht
wie ich will :-(
Hab das Bild in RAW hab es dann mit WinBin umgewandelt
Soweit so gut jetzt sag ich
r=bild[x];
g=bild[x++];
b=bild[x++];
x++;
glcdSetPixel(i,j,RGB(r,g,b));

das ganze ist in zwei schleifen um i und j hochzuzählen und wieder auf
0
zurückzusetzten wenn das ende der zeile erreicht ist

Das Bild das dabei rauskommt ist nur wirres Bildrauschen :-(
Die gewandelte grafik hat 132x176px also das würde schon passen

Hoffe mir kann jemand helfen

von Lupin (Gast)


Lesenswert?

benutzt du einen AVR? Ist das bild im ROM? benutzt du PROGMEM? Benutzt
du auch die entsprechende read funktion? Ist das Bild wirklich mit 24
Bit Farbtiefe gespeichert? Oder sogar 32 bit? Dann müsstest du ein byte
weg lassen.

von AVRNIX (Gast)


Lesenswert?

Was ist das für ein Type?
http://cgi.ebay.de/LCD-DISPLAY-SIEMENS-S65-M65-CX65-SK65-100-ORIGINAL_W0QQitemZ290014937613QQihZ019QQcategoryZ40579QQrdZ1QQcmdZViewItem

Hat es einer schon ausprobiert mit welchen Quellen das läuft?

von Mike (Gast)


Lesenswert?

Das ist das L2F50xxx das läuft mit dem Simple Display Source also nicht
die Lib Hier ist alles beschrieben:
http://www.superkranz.de/christian/S65_Display/DisplaySoftware.html

von Simon K. (simon) Benutzerseite


Lesenswert?

Bin mal gespannt, ob du es zum laufen bringst. Mein L2F50 hat irgndwo
einen kurzen drin.

von Hauke Radtki (Gast)


Lesenswert?

Ich hab das gleiche bestellt war aber ein LPH display ... aber meins
läuft xD ich werde dafür jetzt erst mal ne assembler ansteuerung
basteln weil ich kein c kann ^^

von Hauke Radtki (Gast)


Lesenswert?

Ich hab mal n bisschen rumgetestet ... je höher die Spannung umso
schlechter das Bild (besonders im dunkleren bereich gibt es keine
Abstufung mehr). Bei mir hat das Display bei 2,8V das beste bild.

von wolf4144 (Gast)


Lesenswert?

Hallo

wo kauft ihr eure IRU1205CLTR.
Habe sie bei RS und Farnell gefunden. Farnell +20 pro Auftrag ;-((
RS brauche ich sonst nichts.

Gruß

von wolf4144 (Gast)


Lesenswert?

Hallo

OK. Ich habe sie auch noch beim Großen C gefunden.

Gruß

von Martin (Gast)


Lesenswert?

Hi,

ich habe auch L2F50 zuhause liegen, und mir den passenden Softwarestand
von:

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

herunter geladen.

Leider werde ich keinen atmel controller verwenden können. Ich habe mir
mal die Initsequenz durchgesehen, und ihr wisst ja wie das ist,
quellcode von anderen ist immer ein hartes brot.

ich suche timing diagramme der displaybedienung und
registerbeschreibungen... hat da jemand etwas ausgearbeitet, sodas man
es einigermaßen gut portieren kann!?

danke euch,
Maddin

von Martin (Gast)


Lesenswert?

...ich habe natürlich auch das 13 seitige pdf hier, aber so 100%ig hilft
mir das bei der implementierung auh nicht weiter.

wie sind z.B die basiseinstellungen der einzelnen Leitungen!?

so wie ich das erkennen konnte wir der spi bereich des controllers
genutzt um ich schäte mal, ein byte zu übermitteln,oder!?

g.h. es muss nirgens ein takt per software erzeugt werden oder so!?

ich brauche nur ein wenig überganghilfe, von hard zur software, so das
ich vielleicht einen teil der routinen usw.. dann doch nutzen kann..

wäre klasse wenns was gibt,

maddin

von Martin (Gast)


Lesenswert?

die funktionen

dat
cmd
write

machen für mich schon sinn!

bei dat frage ich mich zwar warum da noch eine 0x00 hinterher gesendet
wird, obwohl diese funktion scheinbar dazu dient 8bits zu senden, aber
dat16 macht sinn.

in write sieht es so aus als würde etwas über die spi schnittstelle
gesendet, und anschließend auf absendung gewartet....

PORTB |= _BV(LCD_CS);

diese art einen portpin zu setzten oder zu toggeln kenne ich zwar noch
nicht, aber gut, wenn es denn das ist, soll es mir recht sein.
ich hätte zumindest hinter dem LCD_CS ein hex define erwartet, aber
ichdenke das versteckt sich dann wiederum hinter PB6 - macht sinn...

trotzdem wäre ein wenig unterstützung in dem bereich wirklich gut:-)

maddin

von Simon K. (simon) Benutzerseite


Lesenswert?

>>PORTB |= _BV(LCD_CS);

diese art einen portpin zu setzten oder zu toggeln kenne ich zwar noch
nicht, aber gut, wenn es denn das ist, soll es mir recht sein.
ich hätte zumindest hinter dem LCD_CS ein hex define erwartet, aber
ichdenke das versteckt sich dann wiederum hinter PB6 - macht sinn...


Nunja, diese Methode soll eigentlich auch nicht mehr verwendet werden,
habe ich mal gelesen.

Mach es lieber mit einer Schiebeoperation (PORTB |= (1<<LCD_CS);)

Und ja, LCD_CS ist ein define, dass auf PB6 (Oder was auch immer
definiert ist). PB6 wiederum ist auch ein define dass in der
controllerspezifischen IO-Definitionsdatei festgelegt ist.

von Martin (Gast)


Lesenswert?

@Simon Küppers, danke, soweit war ich jetzt auch:-)

warum sollte ich da schieben!? oder ist das jetzt ein scherz!?

wird denn jetzt der eine art spi hardware zur emulation des clk und
data signals genutzt!? kenne die atmels nicht!

gibt es timing und init sequenzen auch in nicht atmel spezifischen
c-quellcode!?

maddin

von Martin (Gast)


Lesenswert?

...welcher controller ist auf dem L2F50xxx display, habe ja alle dbs
hier...

oder verhalte ich mich jetzt nicht forum konform!? ich will doch nur
versuchen möglichst schnell dieses display an den controller zu
bringen...

würde mich über fachliche unterstützung sehr freuen,
maddin

von Martin (Gast)


Lesenswert?

ohh bei dem port pin:

wofür steht denn das _BV?? ist das eine Funktion!?

maddin

von Simon K. (simon) Benutzerseite


Lesenswert?

_BV ist ein Makro.

Es ist definiert als
1
#define _BV(x) (1<<x)

Das mit dem Schieben ist hier schon völlig korrekt. Denn hinter der
Angabe "LCD_CS" verbirgt sich (nach "vielen" verschachtelten
defines) eine 6 (oder jenachdem).

Sprich, der Ausdruck wird zu folgenden Ausdruck aufgelöst.

PORTB |= (1<<6);

Wörtlich gesprochen macht der Compiler hier folgendes:

Schiebe eine dezimale 1 um 6 stellen nach links. Dieser Wert soll PORTB
zugewiesen werden.

Nun ist der Compiler schon schlau und sieht, dass er das schon während
der Compilezeit ausrechnen kann.

Aus (1<<6) würde also 0b01000000 sprich 64 dezimal werden.

von Martin (Gast)


Lesenswert?

hei die witzga....au man, bei c sind so viele schweinerein möglich...

aber trotzdem hilft mir das noch nicht viel weiter... vielleicht gibt
es ja noch antworten auf die fragen meines letzten posts :-)

maddin

ps.:

ich löse das immer folglich:

#define PORTX      LCD_PORT

#define PORTX_XX   LCD_RS
#define LCD_RS=1   LCD_SET_RS
#define LCD_RS=0   LCD_RES_RS

#define PORTX_XY   LCD_RW
#define LCD_RW=1   LCD_SET_RW
#define LCD_RW=0   LCD_RES_RW

usw...

von SuperUser (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Martin,

im Anhang ein paar Bilder wie die Datenübertragung zum Display
aussieht:

Ch0: RS
Ch1: CS
Ch2: Clock (13MHz)
Ch3: Data

> ...welcher controller ist auf dem L2F50xxx display, habe ja alle dbs
> hier...

Leider ist der Controller nicht bekannt. Wenn du alle Datenblätter
hast, vergleich doch mal bei passenden Controllern (132x176, so viele
dürfte es nicht geben) die Befehlssequenzen. An dem Datenblatt bin ich
sehr interessiert. (cnkz - at - yahoo.com)

von Martin (Gast)


Lesenswert?

@ SuperUser

das ist schon so wie ich mir das vorgestellt habe. mit den
informationen aus diesem thread und den datenblättern und diesen bilder
fehlen nicht mehr viele infos um es portierbar zu machen...

also deinen bildern entnehme ich folgendes:

-clock ist standardmäßig High
-die daten werden bei steigender clock flanke übernommen
-Cs = low -> chip is selected..!

du hast leider etwas vergessen, das sind jetzt 53bilder, aber auf
welchem ist was dargestellt.beinhalten sie die gesamte initsequenz in
folge, oder sind es einfach mitschnitte aus neugier!?

mein ziel ist als allererstes die write timing diagramme für command
data und raw data (RS) zu erstellen, anschließend eine beschreibung wie
die init seqenz auszusehen hat, wie in einem datenblatt der bekannten
lcds..

Maddin

von Martin (Gast)


Lesenswert?

..ach ja:

es sind eine ganze menge 16bit anweisungen in allen unterlagen hier zu
finden, auch bei www.superkranz.de usw...

es ist nicht leicht da durch zu steigen - ich meine es ist klar, das
solls auch nicht sein, aber trotzdem... vor allem, warum immer 16
bit???

folgend mal die beispiele die hier überall zu finden sind, es stehen
befehle untereinander und nebeneinander !?...und der sinn!?

Sequence 1: (time 0ms)
0xFDFD, 0xFDFD

Sequence 2: (time 68ms after start)
0xEF00, 0xEE04, 0x1B04, 0xFEFE, 0xFEFE
0xEF90, 0x4A04, 0x7F3F, 0xEE04, 0x4306

Sequence 3: (time 75ms after start)
0xEF90, 0x0983, 0x0800, 0x0BAF, 0x0A00, 0x0500, 0x0600, 0x0700
0xEF00
0xEE0C
0xEF90, 0x0080,
0xEFB0, 0x4902
0xEF00
0x7F01, 0xE181

Sequence 4: (time 182ms after start)
0xE202

Sequence 5: (time 297ms after start)
0xE276

Sequence 6: (time 401ms after start)
0xE183

Sequence 7: (time 460ms after start)
0x8001


maddin

von SuperUser (Gast)


Lesenswert?

Bitte nicht die verschiedenen Display's durcheinander werfen. Die
Init-Sequence die du gerade gepostet hast, ist nicht vom L2F50..
sondern vom Sharp Display.

Wenn du dir die L2F0 Init-Sequence ansiehst, da steht dann:

  static const uint8_t disctl[9] PROGMEM = {0x4C, 0x01, 0x53, 0x00,
0x02, 0xB4, 0xB0, 0x02, 0x00};

Das ist ein Daten-Array in C, gespeichert im Flash des AVR.

Während des init wird dann die Sequence in einer for-schleife an das
Display geschickt:

  lcd_cmd(DISCTL);
  for (i=0; i<9; i++)
  {
    lcd_dat0(pgm_read_byte(&disctl[i]));
  }

das pgm_read_byte heisst einfach lese aus dem Flash Speicher, die
lcd_dat0 funktion schickt ein Byte zum display und hängt ein 0-Byte an.
An die 16-bit musst du dich einfach gewöhnen, 8-bit controller gibt es
in Mobiltelefonen nun mal nicht.


---------

Die genaue Bedeutung der Bilder weiss ich gerade nicht. Ich glaube es
ist die erste Init-Sequence. Mir ging es darum, dass du die Polaritäten
bzw. Flankenzugehörigkeit siehst.

von Martin (Gast)


Lesenswert?

Hallo,

dank sir, ich habe nochmal ein wenig auf der site www.superkranz.de
gestöbert und die sequenzen zufällig gefunden, allerdings sind es nur
49 mit zugehöriger txt datei in der sie erklärt sind.. :-)schaue sie
mir mal an...

13Mhz ist für einen seriellen bus ja eine ganz ordentliche rate, und
wenn ichs recht verstanden habe, dann muss das gesamte diplay immer neu
beschrieben werden, es lässt sich also kein bereich auswählen, oder 2
geziehlte bytes schreiben.

16bit zu akzeptieren ist kein problem, der controller mit dem ich
arbeite ist auch ein 16 bitter.

deinen c quellcode ist leicht nach zu vollziehen, dennoch sieht diese
init sequenz sehr kurz aus, im gegensatz zu den anderen...

hinter dem label disctrl verbirgt sich ja sicher auch wieder ein
spezieller wert...

das ganze ist sicher eine never ending story, nicht um sonst gibts
bibliotheken, aber trotzdem muss sich das ganze doch allegemein für die
3 displays in form einer art datenblatt eines lcds zusammen fassen
lassen...

und ich verstehe immer noch nicht die struktur der 16bit sequenzen,
warum sind manche nebeneinander angebeben und andere wiederum
untereinandenr??

maddin

von Lupin (Gast)


Lesenswert?

> 13Mhz ist für einen seriellen bus ja eine ganz ordentliche rate

Reicht gerade so aus um den Bildschirminhalt mit einer einigermaßen
hohen Framerate zu übertragen...

Du kannst auch einzelne Bereiche zeichnen... musst nur überlegen ob es
sich für 2 pixel lohnt überhaupt die Command-sequence zu übertragen

von Hauke Radtki (Gast)


Lesenswert?

Das hat nur was damit zu tun das (wahrscheinlich) die Hintereinander
geschriebenen Sequenzen nur zusammen einen Sinn ergeben (befehl und
daten z.b.)
Und die Anderen Befehle die einzeln stehen keine weiteren daten oder
weitere befehle benötigen.

Das ganze ist also nur der "Übersicht" halber. Du kannst die befehle
jeder Sequenz direkt hintereinander senden.

von SuperUser (Gast)


Lesenswert?

Martin,

dein erster Post:
> ich habe auch L2F50 zuhause liegen, und mir den passenden
> Softwarestand ... runtergeladen

Der C-Code ist ein Ausschnitt aus der L2F0 init die du dir
runtergeladen hast. Wenn du die verstehst - und mit den Timing-Bildern,
sollte es doch jetzt nicht mehr so schwer sein, dass auf einem anderen
Controller zum laufen zu kriegen. Du musst doch einfach nur die Daten
rüberschicken. Wie man Teile des Display-Speichers beschreibt ist in
der Textausgabe leicht zu sehen. Der Font wird dort als bitmap ins
Display-RAM geschrieben.

Wie sieht es mit dem Datenblatt aus? Hast du ein passendes?

von Hauke Radtki (Gast)


Lesenswert?

Ich wollte mal fragen ob dir das gleiche wie ich beobachtet:
Je höher die Spannung desdo schlechter sind die farben im dunklen
berech. D.h. bei 3.3V sind bei einem farbverlauf die untersten ich sag
mal 5 abstufungen gleich (und auch nicht ganz schwarz sondern bei jeder
Farbe etwas anders)
Erst bei 2.8V ist das Bild meiner meinung nach erst richtig (es wird
erst am unteren ende des farbverlaufs schwarz)

Damit ihr wisst was ich meine hier noch ein Bild vom display (an 2,8V)
http://lcdhype.de/uploads/post-8-11546958430.jpg

Ich mach auch noch mal eins bei 3.3V damit man den unterschied besser
sehen kann.

von SuperUser (Gast)


Lesenswert?

Hauke, das sieht aber auch bei 2.8V nicht so gut aus...

Dem Bild nach zu urteilen ist das ein L2F0 oder? (Wegen Anschluss in
der Mitte) Dort habe ich vor ein paar Wochen noch einen Fehler in der
Init-Sequenz beseitigt.

Hast du den neusten Code von

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

?

Bzgl. Spannung, optimale Spannung ist meiner Meinung nach 2.9V.

von Hauke Radtki (Gast)


Lesenswert?

Auf dem Foto ist das etwas schlecht dargestellt ... wenn man draufguckt
ist es eine richtige gute abstufung.
Und: nein es ist ein LP(H) Display

von Simon K. (simon) Benutzerseite


Lesenswert?

Ich frag emich, warum bei jeder Farbe oben nen ganz dicker Balken weiß
ist.... Idealerweise sollte der doch nciht so dick sein, oder?

von Hauke Radtki (Gast)


Lesenswert?

Ähm ja das liegt daran, dass der farbverlauf nicht übers ganze display
gestreckt ist ... (weil ich zu faul war das so zu programmieren)
sondern schon ein ganzes stück vorher aufhört. Normalerweise würde der
Farbverlauf dann wieder von neuem beginnen nur fand ich dass das blöd
aussah und hab einfach den überlauf verhindert.

von Avr N. (avrnix) Benutzerseite


Lesenswert?

Hat jemand schon damit ein Projekt verwirklicht?
Was macht es und wie siehts den aus und wie wurde das gebaut( Schaltung
)? Programmiert?

von noXe (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
habe folgendes Problem:
Versuche gerade diesen LCD an einen mega8 anzuschließen. Nach langen
hin und her habe ich leichte fortschritte gemacht. Wie aussieht habe
ich den LS020 Display. Die ansteuerung klappt auch mehr oder weniger.
Hintergrund färbt sich rot, aber es ist am anfang keine Schrift
erschienen. Dann habe ich die Zeile in simple.c einfach so verändert

char txt[]= {'H','e','l','l','o',0};

dann kamen auch Zeichen, nur komische :) siehe anhang.

Woran kann das liegen. Bitte um weitere hilfe.

von The Daz (Gast)


Lesenswert?

Ich würde sagen in Zeile 25 steckt ein Fehler.

von noXe (Gast)


Lesenswert?

:) also ich konnte immer noch nicht eins finden

von Simon K. (simon) Benutzerseite


Lesenswert?

Du sollst deinen Code anhängen..

von noXe (Gast)


Lesenswert?

also ich verwende eigentlich den original code vom Christian Kranz,
kann man sich unter:
http://www.superkranz.de/christian/S65_Display/data/simple_display3.zip
runter laden. Hab dann nur die ports für den mega8 angepasst, in lcd.h.

also folgender massen:

LCD_CS     PB2
LCD_RESET  PB1
LCD_RS     PB0
LCD_MOSI   PB3
LCD_MISO   PB4
LCD_SCK    PB5

Danach habe ich in simple.c die original Zeile
char txt[]= {'H','e','l','l','o','
','W','o','r','l','d',0};

so verändert:

char txt[]= {'H','e','l','l','o',0};

somit habe ich wenigstens schon erstmal erste zeichen auf den display
gekriegt. mehr hab ich nicht verändert....

von The Daz (Gast)


Lesenswert?

Verschieb den Zeichensatz mal ins Flash (PROGMEM). Hatte aehnliche
Probleme mit nem Mega16.

von SuperUser (Gast)


Lesenswert?

noXe,

der ATmega 8 hat zu wenig RAM für die ASCII Tabelle. Entweder ins Flash
damit, oder nur einige wenige Zeichen nutzen und den Rest löschen!

von noXe (Gast)


Lesenswert?

ich befürchte das Flash reich auch nicht aus. Wie kann ich den die ASCII
Tabelle deuten? Also welche hex-code, welches zeichen darstellt und wie
ist sie überhaupt aufgebaut....

von SuperUser (Gast)


Lesenswert?

Die ASCII Tabelle steht im file disp.c, und passt sicherlich ins Flash
des Atmega8.

uint8_t ascii_tab[96][14]={
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00}, // space (32)

Das Zeichenformat ist 8x14, d.h. ein Zeichen ist 14-pixel hoch und
8-pixel breit. Die Tabelle beginnt mit Space (ASCII-Wert 32)

Die put_char funktion kopiert jetzt einfach die Daten aus der Matrix
and die entsprechende Stelle im Display-RAM. Dort wo ein Pixel gesetzt
werden muss, wird das Pixel auf textcolor gesetzt, dort wo es nicht
gesetzt werden soll wird es auf backcolor gesetzt.

Vom ASCII Wert der ausgegeben werden soll, wird 32 subtrahiert um an
den Tabellenindex zu kommen...

  for (h=0; h<CHAR_H; h++) // every column of the character

  ch=ascii_tab[ c-32 ][h];


-------------------------
So kriegt man sie ins Flash:
#include <avr/pgmspace.h>  // AVR specific functions to access the
program memory


// ascii table, starting with character blank (32)
// size is 8x14
const uint8_t ascii_tab[96][14] PROGMEM = {
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00}, // space (32)

Und so liest man sie dann aus:
   ch=pgm_read_byte(&ascii_tab[ c-32 ][h]);

von noXe (Gast)


Lesenswert?

@Super User:

danke, habe es genau nach deiner Anweißung gemacht. Funktioniert alles
wunderbar. heul

von quba54 (Gast)


Lesenswert?

Did anybody use display LQ020...? It looks like LS020... but I don't
know if it will work with LS020 software.

von Hauke Radtki (Gast)


Lesenswert?

My display is a LP-8836. It works with the LPH dispay code. So just try
the LS020 code.

von SuperUser (Gast)


Lesenswert?

Can you send pictures from the displays (LP-8836, LQ020)? Just for
interest...

von michael (Gast)


Lesenswert?

Hallo zusammen,
habe ein L2F50 an einem Mega32 (16MHz) angeschlossen. Der AVR wird mit
5V versorgt, das Display über 3,3V. Die Pegelwandlung (da erst zu
Testzwecken) über Spannungsteiler.
Jetzt habe ich das Problem, dass das Display zwar was anzeigt, jedoch
die Schrift nur sehr schwach zu sehen ist. Wenn man senkrecht aufs
Display schaut, erkennt man gar nichts.
Habt ihr ne Vermutung, woran das liegen könnte?

MfG, Michael

P.S.: Ich verwende die Testsoftware von Christian.

von Avr N. (avrnix) Benutzerseite


Lesenswert?

Versuche es mal mit 2,8-2,9 V an den Eingängen zum Display , vielleicht
ist die Spannung zu hoch.

von michael (Gast)


Lesenswert?

Wenn du die Datenleitungen meinst, die sind bei 2,9V. Aber es wurde doch
weiter oben irgentwo geschrieben, dass die auch zuverlässig unter 3,3V
laufen, oder?

von Avr N. (avrnix) Benutzerseite


Lesenswert?

Also wenn du die gleichen Spannungsteiler wie Schaltplan hast , sollte
es klappen. Ich habe es nur mit dem LS020.... ausprobiert.

von michael (Gast)


Lesenswert?

Nicht exakt die gleichen. Die Werte hatte ich nicht da. Habe 2,3k und
3,3k genommen, sollte aber doch auch gehen, oder?

von Avr N. (avrnix) Benutzerseite


Lesenswert?

Da du ja Zeichen auf dein Display hast, liegt die vermudung nahe das
vielleicht die Widerstände ein zu geringer Strom fliessen tut.

von SuperUser (Gast)


Lesenswert?

Hallo Michael,

mess doch mal die Display Versorgungsspannung. Ich vermute das die
höher als 3.3V ist - weil irgendwo doch ein Fehler in der Verdrahtung
mit den Spannungsteilern.

Ein sehr schwacher Kontrast ist ein typ. Zeichen für zu hohe
Versorgungsspannung.

von michael (Gast)


Lesenswert?

Hallo SuperUser,
obwohl ich zur Spannungsversorgung nen Festspannungsregler verwende,
habe ich nochmal nachgemessen. Die Versorgungsspannung lieg bei exakt
3,3V. Die Datenleitungen haben 2,9V bei High-Pegel.

von Hauke Radtki (Gast)


Lesenswert?

Ich hab ein Display am STK500 laufen. So konnte ich natürlich bequem die
 ganzen Spannungseinstellungen machen und bin zu dem schluss gekommen,
dass das display bei 3.3V zwar läuft aber das Bild schlecht wird. D.h.
schlechte Kontraste und Farben. Wenn du die möglichkeit hast: probier
es mit 2.8V da hatte ich das beste Erbegnis. Das Display läuft aber
auch bis runter auf 2,1V, danach wollte mein Mega16 nich mehr. Zwar ist
hier der Kontrast auch wieder schlecht aber es läuft.

von michael (Gast)


Lesenswert?

Ok, danke für die Antworten.
Werde gleich mal einen einstellbaren Spannungsregeler einlöten und das
versuchen.

von michael (Gast)


Lesenswert?

So, ich versorge das Display jetzt mit 2,9V. Doch es gab den den
gleichen Effekt. Dann ist mir aufgefallen, dass ich vergessen hatte,
den Pufferelko anzulöten. Nachdem ich dies getan habe, zeigt das
Display erst alles (ich würd sagen) normal an, dimmt dann aber quasi
innerhalb einer bis 1,5 Sekunden runter, bis man nichts mehr sehen
kann. Wie ist das zu erklären. Die Spannung am Regler bricht auf jeden
Fall nicht zusammen.
Habt ihr ne Idee?

von SuperUser (Gast)


Lesenswert?

Kann es sein, dass du das Display resetest? Das das Bild langsam
wegdimmt ist der typische Effekt wenn man es ausschaltet...

von michael (Gast)


Lesenswert?

Ich hoffe nicht, aber ich habe nur ein Multimeter, das zu träge ist um
kurze Impulse zu messen.
Ein Phänomen, das damit wahrscheinlich zu tun hat, was ich mir aber im
Moment nicht erklären kann, ist, dass das Diplay nur bei einem von fünf
Versuchen was anzeigt, wenn ich Spannung an die Schaltung anlege. Dann
zeigt es einige Sekunden was an, wobei die Schriftfarbe zwischen Blau
und Schwarz wechselt. Dann dimmt es innerhalb von ca. 2 Sekunden runter
und ist dann abrupt weg.

von MC-Bernd (Gast)


Lesenswert?

abo

von Bernd X. (mc-bernd)


Lesenswert?

abo

Jetzt aber...

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.