I2C Problem

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

    Ich versuche mich derzeit an mein erstes Projekt mit dem Raspberry Pi 3. Dazu möchte ich Sensoren über I2C auslesen und mit den Daten arbeiten.
    Jetzt habe ich jedoch folgendes Problem. Als Sensor benutze ich den Absolutdrucksensor der Baureihe Amsys 5812. I2C habe ich auf dem Raspberry anhand eines Tutorials freigeschalten.
    Mein Problem ist, dass wenn ich im Terminal "sudo i2cdetect -y 1" eingebe die Tabelle zwar auftaucht, diese jedoch aber leer ist. Der Sensor wird also vermutlich nicht erkannt. Jetzt wollte ich fragen ob jemand vielleicht schonmal so ein änliches Problem hatte und eine Lösung dazu parat hat. Schonmal danke im Vorraus.

    Nach diesem Bild habe ich die einzelnen Busse an den Raspberry Pi angeschlossen.
    17d3e5-1466455317.png

    So habe ich den Sensor verkabelt, nur die Optionalen 300Ohm Widerstände habe ich weggelassen.
    f39d44-1466455546.png

    Freigeschalten habe ich I2C:

    Erst habe ich über "sudo raspi-config" I2C enabled.
    Dann habe ich über "sudo apt-get intall -y i2c-tool" die I2C tools installiert.
    Dann habe ich über "sudo nano /boot/config.txt" die zeilen hinzugefügt:
    dtparam=i2c_arm=on
    dtparam=i2c1=on

    dann habe ich nachgeschaut in der " /etc/modprobe.d/raspi-blacklist.conf", diese ist aber leer.

    dann habe ich mit "sudo i2cdetect -y -1" die Tabelle ausgeben lassen.
    71b8a6-1466456261.png
    diese zeigt aber nichts an.


    Ich benutze den Sensor Amsys5812.
    In betrieb ist der Raspberry Pi 3 mit dem Betriebssystem Rasbian.
    Kernel Version ist die 4.1.14-V7.


    Mit freundlichen Grüßen

    Huskydrive

    Einmal editiert, zuletzt von Huskydrive (20. Juni 2016 um 23:01)

  • Servus,

    da fehlt jetzt aber einiges an Infos ...
    Wie hast Du denn I2C aktiviert (jetzt aber keinen Link auf irgendeine Anleitung sondern wirklich beschreiben, wie Du das gemacht hast)?
    Welches OS (cat /etc/os-release )?
    Wie ist Dein Aufbau ( näheres dazu -> hier <- )?

    cu,
    -ds-

  • Vielen Dank, habe nicht mit so schnellen Antworten gerechnet. Bin derzeit unterwegs. Werde heute Abend dann alles detailliert hier diesem Thread hinzufügen.

    Gesendet von meinem Nexus 5 mit Tapatalk

  • Servus,
    also ich sehe da nicht, wie Du genau was verdrahtest hast.
    Das, was Du da gepostet hast, macht demzufolge keine Aussage zu Deiner Schaltung. :fies:
    Deinem Hinweis ist zu entnehmen, dass Du pullups verbaut hast. Die sind nicht notwendig, sondern kontraproduktiv, da der RPi bereits intern welche verbaut hat, und Deine dazu in Paralellschaltung sind.
    Das Datenblatt des Sensors wäre noch gut ...
    Und über die Adresse des Sensors schweigst Du Dich leider ebenfalls aus ...

    Ohne Fleiss ist leider keine konkrete Hilfestellung möglich,
    -ds-

  • http://www.amsys.de/sheets/amsys.de.ams5812.pdf

    das hier ist das Datenblatt. Jop ich habe von SDA sowie von SCL jeweils einen 4,7k Ohm Widerstand zum VCC gemacht. Und dann bin ich eigentlich direkt vom SDA und SCL zu den einzelnen Pins auf dem Raspberry. Vom VCC und GND bin ich auch direkt zu den Pins vom Raspberry. Das mit der Adresse verstehe ich leider nicht, bin noch nicht so tief in der Materie drin. Aber ich gebe mein bestes.
    Aber vielen Dank für die schnellen Antworten.

  • Ok,
    ich schmeiss mal -> das hier <- in den Raum ... dann hast Du was zu lesen ...
    Und nimm die pullups raus ( die 4k7 Dinger auf Vcc ) ,,,
    In der Zwischenzeit guck ich mal über das Datenblatt.

    //EDIT:

    Zitat


    Die AMS 5812 haben werksseitig die 7 Bit Slave Adresse 0x78Hex (1111000b)


    Das Problem: wenn Du mal auf die Ausgabe des i2cdetect schaust, ist die höchste Adresse 0x77 ...
    Das Gerät findet der RPi nicht.
    Hast Du denen ihr Starterkit?

    Zitat


    Alternativ kann der Kunde diese Programmierung auch mit dem USB-Starter-Kit selbst vornehmen. Die so programmierten AMS 5812 antworten dann auf beide Adressen.


    Quelle: Datenblatt

    Damit musst Du halt eine andere Adresse vergeben ...

    //EDIT: Was jetzt allerdings nicht zwangsläufig bedeutet, dass Dein Aufbau fehlerfrei ist ;)

    grmpf ... Bernd wieder mal reingegrätscht ;) ...

    cheers,
    -ds-

  • Wie ich gesehen habe, kann der Arduino den Andressbereich lesen. Dann könnte ich ja mit dem Arduino die Adresse ändern und dann mit dem Raspberry den Sensor verwenden oder?

  • Habe das alles nun anderst gelöst, da das Hauptproblem wohl war, dass der Sensor 5V benötigt und die GPIOS nicht genug hergeben. Habe nun einen 3,3V Sensor verwendet der auf einer anderen Adresse läuft und es funktioniert alles. :)

    Gesendet von meinem Nexus 5 mit Tapatalk

  • Moin,
    dann bitte deine Tread als "erledigt" markieren!!

    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.

Jetzt mitmachen!

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