Forum: Mikrocontroller und Digitale Elektronik STM32F103 TFT SPI ILI9225


von Motze (Gast)


Angehängte Dateien:

Lesenswert?

Hallo liebe Gemeinde,

Ich möchte gerne ein TFT Display mit 2,2" über SPI ansteuern.
Ich benutze ein STM32F103 mit Folgender Pin Belegung.

STM32       TFT
PA2   ->    RST
PA3   ->    RS
PA4   ->    CS
PA5   ->    SCK
PA7   ->    MOSI
3.3V  ->    VCC
GND   ->    GND

Als erstes möchte ich das TFT Initialisieren. Leider komme ich damit 
nicht ganz klar.
Wie sende ich denn ein Befehl ans TFT?

Schritt 1:
Ich muss CS auf Low ziehen.
Schritt 2:
Startbyte(0b01110(ID?)00) senden
Ist das erstmal so richtig?
Schritt 3:
Befehle für Initialisirung senden.

Ich hoffe ihr könnt mir erstmal sagen ob das ganze soweit richtig ist.

lg Motze

von 2F103 TFT SPI IL (Gast)


Lesenswert?

Github: Suche ILI9225 und nimm die Ergebnisse als Beispiele.

von Motze (Gast)


Lesenswert?

Viele dank für diesen Guten Tipp.

Mein Display hat sich initialisiert und kann auch schon clear Screen 
machen.
Leider flakert es Rhytmisch. Woran kann das liegen?

Lg Motze

von Motze (Gast)


Lesenswert?

Wie Sende ich an besten Zeichen auf das TFT mein Weg scheint mir sehr 
umständlich zu sein.

hier der code:
1
void TFT_Draw_Char(uint16_t x, uint16_t y, uint16_t font_color, uint16_t back_color)
2
{
3
  Write_Command(0x36, x + 7);
4
  Write_Command(0x37, x);
5
  Write_Command(0x38, y + 5);
6
  Write_Command(0x39, y);
7
  
8
  Write_Command(0x20, x);
9
  Write_Command(0x21, y);
10
  
11
  Write_Register(0x22);
12
  HAL_GPIO_WritePin(GPIOA, RS, GPIO_PIN_SET);
13
  HAL_GPIO_WritePin(GPIOA, CS, GPIO_PIN_RESET);
14
  
15
  Write_Fast_Data(back_color);
16
  Write_Fast_Data(font_color);
17
  Write_Fast_Data(font_color);
18
  Write_Fast_Data(font_color);
19
  Write_Fast_Data(font_color);
20
  Write_Fast_Data(font_color);
21
  Write_Fast_Data(font_color);
22
  Write_Fast_Data(font_color);
23
  
24
  Write_Fast_Data(font_color);
25
  Write_Fast_Data(back_color);
26
  Write_Fast_Data(back_color);
27
  Write_Fast_Data(back_color);
28
  Write_Fast_Data(font_color);
29
  Write_Fast_Data(back_color);
30
  Write_Fast_Data(back_color);
31
  Write_Fast_Data(back_color);
32
  
33
  Write_Fast_Data(font_color);
34
  Write_Fast_Data(back_color);
35
  Write_Fast_Data(back_color);
36
  Write_Fast_Data(back_color);
37
  Write_Fast_Data(font_color);
38
  Write_Fast_Data(back_color);
39
  Write_Fast_Data(back_color);
40
  Write_Fast_Data(back_color);
41
  
42
  Write_Fast_Data(font_color);
43
  Write_Fast_Data(back_color);
44
  Write_Fast_Data(back_color);
45
  Write_Fast_Data(back_color);
46
  Write_Fast_Data(font_color);
47
  Write_Fast_Data(back_color);
48
  Write_Fast_Data(back_color);
49
  Write_Fast_Data(back_color);
50
  
51
  Write_Fast_Data(back_color);
52
  Write_Fast_Data(font_color);
53
  Write_Fast_Data(font_color);
54
  Write_Fast_Data(font_color);
55
  Write_Fast_Data(font_color);
56
  Write_Fast_Data(font_color);
57
  Write_Fast_Data(font_color);
58
  Write_Fast_Data(font_color);
59
  
60
  HAL_GPIO_WritePin(GPIOA, CS, GPIO_PIN_SET);
61
}

Das ganze gibt ein A aus.
lg Motze

von Martin (Gast)


Lesenswert?

