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
> 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 .-)
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?"
Eigentlich eher noch das, die aufgeräumte Version. Zwar nicht C++, aber braucht's ja auch nicht um jeden Preis. Beitrag "Re: ILI9341 langsam Verbesserungsvorschläge?"
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).
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
> 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.
Andreas S. schrieb: > Das kann noch lustig werden. Geil finde ich auch dass man den Parallel-Port eines Displays interrupt-gesteuert anspricht.
>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
Michael A. schrieb: > Anyway, hab das Problem jetzt gelöst. Mit noch mehr 10kOhm "Resistoren"? Michael A. schrieb: > sondern jeweils in Serie einen 10k Resistor, man weiß ja nie.
Arduinoquäler schrieb: > > Mit noch mehr 10kOhm "Resistoren"? > Ne habe mich ursprünglich verschrieben, es waren je 1kOhm.
Michael A. schrieb: > Anyway, hab das Problem jetzt gelöst. .... und die Lösung ist natürlich hochgeheim, nicht wahr? Das steht schon in der netiquette (Punkt 6) dass man möglichst alles geheimhalten soll. Aber die Form wahren und der helfenden Forums-Gemeinde einen Dienst erweisen wäre ja voll uncool ....
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.