Forum: Mikrocontroller und Digitale Elektronik [I2C] Bus abkoppeln


von Igor M. (igor_m)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich hab hier schon unglaublich viel mitgelesen und viel gelernt. Aber zu 
meinem jetztigen Problem finde ich nix. Ich hoffe, ihr könnt mir einen 
Hinweis geben...

Die Situation ist:

Ich habe mehrere MCP23017 (Portextender) via i2c an meinen Raspi 
angeschlossen. Die MCPs liegen einige Meter vom Raspi und auch 
voneinander getrennt. Da I2C dafür nicht gedacht ist, habe ich 
P82B715-Chips dazwischen geschaltet. Die erlauben eine Erhöhung der 
Bus-Kapazität. An den MCPs hängen ein paar Relais, darum hat jede 
MPC/P82/Relais-Kombination seine eigene Spannungsversorgung. Läuft alles 
super.

Das Problem ist:
Wenn bei einem dieser Abschnitte die Spannungsversorgung ausfällt, 
blockiert das den ganzen Bus und alle anderen Abschnitte sind nicht 
erreichbar.

Ich habe versucht, das als Bild aufzumalen. Hoffe es ist 
nachvollziehbar.

Mein Lösungsansatz wäre, den Anschluss an den Bus mit Transistoren 
abzusichern. Diese Transistoren trennen dann, wenn die Spannung 
wegbricht. Allerdings bräuchte ich warscheinlich ein zweites 
Transistor-Paar für die Pullups, die an jedem Abschnitt den Bus mit 
Spannung versorgen.

Ist das ein Ansatz? Wenn ja, welchen Transistor würdet ihr empfehlen? 
Bin auch für andere Lösungsansätze zu haben. Mir reichen ein paar 
googlefähige Stichworte :-)

Vielen Dank und bleibt gesund!
Igor

: Bearbeitet durch User
von Bauform B. (bauformb)


Lesenswert?

Wenn wirklich nicht mehr am Bus hängt als in der Skizze, also nur je 1 
MCP und nur der RPi hinter seinem eigenen Bustreiber, dann könnte der 
PCA9600 als Bustreiber den P82B715 ersetzen. Der ist innen drin völlig 
anders aufgebaut, mit dem Nachteil, dass er nur in so einfachen 
Anwendungen funktioniert.

Aber mit dem entscheidenden Vorteil, dass er ohne VCC den Bus nicht 
blockiert. Das PCA9600-Datenblatt ist allerdings etwas für lange 
Winterabende. Ich hoffe, ich hab' nichts übersehen.

Bleiben noch die Pull-Up am Bus. In einem CAT-7 Kabel sind doch 8 Adern, 
evt. kann man die Pull-Up zentral versorgen. Wenn das nicht geht, könnte 
man sie abschalten, mit einen BC856 mit einem 5:1 Spannungsteiler an der 
Basis. Und dann wieder: sind verteilte Pull-Up so viel besser als einer 
am Master?

von Jürgen S. (katsu_s)


Angehängte Dateien:

Lesenswert?

Da gibt es eine schöne alte Application Note AN97055 von Philips 
(angehängt), in der steht auf Seite 11 wie man den Bus so gestaltet das 
er auch tut wenn ein Teil ohne Spannung ist.

BSS138 als FET soll scheinbar gehen.
Siehe Beitrag hier im Forum: 
Beitrag "Bi-directional level shifter (AN97055) - Alternativ Transistoren gesucht"


Gruß, Jürgen

von Igor M. (igor_m)


Lesenswert?

hallo ihr beiden!

vielen Dank für die Infos. Die Ansätze klingen vielversprechend. Ich 
werde mich das in ruhe durchlesen. Melde mich dann wieder!

Alles Gute, und bleibt gesund,
Igor

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.