Lege dir einen Zeichensatz an, den du dann nur zur Ausgabe ausgibst:
1
//Schrift der Größe 8
2
const char font8[115][8]=
3
{
4
  {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},  // 0x00 Space
5
  {0x00,0x10,0x1C,0x1F,0x1C,0x10,0x00,0x00},  // 0x10 Pfeil rechts
6
  {0x00,0x01,0x07,0x1F,0x07,0x01,0x00,0x00},  // 0x11  Pfeil Links
7
  {0x00,0x04,0x04,0x0E,0x0E,0x1F,0x00,0x00},  // 0x1E Pfeil oben
8
  {0x00,0x1F,0x0E,0x0E,0x04,0x04,0x00,0x00},  // 0x1F Pfeil unten
9
  {0x04,0x04,0x04,0x04,0x00,0x04,0x00,0x00},  // 0x21 !
10
  {0x0A,0x0A,0x00,0x00,0x00,0x00,0x00,0x00},  // 0x22 "
11
  {0x00,0x05,0x1F,0x0A,0x1F,0x14,0x00,0x00},  // 0x23 #
12
  {0x04,0x0E,0x0C,0x04,0x06,0x0E,0x04,0x00},  // 0x24 $
13
  {0x09,0x15,0x0E,0x0E,0x15,0x12,0x00,0x00},  // 0x25 %
14
  {0x04,0x0A,0x0C,0x15,0x12,0x0D,0x00,0x00},  // 0x26 &
15
  {0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00},  // 0x27 '
16
  {0x03,0x04,0x08,0x08,0x08,0x04,0x03,0x00},  // 0x28 (
17
  {0x18,0x04,0x02,0x02,0x02,0x04,0x18,0x00},  // 0x29 )
18
  {0x04,0x0A,0x04,0x0A,0x00,0x00,0x00,0x00},  // 0x2A *
19
  {0x00,0x00,0x00,0x04,0x0E,0x04,0x00,0x00},  // 0x2B +
20
  {0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x08},  // 0x2C ,
21
  {0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00},  // 0x2D -
22
  {0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00},  // 0x2E .
23
  {0x01,0x02,0x02,0x04,0x04,0x08,0x08,0x00},  // 0x2F /
24
  {0x06,0x09,0x09,0x09,0x09,0x06,0x00,0x00},  // 0x30 0
25
  {0x04,0x0C,0x04,0x04,0x04,0x0E,0x00,0x00},  // 0x31 1
26
  {0x0C,0x02,0x02,0x04,0x08,0x0E,0x00,0x00},  // 0x32 2
27
  {0x0C,0x02,0x0C,0x02,0x02,0x0C,0x00,0x00},  // 0x33 3
28
  {0x02,0x06,0x0A,0x0F,0x02,0x02,0x00,0x00},  // 0x34 4
29
  {0x0E,0x08,0x0C,0x02,0x02,0x0C,0x00,0x00},  // 0x35 5
30
  {0x06,0x08,0x0E,0x09,0x09,0x06,0x00,0x00},  // 0x36 6
31
  {0x0F,0x01,0x02,0x04,0x04,0x04,0x00,0x00},  // 0x37 7
32
  {0x06,0x09,0x06,0x09,0x09,0x06,0x00,0x00},  // 0x38 8
33
  {0x06,0x09,0x09,0x07,0x01,0x06,0x00,0x00},  // 0x39 9
34
  {0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00},  // 0x3A :
35
  {0x00,0x00,0x04,0x00,0x00,0x04,0x04,0x08},  // 0x3B ;
36
  {0x00,0x01,0x02,0x0C,0x02,0x01,0x00,0x00},  // 0x3C <
37
  {0x00,0x00,0x0F,0x00,0x0F,0x00,0x00,0x00},  // 0x3D =
38
  {0x00,0x08,0x04,0x03,0x04,0x08,0x00,0x00},  // 0x3E >
39
  {0x0E,0x01,0x02,0x04,0x00,0x04,0x00,0x00},  // 0x3F ?
40
  {0x06,0x09,0x13,0x15,0x17,0x10,0x0F,0x00},  // 0x40 @
41
  {0x00,0x04,0x0A,0x0A,0x1F,0x11,0x00,0x00},  // 0x41 A
42
  {0x00,0x0E,0x0A,0x0C,0x0A,0x0E,0x00,0x00},  // 0x42 B
43
  {0x00,0x07,0x08,0x08,0x08,0x07,0x00,0x00},  // 0x43 C
44
  {0x00,0x0E,0x09,0x09,0x09,0x0E,0x00,0x00},  // 0x44 D
45
  {0x00,0x0E,0x08,0x0E,0x08,0x0E,0x00,0x00},  // 0x45 E
46
  {0x00,0x0E,0x08,0x0E,0x08,0x08,0x00,0x00},  // 0x46 F
47
  {0x00,0x07,0x08,0x0B,0x09,0x07,0x00,0x00},  // 0x47 G
48
  {0x00,0x09,0x09,0x0F,0x09,0x09,0x00,0x00},  // 0x48 H
49
  {0x00,0x0E,0x04,0x04,0x04,0x0E,0x00,0x00},  // 0x49 I
50
  {0x00,0x0E,0x02,0x02,0x02,0x0C,0x00,0x00},  // 0x4A J
51
  {0x00,0x09,0x0A,0x0C,0x0A,0x09,0x00,0x00},  // 0x4B K
52
  {0x00,0x08,0x08,0x08,0x08,0x0F,0x00,0x00},  // 0x4C L
53
  {0x00,0x11,0x1B,0x15,0x15,0x11,0x00,0x00},  // 0x4D M
54
  {0x00,0x09,0x0D,0x0B,0x09,0x09,0x00,0x00},  // 0x4E N
55
  {0x00,0x0E,0x11,0x11,0x11,0x0E,0x00,0x00},  // 0x4F O
56
  {0x00,0x0E,0x09,0x0E,0x08,0x08,0x00,0x00},  // 0x50 P
57
  {0x00,0x0E,0x11,0x11,0x11,0x0E,0x02,0x01},  // 0x51 Q
58
  {0x00,0x0C,0x0A,0x0C,0x0A,0x09,0x00,0x00},  // 0x52 R
59
  {0x00,0x06,0x08,0x04,0x02,0x0C,0x00,0x00},  // 0x53 S
60
  {0x00,0x1F,0x04,0x04,0x04,0x04,0x00,0x00},  // 0x54 T
61
  {0x00,0x09,0x09,0x09,0x09,0x06,0x00,0x00},  // 0x55 U
62
  {0x00,0x09,0x09,0x09,0x06,0x06,0x00,0x00},  // 0x56 V
63
  {0x00,0x11,0x15,0x15,0x0A,0x0A,0x00,0x00},  // 0x57 W
64
  {0x00,0x11,0x0A,0x04,0x0A,0x11,0x00,0x00},  // 0x58 X
65
  {0x00,0x11,0x0A,0x04,0x04,0x04,0x00,0x00},  // 0x59 Y
66
  {0x00,0x0F,0x01,0x06,0x08,0x0F,0x00,0x00},  // 0x5A Z
67
  {0x06,0x04,0x04,0x04,0x04,0x04,0x06,0x00},  // 0x5B [
68
  {0x10,0x08,0x08,0x04,0x04,0x02,0x02,0x00},  // 0x5C Backwardslash
69
  {0x0C,0x04,0x04,0x04,0x04,0x04,0x0C,0x00},  // 0x5D ]
70
  {0x04,0x0A,0x0A,0x11,0x11,0x00,0x00,0x00},  // 0x5E ^
71
  {0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00},  // 0x5F _
72
  {0x08,0x04,0x00,0x00,0x00,0x00,0x00,0x00},  // 0x60 `
73
  {0x00,0x00,0x0C,0x02,0x0E,0x0F,0x00,0x00},  // 0x61 a
74
  {0x08,0x08,0x0E,0x09,0x09,0x0E,0x00,0x00},  // 0x62 b
75
  {0x00,0x00,0x06,0x08,0x08,0x06,0x00,0x00},  // 0x63 c
76
  {0x02,0x02,0x0E,0x12,0x12,0x0E,0x00,0x00},  // 0x64 d
77
  {0x00,0x00,0x04,0x0E,0x08,0x06,0x00,0x00},  // 0x65 e
78
  {0x03,0x04,0x0F,0x04,0x04,0x04,0x00,0x00},  // 0x66 f
79
  {0x00,0x00,0x07,0x09,0x0F,0x01,0x0E,0x00},  // 0x67 g
80
  {0x08,0x08,0x0A,0x0D,0x09,0x09,0x00,0x00},  // 0x68 h
81
  {0x04,0x00,0x0C,0x04,0x04,0x04,0x00,0x00},  // 0x69 i
82
  {0x02,0x00,0x0E,0x02,0x02,0x02,0x0C,0x00},  // 0x6A j
83
  {0x08,0x08,0x0A,0x0C,0x0A,0x09,0x00,0x00},  // 0x6B k
84
  {0x0C,0x04,0x04,0x04,0x04,0x04,0x00,0x00},  // 0x6C l
85
  {0x00,0x00,0x15,0x1F,0x15,0x15,0x00,0x00},  // 0x6D m
86
  {0x00,0x00,0x0A,0x0D,0x09,0x09,0x00,0x00},  // 0x6E n
87
  {0x00,0x00,0x06,0x09,0x09,0x06,0x00,0x00},  // 0x6F o
88
  {0x00,0x00,0x0E,0x09,0x09,0x0E,0x08,0x00},  // 0x70 p
89
  {0x00,0x00,0x0E,0x12,0x12,0x0E,0x02,0x00},  // 0x71 q
90
  {0x00,0x00,0x0A,0x0C,0x08,0x08,0x00,0x00},  // 0x72 r
91
  {0x00,0x00,0x06,0x0C,0x02,0x0C,0x00,0x00},  // 0x73 s
92
  {0x00,0x04,0x0F,0x04,0x04,0x02,0x00,0x00},  // 0x74 t
93
  {0x00,0x00,0x09,0x09,0x0B,0x05,0x00,0x00},  // 0x75 u
94
  {0x00,0x00,0x09,0x09,0x06,0x06,0x00,0x00},  // 0x76 v
95
  {0x00,0x00,0x15,0x15,0x0E,0x0A,0x00,0x00},  // 0x77 w
96
  {0x00,0x00,0x09,0x06,0x06,0x09,0x00,0x00},  // 0x78 x
97
  {0x00,0x00,0x09,0x09,0x06,0x06,0x1C,0x00},  // 0x79 y
98
  {0x00,0x00,0x0E,0x06,0x08,0x0E,0x00,0x00},  // 0x7A z
99
  {0x02,0x04,0x04,0x08,0x04,0x04,0x02,0x00},  // 0x7B {
100
  {0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00},  // 0x7C |
101
  {0x08,0x04,0x04,0x02,0x04,0x04,0x08,0x00},  // 0x7D }
102
  {0x00,0x00,0x00,0x0D,0x12,0x00,0x00,0x00},  // 0x7E ~
103
  {0x09,0x00,0x09,0x09,0x0B,0x05,0x00,0x00},  // 0x81 ü
104
  {0x0A,0x00,0x0C,0x02,0x0E,0x0F,0x00,0x00},  // 0x84 ä
105
  {0x0A,0x04,0x0A,0x0A,0x1F,0x11,0x00,0x00},  // 0x8E Ä
106
  {0x09,0x00,0x06,0x09,0x09,0x06,0x00,0x00},  // 0x94 ö
107
  {0x11,0x0E,0x11,0x11,0x11,0x0E,0x00,0x00},  // 0x99 Ö
108
  {0x12,0x09,0x09,0x09,0x09,0x06,0x00,0x00},  // 0x9A Ü
109
  {0x00,0x01,0x06,0x0B,0x0D,0x06,0x08,0x00},  // 0x9B o Durchmesser
110
  {0x00,0x05,0x0A,0x14,0x0A,0x05,0x00,0x00},  // 0xAE >>
111
  {0x00,0x14,0x0A,0x05,0x0A,0x14,0x00,0x00},  // 0xAF <<
112
  {0x04,0x0A,0x0A,0x0A,0x09,0x0A,0x00,0x00},  // 0xE1 ß
113
  {0x00,0x00,0x09,0x09,0x0B,0x0D,0x08,0x00},  // 0xE6 micro
114
  {0x00,0x00,0x04,0x0E,0x04,0x0E,0x00,0x00},  // 0xF1 +-
115
  {0x06,0x09,0x09,0x06,0x00,0x00,0x00,0x00},  // 0xF8 °
116
  {0x0C,0x04,0x04,0x04,0x0E,0x00,0x00,0x00},  // 0xFB hoch 1
117
  {0x0C,0x02,0x0C,0x02,0x0C,0x00,0x00,0x00},  // 0xFC ³
118
  {0x0C,0x02,0x04,0x08,0x0E,0x00,0x00,0x00},  // 0xFD ²
119
};

