mikrocontroller.net

Forum: Projekte & Code Routinen für SED1565 (z.B. für 128x64 LCD Hyundai HP12542


Autor: Benedikt (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier ein paar Low Level Routinen um LCDs mit Controller SED1565 oder
ähnlichen anzusteuern, wie z.B. das 128x64 Hyundai HP12542R LCD von
Pollin.
Da viele Controller von Epson sehr ähnlich sind, funktioniert der Code
eventuell auch mit anderen LCD Controllern (das Pollin LCD hat nämlich
keinen SED1565, sondern irgendeinen anderen, kompatiblen)

Autor: Herr Litz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für welchen µC sind die Routinen?

Autor: Philipp Karbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MCU = atmega8515

dürfte aber auf den anderen auch laufen, ich wollte es bald mal auf nem
atmega8 ausprobieren. Der code benutzt nur Ports. allerdings 7, was für
den 8 ein bisschen doof ist.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann lass Reset des LCDs weg und häng ein RC Glied dran.
Ist zwar keine perfekte Lösung, geht aber.

Autor: Philipp Karbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aber ich kann doch auch die bitmaske für D0-D7 auf zwei ports verteilen?
Ich weiß zwar nicht genau wie das geht und im moment zeigt mein lcd noch
gar nichts an aber das müsste doch gehen oder?

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du musst dann bei den s/cbi (xxxPORT, xxx) den Port ändern.

Autor: Philipp Karbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ne für die steuerleitungen sind ja genug ports da, für D0-D7 aber nicht,
da hattest du einfach LCDP=byte; eingesetzt. sendest also die ganzen
8bit als 1 byte and den gesamten Port. Ich dachte mir dann ich sende zu
erst die ersten 6 bits und shifte dann byte << 6 runter und sende die
dann auf nem anderen port. Dumme idee? Hat auch leider nicht geklappt.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Theoretisch geht das, aber diese ganze Schieberei kostet halt einiges an
Rechenleistung (vor allem in C). Aber funktioniern tut es.

Ich rege mich auch andauernd über den mega8 auf, warum dieses Dreckteil
keinen UART+8bit Port hat.
Ansonsten bleiben dann entweder nur der tiny2313 oder gleich ein
mega8515.

Autor: Philipp Karbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
weiß jetzt nicht ob du genau den port meinst aber der hat doch UART? man
kann schließlich daten über nen max232 schicken.

Autor: Tobias Schneider (tobias)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ja aber das UART liegt natuerlich auf dem einigen verwendbaren 8 Bit
Port, wenn man ein Qurz am Controller hat.

Gruss Tobias

Autor: Philipp Karbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
da hast allerdings recht.

Autor: Sausemann (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo an alle
@benedikt
ich hoffe du kannst mir weiterhelfen.
Habe mal deine Ansteuerung in Assembler umgesetzt.
Um diese zu testen habe ich die routine lcd_test eingefügt. Jedoch
springt das lcd nicht in die nächste page ... bin schon fast am
verzweifeln.
Hoffe du hast Rat ... danke

Autor: Sausemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habe den Fehler gefunden ... war Hardware ... aber trotzdem danke

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Solche Probleme kenne ich:
Hab vor kurzem 4 Stunden an einem OLED Display den Software Fehler
gesucht, bis ich merkte, dass ein Pin nicht richtig verlötet war.

Autor: Martin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte das Pollin Display an meinem Atmega16 anschließen. Das habe
ich wie auf dem Schaltplan im Anhang getan.
Die Software habe ich wie folgt geändert:

#define RW  3
#define  Reset    4
#define CS    5
#define A0    6
#define Enable  7

#define LCDP  PORTC  //Port für D0-7
#define LCDPI  PINC
#define LCDDD  DDRC

#define LCD    PORTD  //Port für Steuerleitungen
#define LCDCDD  DDRD

Dabei habe ich allerdings RW fest auf GND verdratet und nicht am AVR
angeschlossen, weil ich die Pollin Anschlussplatine benutze.

Im makefile habe ich auch MCU = atmega16 geändert.

Blöderweise will das Display nichts anzeigen. In Ordnung ist es, da ich
es über die parallele Computerschnittstelle einwandfrei mit dem
Testprogramm benutzen kann.

Mir gehen so langsam die Ideen aus. Wahrscheinlich bin ich einfach an
einer Stelle zu blöd, aber wenn ich nur wüsste, wo?
Weiß jemand, was ich falsch mache, oder hat jemand eine Idee, wo ich
noch suchen müsste.
Bei der Software gehe ich ja mal davon aus, dass die richtig ist,
außerdem bin ich nach Überprüfung auch der Meinung es müsste so sein.

Meine Leitungen habe ich auch alle einzeln durchgemessen, die stimmen
alle, und eine Verbindung zwischen zweien ist eigentlich
ausgeschlossen, da das Display bei ausgestecktem AVR, aber ansonsten
gleicher Verdrahtung einwandfrei an der parallelen Schnittstelle
läuft.

Den AVR betreibe ich übrigens mit 3MHz Quarz, habe aber von 1 bis 8
auch schon durchprobiert und auch verschiedene Pausen zwischen den
Befehlen versucht.

Ich hoffe mir kann irgendwer auf die Sprünge helfen, bin jetzt seit
einer Woche am suchen, leider ohne Erfolg.

Grüße
Martin

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaub ich habe den Fehler, ein Portpin schein kaputt zu sein.
Werde morgen mal etwas umbasteln und nochmal probieren.

Autor: Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo Martin,

ich stehe vor dem gleichen Problem. Habe das LCD an der Adapterplatine
angeschlossen. Von den Widerständen ausgehend habe ich Flachbandkabel
angelötet welche ich dann auf das STK500 stecken kann, das Display will
aber einfach nichts anzeigen.

Ich betreibe den Mega16 mit 14,3 MHz, vielleicht führt das dazu, dass
die Zeit, in welcher die noops ausgeführt werden, zu kurz ist.

Wenn ich etwas herausfinde melde ich mich wieder.

Autor: Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

es funktioniert. Liegt am Port.

Ich habe zuerst für die Datenleitungen Port C verwendet, das
funktioniert nicht. Mit Port B läuft es einwandfrei.

Autor: SeppK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat schon mal jemand von euch versucht Daten aus dem Display-RAM zu
lesen? Kommt nur Müll zurück. Ansonsten funktioniert das Display.
Ach ja: Habe die Routinen von Benedikt verwendet.

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Port C ist JTAG und kann per Fuse oder Software disabled werden (einfach
mal im Forum suchen gabs shcon 100x)

Autor: Philipp Karbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmmmm ich hab jetzt endlich meinen mega32 aufbau fertig krieg aber gar
kein signal auf dem display! meiner läuft mit 16mhz hab die
steuerleitungen auf PortA und die Datenleitungen auf PortB. Quarz ist
an, weiß jemand was :(?

Autor: Philipp Karbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
achja mit der pollin anschlussplatine, muss man da vor oder hinter den
widerständen drangehen? ich bin jetzt dahinter dran, ist das falsch?

Autor: Michele B.. (luxx) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich verwende auch die asm routine für das pollindisplay habe aber ein 
ptoblm, ich glaube dass das display initialisiert wird aber danch geht 
irgendwie nixmehr, alle pixel sind schwarz, mega16 läuft mit 1-4Mhz habe 
alles probiert aber ich komme nicht weiter, sind euch da noch andere 
fehlerquellen bekannt?

luxx

Autor: kubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich möchte das Display von Pollin (mit SED1565) an einem M32C80 
Controller von Renesas betreiben, hat jemand da software für mich um 
dieses anzusteuern?
lg kubi

Autor: Peter Meinholf (avr_rider)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen!

Die Routinen von Benedikt laufen super, allerdings habe ich noch eine 
Frage offen: Wie kann ich einen String aus einer Variablen ausgeben? Der 
auszugebene Text steht im Beispiel direkt in der Methode ala 
lcd_string_P("Test"). Wenn ich aber ein lcd_string_P(ausgabestring) 
machen möchte, dann kommt ein "error: invalid initializer" Fehler.
Hat jemand eine Idee? Ich möchte einen Wert vom ADC auf dem LCD ausgeben 
und muss daher variablen Text ausgeben können, also einen char[] 
übergeben können

Schon mal vielen Dank!

Autor: slater (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke für die routinen,
funktionieren super mit mein atmega8, und haben mir somit ne menge 
arbeit erspart.

viel dank,
mfg slater

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Kann sein das wie SeppK schon gesagt das Auslesen des Display-Rams nicht 
funktioniert? Hat das jemand schon mit Erfolg getestet?

Hias

Autor: Theodore Hindenberg (thindy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Der code benutzt nur Ports. allerdings 7, was für den 8 ein bisschen doof ist.

Ich bin ganz neu bei AVRs aber ziehe auch einen mega8 in Betracht um so 
ein Display anzusteuern. Wiso ist das mit den 7 Ports doof bei einem 
Mega8?

Danke, Thindy

Autor: misterblues (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
soweit ich weiss muß man die Speicherzelle zweimal auslesen damit man 
den richtigen Wert bekommt. (Dummyread)Das liegt wohl an den internen 
Puffern.
Der andere Punkt ist das bei dem Pollin Parallelport der Anschluß fest 
auf schreiben eingestellt ist, aber das wir SeppK wohl wissen...

Gruß Misterblues

Autor: juppo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Ist der SED1565 kompatibel zu KS0713  ??

Gruss Juppo

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.