Forum: Mikrocontroller und Digitale Elektronik I2C vor Burst/Surge/ESD schützen


von I2C_Protector (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

Muss bei einer Schaltung die LEIDER nach aussen geht den I2C vor 
Surg,Burst und ESD schützen.
I2C Frequenz ist 50khz.
Kann meine angehangene Schaltung funktionieren, oder kennt jemand eine 
alternative??

Dankeschön für eure Erfahrungen im Vorhinein

von logische fortsetzung (Gast)


Lesenswert?

bav99

von I2C_Protector (Gast)


Lesenswert?

BAV99 wird wegen den 70V wohl gleich mal in die Kniee gehen :-(

C1 ist um den Burstimpuls abzufangen.
D1 ist um ESD und Überspannungen (Surge) abzufangen.
RS muss meinen I2C Bus am uC schützen.
(bei 7,5V Breakdown -> um die 28mA Strom in den uC Portpin)

Ich bin mir aber eben nicht sicher, ob ich im normalen "ungestörten" 
Betrieb mit dem Kondensator und dem Serienwiderstand einen schönen 
Betrieb zustande bekomme.

von bav99 (Gast)


Lesenswert?

welche 70v

von I2C_Protector (Gast)


Lesenswert?

Maximum Repetitive Reverse Voltage : 70V

von t6zz4i7h (Gast)


Lesenswert?

Ein I2C-Bus ist von der Auslegung her schonmal nicht dafür gedacht,
in rauhen Umgebungen eingesetzt zu werden. Bei diesem Einsatzzweck
müssen andere geeignete Kommunikationsschnittstellen gewählt werden.

Die I2C-Spezifikation schreibt vor, dass die maximale kapazitive Last am 
Bus 400pF betragen darf.

Der Einsatz eines 10nF-Kondensators ist daher nicht möglich.

Die I2C-Spezifikation schreibt vor/empfiehlt ausdrücklich vom Bus zu 
jedem I2C-Teilnehmer einen 100Ohm-Serienwiderstand vorzusehen.
Hier könnte man durch eine Splittung in z.B. 2x 47Ohm eine 
Doppel-Schottky-Diode als Schutzelement dazwischensetzen. Leider hat das 
dann aber auch keinen so großen Effekt:

U_max = PullUp-Spannung des I2C + (0,1A * 47Ohm) => U_delta = 4,7V.

Das reißt es nicht wirklich raus, da man den Serienwiderstand leider 
nicht soweit vergrößern kann.

So schließt sich der Kreis: Ein I2C-Bus ist nicht sinnvoll abzusichern. 
Das liegt einfach daran, dass er dafür entwickelt worden ist, um mehrere 
Chips auf der selben Platine (bestenfalls noch über Kabel/Stecker im 
selben Gerät) miteinander zu verbinden. Ohne ESD-Gefahr.

von Jörg S. (joerg-s)


Lesenswert?

>Der Einsatz eines 10nF-Kondensators ist daher nicht möglich.
Mit geringerer Frequenz schon.

>Das liegt einfach daran, dass er dafür entwickelt worden ist, um mehrere
>Chips auf der selben Platine (bestenfalls noch über Kabel/Stecker im
>selben Gerät) miteinander zu verbinden. Ohne ESD-Gefahr.
Dann schau dir mal ein VGA, DVI und HDMI Kabel an. Da wirst du eine I2C 
Verbindung finden die von Gerät zu Gerät geht :)
In der Richtung würde auch auch mal wegen einer Schutzbeschaltung 
suchen.

von I2C_Protector (Gast)


Lesenswert?

Kann jetzt meine Schaltung funktionieren, oder nicht??

von t6zz4i7h (Gast)


Lesenswert?

Thema 1:

Die I2C-Spezifikation schreibt die maximale kapazitive Bus-Belastung nur 
bezüglich der in Geschwindigkeitsklassen angegebenen Übertragungsmodi 
vor:

Standard mode -> maximal 400pF,
Fast mode -> maximal 400pF,
Fast mode plus -> maximal 550pF.

Jeder Busteilnehmer darf maximal 10pF belasten.

Zusätzlich sind z.B. noch minimale Slew rates vorgeschrieben.

10nF am Bus sind daher nicht möglich, möchte man die I2C-Spezifikation
erfüllen - auch wenn die Busgeschwindigkeit nur 1 Baud sein sollte.


Thema 2:

Wenn Leute vom Hochhaus springen, springe ich noch lange nicht 
hinterher. Nochmal: I2C ist NICHT für Anwendungen entwickelt worden, bei 
denen der Bus aus dem Gerät heraus geführt wird, sondern für 
IC-Verbindungen auf einer Platine oder (mit ganz viel Liebe) auch über 
mehrere Platinen hinweg.
Man bedenke auch, dass I2C extrem störanfällig ist (elektrisch) und von 
sich aus keine Fehlererkennung, geschweige denn Fehlerkorrektur 
mitbringt.

von t6zz4i7h (Gast)


Lesenswert?

@I2C_Protector:

Nein. Die Schaltung würd eich SO niemals freigeben.

1) Zwischen PullUp (jetzt noch 3k3), also dem eigentlichen Bus, und 
jedem Bus-Teilnehmer bitte einen 100Ohm-Widerstand einfügen. Bei Dir 
also zwischen RP und ZUM_UC_PIN.