von Motze (Gast)


Lesenswert?

So jetzt habe ich die Tabelle mal nur mit einem A gemacht aber wie frage 
ich die Werte in der Tabelle am besten ab.

meine aktuelle lösung ist:
1
const char font8[1][8]=
2
{
3
   {0x7F, 0x88, 0x88, 0x88, 0x7F} //A
4
};
5
6
7
for(i = 0; i < 8; i++)
8
{
9
   Write_Fast_Data(font8[1][i]);
10
}

leider funtkioniert das ganze noch nicht richtig.

von Motze (Gast)


Lesenswert?

sorry
1
const char font8[1][5]=
2
{
3
   {0x7F, 0x88, 0x88, 0x88, 0x7F} //A
4
};
5
6
7
for(i = 0; i < 5; i++)
8
{
9
   Write_Fast_Data(font8[1][i]);
10
}

von Motze (Gast)


Lesenswert?

Ich habe die Frequenz am Display auf 571.4khz gesetzt jetzt hat das 
Flackern aufgehört, leider ist der Kontrast nicht mehr so gut.

Lg Motze

von Motze (Gast)


Lesenswert?

So das mit den Zeichen ausgeben habe ich gerade gelöst. Leider ist es 
aber so das der Kontrast sehr schwach ist wenn ich die Oszillator 
Frequenz erhöhe vom TFT. Ich habe sie jetzt wieder herunter gesetzt. 
Jetzt flackert das TFT aber wieder. Kann es sein dass es ständig das 
Bild neu Aufbaut? Kann ich das abschalten und nur dann wenn sich was 
ändert neu aufbauen lassen?

