3.2z Display (color) mit ILI9341 SPI controller. Gibt es das?

Gast #4360624
Lesenswert?

Hallo,

ich habe das Display noch herumliegen. 3.2z statt der winzigen 2.2z 
Dinger. Darum ging es nämlich.

http://www.ebay.de/itm/121504830137?_trksid=p2060353.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT

So wie es aussieht ist es für LTDC Betrieb an einem Parallelbus 
geeignet, zb am F429 über DMA. Das möchte ich wegen der vielen Pins 
eigentlich nicht. Den ILI9341 gibt es ja auch für SPI Betrieb. So ganz 
blicke ich da noch nicht durch:

Ist das Display im Bild auch für SPI Betrieb mit einer ILI93141 Library 
geeignet?

Und wenn nicht, welches Display ist 3.2z gross und hat eine SPI für den 
ILI93141? (ich weiss dass es noch andere Chips gibt wie den SSD1389 aber 
ich möchte bei einem bleiben.)

Gruss,
Christian
Gast #4360679
Lesenswert?

Christian J. schrieb:
> Ist das Display im Bild auch für SPI Betrieb mit einer ILI93141 Library
> geeignet?

Wenn der Verkäufer mit seinem Bild nicht lügt dann kann dieses
Teil nicht mit SPI angesteuert werden. Es sind zwaz SPI Leitungen
vorhanden, diese dienen jedoch ausschliesslich der SD Karte und
dem Touch Controller.

Die Chance ein grösseres Display mit SPI zu bekommen ist gering
da die Datenübertragungsrate für eine "flüssige" Darstellung mit
SPI nicht mehr gut erreichbar ist.
Gast #4360719
Lesenswert?

Arduinoquäler schrieb:
> Die Chance ein grösseres Display mit SPI zu bekommen ist gering
> da die Datenübertragungsrate für eine "flüssige" Darstellung mit
> SPI nicht mehr gut erreichbar ist.

Hallo,

das kann eigentluch nicht sein, da beide Display mit 320x240 bezeichnet 
sind. Nur die Pixel sind eben etwas größer bei dem 3.2z Display. Die 
2.2z Dinger kenne ich, die roten Platinen, auch SD karte drunter.
Und mit einer 10 Mhz SPI ist das bei mir schon recht flott, nur leider 
ist im Radio deutlich das bsss.....bsss... auf allen Sendern zu hören, 
die Laboraufbauten rotzen rum, was das Zeugs hält.
#4361068
Lesenswert?

Hallo,

ein Display mit einem SSD1289 hat ein internes RAM.
Es hat halt nur eine 16Bit breiten Bus. Da brauchst du kein FSMC 
(STM32F4..)

Es laüft prima mit einem Atmega.. (Atxmeg..)

Ich habe schon viele Displays verwendet, aber ein 3,2" Display mit einem 
ILI9341 gibt es nicht, oder ich habe keines gefunden. 2,2" oder max. 
2,8" sind die Regel.

Ein qualitativ hochwertiges SPI-Display ohne Touch findst du bei 
Reichelt.

http://www.reichelt.de/RASP-C-BERRY-28/3/index.html?&ACTION=3&LA=446&ARTICLE=144719&artnr=RASP+C-BERRY+28&SEARCH=c-berry28

Es hat 2,8" und einen Controller ST7789. Der ist nahezu mit einem 
ILI9341 kompatible. Der Preis für ein solches Display ist in Ordnung.

Code gibt es hier: http://basteln-mit-avr.de/index.html

Gruß G.G.
Gast #4361179
Lesenswert?

Ich glaube das kann schon sein.

Ist dieses nicht auf dem F429 eval board auch drauf?

Es wird über SPI am Anfang initialisiert und so konfiguriert dass es 
sein Pixel über den 16 Bit Parallelbus bekommt.

Nach der Initialisierung bleibt der SPI ruhig und das Display kann über 
den LTDC angefahren werden.
Gast #4362139
Lesenswert?

Gerhard G. schrieb:
> Ich habe schon viele Displays verwendet, aber ein 3,2" Display mit einem
> ILI9341 gibt es nicht, oder ich habe keines gefunden. 2,2" oder max.
> 2,8" sind die Regel.

Hallo,

nach vielem Rumgooglen komme ich zu der Erkenntnis dass der einzige Weg 
ein 3.2z Display (bin 40+x, die Augen..) an einen F407 zu pappen der 
ist, ein Display mit SSD1289 zu verwenden und dessen Ram über den FSMC 
in den F407
zu mappen. Ein Display mit ILI9341 LTDC passt nicht, da der 407 keinen 
TFT Display Treiber hat, nur der F429er hat den.

Also eines mit SSD1289 besorgen.....

Gruss,
Christian
#4362989
Lesenswert?

Egal schrieb:
> Du kannst das Ili9341 doch ganz einfach via SPI ansprechen das kann der
> 407 doch...

Die erforderlichen Signale des Controllerchips sind nicht in jedem Fall 
auf den Connector herausgeführt. Viele Displays sind daher auf einen 
bestimmten Modus festgelegt.

Vorher ins Datenblatt des Displays schauen hilft.

fchk
#5174210
Lesenswert?

Gleiches Problem hier:

Es gibt scheinbar doch 3.2'' Displays mit SPI. Nur muss man dieses 
irgendwie über sog. IM - Eingänge aktivieren. Nur wo sind die und wie 
aktiviert man die ?

Ich habe dieses Display: 
https://www.aliexpress.com/item/3-2-inch-touch-screen-TFT-65K-color-LCD-module-integrated-touch-control-IC-SD-card/1919718096.html

Threads, die diese Thema behandeln und angeblich gelöst haben:
 http://www.edaboard.com/thread360074.html

Gruß
Gerd
#5174233
Lesenswert?

Gerd S. schrieb:
> Gleiches Problem hier:
>
> Es gibt scheinbar doch 3.2'' Displays mit SPI. Nur muss man dieses
> irgendwie über sog. IM - Eingänge aktivieren. Nur wo sind die und wie
> aktiviert man die ?
>
> Ich habe dieses Display:
> 
https://www.aliexpress.com/item/3-2-inch-touch-screen-TFT-65K-color-LCD-module-integrated-touch-control-IC-SD-card/1919718096.html
>
> Threads, die diese Thema behandeln und angeblich gelöst haben:
>  http://www.edaboard.com/thread360074.html
>
> Gruß
> Gerd

Solche Displays gibt's auch mit Datenblättern und 
Schaltungsbeispielen...
http://www.buydisplay.com/default/3-2-inch-capacitive-touchscreen-240x320-tft-lcd-module-display
Ansonsten hilft nur die Methode von Arduinoquäler: Nachschauen/messen
Gast #5174329
Lesenswert?

Gerd S. schrieb:
> Es gibt scheinbar doch 3.2'' Displays mit SPI. Nur muss man dieses
> irgendwie über sog. IM - Eingänge aktivieren. Nur wo sind die und wie
> aktiviert man die ?
>
> Ich habe dieses Display:
> 
https://www.aliexpress.com/item/3-2-inch-touch-screen-TFT-65K-color-LCD-module-integrated-touch-control-IC-SD-card/1919718096.html

Dieses Diplay habe ich auch und das hat keine SPI, sondern wird in den 
Memory Bereich des uC gemapped und per DMA gefüttert. Es gibt deshalb 
keine größeren als 320x240, weil das viel zu langsam wäre die per SPI zu 
füttern. Ein Display soll ja fliessende Bilder ermöglichen, sonst würde 
es nicht hergestellt werden.

Lösungen für sowas findest Du aber auch hier, für den ILI9327

https://www.youtube.com/watch?v=7pFui4tvjBE
Gast #5174527
Lesenswert?

>> weil das viel zu langsam wäre die per SPI zu füttern

Ich verwende ein ILI9341 mit 320x240 mit SPI.
Wenn man sich die Ansteuerungen die so im Netz rumgeistern mal anschaut 
ist das teilweise ein graus. Ich habe die Routinen optimiert und 
benötige ca. 300ms für ein komplettes beschreiben. Meistens muss jedoch 
nur ein kleiner Teil neu gezeichnet werden, das ist in wenigen ms 
erledigt.
Klar, einen Film möchte ich nicht damit anschauen. Aber dafür sind die 
Dinger auch nicht vorgesehen.
Gast #5174545
Lesenswert?

Gast #5174558
Lesenswert?

Frickelfritze schrieb:
> Christian J. schrieb:
>> Dieses Diplay habe ich auch und das hat keine SPI
>
> Natürlich hat das Display SPI, nur der Softie mit den
> zwei linken Händen kommt nicht ran.

Dann zeige mir, dass die SPI, welche im Datenblatt erwähnt wird dazu 
geeignet ist das Display mit Daten zu füttern und nicht nur eine 
Steuerfunktion hat! Das Display hat übrigens auch 320x240, nur halt 
größere Pixel. Darüber habe ich kein einziges gefunden, damals 
totgesucht. Außer einem Projekt was mal hier vor Jahren lief, wo ein AVR 
ein 640x480 s/w seriell ansteuerte per UART fuer einfache Dinge. Das 
habe ich sogar nachgebaut und dafür 50 Platinen für dieses Forum machen 
lasen damals.

Datenblatt des "Blauen":
- Display Driver IC for ILI9341, touch screen driver chip is XPT2046;
- Display interface 16bit parallel interface, support for 6800 and 8080 
bus interface, support for the STM32 FSMC bus interface refresh speed;
- Touch screen interface for the SPI interface, the data line low, 
driving simple;

Die SPI dient da wohl nur dazu den Touch auszulesen.

Also zeigen und ich gebe Ruhe und Du kriegst nen Keks! ;-)

> Christian J. schrieb:
>> weil das viel zu langsam wäre die per SPI zu füttern

> Das kann kein gültiges Argument sein.
> Für eine billige Slidshow reicht SPI auf dem STM allemal.

Das überzeugt aber keinen Hersteller von Displays.....

Das auf dem Disco Board F429 verbaute Display hat auch eine SPI, kann 
aber trotzdem damit nicht bedient werden, da es die Busanbindung 
dringend braucht. Die SPI dient dabei nur dazu das Display zu steuern 
und zu konfigurieren. Die Bilder zieht es sich aus dem Memoryr per DMA 
Request.
Gast #5174565
Lesenswert?

Bastler schrieb:

> Ich verwende ein ILI9341 mit 320x240 mit SPI.
> Wenn man sich die Ansteuerungen die so im Netz rumgeistern mal anschaut
> ist das teilweise ein graus. Ich habe die Routinen optimiert und

Dann haben wir den gleichen Weg hinter uns. Ich habe mir auch was 
Fertiges geschnappt und dann rum optimiert. Buchstabentabellen dauern am 
längsten. Auf Lochraster gibt es aber eine natürliche Grenze, die bei 
mir bei ca 12 Mhz liegt. Alles drüber gibt Murks und ist deutlich im 
Radio hörbar.

> benötige ca. 300ms für ein komplettes beschreiben. Meistens muss jedoch
> nur ein kleiner Teil neu gezeichnet werden, das ist in wenigen ms
> erledigt.

Bei einer quasi-statischen Anzeige von Messwerten etc berechnet man eh 
immer nur das Delta, macht etwas schwarz und zeichnet dann neu.

> Klar, einen Film möchte ich nicht damit anschauen. Aber dafür sind die
> Dinger auch nicht vorgesehen.

Nö, aber optimooool für eine Wetter-Uhr :-) Mit Touch wird es dann schon 
deutlich komplizierter ohne zb uGFX im Hintergrund.
Gast #5174574
Lesenswert?

Chris J. schrieb:
> Dann zeige mir, dass die SPI, welche im Datenblatt erwähnt wird dazu
> geeignet ist das Display mit Daten zu füttern und nicht nur eine
> Steuerfunktion hat!

Hatte ich weder die Absicht das zu zeigen, noch behauptet
dass es so ist. Und trotzdem hat das Display SPI.

Frickelfritze schrieb:
> Natürlich hat das Display SPI, nur der Softie mit den
> zwei linken Händen kommt nicht ran.

Denn man braucht eben mehr als nur zwei Finger auf der
Tastatur um ranzukommen.
Gast #5174576
Lesenswert?

>Das auf dem Disco Board F429 verbaute Display hat auch eine SPI,
>kann aber trotzdem damit nicht bedient werden, da es die
>Busanbindung dringend braucht.
Quark.
>Die SPI dient dabei nur dazu das Display zu steuern und zu konfigurieren.
Quark.
>Die Bilder zieht es sich aus dem Memory per DMA Request.
Quark.

Der ili9341 kann als SPI only, SPI Config und Data i80 oder SPI Config 
und DirectDrive verwendet werden.
Auf dem F429-Disco ist nur das i80 Interface nicht verfügbar.
SPI geht ganz zügig mit DMA, wenn man Hardware Chipselect für SPI nutzt 
(eine Drahtbrücke am Board nachrüsten).