2) Der PullUp-Widerstand ist ein wenig hoch. Es gibt eine Tabelle in der 
I2C-Spezifikation, da kommt man ungefähr bei 1k7...1k8 raus.

3) Je nachdem, wie Dein I2C-Bus dann aussieht (Wie ist die Bus-Belastung 
im Ausgangszustand? Wieviele Bus-Teilnehmer hast Du schon?), hast Du 
mehr oder weniger viel Luft zum Spielen. Die kapazitive Bus-Last kannst 
Du ganz wunderbar mit dem Oszilloskop messen -> Anstiegszeit auf 63% 
wäre 1 Tau. Das R kennst Du (= RP), C lässt sich dann ja einfach 
ausrechnen.
Kennst Du die kapazitive Bus-Last, kannst Du im Normalfall mit der 
Differenz spielen (400pF - aktuelle Bus-Last).

4) Spielen bedeutet: Ja, man kann dann kleine C's dranhängen. Der Schutz 
gegen ESD wird alleine schon durch einen kleinen Kerko im Bereich 10p 
gewährleistet. Hier geht es nicht um einen Ladungsausgleich, sondern 
primär darum, dass die Spannung im Kerko überschlägt und die Energei 
verbrannt wird. Kerkos haben bei solchen Spannungen sowieso kaum noch 
Kapazität. Wer hier mit Ladungsausgleich rechnet, kommt nicht weit.

Unschön wären hingegen längere mittlere Spannungen, niederohmig 
eingekoppelt. Wenn Du auf der CLOCK- oder DATA-Leitung z.B. mal 12V mit 
einem Netzteil einkoppelst, brennt Dir der Open-Kollektor-Eingang von 
dem IC weg, der kommunizieren möchte. Da kannst Du leider auch nichts 
gegen tun. I2C ist hier einfach niemals kurzschlussfest.

Eine minimale Lösung, die ich oben schon mal beschrieben hatte (mit 
47Ohm + 47Ohm + Doppel-Schutzdiode) könnte ein wenig helfen bei leichten 
Überspannungen. Die können dann auch dauerhaft anliegen. Die 
Schutzmaßnahme muss dann aber vor jedem Busteilnehmer auf CLOCK und 
DATA.

von Ratzebu (Gast)


Lesenswert?

Er hat ja e eine P6KE Diode gegen Überspannungen drinnen. Gerade ans 
Labornetzteil gehangen. Bei 6.3V fliest bereits 1A. Das dürfte gegen 
Transienten helfen.

von Simon K. (simon) Benutzerseite


Lesenswert?

Eine P6KE hat üblicherweise auch zu viel Sperrschichtkapazität für I2C.

von mark (Gast)


Lesenswert?

I2C über Kabel ist wirklich bäh - verursacht viele EMV Burst Surge aber 
auch Ein/Ausschalt Probleme. Wenn man sich nicht davon abbringen lassen 
will oder wenn man im Consumerbereich arbeitet:
Geschirmte (Koax) Leitungen helfen wenn das Layout der Leiterplatte gut 
ist.
Ist auch bei den oben aufgeführten HDMI... so gemacht - alles geschirmt.

von Klaus (Gast)


Lesenswert?

t6zz4i7h schrieb:
> Die I2C-Spezifikation schreibt vor/empfiehlt ausdrücklich vom Bus zu
> jedem I2C-Teilnehmer einen 100Ohm-Serienwiderstand vorzusehen.

Die 400pF habe ich in der Spec gefunden, gib doch mal eine Quelle für 
die 100 Ohm an.

MfG Klaus

von GB (Gast)


Lesenswert?

Da steht die Lösung für HDMI drin, auch für den I2C:

http://bourns.com/data/global/pdfs/Bourns_HDMI_1_3_PortNote.pdf

Allerdings Surge wirst Du damit nicht ableiten können, dazu sind die 
Dioden dann doch zu klein.

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.