2x2 m sollten schon drin sein, vor allem, wenn die Übertragungsrate nicht zu gross sein muss. Ansonsten würde ich eher zum UART raten.
Hallo,
Ich habe im Forum und in der Wiki sehr viele Details zur Programmierung dem I²C-Bus gefunden, aber leider keine Angabe über die maximale Entfernung der einzelden Geräte, die mit dem Bus verbunden sein können.
Verschiedene Controller, die in einem Gehäuse sitzen sollten kein Problem sein, aber wie sieht das ganze aus, wenn ich unter einer Platte (z.B. 2x2m) mehrere Controller mit Draht verbinde ?
Kann mir jemand dazu was sagen ?
Gruß und Danke im vorraus, Gucky.
Edit: Wer Rechschreibfehler findet, darf sie behalten. (I²E im Titel). Sorry.
Wissen ist Macht, nichts Wissen macht nichts !
2x2 m sollten schon drin sein, vor allem, wenn die Übertragungsrate nicht zu gross sein muss. Ansonsten würde ich eher zum UART raten.
Sehr präzise
Pi mal Daumen so: Die (Leitungs-) kapazitäten musst Du durch einen Pull-Up ausgleichen, dies solltre die Flanken nicht zu stark verzerren... Bei 100 kHz (Low speed) könnte man sagen
100 pF -> 10k
200 pF -> 4k7
400 pF -> 2k2
Danach geht eher nix mehr weil natürlich LOW auch noch getrieben werden muss.
Wenn Du "echte" Leitungen hasst, solltest Du 100pF pro Meter rechnen, zusätzlich zu den Pins mit 10pF/Pin. Bei mehrlagigen Platinen ist das bedeutend komplizierter.
Ich würde die Widerstände auch aufteilen: 1/2 ans eine Ende und 1/2 ans andere....
Bei längeren Leitungen würde ich auch einen differenziellen Bus empfehlen..
Danke für die schnellen Antworten.
Die Übertragungsrate ist nicht sehr groß, es werden immer nur ein paar Bytes in mehreren Sekunden Abstand übertragen.
Gibt es eventuel Hardwaretreiber, um die Entfernung z.B. auf ca. 10m zu erhöhen ?
Gruß Gucky.
Wissen ist Macht, nichts Wissen macht nichts !
Ja, Du kannst "Repeater" (z.B. PCA 9517 ca 1,50 Euro) einbauen - vielleicht alle 3 Meter? Aber ob sich das dann noch lohnt???
P.S.: ich hatte oben noch was nachgetragen..
@deSilva und @pongi
Danke, werde ich mir die Signale mal mit einem Scope ansehen und dann entscheiden, was ich letzendlich mache.
Gruß Gucky.
Wissen ist Macht, nichts Wissen macht nichts !
@Gucky
Wie du ja sicher schon herausgelesen hast gibt es aus gutem Grunde keine Verbindlichen Längenangaben.
Wichtig ist die maximale Kapazität der Verbindung und die ist stark von der Bauart abhängig.
Einige erreichen die 400pF schon nach wenigen Zentimetern und andere erst weit im zweistelligen Bereich oder sogar noch mehr.
Gutes Netzwerkkabel zb. bringt schon was.
Du hast also die Wahl entweder die Länge der Verkabelung an den Kapazitäten zu orientieren oder den Bustakt abzusenken (Meist braucht man ja nicht die volle Geschwindigkeit) um mehr Strecke zu bekommen.
Differenzielle Busse oder Leitungstreiber bringen mehr Strecke und Leistung aber kosten wieder etwas.
Gruß
Ratber
Hallo,
ich möchte im Autp über I2C Temperaturen messen, die Kabellängen würden 1,5 bis 2 m betragen ....
Sind da Störungen zu erwarten ?
Besonders abgeschirmte Kabel sind kein Problem ...
Danke und Gruß
Hallimasch
Im Kfz sind immer störungen zu erwarten.
Deswegen sollte man dort digitale Elektronik besonders gut schützen.
Es gibt natürlich immer einige die das nicht glauben.
Diese mögen sich mal die betreffenden Basteltopics hier ansehen mit welchen Problemen dort gekämpft wurde.
Es geht dabei meist um die mangelhafte entstörung.
Was dein Problem betrifft.
Das ablesen der Temperatur muß ja nicht 10-100x die Sekunde erfolgen, das wäre unsinnig, also kann der Bustakt stark abgesenkt werden.
Damit ist die Leitungslänge kein Problem mehr und störungen eleminiert man mit guter Schirmung wie du schon richtig gesagt hast sowie einigen zusätzlichen elementen am Bus.
Gruß
Ratber
Danke für Antwort.Zitat von Ratber
Wenn aller 2 bis 3 Sekunden die Temperaturen abgefragt werden reicht völlig aus.
Gruß Hallimasch
Lesezeichen