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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Hans (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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 vom Autor gelöscht.
von Stefan S. (chiefeinherjar)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


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

von Hans (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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.

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]
  • [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.