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
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.
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.
>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.
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.
@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.
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.
Eine P6KE hat üblicherweise auch zu viel Sperrschichtkapazität für I2C.
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.