Liebe Community,
Ich habe mir Anfang des Jahres ein 2.2" TFT Modul mit IL9341 Controller
auf Ebay gekauft (Bild:
http://fs5.directupload.net/images/151012/wmdz6s3h.jpg).
Ich würde eure Hilfe brauchen, da ich auf zwei Probleme gestoßen bin,
die mir mittlerweile seit Tagen Kopfzerbrechen bereiten. Ich versuche
euch so viele Infos zu geben wie möglich. Ich bin ein Neu-Einsteiger im
Thema TFT Display und habe zuvor immer nur 2x16 und 4x16 Displays
erfolgreich angesprochen und verbaut.
*Setup:*
- PIC24FJ64GA102 (28 Pin-SPDIP) mit 3.3V Versorgung.
- TFT Display 2.2" mit IL9341 Controller, Kommunikation über SPI
*Datenblätter:*
http://ww1.microchip.com/downloads/en/DeviceDoc/39951C.pdf
http://www.newhavendisplay.com/app_notes/ILI9341.pdf
*Pin Belegung:*
CS -> RB13,
SCK -> RB12,
SDI -> RB11,
SDO -> RB10,
D/C -> RB9,
RESET -> RB8,
LED(TFT) -> 3.3V mit 10 Ohm
VCC(TFT) -> 3.3V
*1: SPI Communication Fehler?*
Ich habe das SPI Modul am PIC nach den Anforderungen im Datenblatt des
IL9341 eingestellt: CKE = 1, CKP = 0.
Wenn ich die ausgehenden Daten mit einem Logic Analyzer überprüfe, kann
ich ablesen, dass die Daten nach den Angaben im Quelltext ausgegeben
werden, jedoch antwortet der IL9341 Controller nur mit 0xFF. Zeitweise
kann man einen kleinen Ripple erkennen, jedoch sieht das mehr nach
rauschen aus, als nach einer Rückmeldung.
_Grafik 1:_ SPI Kommunikation mit "Rauschen"
http://fs5.directupload.net/images/151011/7xste8kx.jpg
_Grafik 2:_ SPI Kommunikation wenn MOSI = MISO am Display-Connector
http://fs5.directupload.net/images/151011/7wkjfhn7.jpg
Ich nehme daher an, dass die Daten wenigstens vom PIC zur Display PCBA
und von der Display-PCBA zum PIC zurück korrekt übertragen werden.
Leider kann ich am Controller direkt nachsehen/nachmessen, da ich sonst
das Display herausbrechen müsste, es scheint angeklebt zu sein.
Wenn ich also Versuche die Display-Identifikation auszulesen (Command
0x04), erhalte ich nur 0xFF als Antwort.
*2: Display funktioniert generell nicht*
Mein zweiter Fehler ist vielleicht Ursache des ersten Fehlers. Was auch
immer ich versuche, ich sehe keine Auswirkung auf dem Display selbst. Es
bleibt leer und weiß.
Ich habe zuerst versucht eine Display-Initializierung selbst zu
schreiben, jedoch war dies ohne sichtbaren Erfolg. Daraufhin habe ich
mich einer fertigen Initialisierungs-Routine bedient (die laut Youtube
Video und Blog auf einem PIC18 mit selbem Display Modul tadellos
funktioniert). Nach kleineren Adaptionen (Ports umschreiben, ..) habe
ich auch hier habe ich keinen Erfolg sehen können. Leider habe ich kein
zweites Display gleicher Bauart bei der Hand um überprüfen zu können, ob
der Display Controller eventuell tot ist.
Habt ihr eventuell Erfahrung mit diesem Controller und habt eine Idee
was der Fehler sein könnte? Wahrscheinlich ist es eine Kleinigkeit die
ich als Anfänger übersehe oder Missachte. Ich bin leider mit meinem
Latein am Ende.
Bitte um Eure Hilfe - Danke!
Im Anhang findet Ihr Auszüge aus dem Quelltext.
Viele Grüße,
Patrick