Forum: Mikrocontroller und Digitale Elektronik I2C mit Dampf


von Dominic S. (Firma: Privat) (dominics)


Lesenswert?

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.

von Klaus (Gast)


Lesenswert?

Fasel!

Und am Ende hängt ne LED.

von qwertzuiopü+ (Gast)


Lesenswert?

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.

von Nobody (Gast)


Lesenswert?

Dominic S. schrieb:
> mehrere hundert
> Metern weit

qwertzuiopü+ schrieb:
> auch RS232

RS485

von Dominic S. (Firma: Privat) (dominics)


Lesenswert?

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.

von Sascha (Gast)


Lesenswert?

Bei CAT-Kabel würde mir auch noch Ethernet/WLAN für weitere Strecken 
einfallen. ENC oder ESP8266 sind nicht teuer.

von Falk B. (falk)


Lesenswert?

@ 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"

von Hp M. (nachtmix)


Lesenswert?

Falk B. schrieb:
> Man geht bei solchen Strecken
> auf differentielle Signale.

Oder mit Current-Loop.

von qwertzuiopü+ (Gast)


Lesenswert?

Nobody schrieb:
> qwertzuiopü+ schrieb:
>> auch RS232
>
> RS485

Huch, meinte ich natürlich :D

von Hp M. (nachtmix)


Lesenswert?

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.

von Michael K. (Gast)


Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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
von Christian B. (casandro)


Lesenswert?

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
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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.

von Christian B. (casandro)


Lesenswert?

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
Noch kein Account? Hier anmelden.