Probleme ILI9341 8Bit

#6997147
Lesenswert?

Hallo community,
Arbeite gerade an einem Projekt mit einem MCU von NXP (i.mxRT1020). 
Versuche hierbei gerade ein Display-Board (integrierter chip ILI9341) im 
8Bit Modus anzusteuern (Link: 
https://www.conrad.at/de/p/tru-components-touchscreen-monitor-7-1-cm-2-8-zoll-320-x-240-pixel-inkl-touchpen-2144984.html). 
Habe hier allerdings einige Probleme, zum Einen bin ich mir nicht 
sicher, ob die Initialisierungsroutine korrekt ist. Zum Zweiten habe ich 
ein Problem mit den Spannungspegeln. Habe die Communication-lines 
natürlich nicht direkt an das Display geschlossen, sondern jeweils in 
Serie einen 10k Resistor, man weiß ja nie. Jetzt fällt mir allerdings 
auf, dass an den Pins des Display-Boards nicht immer der gewünschte 
Spannungspegel liegt (z.B. gebe ich beim MCU 3.3V [also logic high] aus 
und am Displayboard liegen 1,7V an -> Spannungsabfall am Widerstand 
1,6V, obwohl das nur eine Kommunikationsline ist). Das führt dann 
logischerweise auch zu ner fehlerhaften Kommunikation.
An was das liegen?
Habe nen kleinen Verdacht: Dieses Board ist dafür gebaut auf nen Arduino 
board aufgesteckt zu werden, folglich auch für den Betrieb von 5V-Logik 
gebaut. Folglich wurde auf dem Board Bus-Transceiver (74LVC245A) in 
Serie mit der Kommunikationsline verbaut. Laut dem Datenblatt dürfte der 
Betrieb mit 3.3V Logik allerdings kein Problem darstellen!?.
Hättet ihr eine Idee, wo das Problem liegen könnte. Die init-Routine 
findet ihr im Anhang.
Viele Grüße
Angehängte Dateien:
Gast #6997158
Lesenswert?

> Habe die Communication-lines natürlich nicht direkt an das Display
> geschlossen, sondern jeweils in Serie einen 10k Resistor, man weiß ja nie.

Klingt ziemlich dumm.

1. Intellektueller Ansatz:

Schau dir mal Ausgangswiderstand, Eingangswiderstand, Kapazitaetsbelag 
an und rechne.

2. Ing-Ansatz:

Haeng dein Oszi auf die Leitungen und staune.

3. Arduino-Ansatz:

Solange googeln bis man jemand findet der genauso brilliant war.

Olaf .-)
#6997241
Lesenswert?

Cartman schrieb:
>> in Serie einen 10k Resistor
>
> Koestlich. Wo lernt/lehrt man denn sowas?
Naja, alleine die Tatsache, dass es ein Potentialunterschied zwischen 
meinen MCU-Pins und den Pins des LVC245A gibt, zeigt dass meine 
Intuition korrekt war.
Mir scheint, als wären Sie nicht sehr bewandert bezüglich 
Signalleitungen?
Wären Sie an diesem Projekt gesessen, hätten Sie jetzt wahrscheinlich 
zerstörte Pins am MCU (die sind nicht sehr tolerant gegenüber hohe 
Ströme).
#6997244
Lesenswert?

Arduinoquäler schrieb:
> Michael A. schrieb:
>> Hallo community,
>
> Muss man ein Display wirklich so kompliziert ansteuern? Ich
> habe da einfachere (und funktionsfähige) Versionen vor Augen.
>
> z.B:
> Beitrag "Re: ILI9341 langsam Verbesserungsvorschläge?"

Die Kommunikation ist Interrupt-gesteuert, weil der MCU mit ner 
wesentlich höheren Frequenz arbeitet und einfache delay-Funktionen 
würden den Prozessor stark ausbremsen.
Viele Grüße
Gast #6997294
Lesenswert?

> Mir scheint, als wären Sie nicht sehr bewandert bezüglich
> Signalleitungen?

Wie man sich taeuschen kann.
Das perlt aber an meiner Teflonseele tropfenfrei ab.


> gebe ich beim MCU 3.3V [also logic high] aus
> und am Displayboard liegen 1,7V an

So ein Murks war mir aber immerhin fuer einen kurzen Lacher gut.

Ich werde aber den weiteren Fortgang aufmerksam verfolgen.
Da kommt bestimmt noch mehr.
Gast #6997649
Lesenswert?

>Habe nen kleinen Verdacht:
>Dieses Board ist dafür gebaut auf nen Arduino board aufgesteckt zu werden.
Zitat Datenblatt vom TFT "Monitor"
>Dieser Touchscreen ist für den Arduino® UNO/Mega2560 geeignet.
>Kompatibel mit jedem Arduino® '328 oder Mega
pures Comedy Gold

wie ersichtlich auf den Fotos erwartet das TFT 5V Signalpegel und 
konvertiert sie nach 3.3V für den ILI9341.

der verwendete NXP i.mxRT1020 ist ein typischer Cortex-M mit 3,3V IO 
Spannung

>Wären Sie an diesem Projekt gesessen, hätten Sie jetzt wahrscheinlich
>zerstörte Pins am MCU.
>Die sind nicht sehr tolerant gegenüber hohe Ströme.
Spannungen über 3.6V, nicht Ströme. Und was passiert wohl wenn man die 
Spannung mit 10k "begrenzt" ?

Der ILI9341 ist sehr wohl für einen Cortex-M geeignet, im SPI Modus, 
Direct Drive oder Parallel ist da geschmackssache, aber nicht das hier 
verwendete Arduino Board.

Aber die Firmware wird noch ein paar Highlights bereit halten nach dem 
Codeschnipsel zu urteilen. Wöre ja auch zu einfach aus der TFT_espi Lib 
von Arduino zu klauen.
wenn doch, bitte hier:
https://github.com/Bodmer/TFT_eSPI

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