mfg Motze

von Motze (Gast)


Angehängte Dateien:

Lesenswert?

Leider wird auch nicht normal wie hier von links nach rechts 
geschrieben, sondern von rechts nach links könnt ihr mir dort helfen?


Habe mal zwei Bilder angehangen. Das Flackern und der schlechte Kontrast 
ist immer noch.

mfg Motze

von Motze (Gast)


Lesenswert?

So das mit der Schriftrichtung habe ich auch hinbekommen. Jetzt nur noch 
das Flackern weg und der Kontrast muss richtig sein.

mfg Motze

von Motze (Gast)


Lesenswert?

So Initialisire ich das Display.
1
        //software reset
2
  Write_Command(0x28, 0x00CE);
3
  //Driver Output Controll
4
  Write_Command(0x01, 0x011C);
5
  //Entry mode (Ausrihtung des Displays)
6
  Write_Command(0x03, 0x1010);
7
  
8
  //Display Controll
9
  Write_Command(0x07, 0x0017);
10
  HAL_Delay(50);
11
  
12
  //Power Controll 2
13
  Write_Command(0x11, 0x1000);
14
  //Ram Adresse Set
15
  Write_Command(0x20, 0x0000);
16
  Write_Command(0x21, 0x0000);
17
  HAL_Delay(50);
18
  
19
  //Gate Scan Controll
20
  Write_Command(0x30, 0x0000);
21
  //Vertical Scroll Controll 1
22
  Write_Command(0x31, 0x00DB);
23
  Write_Command(0x32, 0x0000);
24
  //Vertical Scroll Conttrll 1
25
  Write_Command(0x33, 0x0000);
26
  //Partial Screen Driving Position
27
  Write_Command(0x34, 0x00DB);
28
  Write_Command(0x35, 0x0000);
29
  //Horizontal and Vertical RAM Address Position
30
  Write_Command(0x36, 0x00AF);
31
  Write_Command(0x37, 0x0000);
32
  Write_Command(0x38, 0x00DB);
33
  Write_Command(0x39, 0x0000);
34
  HAL_Delay(50);
35
  
36
  //LCD Driving Waveform Control
37
  Write_Command(0x02, 0x0000);
38
  HAL_Delay(50);
39
40
  //Gamma Control
41
  Write_Command(0x50, 0x0000); 
42
  Write_Command(0x51, 0x0C05); 
43
  Write_Command(0x52, 0x0302); 
44
   Write_Command(0x53, 0x0007); 
45
   Write_Command(0x54, 0x0302); 
46
   Write_Command(0x55, 0x050C); 
47
   Write_Command(0x56, 0x0000); 
48
   Write_Command(0x57, 0x0700); 
49
   Write_Command(0x58, 0x1C00); 
50
   Write_Command(0x59, 0x001C); 
51
52
 
53
  //Ram Adresse Set
54
   Write_Command(0x20, 0x0000); 
55
   Write_Command(0x21, 0x0000);
56
  
57
  //Display Control 1
58
   Write_Command(0x07, 0x0012);
59
  HAL_Delay(200);
60
  //Display Control 1
61
   Write_Command(0x07, 0x1017); 
62
  //Oszillator
63
  //Write_Command(0x0D, 0x0F01); 
64
  HAL_Delay(80);

Wie kann ich den Kontrast verändern und das Flackern stoppen?

mfg Motze

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Kontrast: In Grenzen mit Gamma Control.
Flackern: Mal die Versorgungsspannung mit nem Oszilloskop gemessen?

Bei meinem war die Vorwärtsspannung für die Hintergrundbeleuchtungs-LEDs 
bei 3,2V und 0,1V sind am Vorwiderstand abgefallen. Ein leichter Ripple 
führt dann schnell zum Flackern.

: Bearbeitet durch User
von Motze (Gast)


Lesenswert?

Ne habe ich noch nicht gemessen werde ich aber morgen mal machen.
Was ich halt bemerkt habe ist das, wenn ich die Oszillatorfrequenz 
erhöht habe, das Flackern aufgehört hat.
Leider der Kontrast dadurch schlechter wurde.
Mir kommt es so vor dass das Bild permanent aufgebaut wird und dadurch 
der Kontrast flöhten geht.
Kann ich das Bild nicht einmal aufbauen und erst wenn sich was änderte 
dann wieder aufbauen?

mfg Motze

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Motze schrieb:
> Kann ich das Bild nicht einmal aufbauen und erst wenn sich was änderte
> dann wieder aufbauen?

Selbstverständlich. Eigentlich macht man das immer so. Oder noch besser: 
Du überschreibst nur die Änderungen und baust das Bild nicht komplett 
neu auf.

Natürlich kommen dadurch ein paar Programm-Zeilen hinzu, aber von Nix 
kommt nix. ;-)

Zumindest habe ich das so gemacht. Bibliotheken sind so 'ne Sache: Ich 
musste damals eine Tortengrafik aktualisieren und nur die Änderungen neu 
zeichnen. Da hatte ich nichts Fertiges gefunden.

: Bearbeitet durch User
von Motze (Gast)


Lesenswert?

Hi weist du auch welches Register ich verändern muss? Habe jetzt mit 
fast allen rumgespielt, leider ohne Erfolg.
Aber der Kontrast ist jetzt besser geworden durch das Register:
1
Write_Command(0x10, 0x0F00); 
2
Write_Command(0x13, 0x002A);

Beim zweiten bin ich mir nicht sicher ob ich das richtig eingestellt 
habe.
Mein TFT läuft mit 3.3V.

mfg Motze

von Torsten C. (torsten_c) Benutzerseite


Angehängte Dateien:

Lesenswert?

Torsten C. schrieb:
> Kontrast: In Grenzen mit Gamma Control.
Motze schrieb:
> Hi weist du auch welches Register ich verändern muss?
Du hast doch selbst geschrieben:
> //Gamma Control
>   Write_Command(0x50, 0x0000);
>   Write_Command(0x51, 0x0C05);
>   Write_Command(0x52, 0x0302);
>   Write_Command(0x53, 0x0007);
>   …

Hast Du mal ins Datenblatt geschaut und nach "Gamma" gesucht?

Ich habe für meine Displays eine kleine Anwendung geschrieben, um die 
RGB-Werte zu optimieren und Gamma optimal einzustellen. Da die optimalen 
Werte von Glas zu Glas unterschiedlich sind, kann Dir niemand die Werte 
für Dein Exemplar sagen.

Motze schrieb:
> Mein TFT läuft mit 3.3V.

Wenn Ripple drauf ist, dann wie oben gesagt …

Eventuell umlöten und Backlight über 5V versorgen oder einen fetten 
Kondensator an die 3,3V. Hast Du denn mal gemessen, ob Ripple drauf ist?

: Bearbeitet durch User
von Rudnik (Gast)


Lesenswert?

Hi,
ich habe ein ähnliches setup mit STM32F411 und dem ILI9225 TFT. Ich 
bekomme das Ding aber nicht zum laufen. Könnte jemand die Funktion 
"Write_Command(xx, xx);" posten? Ich bin mir nicht sicher ob ich die 
Bytes richtig raus schiebe.
Schon mal Danke!

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.