I2C 1-Wire 1-Port Bridge für Raspberry Pi

Nach der großen 8-Port Platine sind noch zwei kleine 1-Port Platinen entstanden um 1-Wire für den Raspberry Pi™ über dessen I2C Bus verfügbar zu machen. Wenn man z.B. nur ein paar Sensoren anschließen möchte oder, so wie ich, einen Raspberry Pi™ mit LoxBerry je Etage nutzen will, kann man diese kleinen Platinen einsetzen.

Diese Platinen sind jetzt entstanden…
I2C-1-Wire-Bridge-1-Port-PCB I2C 1-Wire 1-Port Bridge für Raspberry PiDIe kleine Version (ohne Uhr und ohne Thermometer)

I2C-1-Wire-Bridge-1-Port-Clock-PCB I2C 1-Wire 1-Port Bridge für Raspberry PiDie große Version (mit DS1307Z Uhr und DS18B20 Thermometer)

Die Verbindung zwischen dem I2C und 1-Wire Bus stellt ein DS2482-100 her, ein DS18B20 (große Version) ist für die Temperaturmessung vorhanden. Die DS9503P ESD Schutzdiode ist auch wieder verbaut.

Um die Spannungspegel zwischen Raspberry Pi (3,3V) und 1-Wire Bus (5V) anzupassen sind zwei BSS138 Mosfets als Level-Shifter vorhanden.

i2c-level-shift-mosfet I2C 1-Wire 1-Port Bridge für Raspberry PiEin DS1307 (große Version) stellt eine Uhr zur Verfügung, diese ist über I2C am Raspberry Pi™ angebunden, eine CR2032 hilft  die Uhrzeit zu erhalten auch wenn keine Betriebsspannung anliegt.

Angeschlossen werden können Sensoren etc. am 1-Wire Bus über eine RJ45 Buchse oder über eine dreipolige Anschlussklemme.

Fertig aufgebaut sehen die Platinen dann so aus…

I2C-1-Wire-Bridge-1-Port-PCB-fertig I2C 1-Wire 1-Port Bridge für Raspberry PiI2C-1-Wire-Bridge-1-Port-Clock-PCB-fertig I2C 1-Wire 1-Port Bridge für Raspberry Pi
Und so sehen sie aufgesteckt auf einem Rasperry Pi 3 B+ aus…

I2C-1-Wire-Bridge-1-Port-PCB-fertig-auf-Raspberry-Pi I2C 1-Wire 1-Port Bridge für Raspberry Pi
I2C-1-Wire-Bridge-1-Port-Clock-PCB-fertig-auf-Raspberry-Pi I2C 1-Wire 1-Port Bridge für Raspberry PiNatürlich können auch diese Platinen wieder mit LoxBerry genutzt werden 😉

Wie man die DS1307 Clock mit einem Rasperry Pi™ nutzt findet man z.B. unter folgendem Link: https://crycode.de/wiki/DS1307_RTC_am_Raspberry_Pi.

Pin-Belegung RJ45-Stecker (von vorne gesehen)
rj45 I2C 1-Wire 1-Port Bridge für Raspberry Pi

RJ45-Buchse PIN – Farbe Ader – Funktion (Signal)

1 – Weiß/Orange – 5V GND
2 – Orange – 5V
3 – Weiß/Grün – nicht belegt
4 – Blau – 1-Wire Daten (DQ)
5 – Weiß/Blau – 1-Wire GND
6 – Grün – nicht belegt
7 – Weiß/Braun – nicht belegt
8 – Braun – GND

Platinen und Bausätze können im Blog-Shop bestellt werden.

Verlinke diesen Beitrag:

<a href="https://blog.thomasheldt.de/i2c-1-wire-1-port-bridge-mit-clock-fuer-raspberry-pi/">I2C 1-Wire 1-Port Bridge für Raspberry Pi</a>

Aktualisiert am: 7. April 2018

Bilder der fertigen Platinen hinzugefügt

