Forum: FPGA, VHDL & Co. einige Fragen zum Oled Display (HX5116)


von mikrofriendly (Gast)


Lesenswert?

Hallo,
Ich möchte ein OLED-Display mit einem FPGA ansteuern. Leider ist das 
Datenblatt zu dem Display dürftig .. viel Bildchen und Tabellen aber 
keine Erklärungen. 
http://www.andilcd.de/medien/de/download/controller/andilcd_conoled_sheet_de_hx5116.pdf

1. Durch die SPI-Schnittstelle wird das Display Initialisiert. Ich 
verschicke dabei seriell für jeden konfigurationsschritt 32bit. Die 
höchsten 16 bit legen die adresse für das register fest und die 16 
unteren bits legen die eigentliche konfiguration fest. hab ich das so 
richtig verstanden?

2. HSYNC und VSYNC .. beide Signale sind dazu da um den Bildspeicher mit 
der Anzeige zu synchronisieren. HSYNC für die Zeilen und VSync für die 
Spalten in jeder Zeile. (Bild wird ja Zeilenweise von links nach rechts 
aufgebaut).

Während das Sync ausgeführt wird, kann ich da weiterhin RGB daten 
übertragen?

Muss ich nach jeder Zeile einen HSYNC ausführen und nach jeder Spalte 
einen HSYNC? -> was würde passieren wenn ich erstmal alles in den 
speicher lade und dann synchronisiere?

mfg

von Matthias (Gast)


Lesenswert?

mikrofriendly schrieb:
> 1. Durch die SPI-Schnittstelle wird das Display Initialisiert. Ich
> verschicke dabei seriell für jeden konfigurationsschritt 32bit. Die
> höchsten 16 bit legen die adresse für das register fest und die 16
> unteren bits legen die eigentliche konfiguration fest. hab ich das so
> richtig verstanden?

Dem von dir verlinkten Datenblatt entnehme ich einen SPI-FRAME von 16 
bit, nicht 32. die ersten 7 stehen fuer die Adresse, dann ein read/write 
bit und dann 8 bit daten. So stehts auf Seite 9

Zu deinem zweiten Problem:
active-edge (also bei HIGH active signal ein rising edge) definiert den 
Beginn einer neuen Zeile. Was genau du Spalte meinst kann ich nicht ganz 
nachvollziehen. Ein Videoframe hat normalerweise Zeilen, die wiederrum 
aus aus bestimmten Anzahl Pixeln bestehen. HSYNC zeigt den Beginn einer 
neuen Zeile an, waehrend VSYNC den Beginn eines neuen Frames anzeigt. 
Spalten gibts eigentlich selten (hab hier n sensor der sowas kann, 
gehoert hier aber nicht her).
Ich finde die Timings eigentlich recht eindeutig und anschaulich 
erklaert. Ich denke allerdings du bist dir noch nicht so ganz im Klaren 
was du genau eigentlich da bauen willst. Welche Aufloesung und  welche 
Framerate benutzt du eigentlich?

von mikrofriendly (Gast)


Lesenswert?

Ja stimmt es sind 16bit, .. :)

Ich nutze ein Display mit 480x272 Bixeln.

Also habe ich das so richtig verstanden?
HSYNC-Signal bestimmt wann eine neue Zeile Beginnt. Ich muss also wenn 
mein 8bit RGB serialbus mit 33MHZ getaktet wird. Jede 17,973KHz eine 
HSYNC Flanke bringen (Wie auf Abbildung S. 61). Auf die HSYNC Frequenz 
bin ich durch die Angaben von S. 45 gekommen.

f(HSYNC) = f(clk) / 1836 = rund 18kHz
Dabei bleibt der HSYNC Impuls 90 * 1/clk = 2,7us breit.

VSYNC dagegen beschreibt also wann ein neues Frame beginnt. Somit habe 
ich rund 60Hz ausgrechnet.

Mit f(VSYNC) = f(clk) / 302 = 59,5Hz

Können während die VSYNC und HSYNC Signale anliegen RGB Informationen 
übertragen werden?


>Ich finde die Timings eigentlich recht eindeutig und anschaulich
>erklaert. Ich denke allerdings du bist dir noch nicht so ganz im Klaren
>was du genau eigentlich da bauen willst. Welche Aufloesung und  welche
>Framerate benutzt du eigentlich?

Mein problem war eigentlich nur das Verständnis wie ein Videosignal 
aufgebaut ist, nicht die Interpretation von Impulsdiagrammen. Leider 
steht zur erklärung der Signale zu wenig im Datenblatt, sodass jemand 
der noch nie etwas mit Display´s zutun hatte versteht, weshalb man diese 
Signale überhaupt anlegen muss.

Vielen danke für deine erklärung :)

mfg

von Matthias (Gast)


Lesenswert?

mikrofriendly schrieb:
> Mein problem war eigentlich nur das Verständnis wie ein Videosignal
> aufgebaut ist, nicht die Interpretation von Impulsdiagrammen. Leider
> steht zur erklärung der Signale zu wenig im Datenblatt, sodass jemand
> der noch nie etwas mit Display´s zutun hatte versteht, weshalb man diese
> Signale überhaupt anlegen muss.

NTFS und PAL sind Standards, darueber gibts im weiten weiten Web tausend 
und mindenstens noch 2 Erklaerungen.
Wie genau H-Sync und V-Sync bei diesen definiert sind, weiss ich aus dem 
Kopf auch nicht. Sie kommen beide noch aus zeiten des 
Roehrenbildschirms, wo am Ende der Zeile ein Elektronenstrahl 
zurueckgesetzt werden musste. Daher musste ein blanking zwischen 2 
Zeilen. Das ist bei digitalen Anzeigen meist nicht mehr so, es sei denn 
sie basieren noch auf PAL/NTFS.
Bei Wiki steht sicherlich auch was ueber den genauen Video aufbau von 
PAL, wie genau die Sync pulse definiert sind laesst sich sicherlich auch 
recht einfach finden.

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.