I2c und 1wire am Raspi gemeinsam nutzen

Begonnen von Hungry, 22 Juni 2013, 22:10:26

Vorheriges Thema - Nächstes Thema

Hungry

Hallo,
habe mehrere 1wire 18B20 unter Fhem zufriedenstellend zum Laufen gebracht.
Nun wollte ich einige (8) dht11 bzw. 22 I2C Sensoren einsetzen.

Ist es möglich so viele zu betreiben.
Und geht I2C und 1wire überhaupt zusammen.
Bei I2C  brauche ich ja immer einen GPIO pro Sensor oder?


ritchie

Hi,

der I2C Bus ist nur für die Kommunikation innerhalb von Geräte ursprünglich konzipiert worden.
Hier könnte es je nach Verkabelung und Distanzen zu entsprechend Probleme auftauschen.

Da der Busmaster für den 1-Wire Bus auch ein I2C Teilnehmer ist, wüsste ich nicht, was dagegen spricht. Jedoch können nicht verschiedene Programme so ohne weiteres auf einen BUS (i2c) zugreifen. So verwendet zum Beispiel der OWServer den I2C Bus und ein weiteres Öffnen durch andere Dienst/Programme ist mir bis dato nicht gelungen.

Wenn Du alles selber in einem Programm steuerst, also I2C Client und 1-Wire Bus Clients innerhalb Deines Programmes steuerst, sollte das gehen.

Gruss R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

Hungry

Heißt das jetzt, dass ich die Hardware an den gleichen Pin hängen kann?
Wahrscheinlich nicht oder?

Danke für den Hinweis mit den längeren Distanzen.
Vermutlich deswegen gibt es solche Dinger DS2482-100?

ritchie

Hi,
Du kannst I2c Clients jeweils alle an der gleichen Leitung anschliessen. Da der Raspberry 3.3V verwendet, solltest Du hier aber einen Levelshifter einsetzen. Ich vermute mal, das Du 5.0 Volt I2c Busclients hast. Ansonsten kann es sein, das es nicht arbeitet oder wenn du sogar eine ext.5V Versorgung hast, das Dein Raspberry schaden nimmt.

3.3Volt Clients auf langen Leitungen sind wenig erfolgversprechend.

Aber Bus Laengen ueber mehr als 30cm fangen an Probleme zu machen. Hier ist der 1-wire bus besser. Aber auch hier kannst Du Probleme bei langen Leitungen oder einer Vielzahl von Clients am Bus hast.
Was fuer ein 1-wire Interface hast du den ?
Gruss R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

Hungry

Zitat von: ritchie schrieb am So, 23 Juni 2013 20:43Hi,
Du kannst I2c Clients jeweils alle an der gleichen Leitung anschliessen. Da der Raspberry 3.3V verwendet, solltest Du hier aber einen Levelshifter einsetzen. Ich vermute mal, das Du 5.0 Volt I2c Busclients hast. Ansonsten kann es sein, das es nicht arbeitet oder wenn du sogar eine ext.5V Versorgung hast, das Dein Raspberry schaden nimmt.

3.3Volt Clients auf langen Leitungen sind wenig erfolgversprechend.

Aber Bus Laengen ueber mehr als 30cm fangen an Probleme zu machen. Hier ist der 1-wire bus besser. Aber auch hier kannst Du Probleme bei langen Leitungen oder einer Vielzahl von Clients am Bus hast.
Was fuer ein 1-wire Interface hast du den ?
Gruss R.

Ist es den nicht so, dass wenn ich eine externe Spannungsversorgung nehme, diese nur die DHT11 bzw. >DHT22 versorgt. Warum nimmt der Raspberry da Schaden? Die 5 Volt sind doch nicht durchverbunden.
Ich habe doe 18B20 1wire Sensoren auf den GPIO4 des Raspberry geklemmt.

Ud dann würde ich die DHT's an einen anderen GPIO klemmen und die Config entsprechend anpassen.

ritchie

Verwendest du keinen 1-wire busmaster ?

