Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

I2C-Bus trennen

78 views
Skip to first unread message

Igor Knight

unread,
Dec 18, 2001, 10:02:57 AM12/18/01
to

Oliver Purschke <ne...@purschke.net> schrieb in im Newsbeitrag:
9vnjur$4o5$02$1...@news.t-online.com...
> Hallo!
> In einer Schaltung mit einem I2C Master und mehreren Slaves soll ein Slave
> zeitweise von der Versorgungsspannung geterennt werden (um Strom zu
sparen).
> Der I2C Bus soll vom abgeschalteten Slave aber nicht gestört werden.
> Messungen haben zwar ergeben, dass der Slave den Bus nicht belastet, wenn
er
> (der Slave) von der Versorgungsspannung getrennt ist, mir ist da aber
nicht
> wohl bei.
> Kennt jemand einen I2C-Bus Treiber oder eine einfache diskrete Schaltung
mit
> der ich den Bus vom Slave trennen kann?

Hi!

Den Chip kann ich dir nicht nennen. Aber, unter Beruecksichtigung der
I2C-Spezifikation, kann ich nur sagen, in deinem Fall soll alles gut gehen
solange man eine Sache im Auge behaelt.

Der Ein/Ausgang SDA von Slave muss ein Open Collector/Open Drain sein. Wenn
der Slave abgeschaltet ist, bleibt der Transistor immer geschlossen und
stoert somit keinen. Von dieser Seite duerfen keine Ueberrachungen kommen.

Der Eingang SCL ist normalerweise (zu Zeiten von CMOS!) sehr hochohmig und
in dieser Eigenschaft praktisch unabhaengig von dem Zustand der Schaltung
"dahinter". Was man im Auge behalten muss ist die angewandte Loesung, WIE
der Slave abgeschaltet wird: man darf nicht vergessen, dass der Eingang
hoechstwahrscheinlich mit Clamping Dioden geschuetzt ist. Dabei ist eine
davon zur Versorgungsschiene (z.B. +5V) des Bauteils aufgeschaltet und
_leitet_, sobald die Spannung des Eingangs UEBER der Spannung der Schiene
liegt. Wenn man den Slave abschaltet indem die Versorgungsschiene gekappt
wird, so kann es vorkommen, dass das Bauteil praktisch vom SCL Signal
versorgt wird. Es kann noch gut gehen. Schlimmer wird's, wenn die
Versorgungsschiene irgendwie geerdet wird: da hat man einen glatten
Kurzschluss!

Um auf die Nummer sicher zu gehen sollte man in Reihe zum SCL Eingang des
abzuschaltenden Bauteils einen Widerstand einsetzen. Den Wert des
Widerstandes sollte zumindest zehnfache des Ausgangswiderstandes des Masters
Betragen. Falls die SCL-Leitung einen Pull up Widerstand hat so sollte der
Reihenwiderstand mindestens zehnfach so hoch sein: 2K2 als Pull Up => 22K in
Reihe zu SCL. Im normalen Betrieb spielt der Widerstand keine entscheidende
Rolle da der Eingangswiderstand des Chips ja wesentlich groesser ist. Ja,
ja, die Kapazitaet des Eingangs wuerde einen RC-Filter bilden. Da muss man
eben schauen, ob alles stabil laeuft, und die Flanken noch da sind.

Igor.


Peter Kohlmeyer

unread,
Dec 18, 2001, 12:58:37 PM12/18/01
to

Oliver Purschke <ne...@purschke.net> schrieb in im Newsbeitrag: 9vnjur$4o5$02$1...@news.t-online.com...
> Hallo!
> In einer Schaltung mit einem I2C Master und mehreren Slaves soll ein Slave
> zeitweise von der Versorgungsspannung geterennt werden (um Strom zu sparen).
> Der I2C Bus soll vom abgeschalteten Slave aber nicht gestört werden.
> Messungen haben zwar ergeben, dass der Slave den Bus nicht belastet, wenn er
> (der Slave) von der Versorgungsspannung getrennt ist, mir ist da aber nicht
> wohl bei.
> Kennt jemand einen I2C-Bus Treiber oder eine einfache diskrete Schaltung mit
> der ich den Bus vom Slave trennen kann?
> Vielen Dank schonmal,
> Oliver.

