Forum: Mikrocontroller und Digitale Elektronik ST7565 Seriell ansteuern


von Julian n. (ermler1992)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

Ich habe mir vor kurzem einen 128x64 GLCD bestellt. Angesteuert wird er 
über einen ST7565P - hier der Link zum 
Datenblatt(http://www.displayfuture.com/engineering/specs/controller/ST7565P.pdf) 
- , die Pin Belegung und die Übersicht über die Platine habe ich 
angehängt.


Jetzt habe ich folgendes Problem:
Ich habe einen Arduino UNO und möchte den GLCD darüber ansteuern. Ich 
habe dazu auch ein gutes Tutorial mit library gefunden 
(http://www.ladyada.net/learn/lcd/st7565.html) allerdings ist in meiner 
Pin Belegung nicht alles aufgeführt was im Tutorial vorgegeben ist, da 
er in meiner ausführung scheinbar stadardmäßig zur parallelen 
übertragung gedacht ist. Aus dem Datenblatt konnte ich bereits 
ermitteln, dass D7= Serial Input(SI) und D6= Serial Clock (SCL) ist. 
Stromversorgung und Hintergrundbeleuchtung funktionieren auch und auch 
der Chip Select (CS) PIN ist in der Belegung aufgeführt. Wenn ich gerade 
nicht irre, fehlt lediglich A0 bzw. RS von dem ich nicht einmal weiss 
für was er gut ist. Nachdem ich nun alle bekannten Leitungen 
angeschlossen habe und den Wiederstand R2 nieder/- und den Wiederstand 
R1 hochohmig gemacht habe, tut sich zwar etwas auf dem Bildschirm, aber 
die Ausgabe hat mit dem was rauskommen soll nichts zu tun. Lediglich ein 
paar Streifen und Punkte sind zu sehen. Kann mir jemand helfen?
Vielen Dank schon einmal
Gruß Julian

von Gerhard G. (xmega)


Lesenswert?

Hallo,


Julian n/a schrieb:
> Kann mir jemand helfen?

Die Displays sind herstellerbedingt meist für die parallele 
Schnittstelle  gefertigt. Der Chip selber kann aber beide Protokolle. Da 
die Pins mehrere Funktionen haben, ist es wichtig, die Daten des 
Displays genau zu kennen.
Wenn du also kein  A0  Eingäng z.B. findest, ist das der Beweis, das es 
kein SPI kann.

A0 ->  steuert je nach Pegel den Lese- oder Schreibvorgang.

Gruß xmega

von spess53 (Gast)


Lesenswert?

Hi

>A0 ->  steuert je nach Pegel den Lese- oder Schreibvorgang.

Nein. A0 entscheidet zwischen Befehl und Daten.

Der ST7565 hat einen Anschluss, mit dem zwischen parallele und seriellen 
Interface umgeschaltet wird. Dein Display ist fest auf Parallelinterface 
im 8080-Mode eingestellt.

MfG Spess

von Gerhard G. (xmega)


Lesenswert?

Hallo,


spess53 schrieb:
> Nein. A0 entscheidet zwischen Befehl und Daten.

ist klar,  falsch geäußert.

Gruß xmega

von ermler1992 (Gast)


Lesenswert?

Hey, danke für eure Hilfe =)
Ich habe die Displays im Internet bestellt und bei dem Angebot stand 
bei: "Controller: ST7920P ,choose the serial or parallel resistor 
R1=0ohm:parallel port, R2=0ohm:serial port " habe die Platine ja auch 
schon dementsprechend umgelötet, vorher hat der Bildschirm einfach 
garnichts ausgegeben.Kann mir eigentlich nicht vorstellen, dass man das 
dazu schreibt, wenn der Serielle Betrieb garnicht unterstützt wird. Das 
einzige Problem ist das er jetzt nur kauderwelsch ausgibt. Was mir z.B. 
schon ungemein helfen würde ist, wie ich genau rausfinden kann, welcher 
Pin mit welchem in den mir vorhandenen Angaben(Die beiden png´s im 
Anhang) übereinstimmen, sodass ich den GLCD so anschliessen kann wie in 
dem Tutorial.

von Julian n. (ermler1992)


Lesenswert?

Hallo noch einmal, habe dem Hersteller Zolentech geschrieben und 
folgende Pinbelegung erhalten:
1. NC
2.NC
3. NC
4.NC
5.NC
6.NC
7.SCL
8.SI
9.VDD
10.VSS
11.LEDA
12.CS
13.RST
14.A0
15.NC
16.NC

Gruß Julian

von Christoph H. (christoph_b)


Lesenswert?

Hallo

Ich will mir das selbe Display bestellen. Hat es nun mit der Ansteuerung 
geklappt?? Habe eine Lib für den ST756R Controller.

Gruß Christoph

von Oliver (Gast)


Lesenswert?

Hallo

Der ST7565 ist ja ein recht weit verbreiteter Controller. Bisher haben 
wir ihn mit vier verschiedenen Displays mit der U8glib zum Laufen 
gebraucht.
Siehe hier:
http://code.google.com/p/u8glib/wiki/device

Aber Achtung: Je nach Display muss man unter Umständen eine leicht 
andere Initalisierung durchführen. Elektrisch sollte das zwar kein 
Problem sein, aber es wird eben was falsches angezeigt.

Tatsächlich bezieht sich das oben angegebene Adafruit Tutorial auf einen 
spziellen Displaytyp. Somit ist das Tutorial (bzw dessen Software) nur 
mit Einschränkungen auf andere Displays mit gleichem Controller 
übertragbar.

Übrigens: Beim Arduino immer an den Pegelwandler denken!

Die U8glib ist Open Source: http://code.google.com/p/u8glib/

Grüße,
Oliver

von Christoph H. (christoph_b)


Lesenswert?

Hallo Oliver

Habe noch eine Frage. Habe ein Display mit einem lc7981 Kontroller in 
meine Bastelkiste gefunden. Habe leider die Initialisierung des Displays 
noch nicht durchschaut.

In der Datei u8g_dev_lc7981 steht folgendes.

uint8_t u8g_dev_lc7981_160x80_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t 
msg, void *arg)