17 Gedanken zu „I2C 1-Wire 1-Port Bridge für Raspberry Pi

  1. Stefan

    Hallo,

    mich würde interessieren, wie man die „I2C 1-Wire 1-Port Bridge für Raspberry Pi“ einsetzen kann.
    Bisher habe ich 1-2 1-Wire-Sensoren am Raspi verwendet, indem ich diese an einem GPIO-Port angeschlossen und mit Spannung versorgt habe. Mit Hilfe des Kernelmoduls wurden diese ausgelesen und die Messwerte in einem File abgelegt. Weiterverarbeitende Software konnte darauf zugreifen.
    In der Beschreibung steht, dass hier der 1-Wire-Bus über I2C verfügbar gemacht wird. Wie kann ich diesen dann nutzen? Gibt’s hier Beispiele oder Links die weiterhelfen können?

    Gruß,
    Stefan

    Antworten
  2. Jörg

    Hallo,

    wofür sind die Jumper da? Ich habe sie bei meinem Aufbau jetzt genau so gesteckt wie auf den Fotos und es funktioniert 🙂

    Gruß
    Jörg

    Antworten
    1. Thomas H. Beitragsautor

      Hallo Jörg,
      damit wird die I2C Adresse des DS2482 eingestellt, siehe Datenblatt des DS2482 😉

      Gruß
      Thomas

      Antworten
    1. Thomas H. Beitragsautor

      Hallo Kurt,

      genau dafür habe ich die Platine entwickelt und ich setze sie auch mit Loxberry ein.

      Es ist ein Bestückungsplan dabei und es sollte möglich sein diese mit grundlegenden Lötkentnissen
      zu löten.

      Gruß
      Thomas

      Antworten
    1. Thomas H. Beitragsautor

      Hallo,

      5 Sensoren stellen kein Problem da, es können mehr als 10 Sensoren vom Typ DS18B20 angeschlossen werden.

      Gruß
      Thomas

      Antworten
  3. Bernd Macheleidt

    Hallo Thomas,

    der I2C – Bus auf meinem Raspi sieht folgendermassen aus :

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

    mit
    0x40 : sht21 (temp sensor)
    0x59 : lcm600u (artesysn pwr supply)
    0x74 : srf08 (ultraschall sensor)

    Wenn ich die w1 – bridge an den i2c bus anschließe, kommt dieser offenbar völlig durcheinander :

    pi@raspberrypi:~/devel $ i2cdetect -y 1
    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00: — — — — — — — — — — — — —
    10: — — — — — — — — — — — — — — — —
    20: — — — — — — — — — — — — — — — —
    30: — — — — — — — — — — — — — — — —
    40: — — — — — — — — — — — — — — — —
    50: — — — — — — — — — — — — — — — —
    60: — — — — — — — — 68 69 6a 6b 6c 6d 6e 6f
    70: 70 71 72 73 74 75 76 —

    pi@raspberrypi:~/devel $ i2cdetect -y 1
    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00: — — — — — — — — — — — — —
    10: — — — — — — — — — — — — — — — —
    20: — — — — — — — — — 29 — — 2c — — —
    30: — — — — — — 36 37 — — — 3b — — — —
    40: — — — — — — — — — — — — — — — —
    50: — — — — — — — — — — — — — — — —
    60: — — — — — — — — — — — — — — — —
    70: — — — — 74 — — —

    pi@raspberrypi:~/devel $ i2cdetect -y 1
    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00: — — — — — — — — — — — — —
    10: — — — — — — — 17 18 — — — — — — —
    20: — — — — — — — — — — — — — — — —
    30: — — — — — — — — — — — — — — — —
    40: 40 — — — — — — — — — — — — — — —
    50: — — — — — — — — — — — — — — — —
    60: — — — — — — — — — — — — — — — —
    70: — — — — — — — —

    Die Geräte lassen sich auch nicht mehr ansprechen. Habe verschiedene Adressen des Boards durchprobiert, immer mit demselben Ergebnis. Da ich 2 Boards habe, konnte ich den Effekt auch mit beiden Boards feststellen. Hast du eine Idee, was hier schief läuft ?
    Danke und schöne Grüße

    Antworten
    1. Thomas H. Beitragsautor

      Hallo Bernd,

      also ehrlich gesagt ist mir so ein Verhalten noch nie unter gekommen.

      Hast du schon mal ohne die anderen Sensoren am Bus probiert?

      Mit welcher Spannung werden die anderen Sensoren am Bus versorgt?

      Gruß
      Thomas

      Antworten
    2. Thomas H. Beitragsautor

      Hallo Bernd,

      da ich dieses Verhalten nicht kenne habe ich da nur noch eine Idee,
      zu wenig Strom zur Versorgung der Sensoren oder die Massen (GND) sind nicht alle
      sauber verbunden (also Bus und Sensoren).

      Halte mich aber bitte mal auf dem Laufenden wie es ausgegangen ist.

      Gruß
      Thomas

      Antworten
  4. Harald T.

    Hallo Thomas,
    ist auf der Platine (kleine Version) schon ein Pullup für den „Parasitic Mode“ integriert oder muss der extern hinzugefügt werden?

    Gruß

    Harald

    Antworten
    1. Thomas H. Beitragsautor

      Hallo Harald,

      nein auf keiner der Platinen ist ein PullUp vorgesehen, dieser kann aber direkt an die Schraubklemme montiert werden.

      Gruß
      Thomas

      Antworten

Schreibe einen Kommentar zu Kurt Kastner Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.