Hi, wie lang darf ich denn I2C Leitungen machen? Möchte 8 LM75 an einen Bus dranhängen mit jeweils 2 m Leitungslänge (also GNC Vcc IICclock IICdata in einem Rundkabel) für einen Temperaturfühler im 19" Rack. Krieg ich da ein Problem? Danke, Christoph
hi! das theme gibts schon http://www.mikrocontroller.net/forum/read-1-179697.html Funktonieren sollte es bis 5 meter, hängt allerdings auch von der geschwindigkeit ab, mit welcher du den bus benutzen möchtest
Hallo, Der I2C-Bus wurde nicht als Feldbus konzipiert, d.h. u.a. (dass heisst unter anderem) eigentlich nicht für lange Leitungsverbindungen. Ich habe das mal eben in einem Buch nachgelesen, dort ist von: "nicht mehr als einigen Metern" zu lesen. Ich hab das zwar noch nie ausprobiert, aber einen Versuch wäre es einfach mal wert - ich kann mir nämlich schon vorstellen das 2 Meter gehen könnten. Ansonsten kann man die Leitunglänge mit einer kleinen Schaltung verlängern. Sicherheitshalber kannst Du ja auch nochmal in der I2C Spezification nachlesen, vielleicht sind dort genauere Aungaben zu finden. Viele Grüsse
8 mal 2m ist ein bischen lang für I2C, es sei denn es sind 4-8 getrennte I2C Busse. Was die Leitungslänge angeht sind bei Temperatursensoren die DS18x20 klar im Vorteil, auch wenn sie etwas teurer sind als LM75.
@Christoph Nein kein Problem. Wie schon gesagt wurde ist der I2C Bus nicht für längere Strecken gedacht aber wenn du den Takt runtersetzt kannst du die Reichweite beträchtlich verlängern. Ich nehme mal an das du Die Tempfühler nicht allzuhäufig abfragen willst. Desweiteren nehme ich mal an das du sekündlich abfragst und das bei allen Acht Fühlern. Auf dem Bus werden ca.30 Takte (Hab ich jetzt auch nicht so im Kopf aber so ca. stimmt es) für eine Lesung pro LM75 gebraucht. dh. für alle Acht sind dann ca. 240 Takte nötig. Wir sind großzügig und rechnen eine Reserve für Wiederholungen usw. mit ein und sagen "Runde 300 Takte benötigen wir für einen kompletten Lesezyklus" Also mit 300 Hz Bustakt biste schon dabei um mindestens einmal die Sekunde alle LM75 abzufragen. Bei diesem niedrigen Takt kannste sogar mit billigem Klingeldraht über mehrere Meter arbeiten und mußt nur drauf achten das der Spannungsabfall nicht allzuhoch wird aber bei deinen jeweils 2m ist das nun überhaupt kein Akt. Aus deiner Angabe mit den 19" Racks entnehme ich mal das dort etwas Leistung verballert wird und das eventuell Störungen entstehen können also sollte die Fühlerleitung etwas Geschirmt sein. so aus dem Stand kann ich dir einfaches Netzwerkkabel empfehlen wie es überall zu bekommen ist. Das ist geschirmt,hat eine annehmbare Kabelkapazität und ist gut erhältlich.(Welches Dorf hat denn nun noch keinen "Gombijudershob" ?) Ich nutze selber handelsübliches Cat5 für solche Sachen. Bei 8 Adern ist genug reserve für die optionale Int-Leitung oder etwas mehr "Saft". Natürlich läst sich der Takt noch weiter nach oben drücken wenn der Controller (Ich vermute mal das da einer drann hängt.Wenn nicht ist das aber auch nicht so wichtig) noch was anderes zu tun hat als nur die Fühler abzufragen. Bei 2m und Cat-Strippen dürften auch 10khz Bustakt kein Akt sein und die Abrage ist in max 30ms erledigt und der Controller hat die restlichen 270ms Zeit für "was anderes" gg Ja,ich habe erstmal fertig.
Hallo, vielleicht etwas unpassend hier, aber wie ändere ich den Takt? Ich nutze die I2C lib von Peter Fleury (i2cmaster.S, i2cmaster.h, also Software-Modus) und blick leider nicht durch. Und wahrscheinlich jetzt zum Thema passend: Gibt's schon Erfahrungswerte bei welcher Länge wie schnell getaktet werden kann? Gruß Sirko
Zur frage Taktänderung: Im Grunde in dem du die Wartezyklen verlängerst. Zur Frage Erfahrungswerte: Das hängt vom Kabel und der Umgebung ab. Da kann dir keiner verlässliche Werte liefern. Im Zweifelsfalle hilft nur "Probieren"
nicht die Leitungslänge ist begrenzt sondern die Buskapazität. Bei langen Leitungen deshalb die Taktfrequenz reduzieren Thomas
wir hatten ja diese diskussion schon. ich wiederhole daher: bei mir läuft seit jahren eine datenübertragung über 2m von einem sensor zu einem messgerät einwandfrei. benutze dazu ein normales serielles kabel. habe versuchsweise auch größere längen ausprobiert indem ich mehrere serielle kabel hintereinandergesteckt habe. die datenübertragung ist allerdings relativ langsam, da nur eine messung/sek notwendig ist. der prozessor kommuniziert also recht gemächlich mit dem sensor. ich denke mal daß einige m kein problem sein sollten...
Da wage ich insofern zu widersprechen, als daß "langsam" hier mißverstanden werden kann. Der Prozessor kommuniziert nicht "langsam", schließlich hat er ja eine feste Taktrate für IIC eingestellt. Vielmehr kommuniziert er in Burst-Intervallen, also 1ys activity, der Rest Pause. Da bei IIC keine Fehlerkontrolle implementiert ist, schließe ich daraus, daß auch ein vielfaches der Leitungslänge möglich ist, sofern der Kapazitätsbelag vom Kabel (CAT5-Kabel) und die Last am Bus (jeder Client mit 330 Ohm dran) klein bleiben. Zusätzlich muß der Bus mit dem "Wellenwiderstand" (der probiert werden sollte, hab mit 120 Ohm gute Erfahrungen) an beiden Enden abgeschlosssen werden, um eine Reflexion am jeweiligen Ende zu unterbinden. Ich hätte insgesamt 8 LM75 und 11 PCF8574... Werde berichten, obs funktioniert hat g
@Thomas >nicht die Leitungslänge ist begrenzt sondern die Buskapazität. >Bei langen Leitungen deshalb die Taktfrequenz reduzieren Ja ,richtig die Kapazität begrenzt (Äh, 400pF war es glaube ich.Will jetzt nicht nachschauen)aber auch der Leitungswiderstand spielt mit im Orchester. Zuviel und die Pegel sind nicht mehr einwandfrei. Aber wie gesagt sind bei ca. 2m und recht niedriger Datenrate kaum Probleme zu erwarten. Wer unbedingt mehr Länge bei hohem Takt wünscht dem stehen noch die passenden Leitungstreiber wie zb. P82B715 zur verfügung. Die sind nur leider schlecht zu bekommen und oft Teuer.
In Kapazität ja, beim Leitungswiderstand nein weil Stern. Ein halbwegs modernes Cat5 kommt mit ca. 15pF/m daher. Macht dann 16x15=240pF plus Kontaktund Schaltungskapazitäten. Rein Theoretisch könnte man hier sogar den vollen Takt fahren (100/40kHz je nachdem was die Chips können). Selbst mit Vorsicht kann man hier über den Daumen gepeilt mit einigen zehn Khz. arbeiten.
>halbwegs modernes Cat5 kommt mit ca. 15pF/m
Zeig mal..., also ich hab bisher nur CAT5 mit 48pF/m und CAT7 mit
43pF/m gesehen? Was sind das für Typen?
Aber gerne doch.(siehe Anhang) Das "halbwegs Modern" habe ich schon mit absicht eingefügt. '-)
Wow! 14pF/m Leider kriegt man sowas mal wieder nicht bei R! Würde ganz neue Möglichkeiten eröffnen. Bisher hab ich mit meinen USB2.0 Kabeln (ca. 90pF/m wenn ich mich recht erinnere) 5x1m in Sternform bei 200KHz SCL geschafft. An beiden Enden Atmega8 o. Atmega16, Pullups kleiner als im DB angegeben.
Yo,120pF sind für USB1 und USB2 ab 90pF abwärts.(Keine Garantie auf die Angaben.War alles ungefähr aussem Kopf) Ja,leider ist es ja so daß das was derzeit so bei diversen Händlern angeboten wird schon recht alt ist. Dh. im Einzelnen das die Entwicklung zwar weitergeht aber in den Läden nur "Standard" oder "Althergebrachtes" zu bekommen ist. Genauso ist es zb. mit deinem USB2 Kabel. Was die meisten Händler so als "USB2" anbieten ist schlichtweg eine frechheit weils dr selbe Krempel ist der schon als USB1 verkauft wurde. Man hat nur mal getestet obs auch mit USB2 geht und labelt nur die Verpackung um. Bei kurzen Strippen fällt das nicht so auf aber so ab 3m oder in etwas "verstrahlterer Umgebung" gibt es dann zunehmend Probleme. Besonders Fetplatten und Videoartikel (Webcams,Grabber usw.) fallen da besonders auf. Leider kann man sich nicht wirklich auf den Händler verlassen da alle nur "irgendwie weiterverkaufen". Ich habs auch schon erlebt. Ich habe 2 Externe 2.5" Platten.Eine USB2,die andere zusätzlich mit Firewire. An einer 5m FW verlängerung ist das kein Akt und geht immer "Fullspeed". Bei USB2 an einer 3m Verlängerung (Angeblich USB2) gabs da öfters mal Theater in form von ausfällen. Auch der Kauf eines Scheinbar besseren Kabels (Dicker,Massiver,Zertifizierter,teurer blabla usw.) ergab da kaum linderung. Erst als ich mir (ungern) die Mühe gemacht habe die Strippen mal halbwegs vernünftig auszumessen (Dank Messequip einer Benachbarten Firma die Spezialkabel herstellt) konnte ich mehr Einblick bekommen was sich so alles in meinem Fundus befindet. Kurzum : Bis auf eine ausnahme (Leider nur knapp 2m Lang) haben alle kabel kaum das Prädikat "Highspeed USB" verdient. Für die die beim Einkauf zweifeln: Schaut mal auf die Stecker. Seltsamerweise pappt jeder das USB Logo auf die Stecker obwohl die Verbinderform kaum Zweifel aufkommen lassen dürfte aber das Highspeedsymol ,das ja für USB2 steht, findet sich fast garnicht. Übrigens: Bei Firewire geht es derzeit auch los indem FW1 Kabel als 800er FW2 verkauft werden. So,nun genug gelabert. Die Sonne ist fast weg und ich habe kein Getränke mehr hier. Ich muß mal wech ,nachschub besorgen (Alkoholfreies). Bis denne cu
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.