Hallo zusammen, die Arduino-Shields mit dem ILI9341 sind ja mittlerweile sehr verbreitet. Hat jemand von euch das Pinout für den SPI-Betrieb parat? Das Netz ist diesbezüglich voll von toten Links. Momentan bin ich mir noch nicht einmal mehr sicher, ob überhaupt genug Pins herausgeführt sind, um dieses Display im SPI-Modus zu betreiben. Viele Grüße W.T.
Schau doch da nach, wo Du das Display gekauft hast oder gib zumindest eine Bezeichnung an. Walter T. schrieb: > ob überhaupt genug Pins herausgeführt sind SPI währen 3/4/5/6 + Beleuchtung + Spannungsversorgung, sieht ausreichen aus. Walter T. schrieb: > die Arduino-Shields mit dem ILI9341 Ich wüste grad keins, was am Arduino nicht mit SPI angesteuert wird. Für 8/16Bit oder RGB reichen die Pins nicht und I2C können die nicht.
Der Händler schweigt sich - so wie es bei diesen Billig-Angeboten üblich ist - über Details aus. Also Vorgehensweise bislang: TFT-Arduino-Beispiele im Netz gesucht und ausprobiert. Eines brachte das LCD ans Laufen: Momentan wird der "Shield" auf einem normalen Arduino mit einer Library von Ladyada parallel angesteuert. Damit weiß ich zumindest schon einmal, daß das LCD in Ordnung und daß der Controller wirklich ein ILI9341 ist. Die Frage ist, ob dieses LCD mit den herausgeführten Pins auch im SPI betrieben werden kann, oder ob dafür ein anderes Pinout erforderlich wäre. Wie man auf der Rückseite erkennt, sind nicht alle Pins angeschlossen. Das Pinout des FPCs hat aber natürlich auch nichts mit dem des Controllers ILI9341 zu tun. Letzteren konnte ich bislang noch nicht einmal finden. Es bleibt die Frage: Läßt sich das bestehende LCD seriell ansteuern, oder habe ich einfach das falsche gekauft. Viele Grüße W.T.
:
Bearbeitet durch User
Walter T. schrieb: > Es bleibt die Frage: Läßt sich das bestehende LCD seriell ansteuern, > oder habe ich einfach das falsche gekauft. Schau mal auf die Rückseite des Shields. Da sollte es einen Pin mit der Bezeichnung LCD_CS geben. Das ist dann der Slave-Select für das LCD. Schau mal hier: http://misc.ws/2015/01/24/lcd-touch-screen-information/ Da gibt es einen Link zu einem "ID-Reader". Damit kannst du dann eher sagen, was da drauf verbaut ist. Die LCD-Controller sind sich zum Teil so ähnlich, dass du nicht sicher sagen kannst, dass es ein ILI9341 ist, wenn das Teil per 8-Bit parallel funktioniert. Könnte auch ein artverwandter Chip darauf sein.
Christopher J. schrieb: > a gibt es einen Link zu einem "ID-Reader". Damit kannst du dann eher > sagen, was da drauf verbaut ist Habe ich schon gemacht.
Walter T. schrieb: > Wie man auf der Rückseite erkennt, sind nicht alle Pins angeschlossen. Richtig. Walter T. schrieb: > Das Pinout des FPCs hat aber natürlich auch nichts mit dem des > Controllers ILI9341 zu tun. Auch richtig. Walter T. schrieb: > Letzteren konnte ich bislang noch nicht einmal finden. Der ist der kleinste Teil der Fläche, das Glas des Displays. Walter T. schrieb: > Es bleibt die Frage: Läßt sich das bestehende LCD seriell ansteuern, Ja, wenn du dich vom PCB trennst und dich an die flexible Verbindung zu Display herantraust, dort sind alle Anchlüsse zugänglich. Walter T. schrieb: > Die Frage ist, ob dieses LCD mit den herausgeführten Pins auch im SPI > betrieben werden kann Nein.
Christopher J. schrieb: > Da gibt es einen Link zu einem "ID-Reader". Damit kannst du dann eher > sagen, was da drauf verbaut ist. Wenn es die Schaltung auf dem PCB zum Display zulässt. Da sind meist zwei Buffer drauf deren Richtung (R/W) nicht umschaltbar ist (bei dieser Ausführung des Displays).
Ich habe ein ziemlich gleich aussehendes Display und habe, wenn ich mich recht erinnere, das ganze mit einem Arduino Uno zum laufen gebracht.
1 | #ifndef _TFT_ADAPTER_
|
2 | #define _TFT_ADAPTER_
|
3 | |
4 | #include <stdint.h> |
5 | #include <SPFD5408_Adafruit_GFX.h> // Core graphics library |
6 | #include <SPFD5408_Adafruit_TFTLCD.h> // Hardware-specific library |
7 | |
8 | #define LCD_CS A3 // Chip Select goes to Analog 3
|
9 | #define LCD_CD A2 // Command/Data goes to Analog 2
|
10 | #define LCD_WR A1 // LCD Write goes to Analog 1
|
11 | #define LCD_RD A0 // LCD Read goes to Analog 0
|
12 | |
13 | class TFT_Adapter : public Adafruit_TFTLCD |
14 | {
|
15 | public:
|
16 | TFT_Adapter():Adafruit_TFTLCD(LCD_CS, LCD_CD, LCD_WR, LCD_RD, A4){}; |
17 | void begin() |
18 | {
|
19 | Adafruit_TFTLCD::begin((uint16_t)0x9341); // SDFP5408 |
20 | Adafruit_TFTLCD::setRotation(1); |
21 | };
|
22 | |
23 | };
|
Deine Nucleo-Board hat nur 3.3V im Gegensatz zum Uno. Ich vermute aber mal, dass es trotzdem geht. Welches Arduino-Framework willst Du dafür verwenden? Ich empfehle https://github.com/danieleff/STM32GENERIC aber würde auf jeden Fall mal auf die SPI-Signale mit dem Oszi schauen, um zu sehen, dass sich da was tut.
Beitrag #5152938 wurde von einem Moderator gelöscht.
> Welches Arduino-Framework willst Du dafür verwenden? Gar keins. Der Arduino hatte lediglich den Zweck, das noch unbekannte Display auf Funktion zu prüfen. Markus schrieb: > Deine Nucleo-Board hat nur 3.3V im Gegensatz zum Uno. Ich vermute aber > mal, dass es trotzdem geht. > Das LCD hat Pegelwandler, um überhaupt mit den 5V klarzukommen. Für die sind die 3,3V vom STM32 auch kein Problem. Markus schrieb: > ch habe ein ziemlich gleich aussehendes Display und habe, wenn ich mich > recht erinnere, das ganze mit einem Arduino Uno zum laufen gebracht. Hmm, stimmt, wenn man nach SPFD5408 sucht, ergeben sich viele Bilder eines exakt gleich aussehenden LCDs, auch wenn der Verkäufer ILI9341 angegeben hat und die ILI-Ansteuerung auch funktioniert. Da muß ich doch mal probieren, ob die SPFD-Ansteuerung auch funktioniert.
Tatsache! Die SPFD5408-Ansteuerung von Adafruit funktioniert auch. Ist ebenfalls parallel 8 Bit. Dann ist das Board vermutlich falsch ausgezeichnet.
Genau wegen sowas gehen mir die Chinesen auf den Keks. Mit der Suche nach "FPC24T093-A1" bin ich über Umwege drauf gekommen, dass die Dinger wohl von ChangHong hergestellt werden könnten. Und bei der "Erkenntnis" bleibt es dann auch.
Bin noch nicht ganz fertig (das Wochenende war mal wieder viel zu kurz), aber zumindest die ID kann ich auslesen. Sie lautet 0x9341. Es ist also tatsächlich der ILI9341 darauf, aber der bessere Suchbegriff für Google ist "SPFD5408".
Walter T. schrieb: > Die Frage ist, ob dieses LCD mit den herausgeführten Pins auch im SPI > betrieben werden kann, oder ob dafür ein anderes Pinout erforderlich > wäre. Warum auf spi wechseln? Du hast ein board und ein tft mit einem bestimmten pinout, die zueinander passen. Wenn dir die pins nicht reichen, kauf dir ein größeres board. Wenn du unbedingt spi willst, kauf dir ein spi-tft. Es gibt tolle 2,8" spi-tfts für um die 10€. Wenn auf deinem tft die pins für spi nicht herausgeführt sind, ist der umbau auf spi äußerst schwierig und lohnt sich nicht wirklich.
Walter T. schrieb: > Bin noch nicht ganz fertig (das Wochenende war mal wieder viel zu kurz), > aber zumindest die ID kann ich auslesen. Sie lautet 0x9341. Wenn du dazu eine Arduino Lib benutzt hast dann ist das wahrscheinlich ein Fake, denn die Schreiber dieser Libs wissen um die Nicht-Lesbarkeit der (vieler) Diplays und vergeben dann von sich aus eine ID. Muss nicht generell stimmen aber in vielen Fällen ist es so.
Arduinoquäler schrieb: > Wenn du dazu eine Arduino Lib benutzt hast dann ist das > wahrscheinlich ein Fake, Nein, ich habe meinen eigenen Treiber jetzt so weit, daß er die ID auslesen und Pixel darstellen kann.
Ich weiß nicht ob dir das hilft, aber bei mir waren mal die ILI9340 so blöd beschaltet, daß die HintergrundLED 300mA gezogen hat, und dann durch Spannungseinbruch das ganze Display nicht ging. Habe das hier dokumentiert: http://safe-power.appspot.com/ILI9340.html
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.