www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Grafik Display von Pollin


Autor: Dieter S. (dolivo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
um mich in die Funktionen eines Grafik-Displays "einzuarbeiten" habe ich 
bei Pollin das preisgünstige (billige?) Display Solomon LM6270SYL 
gekauft (mit T6963). Ich programmiere seit Jahren mit Bascom8051 und 
habe deswegen, um keine Überraschungen zu erleben, das Musterprogramm 
genommen. Es passiert aber nichts. Dann habe ich das Programm noch um 
ein 10 ms langes Reset ergänzt mit dem Erfolg, dass dann ein dünner 
Strich quer über das Display kurz zu sehen ist. Die Spannungen sind + 
und - 5V wie angegeben. Verdrahtung ist auch ok (111mal geprüft). Hat 
jemand Erfahrung mit diesem Display?

Autor: Peter R. (peterfido)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich nutze das Display in mehreren Projekten. Die LCD-Spannung liegt 
meist um -9 V. Die Programme erstelle ich mit dem "normalen" Bascom. Die 
Lib musste ich manuell anpassen, da die Timings zu schnell waren, so 
dass teilweise murks angezeigt wurde. Das mit den 10ms Reset habe ich 
nicht verstanden. Evtl ein Verdrahtungsfehler? Die Leitungen dürfen 
nicht zu lang sein. Hat Bascom8051 eine fertige Lib für diese Displays?

Autor: Dieter S. (dolivo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielen Dank. Also werde ich als erstes die negative Spannung erhöhen, 
obwohl das Datenblatt ja nicht unbedingt höhere Spannung verlangt. Ich 
habe ein Reset des Displays eingefügt, weil ich so eindeutige 
Startbedingungen habe. Die Leitungen sind 15 cm lang, was ja sicher 
nichts beeinträchtigt.
Bascom8051 hat keine lib. Es sind mit dem Befehl "config graphlcd" ja 
nur Displays 240*64 mit T6963C möglich. Deswegen bin ich auch ratlos, 
wie da das Timing zu ändern wäre.
Ich nehme an, das "normale" Bascom ist BascomAVR? Irgendwann werde ich 
sicher auch umsteigen müssen.

Autor: Dieter S. (dolivo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jetzt habe ich die negative Spannung auf > 8V erhöht. Da wird das 
gesamte Display dunkel (bis auf den Rand), aber es tut sich weiterhin 
nichts. Getestet habe ich noch: mit und ohne Reset, /WR im Programm auf 
L gesetzt oder wie im Beispiel "unbeachtet". Ich bleibe dran.

Autor: rage (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da ich das Display gerade verbaut habe und mir ähnliches passiert ist, 
kann ich folgendes dazu sagen. Eigentlich ein sehr gutmütiges Display, 
bis auf die negative Spannung. Im Datenblatt steht wenn ich mich recht 
entsinne was von typisch -4,5 Volt. Bei dieser Spannung passiert garnix, 
ab ca -5.5 Volt konnte man erahnen was es werden sollte. Bei -8 Volt war 
es duster. Also, baue das im Datenblatt gezeichnete Poti ein und stelle 
es so ein das es gerade noch grau ist, wenn dann die Routinen stimmen 
mit denen Du das Display beschreibst, sollte sich (wenn auch 
schemenhaft) die Daten darstellen. Dann einfach nachregulieren und schon 
passt das.
Da ich das Display mit AVRco-PAscal ansteuere wird Dir der Source nicht 
unbedingt helfen, aber ich stell das mal mit hintendran. Wobei 
anzumerken ist, die Sourcen waren aus einem Demo des AVRco zum T6963.

  LCD_WR[@PortC, 5]    : bit;
  LCD_RD[@portC, 4]    : bit;
  LCD_CE[@portC, 3]    : bit;
  LCD_CD[@portC, 6]    : bit;
  LCD_RES[@portC,7]    : bit;

  LCD_DATA_Out[@PortA] : byte;
  LCD_DATA_In[@PinA]   : byte;
  LCD_DATA_DIR[@DDRA]  : byte;

function ReadStatus : Byte;
var v   : byte;
begin
  LCD_Data_Dir:= 0;
  incl(LCD_CD);
  NOP;
  excl(LCD_CE);
  NOP;
  excl(LCD_RD);
  NOP;
  NOP;
  NOP;
  NOP;
  NOP;
  NOP;
  v:= LCD_Data_In;
  NOP;
  incl(LCD_RD);
  NOP;
  incl(LCD_CE);
  return(v);
end;

function ReadData : Byte;
var v     : byte;
begin
  LCD_Data_Dir:= 0;
  excl(LCD_CD);
  NOP;
  excl(LCD_CE);
  NOP;
  excl(LCD_RD);
  NOP;
  NOP;
  NOP;
  NOP;
  NOP;
  NOP;
  v:= LCD_Data_In;
  NOP;
  incl(LCD_RD);
  NOP;
  incl(LCD_CE);
  NOP;
  incl(LCD_CD);
  return(v);
end;

procedure WriteData(v : Byte);
begin
  LCD_Data_Dir:= 255;
  LCD_Data_Out:= v;
  NOP;
  excl(LCD_CD);
  NOP;
  excl(LCD_CE);
  NOP;
  excl(LCD_WR);
  NOP;
  NOP;
  NOP;
  NOP;
  incl(LCD_WR);
  NOP;
  incl(LCD_CE);
  NOP;
  incl(LCD_CD);
  NOP;
  LCD_Data_Out:= 255;
  NOP;
  LCD_Data_Dir:= 0;
end;

procedure WriteCom(v : Byte);
begin
  LCD_Data_Dir := 255;
  LCD_Data_Out := v;
  NOP;
  Incl(LCD_CD);
  NOP;
  excl(LCD_CE);
  NOP;
  excl(LCD_WR);
  NOP;
  NOP;
  NOP;
  NOP;
  incl(LCD_WR);
  NOP;
  incl(LCD_CE);
  NOP;
  incl(LCD_CD);
  NOP;
  LCD_Data_Out := 255;
  LCD_Data_Dir := 0;
end;

procedure Status;
begin
{$X-}                  // don't simulate, don't execute in simulator

while((ReadStatus AND 2) = 0)do endwhile;
while((ReadStatus AND 1) = 0)do endwhile;


{$X+}
end;

procedure ComWR(Command : byte);
begin
  Status;
  WriteCom(Command);
end;

procedure ComWR2(Data1, Data2, Command : byte);
begin
  Status;
  WriteData(Data1);
  Status;
  WriteData(Data2);
  Status;
  WriteCom(Command);
end;

procedure Address(Value : word);
var
  l, h           : byte;
begin
  h:= HI(Value);
  l:= LO(Value);
  ComWR2(l, h, Pointer_Address);
end;

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.