TFT Display erzeugt falsches Farbmuster

OP #2946254
Lesenswert?

Hallo Leute,

ich versuche momentan ein QVGA Display (INT035TFT-TS) per STM32F4 
anzusteuern. Dazu verwende ich den FSMC. Lesen und Schreiben 
funktioniert auch schon wunderbar. Momentan verwende ich ein 8Bit 
Dateninterface zu dem Display. Für ein Pixel werden dazu 3 Bytes 
übertragen (RGB).

Mit den Farben scheint aber etwas nicht so ganz zu stimmen. Ich verwende 
folgenden Code für ein Test Pattern.
1
    for(uint16_t y = 0; y < 240; y++)
2
    {
3
      for(uint16_t x = 0; x < 320; x++)
4
      {
5
        if(y < 80)
6
        {
7
          rgb = x;
8
        }
9
        else if(y < 160)
10
        {
11
          rgb = x << 8;
12
        }
13
        else
14
        {
15
          rgb = x << 16;
16
        }
17

18
        *TFT_DATA_REG = (rgb & 0xFF);
19
        *TFT_DATA_REG = (rgb & 0xFF00) >> 8;
20
        *TFT_DATA_REG = (rgb & 0xFF0000) >> 16;
21
      }
22
    }

Nun sollten eigentlich drei Balken erscheinen (RGB) jeweils von dunkel 
nach hell.
Das tatsächliche Ergebnis gibt es im Anhang.

Scheint als ob bei Blau 1 Bit fehlt, bei Grün 3 und bei Rot 5 Bit 
(jeweils MSBs).

Hat jemand ne Ahnung was da los ist? Bin ein wenig ratlos in welche 
Richtung ich suchen muss.

Der Display Controller ist ein SSD1963.

Grüße
Andre
Angehängte Dateien:
Gast #2946317
Lesenswert?

Hast Du die Datenpins vertauscht? Das Display (bzw. der Controller) 
nimmt nur 6 Bits entgegen im 8-Bit-Modus und schneidet dabei die LSBs 
ab. Würde zumindest zu Blau passen (5 Überläufe statt einem auf 320 
Spalten). Die "Differenzen" bei Grün und Rot (3 bzw 5) sind auch Sprünge 
von 2.. Bleibt noch der Offset von 1, der versteckt sich womöglch in 
Zeile 42..

HTH
OP #2946629
Lesenswert?

Danke für den Hinweis g457, es ging schonmal in die richtige Richtung.
Der SSD1963 war mit einem 24Bit Interface zum Display-Treiber 
konfiguriert, tatsächlich besteht das Interface aber nur aus 18Bits. So 
fehlten bei jeder Farbe immer 2 Bit mehr, und durch die Verschiebung der 
Bits kamen dann die unterschiedlichen Balken zustande. Dank Murphy stand 
das natürlich auch in keine Doku zu dem Display.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren