Forum: Mikrocontroller und Digitale Elektronik Verständnisproblem SPI-Interface Display


von Hans (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Community,

Ich habe ein Verständnisproblem mit der Ansteuerung eines 
alphanumerischen OLED-Displays des Typs EA W204-XLG (Datenblatt: 
http://www.mouser.com/ds/2/127/olede-971.pdf).

Das Display verwende ich nicht im "herkömmlichen" 4-/8-Bit Modus, 
sondern über das serielle SPI-Interface.

Wieso werden hier zwei Datenbyte übertragen?
Eigentlich sollten 8 Datenbit + 2 Steuerbits reichen, da das R/W-Bit ja 
die Datenrichtung steuert. Im Parallelmodus sind es ja auch nur 8Bit.

Was steht im ersten "Data write", was im zweiten?

Vielen Dank im Voraus,

Gruss

Hans

von Stefan S. (chiefeinherjar)


Lesenswert?

Weil der die Länge der Datenworte bei diesem Display immer 8 Bit sind. 
Und für die letzten beiden Bits muss man eben ein ganzes Datenwort 
senden.

von Hans (Gast)


Lesenswert?

Hallo Stefan,

Danke für Deine Antwort.

Aber die RS- und RW-Bits werden ja am Anfang gesendet, gefolgt von den 8 
Datenbits.
Da könnte man die (erneuten) RS- und RW-Bits sowie das zweite Datenbyte 
doch komplett weglassen, oder?

Mfg
Hans

Beitrag #5180744 wurde von einem Moderator gelöscht.
von Stefan S. (chiefeinherjar)


Lesenswert?

Entschuldigung, da habe ich nicht vernünftig das Datenblatt gelesen - 
bin noch unterwegs.

Der Prozessor muss erstmal den Befehl empfangen, dass du etwas auslesen 
willst. Erst dann kann er das Datenregister beschreiben, was du mit dem 
zweiten Block auslesen kannst.

Bei den HD4470 muss man bevor man die Daten parallel lesen kann auch 
eine kurze Zeit warten, wenn ich mich recht entsinne. Das wird bei 
deinem Display ähnlich sein.

: Bearbeitet durch User
von Walter T. (nicolas)


Lesenswert?

Stefan S. schrieb:
> Bei den HD4470 muss man bevor man die Daten parallel lesen kann auch
> eine kurze Zeit warten, wenn ich mich recht entsinne.

Wobei diese Zeit bei den modernen TFTs sehr kurz ist. 350 ns beim 
ILI9341.

von Hans (Gast)


Lesenswert?

Danke Euch für die Antworten.

Aber wie muss ich vorgehen, um Daten zu schreiben? Kommen die Nutzdaten 
in das erste oder zweite Feld?

MfG

Hans

von Stefan S. (chiefeinherjar)


Lesenswert?

Moment... Bevor wir aneinander vorbei reden... Willst du überhaupt Daten 
auslesen?! Oder nur Daten an das Display senden?

von Hans (Gast)


Lesenswert?

Hallo Stefan,

Grundsätzlich möchte ich Daten schreiben. Sorry, da habe ich mich 
vielleicht undeutlich ausgedrückt.
Um das Display aber "korrekt" anzusteuern, sollte man das Busy Flag 
berücksichtigen, was ein Lesen der Daten erfordert. Deshalb sollte ich 
auch wissen, wie man Daten liest.

Ich werde einfach aus dem Datenblatt nicht schlau, wie das Lesen und 
Schreiben der Daten und das Schreiben der Instruktionen genau gemeint 
ist. Deshalb habe ich nachgefragt.

Gruss,

Hans

von Hans (Gast)


Lesenswert?

Soooo das Display läuft soweit.

Falls jemand ein ähnliches Problem haben sollte: Unbedingt Application 
Note (viel besser als das farbige "Datenblatt") und Beispielcode auf der 
Herstellerseite beachten 
(http://www.lcd-module.de/support/application-note.html).
Wie dort zu sehen ist, benötigt man nicht die "doppelte" Übertragung mit 
den beiden Datenfeldern, sondern einfach 10Bit-SPI, mit den 2 Steuerbits 
und den nachfolgenden Daten, fertig.

Danke trotzdem für Eure Hilfe.

MfG

von Pandur S. (jetztnicht)


Lesenswert?

Das Ready auszulesen kann man sich sparen, wenn man das Timing einhaelt. 
Das wichtigste am Timing ist der sehr lange Delay beim Reset.
Ich habe zB einen System Tick von 1..10ms und schreibe bei jedem genau 
ein Byte. Dann gibt es nie Probleme mit kleinen Character Displays, und 
ich brauche keinen Delay.

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.