Der Raspi mit einem SM(I2C) Bus ein Display ansteuern

LotadaC

Sehr aktives Mitglied
22 Jan 2009
3,462
64
48
Marwitz
Sprachen
  1. BascomAVR
  2. Assembler
Aus deiner angebenen Seite (netzmafia) gibt es auch ein Anleitung für ein LCD Display am I2C Bus mit dem Raspi. Habe diese Datein genomme^n und alles dazu installiert. Leider ohne Erfolg. ??????????????
Da wird aber zumindest in der Beschreibung 'ne andere Verdrahtung zwischen Portexpander und Display verwendet (RS, R/W, E) - sowie den IRQ zum Controller/Raspberry - als die in #9. In den Listings direkt auf der Seite hab ich auf die Schnelle nix zur Parametrisierung der Zuordnung gefunden - die dort verfügbare Bibliothek hab ich mir nicht angesehen...

Irgendwie hab ich in Erinnerung, daß man bei den LCDs auf 'n Busy-Signal warten kann, statt stupide einfach Zeit xyz festzulegen. Das Signal löst dann beim Portexpander aufgrund der Flanke 'n IRQ aus, welchen dieser über seinen Ausgang an den Controller/Raspberry signalisiert. Wenn der Treiber darauf wartet/reagieren soll...
 

achim S.

Mitglied
16 Jan 2010
601
9
18
Berlin Biesdorf
Sprachen
  1. ANSI C
Es gibt eine Methode der Ansteuerung ohne Busy. Dadurch wird ein Kabel weniger gebraucht. Bei den AVR hat es ohne Busy funktioniert. Die Zuordnung der RS,RW und E wird in der lin eingestellt. Es gibt auch libs wo man jedes Pin einstelln kann um eine Verdrehung der Pins auszugleichen
 

LotadaC

Sehr aktives Mitglied
22 Jan 2009
3,462
64
48
Marwitz
Sprachen
  1. BascomAVR
  2. Assembler
Es gibt eine Methode der Ansteuerung ohne Busy. Dadurch wird ein Kabel weniger gebraucht. Bei den AVR hat es ohne Busy funktioniert.
Ja, der Display-Controller braucht für die Umsetzung halt Zeit. Diese hängt auch von seinem eigenen Takt ab (Serienstreuung). Jetzt kannst entweder auf das Busy reagieren, oder einfach stupide festgelegte Zeiten abwarten. Beim Busy bist Du halt sicherer - wenn das Display doch mal langsamer ist als die festgelegten Wartezeiten...
Die Frage ist, was deine verwendeten Bibliotheken erwarten. Deswegen ja mein ursprünglicher Vorschlag, direkt zu Fuß zu testen, also nur I²C-Kram einbinden, und dann die Init-Bytes selbst (mit den nötigen Wartezeiten) senden lassen.
Und das ganze mit'nem LA loggen, und mit 'nem Log am AVR vergleichen.
Wenn's da geht und hier nicht, wirst Du Unterschiede sehen...

Kabel-sparen... wozu? Der Portexpander bietet acht I/Os. Für den 8-Bit-Modus reicht's eh nicht, im 4-Bit hast Du also vier für den Bus, E, RS, R/W und eine Leitung zur weiteren Verwendung. Ein analoges Signal für die Kontrastspannung kannst Du nicht draufpacken, PWM+Tiefpaß wäre wohl zuviel Traffic auf dem I²C, aber das Backlight könnte man schalten (auch hier nicht dimmen).

Ich hab hier noch'n Batronix-LCD, allerdings basiert das auf einem KS0070BP, und einen RaspberryPi4B aber keinen Portexpander...
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)