LCD-Display und GPIO weiternutzen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    ich würde gerne an meinem Pi ein LCD-Display von Adafruit verwenden, benötige aber die GPIO-Ports alle für weitere Nutzung. Ist es möglich, (keine Ahnung wie/was ich brauche) oder gibt es ein LCD bei dem ich alle GPIO-Ports weiterhin ganz normal verwenden kann?

    Mit freundlichen Grüßen,

    MarvMan

    :):):):):)

    Meine Website: MarvMan.me

    :)Über einen Besuch würde ich mich sehr freuen :)


    Vielen Dank! :)

  • Hi MarvMan,

    das kommt auf das LCD an ...

    Bei I2C hast Du keinen Verlust an I/Os, wird das Display über SPI angesteuert, dann verlierst Du mindestens einen I/O (CS).

    Bei paralleler Ansteuerung des LCD gehen gleich mal 4 oder 8 für das Display drauf.

    Alternativ: Anschluss über HDMI oder Composite (letzteres ist aber gerne recht verpixelt/unscharf).

    cu,

    -ds-

  • Hi,

    Als Display stelle ich mir dieses [Anzeige] vor und die GPIO-Ports benötige ich später für einen RC522-RFID-Reader.

    Vielen Dank,

    Danke für eure Hilfe,

    MarvMan

    Meine Website: MarvMan.me

    :)Über einen Besuch würde ich mich sehr freuen :)


    Vielen Dank! :)

  • Das verlinkte LCD wird per I²C angeschlossen und ist eigentlich für Arduino und Co. Läuft aber natürlich auch mit dem RasPi. Dafür hat der RasPi die GPIO 2 und 3 vorgesehen. Diese haben einen internen Pullup. Du müsstest also prüfen, ob auf der Zusatzplatine Pullup Widerstände verbaut sind. Falls ja, dann solltest Du diese entfernen. Des weiteren ist zu beachten, dass das LCD mit einer Betriebsspannung von 5V angegeben ist. Der RasPi verträgt aber auf den GPIO nur 3V3. Da sollte also ein I²C Levelshifter zum Einsatz kommen. Dafür gibt es mehrere Lösungen. Eine wäre ein Aufbau wie hier. In Deinem Fall etwas overkill, aber trotzdem möglich wäre das hier.

    Alternativ könntest Du probieren, ob das LCD auch mit 3V3 Betriebsspannung einwandfrei arbeitet. Falls ja, kannst Du den LevelShifter weg lassen.

  • Das verlinkte LCD wird per I²C angeschlossen und ist eigentlich für Arduino und Co. Läuft aber natürlich auch mit dem RasPi. Dafür hat der RasPi die GPIO 2 und 3 vorgesehen. Diese haben einen internen Pullup. Du müsstest also prüfen, ob auf der Zusatzplatine Pullup Widerstände verbaut sind. Falls ja, dann solltest Du diese entfernen. Des weiteren ist zu beachten, dass das LCD mit einer Betriebsspannung von 5V angegeben ist. Der RasPi verträgt aber auf den GPIO nur 3V3. Da sollte also ein I²C Levelshifter zum Einsatz kommen. Dafür gibt es mehrere Lösungen. Eine wäre ein Aufbau wie hier. In Deinem Fall etwas overkill, aber trotzdem möglich wäre das hier.

    Alternativ könntest Du probieren, ob das LCD auch mit 3V3 Betriebsspannung einwandfrei arbeitet. Falls ja, kannst Du den LevelShifter weg lassen.

    ok, das wird mir etwas zu kompliziert.

    Kannst du mir eventuell ein Display (mindestens 2 Reihen, am Besten Blauer Hintergrund) empfehlen, welches ich einfach (am besten noch ein Link zu Anleitung) möglichst GPIO sparsam (0-2 Ports 8o) anbringen kann. Ich wäre ebenfalls sehr dankbar wenn du noch eine Python-Library oder ähnliches empfehlen könntest.

    LG,

    MarvMan

    Meine Website: MarvMan.me

    :)Über einen Besuch würde ich mich sehr freuen :)


    Vielen Dank! :)

  • Ich verstehe Dein Problem nicht. Das ist ein stinknormales 2004 LCD mit einem PCF8574 I²C Portexpander. Ohne diese zusätzliche Platine bräuchtest Du wesentlich mehr GPIO, da das LCD ansich parallel angesteuert wird. Mit dieser Platine sind es dann eben wie schon geschrieben, nur 2 GPIO. Das ist doch genau das, was Du suchst. Mit 0 GPIOs wirst Du auch 0 LCD anschließen können, es sei denn Du nimmst wie schon weiter oben erwähnt HDMI, etc. Dann ist es aber kein einfaches LCD wie das 2004 mehr. Mit 1 GPIO müsstest Du ein seriell angesteuertes LCD nehmen. Das ginge zum Beispiel so, ist aber nicht unbedingt einfacher, wenn Du I²C schon schwierig findest.

    Das zweizeilige heißt beispielsweise 1602 (16 Zeichen, 02 Zeilen). HD44780 (oder kompatibel) ist der Chipsatz. Mit diesen Infos solltest Du auch passende Scripte und/oder Treiber finden können. Das ist aber Software und nicht so sehr meine Baustelle.

    edit: I²C ist ein Bus, an den viele (127?) Geräte angeschlossen werden können. Sie werden einfach alle parallel an die beiden Leitungen angeschlossen.

  • Ich verstehe Dein Problem nicht. Das ist ein stinknormales 2004 LCD mit einem PCF8574 I²C Portexpander. Ohne diese zusätzliche Platine bräuchtest Du wesentlich mehr GPIO, da das LCD ansich parallel angesteuert wird. Mit dieser Platine sind es dann eben wie schon geschrieben, nur 2 GPIO. Das ist doch genau das, was Du suchst. Mit 0 GPIOs wirst Du auch 0 LCD anschließen können, es sei denn Du nimmst wie schon weiter oben erwähnt HDMI, etc. Dann ist es aber kein einfaches LCD wie das 2004 mehr. Mit 1 GPIO müsstest Du ein seriell angesteuertes LCD nehmen. Das ginge zum Beispiel so, ist aber nicht unbedingt einfacher, wenn Du I²C schon schwierig findest.

    Das zweizeilige heißt beispielsweise 1602 (16 Zeichen, 02 Zeilen). HD44780 (oder kompatibel) ist der Chipsatz. Mit diesen Infos solltest Du auch passende Scripte und/oder Treiber finden können. Das ist aber Software und nicht so sehr meine Baustelle.

    Hi,

    Ich werde es mal versuchen, viele Dank.

    Leider ist meine Spezialisierung eher "Software" als Hardware, kurz gesagt ich kann nahezu keine Hardware.

    Mit freundlichen Grüßen,

    MarvMan

    Meine Website: MarvMan.me

    :)Über einen Besuch würde ich mich sehr freuen :)


    Vielen Dank! :)

  • Dann ist I²C doch ein guter Einstieg. Versuch, ob das LCD mit 3V3 läuft. Falls ja, dann kannst du Dir den Levelshifter sparen. Wenn Du "Raspberry 2004" in der großen Suchmaschine eingibst, erscheint bei mir das hier als erster Treffer. Das sollte für Dich auf jeden Fall hilfreich sein. Bei I²C muss man eigentlich nur beachten, dass die Adressen der Geräte nicht doppelt vergeben werden. Dann sollte das laufen.

  • Dann ist I²C doch ein guter Einstieg. Versuch, ob das LCD mit 3V3 läuft. Falls ja, dann kannst du Dir den Levelshifter sparen. Wenn Du "Raspberry 2004" in der großen Suchmaschine eingibst, erscheint bei mir das hier als erster Treffer. Das sollte für Dich auf jeden Fall hilfreich sein. Bei I²C muss man eigentlich nur beachten, dass die Adressen der Geräte nicht doppelt vergeben werden. Dann sollte das laufen.

    Ok, bin gerade im Urlaub, ich geb mal Bescheid wenn ich's probiert habe.

    Danke!!!

    Meine Website: MarvMan.me

    :)Über einen Besuch würde ich mich sehr freuen :)


    Vielen Dank! :)

  • Das verlinkte LCD wird per I²C angeschlossen und ist eigentlich für Arduino und Co. Läuft aber natürlich auch mit dem RasPi. Dafür hat der RasPi die GPIO 2 und 3 vorgesehen. Diese haben einen internen Pullup. Du müsstest also prüfen, ob auf der Zusatzplatine Pullup Widerstände verbaut sind. Falls ja, dann solltest Du diese entfernen. Des weiteren ist zu beachten, dass das LCD mit einer Betriebsspannung von 5V angegeben ist. Der RasPi verträgt aber auf den GPIO nur 3V3. Da sollte also ein I²C Levelshifter zum Einsatz kommen. Dafür gibt es mehrere Lösungen. Eine wäre ein Aufbau wie hier. In Deinem Fall etwas overkill, aber trotzdem möglich wäre das hier.

    Alternativ könntest Du probieren, ob das LCD auch mit 3V3 Betriebsspannung einwandfrei arbeitet. Falls ja, kannst Du den LevelShifter weg lassen.

    Nicht gleich steinigen, aber wenn die Platine keine Pull up Widerstände hat, liegen dementsprechend doch auch maximal die 3,3V vom Raspi an, oder? Der Slave macht doch nichts anderes als das High Signal auf GND zu ziehen, oder wie ist das? :conf:

  • Bezieht sich Deine Frage auf die Notwendigkeit eines Levelshifters oder auf die Pullups? DIe Pullup des I²C Busses sind schon Raspiintern verbaut. Beispielhaft RasPi 3 B:

    3. Zeile, 3. Bild, R23 und R24

    https://www.raspberrypi.org/documentation/…-Schematics.pdf

    Wenn nun auf der Platine zusätzliche Pullup sitzen, handelt es sich um einen Parallelwiderstand. Je nach Größe verringert sich der Gesamtwiderstand. Um das zu vermeiden, meine Empfehlung, diese zu entfernen, falls vorhanden. Wenn es ganz sicher bei einem I²C Slave (LCD) bleibt, dann kann man es so lassen. Der RasPi wird keinen Schaden nehmen. Kommen aber noch weitere Teilnehmer mit integrierten Pullups hinzu, kannst Du selber ausrechnen, was passieren wird.

    Beispiel:

    1K8 parallel zu 10K = 1k53

    Daraus ergibt sich statt 1,8mA schon 2,16mA

    Oder

    1k8 parallel zu 4k7 = 1k3

    Das sind statt 1,8mA schon 2,54mA

  • Ich denke nicht. Oder denke ich falsch?

    Lies bitte noch mal das hier:

    LCD-Display und GPIO weiternutzen

    Ich war jetzt mal so mutig und habe meinen Raspi per I2C direkt an einen 5V Arduino slave gehangen. Leider habe ich kein Oszilloskop um zu messen was wirklich passiert, aber die Kommunikation funktioniert problemlos. Danach das gleiche mit meinem I2C HD 44780 probiert. Funktioniert auch. :denker:

    Edit:

    Habe ich gelesen, eventuell verstehe ich es nicht richtig. Die Gefahr, die Du beschreibst hat ja nichts mit 3V3 <> 5V zu tun, sondern ist schlicht das Problem, dass man immer mit I2C pull ups hat. Egal mit welcher Spannung. Was ich sagen möchte: man kann das Display mit 5V betreiben und trotzdem mit 3V3 den I2C betreiben wenn das Display keine Pull ups hat.

    Edit drölf:

    Ich habe jetzt noch mal ein wenig google befragt. Wenn es am Slave keinen internen Pull up gibt, sondern mit open collector gearbeitet wird (was wohl meist der Fall ist) ist die einzige Gefahr, dass 3v3 nicht sicher als high erkannt wird. Dafür ist der lvl shifter. Wenn die 3v3 erkannt werden kann man es auch mit dem nackten chip machen.

    2 Mal editiert, zuletzt von El_Zetto (20. Oktober 2017 um 13:47)

  • Ich sehe es auch so, dass nichts passieren sollte, wenn Du die PullUps auf 3,3V hängst. Nicht passieren kann in diesem Fall aber gut und schlecht zugleich sein: Nichts passiert (gut) - es wird nichts kaputt und es funktioniert. Nichts passiert (schlecht): Es wird nichts kaputt und es funktioniert nicht - oder nicht zuverlässig. Jedenfalls sollte hier nichts kaputt werden - das ist schon mal gut. Aber gibt man als Suchbegriff bei der von Dir genannten Suchmaschine ein kommen unzählige Ergebnisse mit dem von Neueinsteiger erwähnten LevelShiftern. Dieses Tutorial verwendet z.B. auch einen...

    Die Gefahr bei "Deiner" 3,3V PullUp Lösung: Funktioniert, aber eventuell nicht zuverlässig. Ich würde auch sagen: Level Shifter rein und dann passt die Sache, ...

    ...wenn Software nicht so hard-ware ;) ...

    Freue mich über jeden like :thumbup:

  • Danke, Du hast meinen - unter Umständen wirren - Einwand verstanden. Bisher liest sich hier (nicht nur in diesem thread) alles getreu dem Motto "Dein Pi wird den grässlichen Feuertod sterben" in Wahrheit würde ich unter den oben beschriebenen Umständen sagen: lass es darauf ankommen.

  • Moin!

    lasst uns mal ein paar Fakten fest halten.

    - Der Soc des Raspberry's arbeitet mit 3,3V. Die DPIO-Pin's gehen ungeschützt zu der Steckerleiste.

    - Das Display arbeitet mit 5V. Ob die Schnittstelle mit 3,3V arbeitet oder das Display intern auch mit 3,3V arbeitet?? Wer weiß.

    Wenn man nun an einen GPIO 5V anlegt wird mit Sicherheit was in dem Raspberry zerstört werden.

    Keiner, hier aus dem Forum, wird nun eine Frage bezüglich der unterschiedlichen Spannungen behaupten: mach man, da passiert schon nichts.

    Wenn jemand das Risiko für sich eingehen will, dann soll er es machen! Aber er kann sich dann nicht damit raus reden, die im Forum haben es aber gesagt.

    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.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Hi,

    dass man nicht einfach 5V an einen Raspberry GPIO anlegen soll, ist klar und steht hier auch nicht zur Diskussion. Das passiert aber bei I2C slaves in der Regel gar nicht, weil sie wie ein open collector funktionieren. Das scheinen aber nur wenige zu wissen, deswegen wird immer uneingeschränkt zum level shifter geraten als würde man Provision bekommen. Ist aber eben nicht unbedingt nötig. ;)

    Ich höre jetzt aber auf. Versprochen.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!