Forum: Mikrocontroller und Digitale Elektronik Schutz von I²C-Bus


von Hendrik (Gast)


Lesenswert?

Hallo zusammen,

ich möchte meinen Controller mit verschiedenen Bausteinen über I²C-Bus 
miteinander verbinden. Ich wollte über eine Stiftleiste den Anschluss 
über weitere I²C-Bausteine möglich machen. Um den Bus vor 
versehentlichen Hochspannungen zu schützen, wollte ich den Bus mit ner 
Zener-Diode absichern. Damit mir die Diode bei Kurzschluss nicht 
abraucht, habe ich Längswiderstände auf dem Bus angebracht.
Da der I²C-Bus Open-Drain ist, muss man ihn über PullUp-Widerstand 
anbinden.
Dummerweise gibts dann aber über das Spannungsteiler-Verhältnis vom 
Längswiderstand und PullUp einen zu hohen LOW-Pegel auf der Leitung.

Kennt jemand ne Lösung, wie ich meinen Bus schütze und trotzdem 
vernünftige Pegel auf der Leitung bekomme ?

von Bernhard R. (barnyhh)


Lesenswert?

Dioden gegen Masse und Versorgung!

von Bensch (Gast)


Lesenswert?

Der I2C ist ein LOKALER Bus und sollte eigentlich die Platine nicht 
verlassen. Und wenn's denn unbedingt sein muss, nimm einen I2C-Expander.

von Bernhard R. (barnyhh)


Lesenswert?

Nachtrag:
Wozu diese Schutzbeschaltung? Wovor soll sie schützen?

"Hochspannung" ist ein dehnbarer Begriff. Mir fällt dazu folgendes ein:

1. statische Überspannungen beim Handhaben der spannungslosen Geräte / 
Bauteile: Die üblichen Vorsichtsmaßnahmen reichen gut aus, nichts 
erforderlich.

2. transiente Überspannungen beim "Zusammenstöpseln" von 
Systemkomponenten, während das System unter Betriebsspannung steht: Ist 
das tatsächlich nötig?

3. Fehlsteckungen: gründliche Prüfung vor Einschalten des Systems bzw. 
von vorneherein verpolungssichere Steckverbindungen vorsehen.

Und jetzt zur Schutzbeschaltung: Der Pullup-Widerstand einer I2C-Leitung 
beträgt sicher mindestens 1 kOhm (I2C-Spezifikation: Treiberstrom); 
damit bleibt für die Längswiderstände 47 Ohm als realistischer Wert 
übrig. Wenn es also tatsächlich nicht ohne Schutzbeschaltung geht, dann 
sollte diese Dimensionierung gut arbeiten.

von Hendrik (Gast)


Lesenswert?

Danke Bernhard, deine Tipps waren wirklich sehr hilfreich. Ich denke 
auch, dass ich beim versehentlichen Anlegen von z.B. Versorgungsspannung 
(bei mir 12V) an eine I²C-Leitung kein guter Kompromiss zwischen Schutz 
und Funktion gefunden werden kann.

von Martin (Gast)


Lesenswert?

@Bensch:

>Der I2C ist ein LOKALER Bus und sollte eigentlich die Platine nicht
>verlassen. Und wenn's denn unbedingt sein muss, nimm einen I2C-Expander.

Was spricht dagegen, den I2C-Bus auch zwischen mehreren 
Platinen/Baugruppen einzusetzen, wenn die maximal zulässige Kapazität 
nicht überschritten wird ?

Ich frage deswegen, weil ich gerade ein modulares System 
(Baugruppenträger)entwickle, wo ein I2C-Bus über die Backplane geführt 
wird, der zweite über ein 3m-Kabel zu einem Handbedienteil.
Die Backplane arbeitet mit 400kHz ohne Störungen, das Kabel mit 50KHz, 
jeweils mit CRC gesichert.
Master ist ein LPC2148, die Slaves sind AVRs.

Gruß,
Martin

von Falk B. (falk)


Lesenswert?

@ Martin (Gast)

>Was spricht dagegen, den I2C-Bus auch zwischen mehreren
>Platinen/Baugruppen einzusetzen, wenn die maximal zulässige Kapazität
>nicht überschritten wird ?

Störeinkollungen und ggf. Masseverschiebung durch hohe Ströme. Wenn das 
nicht gegeben ist kann man I2C durchaus verlängern.

MfG
Falk

von Martin (Gast)


Lesenswert?

@Falk:

OK, dann bin ich erst mal beruhigt.

Auf unserer Backplane liegen unbelastete Masseleitungen zwischen den 
I2C-Signalleitungen, die stromführende Masseleitung ist 6-fach 
ausgeführt.
Das Handbedienteil braucht nur 100mA.

An Potentialverschiebungen hatte ich auch gedacht, weil es eine 
Motorsteuerung werden soll mit einigen Ampere Motorstrom. Bisher 
funktioniert es so sehr gut, aber der Test mit den dicken Motoren steht 
noch aus...

Mfg
Martin

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.