16×2 LCD an Banana Pi anschließen

An meiner Raspberry Pi hatte ich bereits ein 16×2 LCD (Data Vision 16210 VZFHLY) betrieben – dieses soll nun auch an der Banana Pi laufen:

LCD 16x2

LCD 16×2

Das LCD ist einfach an die Banana Pi anzuschließen. Folgende Pins müssen dazu verbunden werden:

GPIO Header   LCD
    26         4 (RS)
    24         6 (EN)
    22        11 (D4)
    18        12 (D5)
    16        13 (D6)
    12        14 (D7)
     6         1 GND
     6         5 /RW (GND)
     2         2 (5V)
               3 wird über ein Poti verbunden
     2        15 LED+ (5V)
     6        16 LED- (GND)

Es muss beachtet werden, dass die Banana Pi nur 3,3V Pegel liefert (und auch aushält). Zum ansteuern der Pins ist das ok, aber /RS sollte dann unbedingt auf GND gelegt werden, damit kein Read-Befehl des LCD die Pegel auf 5V zieht und die Banana Pi beschädigt. Die Hintergrund-Beleuchtung dieses LCD zieht über 500mA – das Netzteil meiner Banana Pi mit seinen 1,2A ging damit in die Knie und der Rechner schaltete sich aus. Es ist also entweder ein stärkeres Netzteil notwendig oder des LCD muss ohne Hintergrundbeleuchtung betrieben werden. Ohne Beleuchtung verbraucht das Display kaum über 6mA.

Die Ansteuerung soll zuerst mal unter Ruby erfolgen. Dazu muss ruby und das Gem wiringpi installiert werden:

apt-get install ruby ruby-dev build-essential
gem install wiringpi

Ein erster Versuch mit meinem bereits bestehendem Programm lieferte keinen Erfolg. Zum Debuggen kam mein ultrakleines Oszilloskop Xprotolab von gabatronics  zum Einsatz:

25112014927

Mit ihm konnte ich feststellen, dass kein einziger Ausgang der Banana Pi korrekt gesetzt wurde. Für weitere Tests benutze ich dann das Programm gpio um gezielt die GPIO Pins zu setzen.

gpio readall
gpio export 11 out
gpio write 11 1
gpio write 11 0

Auch mit der Hilfe von gpio wurden keine Pins auf HIGH oder LOW gesetzt. Auf der Webseite von www.lemaker.org fand ich dann einen Verweis auf eine angepasste Version von WiringPi für die Banana Pi.

Die neue WiringPi Library ist schnell kompiliert und installiert mit

cd WiringPi
./build

Der nächste Test mit gpio verlief bereits erfolgreich und ich konnte am Oszilloskop das Toggeln meines Pins beobachten.

Als nächstes habe ich die LCD Beispieldatei aus dem WiringPi-Paket angepasst, kompiliert, gestartet und erfolgreich einen Text auf dem Display erhalten.

25112014928

Jetzt war wieder mein Ruby-Programm dran – leider wieder erfolglos. Kein Text auf dem Display und auch keine Signale auf dem Oszilloskop. Also spricht die wiringpi-Library des Ruby-Gems die Ports noch immer nicht richtig an.

Unter /var/lib/gems/1.9.1/gems/wiringpi-1.1.0/ext/wiringpi/ habe ich die .c und .h Dateien gefunden, die leider nur für die Raspberry Pi sind. Die Dateien

wiringShift.h
wiringShift.c
wiringPi.h
wiringPi.c

habe ich durch jene für die Banana Pi ersetzt, mit make kompiliert und mit make install installiert.

Der nächste Test mir Ruby verlief dann auch erfolgreich

26112014931

 

 

 

Veröffentlicht unter Allgemein | Kommentare deaktiviert für 16×2 LCD an Banana Pi anschließen