I2C-Anschluss wird nicht erkannt

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

    Mein aktuelles Projekt stellt mich vor ein paar Herausforderungen.

    Aktuell arbeite ich das erste Mal mit einem Sensor, der über I2C angeschlossen wird. Genau genommen mit diesem hier: Time-of-Flight-Sensor.

    Ich scheitere nun an der nötigen Adresse für die eigentliche Programmierarbeit.

    Hardware

    Fotos der Hardware findet ihr im Anhang. Die Anschlüsse habe ich wie folgt vorgenommen:

    Sensorseite ----Raspberry Pi

    VIN ----- PIN1 (board)

    GND ----PIN6

    SDA ----PIN3

    SCL ----PIN5

    XSHUT----PIN16

    Software

    Ich habe bereits im raspi-config i2c-Interfaces aktiviert und die i2c-tools und python-smbus installiert.

    Die Ausgabe von

    i2cdetect -y 1

    lautet jedoch

    Code
    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --

    obwohl alles angeschlossen ist. Folgendes an der Produktbeschreibung hat mich außerdem aufhorchen lassen:

    Zitat

    The sensor’s 7-bit slave address defaults to 0101001b on power-up. It can be changed to any other value by writing one of the device configuration registers, but the new address only applies until the sensor is reset or powered off. ST provides an application note (196k pdf) that describes how to use multiple VL53L0X sensors on the same I²C bus by individually bringing each sensor out of reset and assigning it a unique address, and the approach can be easily adapted to apply to the VL53L1X instead

    .Wieso kann ich den ToF-Sensor im i2cdetect nicht sehen? Habe ich etwas falsch verkabelt? Oder liegt es an der default-adresse? und wie könnte ich diese ansteuern, wo sie doch ein anderes Format hat als die Ausgabe im i2cdetect?

    Vielen Dank schon einmal, wenn ihr durchgehalten habt, bis hierhin zu lesen! Vielleicht habt ihr ja eine Idee!

    LG,

    Himmelbeere

  • Ein nicht unwesentliches Update:

    Ich habe per sudo usermod -aG i2c pi dem Benutzer Pi Zugriffsrechte erteilt. Jetzt sieht die Ausgabe von i2cdetect -y 1 anders aus:

    Code
    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- 29 -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --

    Ich probiere weiter!

  • 0101001b und 0x29 passt ja schonmal zusammen. Welche Software versuchst du dann damit zu starten? Da die Module ja alle mit der gleichen Adresse hochkommen, wird dieser default in der lib schon eingetragen sein. Oder hast du die Adresse dort geändert?

  • Hallo Andyydna!

    Danke für die Bestätigung! Ich habe nichts geändert... Zumindest nicht, dass ich es wüsste. Kann ich das irgendwie überprüfen?

    Zunächst einmal versuche ich, einen kleinen Test mit dem Sensor hinzubekommen. Der Code dazu folgt hier. Für Verbesserungsvorschläge bin ich sehr offen! Bisher hat sich mein Python auf einfach Abfolgen beschränkt, konstante Aktionen sind noch Neuland für mich. Deshalb ist der Code auch noch auf einen KeyboardInterrupt ausgelegt. Nicht besonders elegant, das weiß ich.

    Einmal editiert, zuletzt von Himmelbeere (28. Dezember 2019 um 12:01)

  • Komme dem Problem noch immer nicht auf die Spur...

    Ich bin beispielsweise unsicher, was folgende Ausgaben bedeuten:

    Code
    pi@raspberrypi:~ $ ls /dev/i2c*
    /dev/i2c-1
    pi@raspberrypi:~ $ i2cdetect -l
    i2c-1   i2c             bcm2835 I2C adapter                     I2C adapter

    Sind das nachgewiesene Software oder tatsächlich erkannte Hardware?

    LG,

    Himmelbeere

Jetzt mitmachen!

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