I2c Übertragungsrate (Kabellänge)

  • (Raspi B) Ich habe seit 2 Jahren den Temperatur und Feuchtefühler
    http://www.emsystech.de/raspi-sht21/
    Raspi-SHT21-V3_0_0 im Einsatz. Anwendung C++

    Nun möchte ich die Verbindung zum Sensor auf 10 m verlängern was nicht zuverlässig klappt.
    Meine Suche im Internet ergab dass man die Übertragungsrast des I2c von 100KHz auch auf zB 5KHz heruntersetzen kann. leider finde ich dafür keinen Lösungsansatz wie man das realisieren könnte. Um den Treiber einfach umzuschreiben sind meine c Kentnisse leider um einiges zu klein.
    Ich bedanke mich jetzt schon für jeden Hilfeversuch!!!

  • Moin,
    das mit dem Runtertakten wird Dir imho nicht viel bringen. Da funken Dir vermutlich Leitungs-Widerstand und -Kapazitäten dazwischen.
    Ich würde da mal nach einem passenden Bustreiber-Baustein suchen. Evtl. so was in der Art wie ein P82B96 ...

    Ist aber jetzt auch nur auf die Schnelle aus der Hüfte geschossen ;) ...

    Alternativ wäre evtl. RS485 eine Möglichkeit. Am Sensor evtl. noch einen Arduino unt gut ist. da kannst Du dann ruhig noch ein paar hundert Meter draufpacken ...
    Wandler von RS232 auf RS485 sollten günstig zu bekommen sein - auch als USB Ausführung.
    Ich hab' so was zwar auch noch nie gemacht, aber was nicht ist, kann ja noch werden ...

    cu,
    -ds-

  • Ich war heute Nachmittag zufällig auch auf der Suche nach einer Möglichkeit die I2C Geschwindigkeit zu ändern(erhöhen). Bin eigentlich auch schnell fündig geworden.
    Du kannst die Baudrate jederzeit ändern indem du folgende(n) Befehl(e) in einem Terminal ausführst. Zuerst wird das I2C Modul entladen UND anschliessend z.B. mit dem Parameter "baudrate=5000" neu geladen.

    Übertragungsrate(Baudrate) von 5 khz setzen:

    Code
    sudo modprobe -r i2c_bcm2708 && sudo modprobe i2c_bcm2708 baudrate=5000

    Aber wie schon erwähnt wurde ist I2C nicht für lange Leitungen ausgelegt, aber vielleicht hast du ja Glück und das ganze funktioniert mit einem 10m Kabel. Ich würde das einfach mal ausprobieren!

    Joh

    DON'T PANIC!


  • ... aber vielleicht hast du ja Glück


    Neulich schönen Spruch dazu gehört: "Idioten haben Glück, Ingenieure Wissen". War übrigens auf ner Ingenieurstagung, wo auch sonst :lol:

    Edit: Ahh, Badwords-Filter! Gut so, ist hier manchmal auch nötig :lol:
    Das Wort fängt mit "I" an, hat in der Mitte "dio" und am Ende "ten"! Das Wort ist aber wirklich nicht an einen von Euch gerichtet, passte nur so zum Glück!

  • ich werde die Lösung mit dem Befehl
    sudo modprobe -r i2c_bcm2708 && sudo modprobe i2c_bcm2708 baudrate=5000
    ausprobieren. Erste versuche sind nicht unbedingt vielversprechend ich habe mir die Daten am Oszi. aber noch nicht angeschaud auf jeden fall blaibe ich dran und gebe bescheid. Sollte alles scheitern der Tip mit dem IC ist natürlich auch Soper. D A N K E

Jetzt mitmachen!

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