Wahrscheinlich verwendest Du die 1-wire Sensorem im parasitaeren Betrieb. Hier holen sich die 1-wire Sensoren die Versorgungsspannung ueber die Datenleitung. Also meines Wissens mit 3.3v bei RP.

Das ist nicht gut fuer lange Leitungen. Ausserdem solltest Du nicht über den max. Strom des Ports kommen.
Normale Ausgangsports sind für solche Sachen nicht wirklich geeignet. Einen Bustreiber zu verwenden ist hier eine bessere Lösung, um nicht den Port des Raspberry zu gefährten und auch die Signalqualität hoch zu halten.

Wenn Du ein IC mit 5V betreibst und ein anderes mit 3.3v, kann es zu schaeden kommen, wenn die IC keine Open Collectoren als Treiber haben. Denn dann sind moeglicherweise die Ic's, welche nur fuer 3.3v ausgelegt sind , ueber die interne Schaltung des Ic mit 5V verbunden (oder über einen Pullup Widerstand). Daher mein Hinweis. Es ist Dein Raspberry. Dieser Hinweis gilt unter anderem für den I2C Bus!

Ich würde mir an Deiner Stelle ein Interface besorgen, welche 1-wire mit Busmaster unterstützt. Siehe Bastel-ecke oder andere Hersteller.

Gruss R.

Edit: Hatte das am Tablet geschrieben. Daher die Tipfehler.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

Hungry

Alles klar, danke für die Antworten!
Das mit der sehr begrenzten Leitungslänge wusste ich nicht.
Jetzt ist klar, warum es Wandler von I2C auf 1wire gibt.
Ich habe bisher 3.3 Volt auf den V+ gegeben und den Data-Pin an GPIO4 angeschlossen.
Auf meinem Breadboard hat das wunderbar funktioniert.
In unserem Haus über Cat7 werden wir sehen, ob das noch funktioniert?!
Habe bisher den Master softwaretechnisch gelöst.
So sieht das auf jeden Fall in FHEM aus.
Das mit dem Hardwaremaster werde ich dann vmtl. machen.

Ich habe halt gelesen, dass I2C ein anderer Bus ist als 1wire,
von daher meine Frage. Außerdem stand auf einer WebSite, dass jeder DHT-Sensor
an einem anderen GPIO-Port angeschlossen werden muss.

Gruß
Hungry

ritchie

Hallo,

schau Dir zusätzlich noch diesen Thread und am Ende die weiterführenden Threads an:

Link

Diese Thread zeigt Dir meine Problem, welche ich bereits mit 8.. 10 Clients hatte.

Hier ein Board aus dem Forum für 1-wire:
Link

Ich rate Dir von einer 3.3Volt Versorgung der Sensoren ab, da Du bei langen Leitungen
bereits auch einen Spannungsverlust von XXX mVolt auf der Leitung haben wirst (kann man ausrechnen) (Strom*Widerstand).

Hierbei wird das Problem, das der Signalabstand (low/high) Erkennung so gering wird, das der Bus nicht stabil arbeiten wird.
http://de.wikipedia.org/wiki/Logikpegel

Ich will in naher Zukunft meinen Keller verdrahten und bin auch mal auf die Stabilität des 1-wire Bus gespannt. Ich halte mich an die Vorgaben vom Forum und nehme kein CAT 7, sondern EIB/KNX Buskabel. Hier ist der Querschnitt von 0.8 massgeblich wegen dem Spannungsabfall.

http://www.fhemwiki.de/wiki/1-Wire_Busverlegung

Das wäre vielleicht auch was für Dich:
http://www.1wire.org/Files/Articles/1-Wire-Design%20Guide%20v1.0.pdf

Gruss R.

IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

Hungry

Interessant!
Ich werde es mal mit meinem Cat 7 ausprobieren und dann berichten.
Habe nicht immer Zeit das System zu erweitern.
Bin gerade dabei von der Testphase in den Live-Betrieb zu wechseln.

Gehen eigentlich diese USB-1wire Hostadapter auch am Raspberry?

ritchie

Der hat es wohl ans rennen bekommen

Link

Gruss r.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

Hungry