>Dann zeige mir, dass die SPI, welche im Datenblatt erwähnt wird
>dazu geeignet ist das Display mit Daten zu füttern und nicht nur
>eine Steuerfunktion hat!
https://youtu.be/qSf7YtFZIsA

Ich hoffe, statt trockenem Datasheet reicht auch die Live Demonstration.
Gast #5174608
Lesenswert?

dasrotemopped schrieb:

> Ich hoffe, statt trockenem Datasheet reicht auch die Live Demonstration.

Ja reicht. Sowas habe ich auch mal gebastelt mit einem USB Stick am Port 
und einer Demo Software.

>>Der ili9341 kann als SPI only, SPI Config und Data i80 oder SPI Config
>>und DirectDrive verwendet werden.

Ok....  also bin ich nicht ganz blond, "SPI Config" klingt wie das was 
ich meinte. D.h. das blaue Display kann "irgendwie" dazu gebracht werden 
mit 4 Leitungen zu arbeiten, statt mit den vielen, die es rausgeführt 
hat. Die Ansteuerung habe ich nur stur abgeschrieben, das ist ein 
ellenlanger Wust an Zahlen, die da reingespielt werden. Dann kann ich 
farbige Pixel setzen und drauf basiert alles anderen letzlich.
1
* Startet die Initialierung des Displays */
2
void LCD_Init_Display(void)
3
{
4
  /* Delay for RST response */
5
  LCD_Delay(20000);
6

7
  /* Software reset */
8
  LCD_SendCommand(LCD_RESET);
9
  LCD_Delay(50000);
10

11
  LCD_SendCommand(LCD_POWERA);
12
  LCD_SendData(0x39);
13
  LCD_SendData(0x2C);
14
  LCD_SendData(0x00);
15
  LCD_SendData(0x34);
16
  LCD_SendData(0x02);
17

18
  LCD_SendCommand(LCD_POWERB);
19
  LCD_SendData(0x00);
20
  LCD_SendData(0xC1);
21
  LCD_SendData(0x30);
22

23
  LCD_SendCommand(LCD_DTCA);
24
  LCD_SendData(0x85);
25
  LCD_SendData(0x00);
26
  LCD_SendData(0x78);
27

28
  LCD_SendCommand(LCD_DTCB);
29
  LCD_SendData(0x00);
30
  LCD_SendData(0x00);
31

32
  LCD_SendCommand(LCD_POWER_SEQ);
33
  LCD_SendData(0x64);
34
  LCD_SendData(0x03);
35
  LCD_SendData(0x12);
36
  LCD_SendData(0x81);
37

38
  LCD_SendCommand(LCD_PRC);
39
  LCD_SendData(0x20);
40

41
  LCD_SendCommand(LCD_POWER1);
42
  LCD_SendData(0x23);
43

44
  LCD_SendCommand(LCD_POWER2);
45
  LCD_SendData(0x10);
46

47
  LCD_SendCommand(LCD_VCOM1);
48
  LCD_SendData(0x3E);
49
  LCD_SendData(0x28);
50

51
  LCD_SendCommand(LCD_VCOM2);
52
  LCD_SendData(0x86);
53

54
  LCD_SendCommand(LCD_MAC);
55
  LCD_SendData(0x48);
56

57
  LCD_SendCommand(LCD_PIXEL_FORMAT);
58
  LCD_SendData(0x55);
59

60
  LCD_SendCommand(LCD_FRC);
61
  LCD_SendData(0x00);
62
  LCD_SendData(0x18);
63

64
  LCD_SendCommand(LCD_DFC);
65
  LCD_SendData(0x08);
66
  LCD_SendData(0x82);
67
  LCD_SendData(0x27);
68

69
  LCD_SendCommand(LCD_3GAMMA_EN);
70
  LCD_SendData(0x00);
71
  LCD_SendCommand(LCD_COLUMN_ADDR);
72
  LCD_SendData(0x00);
73
  LCD_SendData(0x00);
74
  LCD_SendData(0x00);
75
  LCD_SendData(0xEF);
76

77
  LCD_SendCommand(LCD_PAGE_ADDR);
78
  LCD_SendData(0x00);
79
  LCD_SendData(0x00);
80
  LCD_SendData(0x01);
81
  LCD_SendData(0x3F);
82

83
  LCD_SendCommand(LCD_GAMMA);
84
  LCD_SendData(0x01);
85

86
  LCD_SendCommand(LCD_PGAMMA);
87
  LCD_SendData(0x0F);
88
  LCD_SendData(0x31);
89
  LCD_SendData(0x2B);
90
  LCD_SendData(0x0C);
91
  LCD_SendData(0x0E);
92
  LCD_SendData(0x08);
93
  LCD_SendData(0x4E);
94
  LCD_SendData(0xF1);
95
  LCD_SendData(0x37);
96
  LCD_SendData(0x07);
97
  LCD_SendData(0x10);
98
  LCD_SendData(0x03);
99
  LCD_SendData(0x0E);
100
  LCD_SendData(0x09);
101
  LCD_SendData(0x00);
102

103
  LCD_SendCommand(LCD_NGAMMA);
104
  LCD_SendData(0x00);
105
  LCD_SendData(0x0E);
106
  LCD_SendData(0x14);
107
  LCD_SendData(0x03);
108
  LCD_SendData(0x11);
109
  LCD_SendData(0x07);
110
  LCD_SendData(0x31);
111
  LCD_SendData(0xC1);
112
  LCD_SendData(0x48);
113
  LCD_SendData(0x08);
114
  LCD_SendData(0x0F);
115
  LCD_SendData(0x0C);
116
  LCD_SendData(0x31);
117
  LCD_SendData(0x36);
118
  LCD_SendData(0x0F);
119

120
  LCD_SendCommand(LCD_SLEEP_OUT);
121

122
  LCD_Delay(1000000);
123

124
  LCD_SendCommand(LCD_DISPLAY_ON);
125
  LCD_SendCommand(LCD_GRAM);
Gast #5177394
Lesenswert?

Moin,

gibt es denn irgendeine Möglichkeit das Ding hier über eine SPI zu 
betreiben?  Davon habe ich noch zwei ungenutzt herum liegen. Die Pins 
sind soweit ich sehe nicht heraus geführt, die beigefügten Infos 
beschreiben den ILITEK 9325 Chip.

http://www.ebay.de/itm/2-8-inch-mit-Touchscreen-TFT-LCD-Display-ILI9341-Arduino-AVR-CP11005-/271534477424

Es müsste sich aber mit SPI konfigurieren lassen, vielleicht sogar 1:1 
wie die 2,4z roten Displays, wo eben der gleiche Chip drauf ist aber nur 
die SPI rausgeführt istz.

Ich hoffe, vermute mal das das Display internen Speicher hat bei einem 
8/16 Bit Bus.

Ideal wäre das hier: 800x480 und dazu noch die passenden Treiber für den 
STM32 als Disco Board und ich wäre happy. Endlich eine gescheite 
Darstellungsmöglichkeit.

http://www.ebay.de/itm/7-0-inch-MIT-Touchscreen-SSD1963-MCU-800-480TFT-LCD-Display-fuer-Arduino-CP11013/281353506869?rt=nc&_soffid=200&_soffType=SaleAndClearence&_trksid=p5731.m3795
Angehängte Dateien:
Gast #5177571
Lesenswert?

Chris J. schrieb:
> Ideal wäre das hier: 800x480 und dazu noch die passenden Treiber für den
> STM32 als Disco Board und ich wäre happy. Endlich eine gescheite
> Darstellungsmöglichkeit.

Mach es wie die RaspBerrianer.

Alle grösseren Displays für den RaspBerry die über SPI
gesteuert werden haben (prinzipiell) diese Schaltung drin.

Ein Counter, ein Inverter, und zwei Schieberegister.
(Die Pin-Bezeichnungen des Inverters sind bei den Chinesen
leider schiefgegangen)
Angehängte Dateien:
Gast #5177577
Lesenswert?

Frickelfritze schrieb:
> Ein Counter, ein Inverter, und zwei Schieberegister.
> (Die Pin-Bezeichnungen des Inverters sind bei den Chinesen
> leider schiefgegangen)

Ok, und wofür der Counter? Mit dem Schiebregister kann man aber nur 
Daten einspielen, nicht auslesen. Ok, muss man ja vielleicht auch nicht. 
Die Geschwindigkeit ist dann natürlich recht gering, der Raspi ist ja 
viel schneller als so ein STM32F1.

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