Wenn ich das Richtig verstehe muss ich hier die Anschluss Belegung 
angeben.
Im Wiki fand ich folgendes

U8GLIB_LC7981_160X80(d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, di [, rw 
[, reset]])

Wie genau muss ich nun die Initialisierung machen??

von Oliver (Gast)


Lesenswert?

Hallo Christoph

Die Initalisierung über den C++ Konstruktor bezieht sich auf die
Arduino variante:
U8GLIB_LC7981_160X80(d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, di [, rw
[, reset]])

Hier müssen also die Pin Nummern des Arduino Boards angegeben werden.
d0 = Arduino Pin Nummer, an der die D0 Leitung des Displays 
angeschlossen ist.
d1 = Arduino Pin Nummer, an der die D1 Leitung des Displays 
angeschlossen ist.
...
di = Arduino Pin Nummer, an der die DI Leitung (data/instruction = 
register select = a0) des Displays angeschlossen ist.

Die rw und reset Leitungen können optional angeschlossen werden. Wenn rw 
nicht angeschlossen wird, muss diese (soweit ich mich erinnere) an die 
Versorgungsspannung des Displays angeschlossen werden. Für reset 
bräuchte man vermutlich ein kleines RC Glied (siehe auch Tutorial 1).

Am einfachsten ist es vermutlich das HelloWorld Example aus der Arduino 
IDE zu laden, dort den oben genannten Konstruktur auszukommentieren und 
die Pin-Nummer entsprechend einzutragen.

Die AVR Variante der u8glib unterstützt derzeit noch keinen 8 Bit 
parallel Betrieb. Es wäre aber einfach das noch zu implementieren (dann 
am besten e-mail an mich --> siehe sourcecode).

Grüße,
Oliver

von Christoph H. (christoph_b)


Lesenswert?

Hat irgend jemand das Display des Thread Erstellers auf eine Atmega 
(nicht Arduino) zum laufen gebracht? Und benötigt das Display nun 3.3V 
oder 5V?

von Achim M. (minifloat)


Lesenswert?

Auf den Seiten 58 und 59 des ganz oben verlinkten Datenblatts des 
Controllers stehts.
mfg mf

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.