Relais ? (evt. zu einfach ? )

MfG
Peter
--
<<Im Zentrum der Muedigkeit an der schoenen Ostseekueste>>
p.koh...@t-online.de

Matthias Weingart

unread,
Dec 18, 2001, 3:29:59 PM12/18/01
to
ne...@purschke.net (Oliver Purschke) wrote in
<9vnjur$4o5$02$1...@news.t-online.com>:

>Hallo!
>In einer Schaltung mit einem I2C Master und mehreren Slaves soll ein
>Slave zeitweise von der Versorgungsspannung geterennt werden (um Strom
>zu sparen). Der I2C Bus soll vom abgeschalteten Slave aber nicht gestört
>werden. Messungen haben zwar ergeben, dass der Slave den Bus nicht
>belastet, wenn er (der Slave) von der Versorgungsspannung getrennt ist,
>mir ist da aber nicht wohl bei.

Stimmt, es gibt Chips, die den Bus auf L ziehen, wenn die keine
Versorgung haben und andre die nicht. Wenn Du Pech hast
aendert sich das dann evetuell auch fuer Deinen Typ, falls Du da
mal nen andren Hersteller erwischst oder da mal die Produktion umgestellt
wird (Redesign, Revision des Chips, der PCF8574 z.B. liegt schon in der 3.
Gerneration vor, wenn ich das Datenblatt richtig deute)

>Kennt jemand einen I2C-Bus Treiber oder eine einfache diskrete Schaltung
>mit der ich den Bus vom Slave trennen kann?

Eventuell tut's ja die 5V-3V Pegelwandlerschaltung die man auf
der Philipsseite findet.
Oder die Schaltung hier (aus nem Fernseherschltplan geklaut :-):

Master abschaltbare Vcc
MasterSCL --E(T1) C(T1)-- SCL
+-C(T2) E(T2)-+
B(T1) 47k -> +5V (abschaltbar)
B(T2) 47k -> +5V (abschaltbar)
Es sind zwei NPN-Transistoren, deren Emitter/Collector jeweils
zusammengeschaltet sind und je an einem SCL liegen.
Die Basis von beiden sind ueber je einen 47k nach +5V (die abschaltbare)
gelegt.
Es wird quasi so eine Art von Emitterfolger fuer jede Signalrichtung
gebildet und sobald die Versorgungsspanung weg ist (<0.6V), ist der andre
Bus unbeeinflusst.
Ich hoffe die Beschreibung ist verstaendlich. :-)

Fuer SDA die gleiche Schaltung verwenden.

M.

Thomas Reinemann

unread,
Dec 19, 2001, 2:32:40 AM12/19/01
to

Oliver Purschke schrieb:

> Kennt jemand einen I2C-Bus Treiber oder eine einfache diskrete Schaltung mit
> der ich den Bus vom Slave trennen kann?

Es ist zwar nicht diskret, aber es gibt Analogschalter. Diese verhalten
sich wie mechanische Schalter. Ein solcher könnte in die Leitungen
eingesetzt werden. Seine Spannung kann dann mit der des I2C-IC
abgeschaltet werden.


Bye Tom!

Harald Wilhelms

unread,
Dec 19, 2001, 2:10:45 AM12/19/01
to
Thomas Reinemann <thomas.r...@masch-bau.uni-magdeburg.de> wrote:


>Es ist zwar nicht diskret, aber es gibt Analogschalter. Diese verhalten
>sich wie mechanische Schalter. Ein solcher könnte in die Leitungen
>eingesetzt werden. Seine Spannung kann dann mit der des I2C-IC
>abgeschaltet werden.


Hallo Tom,
die Betriebsspannung sollte wohl besser immer dran liegen.
Die Steuerspannung kann man dann mit dem auszuschaltenden
Teil verbinden.
Gruss
Harald

--
__________________________________________________________
News suchen, lesen, schreiben mit http://newsgroups.web.de

Rudolf Sosnowsky

