Hallo
20m sind auf jeden Fall schon erreicht worden.
Das kommt auf die Taktfrequenz, Umgebung, Kabel und Treiber an.
Sieh mal bei Philipps bzw. NXP nach oder benutze Google.
Mit freundlichen Grüßen
Benno
Hi Leute
Ich habe dan mal eine Frage. Hat jemand Erfahrung oder das Wissen, wie weit man eine I ²c Buss entfernungsmäßig ausreizen kann?
In ersten Versuchen waren 7 m zu viel und 5 cm haben funktioniert.
Ich wollte diesen Bus zum Aussen und Innentemperatur messen einsetzen.
Ich stelte mir da schon eine sichere Strecke von ca 20 Metern vor. Kann ich das knicken ? Hat jemand schon mal so was versucht ?
Mgf -+ Bzzt +-
Hallo
20m sind auf jeden Fall schon erreicht worden.
Das kommt auf die Taktfrequenz, Umgebung, Kabel und Treiber an.
Sieh mal bei Philipps bzw. NXP nach oder benutze Google.
Mit freundlichen Grüßen
Benno
Wo man nicht mit Vernunft handelt, da ist auch Eifer nichts nütze; und wer hastig läuft, der tritt fehl.
Ein König richtet das Land auf durchs Recht; wer aber viel Steuern erhebt, richtet es zugrunde
hallo,
20meter wirst du wohl ohne weiteres nicht erreichen, da die kabelkapazität dann für die normalen I2C ports zu hoch werden.
anders is das bei verwendung von "P82B715 - I2C-bus extender IC's"
hier muss du jedoch bedenken, dass die relativ viel strom ziehen.
gruss klaus
I2C ist für lange Strecken nicht geeignet, und auch nicht dafür vorgesehen.
Für größere Entfernungen empfiehlt sich eher CAN.
Hi,
der P82B96T ( Philips, 8 Pin- SMD ) als Bus-Puffer, auf beiden seiten des Kabels eingesetzt, kann mit 12V Spannung betrieben werden, was die Störsicherheit erhöht.
Notwendig sind dazu 2 Adernpaare ( Gnd mit SDA verdrillt und Ub mit SCL verdrillt ).
Kann leider kein Bild hochladen, deshalb Beschreibungsversuch:
Die jeweiligen Eingänge werden mit Pull-Ups auf 3,3-6V gelegt (Ub der Applikation ), die Ub der P82B96 kann ( muss aber nicht ) an 12 V;
über das Kabel wird der externe mit versorgt.
Der IC ist 400kHz Bustakttauglich, ob das erreicht wird, hängt in erster Linie vom Kabel ab.
MfG Lutz
Wir haben so viel mit so wenig solange versucht, das wir jetzt qualifiziert sind, fast alles mit fast nichts zu bewerkstelligen.
das kommt stark auf den Bustakt an. Ich hab ihn hier
im Betrieb auf ca. 40m gezogen ohne Bustreiber oder anderen
Schnickschnack. Verwendet hab ich einfache Telephonleitung 4-Drähtig
mit Schirm, geht fehlerfrei schon seit Wochen. Als Busteilnehmer
hab ich LM75A dran, gut gestützt und passt.
Ne Busterminierung ist nicht verkehrt, aber nicht zu klein wählen.
µC ist ATMega32 in DIL
Vor den Erfolg haben die Götter den Schweiß gesetzt
Hi
Erstmal danke für eure Antworten
@thewulf00 C-Control 1 Station 2 mit CAN ? kenn ich nicht und gibt es CAN TEMP Sensoren für 5 € ? (Beweggründe --> I²C Sensoren)
@friLu hört sich realisierbar an. werde ich mir mal genauer anschaun. Ach ja wegen der Bilder: Versuchs doch mal mit http://www.directupload.net/ Dort kannste Bilder ins Netz stellen und den Link ins Forum stellen.
MfG -+ Bzzt +-
Hi,
wenn Du nach p82b96 googelst, findest Du das Datenblatt, in Fig.12 und 14 ist das mit der langen reichweite anschaulich erklärt.
Und danke für den Link, werds bei gelegenheit ausprobieren.
MfG Lutz
Wir haben so viel mit so wenig solange versucht, das wir jetzt qualifiziert sind, fast alles mit fast nichts zu bewerkstelligen.
Hallo!
@vitis:
Mit welcher Frequenz betreibst du den Bus? Ich versuche schon seit einiger Zeit einen LM75C zur Zusammenabrbeit zu bewegen. Der antwortet aber auch auf 2cm nicht, oder ist abgeraucht, oder mein Programm fehlerhaft.
Benutzt du Hardware-I2C oder verwendest Du Software-I2C an anderen Pins?
Hast du von den ersten Experimenten noch einfache Software. Ich würde gerne ausprobieren ob mein LM75 tot ist.
Danke und Gruß
Heiko
Gruß
Heiko
"... die Schaltung eignet sich auch zum Aufspüren von Geistern abgerauchter Transitoren und angebrannter Kartoffeln..."
Also, mein Code besteht aus zwei Teilen.
Zum Einen eine header Datei, die am Anfang includet wird:
Ziemlich am Ende des Codes wird eine zweite Datei includet, dieCode:'--------- LM 75 Temperatursensor --------- $nocompile Const Lm75_base = &B10010000 Declare Function Lm75read(byval Lm75_id As Byte) As Single Config I2cdelay = 100 Config Scl = Portc.1 ' we need to provide the SCL pin name Config Sda = Portc.0 ' we need to provide the SDA pin name I2cinit
die Funktionen enthält, zentrale Sub ist diese:
abgefragt wird das dann über:Code:' ############ LM75 Temperatursensor ############ $nocompile Function Lm75read(lm75_id) ' --> Variablen global deklariert in variables.bas <-- ' Lm75r = Read-Instruktion ' Lm75h = Highbyte Temperatur ' Lm75l = Lowbyte Temperatur ' Lm75_dez = Temperatur als Dezimalwert Local Sub_tempbyte As Byte Local Loc_lm75h As Byte Local Loc_lm75l As Byte Local Loc_tempword As Word Local Loc_lm75_dez As Single Sub_tempbyte = Lm75_id Sub_tempbyte = Sub_tempbyte And &B00000111 Sub_tempbyte = Sub_tempbyte * 2 Sub_tempbyte = Sub_tempbyte Or Lm75_base Lm75w = Sub_tempbyte '= &B10010010 Lm75r = Sub_tempbyte + 1 '= &B10010011 I2cstart I2cwbyte Lm75r I2crbyte Loc_lm75h , Ack I2crbyte Loc_lm75l , Nack I2cstop If Loc_lm75h.7 = 1 Then ' Temperatur ist negativ Loc_lm75l = Not Loc_lm75l Loc_lm75h = Not Loc_lm75h Loc_tempword = Makeint(loc_lm75l , Loc_lm75h) Shift Loc_tempword , Right , 5 Loc_Lm75_dez = Loc_tempword Loc_lm75_dez = Loc_lm75_dez / 8 Loc_lm75_dez = 0 - Loc_lm75_dez Lm75read = Loc_lm75_dez Else Loc_tempword = Makeint(loc_lm75l , Loc_lm75h) Shift Loc_tempword , Right , 5 Loc_Lm75_dez = Loc_tempword Loc_Lm75_dez = Loc_Lm75_dez / 8 Loc_lm75read = Loc_lm75_dez End If End Function End
Temperatur_single = Lm75read(lm75_id) ' 0 bis 8
Wirklich einfache Codes von meinen Jugendsünden hab ich nicht wirklich
noch da ... ob Hardware-oder Soft-TWI kommt aufs Projekt an ... bei diesem
hab ich die Software TWI verwendet. Wenn die LM75 nix sagen hängt
das meist an den Pullups oder an der Adressierung.
Beim LM75 gibts 2 verschiedene Adressen je nach Typ wenn ich mich
noch richtig erinnere ... irgendwo tief im Datenblatt mein ich da mal was
gelesen zu haben.
Vor den Erfolg haben die Götter den Schweiß gesetzt
Lesezeichen