Forum: Mikrocontroller und Digitale Elektronik MSP430 + OLED Display via SPI - Grundlegende Vorgehensweise


von Alexander I. (daedalus)


Lesenswert?

Hallo,

ich habe in einer Firma die Aufgabe übertragen bekommen ein Display mit 
einem MSP430x2xx anzusteuern. Es handelt sich um die Variante, die 
keinen Display-Controller beinhaltet, aber die "größte" der 2er-Reihe. 
Leider ist der µC so vorgegeben und ich muß damit leben. Nun soll ein 
OLED-Display vom Typ DD-12864WE-1A von Densitron mit einem 
SH1101A-Controller zum Einsatz kommen. Natürlich soll das Display vom 
MSP430 angesteuert werden und zwar über eine der beiden SPIs. So weit 
alles klar und auch kein Problem. Bisher habe ich im MSP430, der noch 
einige andere Aufgaben bearbeitet, mit einer STATE-Machine realisiert, 
so wie man es bei FPGA's in VHDL oft realisiert. Sprich jeder Interrupt, 
jeder externe Einfluss, Stromsparmodi usw. wird mit Hilfe von STATEs 
getriggert und dann per SELECT CASE in die entsprechende Subroutine 
verzweigt. Dabei läuft der µC in einer Endlosschleife die im Prinzip 
immer AktuellerStatus = NächsterStatus abarbeitet.

Erste Frage:
Ist dies auch bei µCs eine gute Art selbige zu programmieren? Bisher 
finde ich es schön übersichtlich und komfortabel, aber an welche Grenzen 
könnte ich (insbesondere bei MSP430) stoßen?

Jetzt zurück zum Display. Hier soll eine Abstraktionsschicht geschaffen 
werden, so dass das Display frei programmierbar ist. Die Anforderungen 
sind:
a) Buchstaben mit einem geeigneten Raster auf dem Display darzustellen
b) Grafische Grundfunktionen (Pixel, Linien, Rechtecke zeichnen)
c) S/W-Bitmaps an beliebigem Punkt darstellen
d) Mit Hilfe von a), b) und c) ein Menü zu gestalten wie in vielen 
älteren Handys.

Zweite Frage:
Wie abstrahiere ich die Displayfunktion am besten? So das das Display 
mit einer Art Scriptsprache "programmiert" werden kann. Also ich denke 
da an so Befehle wie:

DRAWPIXEL(X,Y)
LINE(X1,Y1,X2,Y2)
INVERTPIXEL(X,Y)
INVERTAREA(X1,Y1,X2,Y2)

die ich in den MSP430 (über irgendeine Schnittstelle) "füttern" kann in 
Form irgendwelcher selbst definierten OP-Codes.

Dritte Frage:
Packt der MSP430 das alles in akzeptabler Geschwindigkeit?

Vierte und letzte Frage:
Das Datenblatt zum Display und dazugehörigem Controller ist ja mehr als 
mager. Wo gibt es zusätzliche Informationen oder sind die Sachen alle 
1:1 auf andere Displays übertragbar?

Ich hoffe ihr könnt mir ein wenig helfen!
Vielen Dank schonmal an dieser Stelle.

von Ahmad A. (bani)


Lesenswert?

Halllo,
ich habe mir den µc angeschaut und festgestellt, nur MSP430F2002,3,12,13 
haben SPI/I²C Mode. OLED Diplay kann sowohl mit SPI mode oder Parallel 
Data angesteuert werden.
da Musst du mal den Datasheet lesen also bei MSP430 SPI Mode
das gute dran ist für (A = 0 für Command oder A=1 für Data ) ein extra 
pn vorgesehen.SPI Mode senden dann anschliesend den SPI Byte Signal 
senden). Da musst Du auch den IFG1 bei den Buffer immer abfragen, ob der 
Buffer leer geworden ist oder nicht dann wieder senden.
aber da ist eine command tabelle dafür, die muss mann bei den Hersteller 
holenmit PS kann man zwischen parallel mode oder Seriell wählen.
 von dieser Adresse kannst du dei Datasheet holen:
http://www.densitron.com/displays/Displays.aspx?nCategoryID=10

falls noch fragen gibt bitte melden

mfg
Ahmad

von Alexander I. (daedalus)


Lesenswert?

Hallo,

danke für die Rückmeldung. An SPI habe ich auch gedacht. Mir ist leider 
kurzfristig ein anderes Projekt dazwischengekommen. Am OLED geht es in 
10-14 Tagen weiter aber wahrscheinlich ist die SPI schon der richtige 
Weg. Danke schonmal im Vorraus.

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.