Hallo Leute, für ein etwas größeres Projekt möchte ich einen I2C Umsetzer bauen, welcher mir bestimmt auch noch in anderen Projekten zu gutem kommen kann. Im wesentlichen möchte ich das I2C über CAT-Kabel bis zu mehrere hundert Metern weit übertragen. Bisher bin ich soweit, das ich das I2C von meinem AVR mit einem PCA9600 auf 12V hoch wandele. Das bringt schon mal einiges an Strecke. Hier im Forum habe ich gelesen, dass man zusätzlich noch über einen CAN Wandler gehen kann um mehr Reichweite zu erhalten. Das verstehe ich aber nicht ganz. Ein CAN Bus läuft doch normal nur auf 7-12V, wie kann man einen CAN Wandler hinter den PCA9600 schalten? Meine primäre eigene Idee für eine Lösung wäre, hinter den PCA9600 einen Standard Induktiven Ethernet Überträger zu setzten. Ich habe aber keine Ahnung, ob das auch nur annähernd was werden kann. Normaler weise geht man mit 3,3V-5V in diese Überträger rein um hinten 48V raus zu bekommen. Da ich aber mit 15V rein gehen würde, wären es wohl weit über 100V. Ich bin aber nicht sicher ob der Überträger das verträgt. Zudem befürchte ich, dass der PCA9600 mit dem Überträgers so seine Probleme haben dürfte, in Sachen Stromaufnahme. Der PCA9600 erkennt die Signale auf dem Bus (falls ich mich nicht täusche) über eine Strommessung. Wenn vom Überträger also ein Signal an den PCA9600 ankommt, wird er dieses vielleicht auch überhaupt nicht erkennen, da sich lediglich die Spannung kurz ändert, es sollte dabei kein großer Strom fließen. Genau deshalb wird womöglich auch erst gar kein Signal vom Überträger los geschickt. - Wie genau überträgt der PCA9600, ich habe aus dem Datenblatt heraus nicht verstanden, was genau mit den Spannungen auf dem Bus passiert. - Zudem würde mich interessieren, ob ihr euch vorstellen könnt, das man mit etwas Zusatz Beschaltung(Widerstände, N-Glied usw.) möglich ist es zum laufen zu bekommen. - Oder gibt es bereits einen einfachen/guten Industrie Standard welcher mir Hilft? Sorry, dass es etwas mehr geworden ist.
Dominic S. schrieb: > - Oder gibt es bereits einen einfachen/guten Industrie Standard welcher > mir Hilft? Ja, CAN. IIC (I²C) heißt nun mal nicht umsonst "Inter IC". Das ist eine Kommunikationsmethode zwischen ICs, am besten auf einer Platine oder in einem Gehäuse. Nicht mal im Ansatz für längere Strecken gedacht, unter anderem wg. der nicht vorhandenen Fehlerkorrektur. Neben CAN wäre vielleicht auch RS232 eine Lösung.
Danke, für eure schnellen Antworten. Ihr habt völlig Recht, dass I2C nie für Dinge wie ich sie umsetzten möchte Gedacht war. Das war aber auch nur so! ;) Bereits in den 90er Jahren wurde der P82B96 auf den Markt gebracht, welcher es bereits möglich machte, über 100 Meter weit zu kommen. Das man hierzu auf der Software Ebene Fehler Korrekturen braucht, ist ja kein Thema. Die gibt es auch bei CAN oder Ethernet, auf Software Ebene. Ich möchte, das was in den 90ern bereits angestoßen wurde, nur noch weiter auf die Spitze Treiben.
Bei CAT-Kabel würde mir auch noch Ethernet/WLAN für weitere Strecken einfallen. ENC oder ESP8266 sind nicht teuer.
@ Dominic S. (Firma: Privat) (dominics) >Im wesentlichen möchte ich das I2C über CAT-Kabel bis zu mehrere hundert >Metern weit übertragen. Warum auch immer. I2C ist dafür nicht wirklich geeignet, weder elektrisch noch logisch, auch wenn man es irgendwie hinkriegt. >Bisher bin ich soweit, das ich das I2C von meinem AVR mit einem PCA9600 >auf 12V hoch wandele. Das bringt schon mal einiges an Strecke. Ja, ist aber nicht wirklich ausreichend. Man geht bei solchen Strecken auf differtneille Signale. >Hier im Forum habe ich gelesen, dass man zusätzlich noch über einen CAN >Wandler gehen kann um mehr Reichweite zu erhalten. Ja, oder RS485. > Das verstehe ich aber >nicht ganz. Ein CAN Bus läuft doch normal nur auf 7-12V, wie kann man >einen CAN Wandler hinter den PCA9600 schalten? Weil der PCA9600 aus den bidirektionalen SDA/SCL Leitungen unidirektionale macht. Die kann man leicht übertragen. >Meine primäre eigene Idee für eine Lösung wäre, hinter den PCA9600 einen >Standard Induktiven Ethernet Überträger zu setzten. Ich habe aber keine >Ahnung, ob das auch nur annähernd was werden kann. Nö. > Normaler weise geht >man mit 3,3V-5V in diese Überträger rein um hinten 48V raus zu bekommen. Kaum. Das macht auch Ethernet nicht so. Die Trafos sind meist 1:1 >Da ich aber mit 15V rein gehen würde, wären es wohl weit über 100V. Ich >bin aber nicht sicher ob der Überträger das verträgt. Zudem befürchte >ich, dass der PCA9600 mit dem Überträgers so seine Probleme haben >dürfte, in Sachen Stromaufnahme. Für große Reichweiten braucht man KEINE 100V. Nicht mal 5V. Das Thema hatten wir schon mal. Beitrag "Re: I2C mit 2 PCA9600"
Falk B. schrieb: > Man geht bei solchen Strecken > auf differentielle Signale. Oder mit Current-Loop.
Dominic S. schrieb: > Ich möchte, das was in den 90ern bereits angestoßen wurde, nur noch > weiter auf die Spitze Treiben. Na ja, 99 ist ja nun auch schon ein Weilchen vorbei.
Dominic S. schrieb: > Meine primäre eigene Idee für eine Lösung wäre, hinter den PCA9600 einen > Standard Induktiven Ethernet Überträger zu setzten. Ja ? Hast Du denn ein gleichspannungsfreies Signal um den nicht in die Sättigung zu treiben ? Wozu willst Du clock, Data-in und Data-out als Common Mode empfindlichen I²C quer durch die Pampa schleifen statt einer differentiellen Übertragung mit einem sinnvollen Protokoll ? Ich denke Dir fehlt da eine ganze Menge an theoretischem Wissen und es scheint Dich nicht sonderlich zu interessieren warum es für weite Strecken ganz andere Busse gibt und warum der I²C einfach nur ein billiger Geräteinterner Bus ist. Es macht schlichtweg keinen Sinn einen Haufen I²C Probleme auf 'Fernstrecken' zu lösen die mit anderen Busssystemen seid Jahrzehnten super gelöst sind.
Dominic S. schrieb: > Im wesentlichen möchte ich das I2C über CAT-Kabel bis zu mehrere hundert > Metern weit übertragen. Rechne dir mal die Laufzeiten aus. Und wie das mit dem Handshake innerhalb einer Bitzeit funktionieren könnte. Und dann weißt du, wie langsam du werden musst(!!), dass das noch klappen könnte. Als kleiner Tipp: CAN hat da ähnliche "Probleme"... > Im wesentlichen möchte ich das I2C über CAT-Kabel bis zu mehrere hundert > Metern weit übertragen. Ich finde bei solchen Ideen, wo mit "aller verfügbarer Gewalt" etwas zweckentfremdet werden "muss", diesen Spruch so bezeichnend: "Wer nur einen Hammer kennt, für den sieht die ganze Welt wie ein Nagel aus!" Oder andersrum: nimm einen Bus, der nicht schon generisch für eine Kommunikation "zwischen ICs", sondern für "das Feld" entwickelt wurde. Nimm einen "Feldbus". Ab hier hilft erst mal Google weiter...
:
Bearbeitet durch Moderator
Das Traurige ist, dass der OP mit seiner kranken Idee I2C über weite strecken zu betreiben nicht alleine ist. Ein berühmter deutscher Hersteller von Haushaltsgeräten macht auch so eine Art "Spar I2C" als internen Bus in seinen Geräten... in einem Kühlschrank geht das schon über einige Meter. Funktioniert schon irgendwie, aber sauber ist das nicht... dafür spart man einige Cent pro Gerät.
:
Bearbeitet durch User
Christian B. schrieb: > Ein berühmter deutscher Hersteller von Haushaltsgeräten macht auch so > eine Art "Spar I2C" als internen Bus in seinen Geräten... in einem > Kühlschrank geht das schon über einige Meter Soooo arg "krank" ist das nicht. Auch der PS/2 Bus war so "eine Art" I2C mit Pullups und die Übertragung der Monitorkennung bei VGA/DVI/HDMI (Stichwort DDC2b) funktioniert mit I2C. Gern auch vom Laptop zum Beamer über 20m Kabel... http://dave.cheney.net/tag/i2c https://en.wikipedia.org/wiki/Display_Data_Channel Aber wie gesagt: Da ist dann bei 100kB/s definitiv Schluss.
Lothar M. schrieb: > Soooo arg "krank" ist das nicht. Auch der PS/2 Bus war so "eine Art" I2C > mit Pullups und die Übertragung der Monitorkennung bei VGA/DVI/HDMI > (Stichwort DDC2b) funktioniert mit I2C. Gern auch vom Laptop zum Beamer > über 20m Kabel... Natürlich, aber da gibts halt nur 2 Knoten, da hast du ja schon fast so was wie einen abgeschlossenen Bus. Und da geht das auch alles über geschirmte Kabel usw. Unter den Bedingungen würde sogar CAN zuverlässig funktionieren. ;)
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.