RPI2 LCD16x2

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

    ich habe bislang selten etwas mit den Kommunikationsbussen am Raspberry Pi gemacht. Bei dem Raspberry B hatte ich irgendwann nur zum Testen einmal ein LCD angeschlossen I2C (diese schwarzen sehr billig wirkenden PCBs vom Chinesen). Da ging es, inzwischen hat sich aber spätestens mit der Einführung von dem Raspberry Pi2 einiges getan.

    Unteranderem gibt es nun den Device Tree.

    Unter /boot/config.txt habe ich den Eintrag

    Code
    dtparam=i2c=on

    hineingeschrieben
    Ebenfalls auch in der Raspi Config vermerkt, dass er im Kerneln mit dem Bootvorgang geladen werden soll.

    Da ich von einem MiniBean mit Update auf Jessie arbeite, habe ich erst einmal ua. nach dieser Anleitung die I2C Packete nachgeladen.
    https://learn.adafruit.com/drive-a-16x2-l…rry-pi/overview

    Nach der Installation sah es dann so aus, als ob ich schon eine Adresse gefunden hab, auf dem I2C Bus

    Code
    root@raspberrypi:~# i2cdetect -y 1
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- 27 -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --

    Nach einem reboot bekomme ich nun

    Code
    root@raspberrypi:~# i2cdetect -y 1
    Error: Could not open file `/dev/i2c-1' or `/dev/i2c/1': No such file or directory
    root@raspberrypi:~# i2cdetect -y 0
    Error: Could not open file `/dev/i2c-0' or `/dev/i2c/0': No such file or directory

    Was könnt ich noch für Infos gebrauchen?

    Gibt es irgendwo ein inzwischen ausgebessertes Tutorial für den Raspberry Pi2. Im Netz findet man unter der Suche mit "Raspberry Pi 2" so gut wie nur Beitrage zum 1er.

  • Mit i2c-dev Modul meist du den Eintrag für die "/etc/modules" ? Das habe ich nun hinzugefügt, habe in der Datei nun folgendes stehen

    Code
    # /etc/modules: kernel modules to load at boot time.
    #
    # This file contains the names of kernel modules that should be loaded
    # at boot time, one per line. Lines beginning with "#" are ignored.
    
    
    snd-bcm2835
    i2c-dev

    /boot/config.txt

    Code
    dtparam=i2c_arm=on,i2c_arm_baudrate=400000,spi=on

    Die Adapterplatine wird wieder mit Adresse 0x27 erkannt. Habe diese auch in dem Beispielsscript Adafruit_I2C.py in der init geändert.
    Bekomme da nun wieder als Rückmeldung

    Code
    root@raspberrypi:~/Adafruit-Raspberry-Pi-Python-Code/Adafruit_I2C# ./Adafruit_I2C.py
    Default I2C bus is accessible

    Display wird aber noch nicht angezeigt, aber da kann ich gleich mal schaun, vermutlich ist das Mapping anders.

  • Ja ich hab gerade den I2C mit Python über den Haufen geworfen. Hatte geholft einen schnellen Testsketch nutzen zu können. Aber ich finde die Syntax schrecklich. Setze gerade das ganze wieder mit C um. Muss nur kleine Änderungen von Parallel auf I2C umsetzen.

    Also dass der Pi nicht die 400kHz unterstützt, wundert mich gerade. Bzw. der PCF kann es nicht. Wird dann mit i2cdetect nicht gefunden. Habe auf 100kHz wieder runtergesetzt. Hab aber gerade noch mit PIGPIO ein Problem mit dem öffnen des I2C Busses.

  • Hallo evil,

    ich kann die komplette Lib nachher zur Verfügung stellen,
    bei der I2C Variante ist der PCF8574T drauf. Da muss ich gerade schauen, wie ich die Pins zugeordnet bekommen. Beide Multimeter sind gerade nicht greifbar. Auf dem I2C Bus tut sich aber schon mal was.

    Die Libary kannste mit einer einfachen Zuweisung später umschalten, ob dir für spi, i2c oder im parallel Mode genutzt werden soll. Ich bevorzuge selber, aber die SPI Variante. Unteranderen, da dieser deutlich schneller ist in der Übertragung. Wobei das bei einzelnen ICs noch nicht ins gewicht fällt. Muss für SPI noch demnächst die Platinen anfertigen. Find die bei den Chinesen sehr teuer genauso wie bei DE Händlern.

  • ich haben eine i2c -LCD Interface Platine mit einem abgefeilten IC daheim rumliegen. Wollte den verwenden, weis aber noch nicht recht was ich alles brauche. Das erste mal als ich es versuchte - missglückt es glaub ich weil ich keine i2c 3,3 <-> 5V Bridge eingesetzt habe.

  • Kannst mal Bild reinstellen. Ggf. musst du nur die PullUps von der Platine auslöten. Dann werden vom Raspi die Pegel bestimmt.


    Edit: So, das Teil hab ich nun auch mit PIGPIO und gcc am Laufen. Du kannst bei deiner Platine ja mal mit einem Durchgangsprüfer testen, ob du folgende Verbindungen hast. Ich gehe davon aus, dass du ein ähnliches IC hast.

    Einmal editiert, zuletzt von sschultewolter (9. April 2015 um 16:11)

  • Hatte zwischenzeitig das Teil so einigermaßen am Laufen bis auf einige kleinere Fehler. Gerde bekomme ich nur noch Datenmüll, aber es ist was auf dem Display zu sehen.

    Ich muss morgen mal mit dem Logikanalyser ran. Ich tippe fast da drauf, dass die PIGPIO Lib doch nicht ganz so schnell ist. I2C derzeit 100kHz.

    Vorab hier schonmal ein Auszug

    main.c //Test

    lcd_core.c

    lcd_core.h

    Einmal editiert, zuletzt von sschultewolter (10. April 2015 um 00:36)

  • Hallo evil,

    ich bin jetzt einfach mal im allgmeinen vom RaspberryPi2 ausgegangen. Habe auch noch ein paar RaspberryPi1, aber gerade nicht in Betrieb. Adresse von 1 auf 0 ändern sollte nicht das Ding sein.
    Die Ansteuerung hat aber noch ein paar Bugs und Unschönheiten drin, war auch nur die Vorabversion. Weiteres wenn fertig.

    Ich bin gerade dabei, dass ganze auf BusyFlag umzusetzen. Der RW Pin ist bei den PCF8574 angeschlossen, dann kann man ihn auch nutzen ;) Nebenbei wird die Variante mit festen Haltezeiten soweit angepasst, dass diese auch HC595 kompatibel ist.

    ja ich bin jetzt nicht vom Rpi ausgegangen. Da ändert sich halt die i2c-Bus Adresse nur von 1 auf 0. Freut mich aber, dass es funktioniert. Bin gerade an die Version mit BusyFlag Read dran. Der PCF ka

Jetzt mitmachen!

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