"Raspberry Pi 3" + Schnittstellen erweiterung via IC "MCP23017" + Display "XPT2046 800x400 5inch"

  • Guten Tag allerseits,


    ich komme mit meinen Suchen im Internet leider nicht weiter und brauche deshalb nun doch die Schwarmintelligenz.


    Ich möchte an einen Raspberry 3 sowohl ein Display "XPT2046 800x400 5inch" anschließen als auch eine Erweiterung der Anzahl der GPIO realisieren.


    Nun habe ich mich eingelesen und für die Erweiterung meiner Schnittstelle via GPIO für einen Aufbau mit einem IC "MCP23017" und i2c entschieden. (http://www.elektronx.de/tutori…ung-mit-mcp23017-und-i2c/)


    Benötigte GPIO für diesen Aufbau sind Pin 3(SDA) und Pin 5(SCL) am Raspberry Pi 3.


    Das Display "XPT2046" belegt die Pin 1-26 am Raspberry was natürlich direkt zu einem physikalischen Konflikt in der Pinbelegung führt.

    Vermutlich werden vom Display nicht alle 26 Pins benötigt, aber ich würde aus Stabilitätsgründen nur ungern die Steckverbindung des Displays demontieren. Eine Alternative wäre eine vollflexible Verbindung via USB zwischen Display und Raspberry...


    Nun die Fragen:

    zum MCP23017: Kann ich den MCP23017 auch an anderen, noch freien, Pins betreiben? Und wenn ja, welche Parameter muss ich dann wo anpassen?

    (meine Vermutung ist, dass es nicht geht, da ich den Clock-Ausgang benötige...)


    zum XPT2046: Weiß jemand ob ich beim Display XPT2046 auch die Touchfunktion via USB, anstatt via GPIO, nutzen kann? Leider habe ich auch hierzu nichts gefunden.

    (meine Vermutung ist, dass es nicht geht, da die Ausgabe nur via GPIO Leiste erfolgt und der USB nur zur Spannungsversorgung dient...)


    Vielen Dank schon im Voraus!!

  • Da du von Schwarmintelligenz sprichst, schmeiße ich hier einfach mal ne Idee in die Diskussion, von der ich nicht sicher weiß, ob sie realisierbar ist, oder nicht:


    Ich habe das selbst noch nie gemacht, aber alle nicht vorkonfigurierten PINS sind ja, wie man es so schön nennt "frei Programmierbar"!

    wäre es nicht ne Option beispielsweise pin 38 und 40 einfach mit einer zweiten i2c schnittstelle zu programmieren und deine zusätzlichen GPIOs dann dort anzuschließen?


    alternativ könntest du, (auch hier weiß ich nicht ob das geht aber es wäre ne Idee) die i2c pins einfach an beide Geräte verbinden!! (beispielsweise von unten am Pi noch zwei Kabel an die i2c Pins löten. Es gibt ja Steckboard erweiterungen, ich weiß allerdings nicht, ob das dann funktionier, vielleicht bringt eine der beiden Ideen jemanden mit mehr Erfahrung in dem Themengebiet ja auf den richtigen Weg.

    Natürlich mache ich Fehler :stumm:

  • Moin derSizilianer,


    erstmal: Herzlich Willkommen im Forum!


    Könntest du bitte einen Link zu dem Display einstellen?!


    Weil der XPT2046 ist der der Touchcontroller.


    I2C ist "festverdrahtet". Man kann softwaremässig eine I2C-Schnittstele erzeugen. Stichwort ist "bitbanging".


    Es gibt 2 Möglichkeiten. Einen Platinenadapter mit einem GPIO-Stecker und dann 2 Leisten oder das Ganze mit Flachbandkabel realisieren.


    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"

    Vielleicht trifft man sich in der RPi-Plauderecke.

  • Thomas: ja, sieht so aus: hier


    Bernd: jup, bitbanging war das richtige Suchwort. Das sieht so aus, als ob das über eine Paaralelschaltung der GPIO zu lösen ist. Vorausgesetzt, ich kann das Display explizit ansprechen.


    Geht das mit dem "andere" GPIO als Clock (SCL) und Daten (SDA) programieren? Ist da kein physikalischer unterschied zwischen den GPIO?


    Übrigens toll, dass so viele so schnell geantwortet haben :)

  • Moin derSizilianer,


    es gibt ein overlay das passen könnte.

    Schau dir mal /boot/overlays/README an. Suchwort ist i2c-gpio.


    Ev. geht das ja. Habe selbst keine Experimente damit gemacht.


    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"

    Vielleicht trifft man sich in der RPi-Plauderecke.

  • Servus derSizilianer ,

    da I2C ein Bus ist, an den durchaus mehrere Komponenten angschlossen sein können, würde ich erst mal prüfen ob Du nicht einfach SCL und SDA verwenden kannst.

    Ich vemute mal stark, dass der Touch-Controller SPI nutzt( was, nebenbai bemerkt, ebenfalls ein Bus ist, der für mehrere Teilnehmer ausgelegt ist).

    Nachdem das Display ja offensichtlch über HDMI angeschlossen wird, dürften sich die benutzen Pins auf Vcc, GND und (vermutlich) die SPI-Pins (MOSI/MISO/SCLK und CS) beschränken.


    cu,

    -ds-

  • Guten Morgen,


    danke, das ist es. Hab eben das Datenblatt hier gefunden.

    Auf Seite 7 ist die Pinbelegung beschrieben und siehe da, SCL und SDA sind frei.


    Dann hab ich jetzt wieder einiges gelernt bei den Recherchen und die Lösung ist, wie so oft, ganz simpel.


    Danke für die Hilfe.

  • Auch von mir ein Willkommen im Forum.

    Den MCP23017 gibt es in zwei Versionen. Für die I²C Version habe ich vor einiger Zeit mal zwei Platinchen gemacht. Für Deinen Zweck müsste die kleinere Platine schon ausreichen. Sollte Dir die Löterei nicht so liegen, lass es mich wissen. Von den Platinen habe ich nämlich noch ein paar hier liegen.


    Portexpander / Porterweiterung mit MCP23017 (I²C)


    Breakout Board für MCP 23017 (I²C)


    Du hast gefragt, ob es einen physikalischen Unterschied zwischen SCL/SDA und den anderen GPIO gibt. Ja, den gibt es. SCL und SDA haben Pullup Widerstände auf dem RasPi, so dass diese an den externen Gerätschaften nicht mehr notwendig sind.

  • Ja, ähh... doof.

    Jetzt hab ich eben schon die Bestellung für zwei Platinen abgesandt...


    Aber falls mein Projekt weiterhin so wächst, dann brauch ich vielleicht noch mehr, dann denke ich an dich.


    Danke für das Angebot.

  • Widerruf ?? (Oder Chinaware ??)


    Ich würde eher zu nem HDMI Display greifen, dann haste die GPIOs frei ….

    ;) Gruß Outi :D
    PIs: 2x Pi B (Rente) / 1x Pi B+ (Rente) / 1x Pi 2 B (Tests) / 2x Pi 3 B (RaspberryMatic / Repetier Server) / 2x Pi Zero 1.2 (B. Lite) / 2x Pi Zero 1.3 (B. Lite)
    2x Pi Zero W 1.1 (B. Lite) / 1x Pi Zero 2 (noch ohne) / 1x Pi 3 B+ (Tests) / 1x Pi 4 B 4GB (Ubuntu Server 64 Bit) / Pi 400 (Bullseye 64 Bit) / 2x Pi Pico
    Platinen: Sense HAT / RPI-RF-MOD / PiFi DAC+ V2.0 / TV HAT

  • Moin Outlaw,


    Nur zu deiner Information : Es IST ein HDMI-Display!! Aber für die Touchfunktionalität wird die GPIO benötigt. Mal abgesehen von der mechanischen Befestigung.


    Manchmal sollte alles lesen helfen....


    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"

    Vielleicht trifft man sich in der RPi-Plauderecke.

  • Also die HDMI Displays, die ich hier habe, haben den Touch alle über USB.


    Und nein, in meinem Alter ist Lesen wohl etwas schwieriger als bei dem jungen Gemüse …. ;) :D

    ;) Gruß Outi :D
    PIs: 2x Pi B (Rente) / 1x Pi B+ (Rente) / 1x Pi 2 B (Tests) / 2x Pi 3 B (RaspberryMatic / Repetier Server) / 2x Pi Zero 1.2 (B. Lite) / 2x Pi Zero 1.3 (B. Lite)
    2x Pi Zero W 1.1 (B. Lite) / 1x Pi Zero 2 (noch ohne) / 1x Pi 3 B+ (Tests) / 1x Pi 4 B 4GB (Ubuntu Server 64 Bit) / Pi 400 (Bullseye 64 Bit) / 2x Pi Pico
    Platinen: Sense HAT / RPI-RF-MOD / PiFi DAC+ V2.0 / TV HAT