unread,
Dec 19, 2001, 5:15:16 AM12/19/01
to
Oliver Purschke <ne...@purschke.net> schrieb:

> Hallo!
> In einer Schaltung mit einem I2C Master und mehreren Slaves soll ein Slave
> zeitweise von der Versorgungsspannung geterennt werden (um Strom zu sparen).
[...]

Hallo Oliver,

sieh Dir doch mal das Datenblatt vom PCA 9540 an.
Das ist ein I2C-Multiplexer, der auch Pegel schieben
kann. Der Pullup des Ausgangs kann auf 0V liegen.
Wichtig: Erst deselektieren, dann Spannung des
Busteilnehmers abschalten.

Rudolf.

--
Rudolf Sosnowsky +++ LC Design
EPSON Technology Partner
E-Mail Rudolf.S...@LC-Design.de
Internet http://www.LC-Design.de

Rüdiger Ranft

unread,
Dec 19, 2001, 8:02:08 AM12/19/01
to
Thomas Reinemann schrieb:

Nur die Enable-Eingange der einzelnen Schalter, wenn der Chip keine
Betriebsspannung hat, steuern entweder die p-Kanal-Fets der Schalter durch,
oder der Chip wird durch die Eingangsschutzbeschaltung versorgt. Beides
kann zu sehr unschönen Effekten führen.

bye
Rudi

Matthias Weingart

unread,
Dec 19, 2001, 12:28:53 PM12/19/01
to
mwn...@pentax.boerde.de (Matthias Weingart) wrote in
<Xns917BDB926AlwL...@193.175.28.70>:

>>Kennt jemand einen I2C-Bus Treiber oder eine einfache diskrete
>>Schaltung mit der ich den Bus vom Slave trennen kann?
>
>Eventuell tut's ja die 5V-3V Pegelwandlerschaltung die man auf
>der Philipsseite findet.

Die Levelshifterschaltung von Philips mit den Mosfets macht genau das
gleiche wie meine Schaltung. Man braucht aber nur EIN Bauteil je Leitung.
Da wo 3.3 Volt dran sind, muesste deine abschaltbare Spannung dran.
http://www.semiconductors.philips.com/acrobat/various/I2C_BUS_SPECIFICATION
_3.pdf

M.

Peter Kohlmeyer

unread,
Dec 19, 2001, 3:58:41 PM12/19/01
to

Rudolf Sosnowsky <Rudolf.S...@LC-Design.de> schrieb in im Newsbeitrag: 9vpqo1$lrf$01$1...@news.t-online.com...

> Oliver Purschke <ne...@purschke.net> schrieb:
> > Hallo!
> > In einer Schaltung mit einem I2C Master und mehreren Slaves soll ein Slave
> > zeitweise von der Versorgungsspannung geterennt werden (um Strom zu sparen).
> [...]
>
> Hallo Oliver,
>
> sieh Dir doch mal das Datenblatt vom PCA 9540 an.
> Das ist ein I2C-Multiplexer, der auch Pegel schieben
> kann. Der Pullup des Ausgangs kann auf 0V liegen.
> Wichtig: Erst deselektieren, dann Spannung des
> Busteilnehmers abschalten.
>
> Rudolf.
>
Hallo Oliver,
hast Du ueber meinen Vorschlag mit einem Relais
schon mal nachgedacht?
Man kann natürlich einen enormen Aufwand treiben,
aber fundamentale Bauelemente richtig eingesetzt
helfen Kosten zu sparen und sind intelligenter.

Matthias Weingart

unread,
Dec 19, 2001, 4:25:40 PM12/19/01
to
"Peter Kohlmeyer" <P.Koh...@t-online.de> wrote in
<9vqv9o$f4p$03$1...@news.t-online.com>:

>hast Du ueber meinen Vorschlag mit einem Relais
>schon mal nachgedacht?
>Man kann natürlich einen enormen Aufwand treiben,
>aber fundamentale Bauelemente richtig eingesetzt
>helfen Kosten zu sparen und sind intelligenter.

Ich glaub die Loesung mit einem Mosfet (je Leitung) ist da noch
kostenguenstiger (siehe Oben: Potentialtrennschaltung).

M.

0 new messages