Forum: Digitale Signalverarbeitung / DSP / Machine Learning I²C mit Pullups auf verschiedene 3.3V's hochziehen erlaubt?


von Manuel N. (manuelambaum)


Lesenswert?

Hi, ich möchte zwischen zwei Arduinos Daten über I²C austauschen. 
Logischerweise brauche ich passende Pullup widerstände und möchte diese 
möglichst auf Master und Slave seite platzieren und nicht nur auf einer. 
Master und Slave sind ca. 3meter auseinander und werden von zwei 
verschiedenen Spannungsquellen gespeist.

Mein Frage nun: Ich möchte die I²C-Kommunikation mittels drei drähten 
Realisieren. Also GND,SCL,SDA... VCC möchte ich dabei weglassen. Ist es 
erlaubt, das SCL und SDA auf zwei verschiedene 3.3V's hochzuziehen? Da 
ich ja zwei verschiedene Spannungsquellen habe, wäre das bei mir ja der 
Fall. Was könnten für Probleme auftreten? Oder wo liegt das Problem, 
dass das nicht möglich ist.

Aus meiner Sicht müsste es klappen, sofern die beiden Spannungen sehr 
sehr nah bei einander liegen. Also nicht iwie 1x 3.1V und 1x 3.5V 
sondern "exakt" 3.3V an Master und Slave.

Danke im Vorraus

von Kevin M. (arduinolover)


Lesenswert?

Manuel N. schrieb:
> sofern die beiden Spannungen sehr
> sehr nah bei einander liegen.

Das ist tatsächlich eher weniger ein Problem, selbst wenn eine 3,3V und 
die andere 5V ist. Solange die angeschlossenen ICs die Spannungen 
aushalten, passiert da nichts.

Zwei getrennte Spannungsversorgungen sind kein Problem so lange alle Bus 
Teilnehmer auch bei 0V VCC die entsprechende Spannung aushalten.

Es kann natürlich immer passieren, dass die eine Schaltung von der 
anderen parasitär gespeist wird, das hast du unter Umständen aber auch 
wenn du eine VCC Leitung mitführst.

Es ist immer das leidige Thema, I2C ist gedacht, um es auf EINEM PCB zu 
belassen und nicht meterweit durch die Gegend zu legen.

von Andre G. (andgst01)


Lesenswert?

Kevin M. schrieb:
> Es ist immer das leidige Thema, I2C ist gedacht, um es auf EINEM PCB zu
> belassen und nicht meterweit durch die Gegend zu legen.

Gibt ja sogar Leute die I2C quer durchs ganze Haus legen und damit 
Smart-Home-Zeug machen.
(https://www.mikrocontroller.net/articles/I2C_als_Hausbus)

von Helmut -. (dc3yc)


Lesenswert?

Manuel N. schrieb:
> und möchte diese
> möglichst auf Master und Slave seite platzieren

Und warum möchtest du das? Notwendig ist es nicht. Verursacht nur 
Kosten.

von Bauform B. (bauformb)


Lesenswert?

Helmut -. schrieb:
> Manuel N. schrieb:
>> und möchte diese
>> möglichst auf Master und Slave seite platzieren
>
> Und warum möchtest du das? Notwendig ist es nicht.

Er möchte zwei uC koppeln. Wenn die Verbindung getrennt wird, könnten 
die autark arbeiten.

Andererseits: wenn einer abgeschaltet ist, blockiert der den I2C-Bus des 
anderen. Egal, wo und wie viele Pull-Up man einbaut.

Edit: wer I2C kennt, nimmt UART.

: Bearbeitet durch User
von Kevin M. (arduinolover)


Lesenswert?

Andre G. schrieb:
> Gibt ja sogar Leute die I2C quer durchs ganze Haus legen und damit
> Smart-Home-Zeug machen.

Achso und wenn der jenigen von einer Brücke springt machen wir das jetzt 
auch? Nur weil ein Bastler sich gedacht hat, hey das ist eine gute Idee, 
heißt das noch nicht das es auch eine ist.

von Bauform B. (bauformb)


Lesenswert?

Kevin M. schrieb:
> Zwei getrennte Spannungsversorgungen sind kein Problem so lange alle Bus
> Teilnehmer auch bei 0V VCC die entsprechende Spannung aushalten.

Auch bei den "5V-toleranten uC" hat Marketing wieder über Technik 
gesiegt. Gerade entdeckt: EFM32TG11, GG12 vertragen abs max 2V (in 
Worten: zwei Volt)! Die meisten STM32 schaffen auch nur 4V. Aber 74LVC 
wollen ja auch verkauft werden :(

von Helmut -. (dc3yc)


Lesenswert?

Bauform B. schrieb:
> Er möchte zwei uC koppeln. Wenn die Verbindung getrennt wird, könnten
> die autark arbeiten.

Was nützt ihm das, wenn der Master nicht mit dem Slave kommunizieren 
kann? Meiner Meinung: nichts.

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.