mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Schutzbeschaltung I²C


Autor: Christian K. (kalki_online)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

ich bin im Moment beim Entwurf meiner Schaltung, wo unter anderem I²C 
benutzt wird. Die Schaltung bekommt 4 Pins für den Eingang:
- +24V Power Supply
- GND
- I²C CLK
- I²C Data
Die I²C Pins sollen je nach Einsatz ggf. auch noch für analoge 
Eingangssignale missbraucht werden, so dass diese parallel auch noch auf 
einen A/D-Wandler geschaltet werden.

Ich möchte die Schaltung jetzt so weit wie Möglich vor Überspannung und 
Verpolung schützen. Für Power Supply soll dafür eine einfache 
Diodenschaltung herhalten. Nur die I²C Schnittstelle bereitet mir hier 
noch Kopfzerbrechen:
- Zum einen werden mehrere Schaltungen vernetzt, auf jeder Schaltung 
soll die Schutzbeschaltung kommen.
- Meines Wissens würde eine einfache Zenerdiodenschaltung nicht 
funktionieren, da mit Pull-Up-Widerstand vom I²C-Bus und Vorwiderstand 
der Zenerdiode ein Spannungsteiler entsteht, so dass ich entweder die 
von der Norm gesetzten Pegel für den I²C Standard nicht erreiche, oder 
aber die Leistung für den Vorwiderstand zu groß wird.

Hat daher einer eine Idee, wie ich hier eine vernünftige 
Schutzbeschlatung aufbauen kann?

Liebe Grüße
  Christian

Nachtrag: Die I²C-Pins sollen auch bis 24V vertragen können (der MCU 
verträgt aber nur max 5,3V)

Autor: Jörg S. (joerg-s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian K. schrieb:
> - Meines Wissens würde eine einfache Zenerdiodenschaltung nicht
> funktionieren, da mit Pull-Up-Widerstand vom I²C-Bus und Vorwiderstand
> der Zenerdiode ein Spannungsteiler entsteht, so dass ich entweder die
> von der Norm gesetzten Pegel für den I²C Standard nicht erreiche, oder
> aber die Leistung für den Vorwiderstand zu groß wird.
Die Z-Dioden dürften doch viel hochohmiger sein als die paar kOhm 
Pull-Ups. Ich kann da jetzt kein Problem erkennen.

Autor: Christian K. (kalki_online)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Aus meiner Sicht ist das Problem, dass die Z-Diode einen gewissen
Widerstand benötigt, um gewisse Ströme abbauen zu können und diese mir
nicht abraucht. Und genau dieser Vorwiderstand ist das Problem.

Ich hab mal einen Schaltplan angehängt, damit man das Problem vllt.
sieht und den Spannungsteiler erkennt ... vllt. gibt es auch noch eine
andere Variante mit der Zenerdiode.

Liebe Grüße
 Christian

Autor: Maximilian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es funktioniert so  es nicht, da
wenn IC1 die Leitung auf Low zieht
aus Sicht von IC2 ein Spannunsteiler
ergibt:

Vcc --- 4,7kOhm (Pullup) ----- ----- 18kOhm (Wiederstand  vor IC1) ---- 
Masse
                              |
                              |
                             IC2
Damit währe bei 5V Betriebsspannung eine Spannung von 3.9 V gegen Masse 
zu messenm, was normal ein Hight für IC2 währe und damit die Information 
falsch übertragen wurde.

Aber:
> Nachtrag: Die I²C-Pins sollen auch bis 24V vertragen können (der MCU
> verträgt aber nur max 5,3V)

Soll er die 24V als I²C-Betribsspannung oder als Spannung für den ADC 
verkraften?

Autor: Christian K. (kalki_online)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist genau das Problem, warum ich hier keine Z-Diode einsetzen kann.

Es geht mir eigentlich nur darum, dass die I²C-Schnittstelle überlebt 
wenn mir ein Depp da 24V Volt drauf gibt. Den A/D-Wandler kann man ja 
noch über Spannungsteiler absichern, der soll schließlich nur lesen und 
nicht den I²C-Bus bedienen.

Autor: Jörg S. (joerg-s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Es geht mir eigentlich nur darum, dass die I²C-Schnittstelle überlebt
>wenn mir ein Depp da 24V Volt drauf gibt.
Dann setz doch einfach ne Diode in Flussrichtung vom µC Pin gegen 
VCC-µC.

>Das ist genau das Problem, warum ich hier keine Z-Diode einsetzen kann.
Was Maximilian wohl meint ist das es schon so mit den 18k nicht 
funktioniert.
Wo kommen eigentlich die 18k Ohm her? Warum nicht viel viel 
Niederohmiger? Dieser Widerstand müsste schon wesentlich kleiner als die 
Pull-Ups sein damit der I²C noch halbwegs funktioniert.

Autor: Christian K. (kalki_online)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jörg S. schrieb:
>>Es geht mir eigentlich nur darum, dass die I²C-Schnittstelle überlebt
>>wenn mir ein Depp da 24V Volt drauf gibt.
> Dann setz doch einfach ne Diode in Flussrichtung vom µC Pin gegen
> VCC-µC.
>
Auch eine Diode dürfte einen Vorwiderstand zur Strombegrenzung 
benötigen, sonst fallen hier auf einmal rund 19 Volt als 
Kurzschlussstrom ab und mir raucht die Diode ab ... Vorwiderstand bringt 
aber das gleiche Problem mit, wie die Z-Diode ...

>>Das ist genau das Problem, warum ich hier keine Z-Diode einsetzen kann.
> Was Maximilian wohl meint ist das es schon so mit den 18k nicht
> funktioniert.
> Wo kommen eigentlich die 18k Ohm her? Warum nicht viel viel
> Niederohmiger? Dieser Widerstand müsste schon wesentlich kleiner als die
> Pull-Ups sein damit der I²C noch halbwegs funktioniert.

18k Ohm ist die oben beschriebene Strombegrenzung. Wenn der Widerstand 
sehr viel kleiner sein müsste (ich meine, definiert ist Low bis 0,3V, 
d.h. bei 5V I²C müsste der Strombegrenzende Widerstand hier bei ca. 300 
Ohm liegen) und hier dann 24V anliegen, muss der Widerstand mal eben 
rund 1,2 Watt (19V * 0,063A) verbraten ... für ein kleines SMD-Bauteil 
etwas viel ...

Autor: Jörg S. (joerg-s)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Christian K. schrieb:
> Jörg S. schrieb:
>>>Es geht mir eigentlich nur darum, dass die I²C-Schnittstelle überlebt
>>>wenn mir ein Depp da 24V Volt drauf gibt.
>> Dann setz doch einfach ne Diode in Flussrichtung vom µC Pin gegen
>> VCC-µC.
> Auch eine Diode dürfte einen Vorwiderstand zur Strombegrenzung
> benötigen, ...
Natürlich.

> 18k Ohm ist die oben beschriebene Strombegrenzung. Wenn der Widerstand
> sehr viel kleiner sein müsste (ich meine, definiert ist Low bis 0,3V,
> d.h. bei 5V I²C müsste der Strombegrenzende Widerstand hier bei ca. 300
> Ohm liegen) und hier dann 24V anliegen, muss der Widerstand mal eben
> rund 1,2 Watt (19V * 0,063A) verbraten ... für ein kleines SMD-Bauteil
> etwas viel ...
Zumindest würde ich es so Dimensionieren das der Widerstand bei 24V an 
seiner Leistungsgrenze ist.
SMD 1206 = 0,25W -> @19V = 1,4k Ohm. Wäre schon mal um einige Faktoren 
kleiner.


Ich vermute aber mal das man mit so ein paar passiv Teilen nicht 
wirklich was erreichen kann. Möglicherweise muss was aktives mit MOSFET, 
IC o.ä. her.
Im Anhang mal ein Schnellschuss ohne Funktionsgarantie :)

Autor: Michael X. (Firma: vyuxc) (der-michl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also einen Level-Shifter für 24V-5V.
http://www.eng.auburn.edu/~wilambm/pap/2003/MEMS_Boise.pdf

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
I2C ist nicht für außerhalb des Gerätes gedacht, daher gibt es auch 
keine Schutz-ICs dafür.

Für die Verbindung von Geräten nimm besser die UART über 
CAN-Transceiver, die halten +/-36V aus (PCA82C251).
Zusätzlich funktionieren sie noch bei GND-Differenzspannungen bis zu 
+/-5V.
Durch den dominanten Pegel ist auch keine Richtungsumschaltung wie bei 
RS-485 nötig.

Also eine sehr robuste und einfache Lösung.


Peter

Autor: Helmut Lenzen (helmi1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum so kompliziert


+5V------+-----------+-------------
         |           |
         -           -
         ^ Z         ^ 1N4007
         -           -
         |           |
         GND         |
                     |
Eingang--- PR -------+-------- CPU
                     |
                     -
                     ^ 1n4007
                     -
                     |
                    GND

Z = Zdiode 5.6V / 1.3W

PR = Polyfuse mit 100mA von z.B. Littelfuse

Die Polyfuse ist normalerweise niederohmig. Wird jetzt eine erhoehte 
Spannung auf den Eingang gegeben fliesst ein Strom ueber eine der beiden 
1N4007 . Dadurch erwaermt sich die Polyfuse und ihr Widerstand erhoeht 
sich. Dadurch wird der Strom auf ungefaehrliche Werte begrenzt.

Die Z-Diode dient dazu ein Anstieg der 5V zu begrenzen.

Gruss Helmi

Autor: Abdul K. (ehydra) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Als Alternative zur PR:
- kleine Glühlampe
- JFET oder depletion-MOSFET

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zwischen den zusätzlichen Schutz und den µC sollte noch ein Widerstand 
(ca. 1 K). Nur so kann der Schutz 2 Stufig wirken:
Die externe Schaltung begrenzt die Überspannung auf etwa 0,7 V, der 
Widerstand mit den internen Schutzdioden von den 0,7 V auf verträgliche 
0,3 V.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Helmut Lenzen schrieb:

> Die Polyfuse ist normalerweise niederohmig. Wird jetzt eine erhoehte
> Spannung auf den Eingang gegeben fliesst ein Strom ueber eine der beiden
> 1N4007 .

Bist du sicher, dass eine bekannt gemächliche 1N4007 Diode (30µs) leitet 
bevor der angeschlossene Chip die Grätsche gemacht hat?

Ausserdem sollte man berücksichtigen, dass die Kapazität zweier solcher 
Dioden zusammen bei 30pF liegt, der üblichen Daumenregel zufolge 30cm 
Kabel entsprechend. Wenn ein paar solcher Nodes zusammen kommen kann das 
signifikant werden.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ulrich schrieb:

> Zwischen den zusätzlichen Schutz und den µC sollte noch ein Widerstand
> (ca. 1 K).

Beim bidirektionalen I2C Bus ist das keine wirklich gute Idee.

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt iwo ne Beschreibung, wie man I2C über Optokoppler führt. Vielleicht 
gibt das einen Denkanstoß.

Mit passiver Schutzschaltung wird das nix, aber Du kannst die Treiber 
nach aussen verlagern und diskret mit Transistoren aufbauen. Dann kannst 
Du das entsprechend spannungsfest ausführen.

Autor: Jörg S. (joerg-s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sven schrieb:
> Gibt iwo ne Beschreibung, wie man I2C über Optokoppler führt. Vielleicht
> gibt das einen Denkanstoß.
Ja, bei NXP gab es mal so ein App-Note. Ich glaube auch im ADuM1251 
Datenblatt ist was drin.

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die 1N4007 ist beim Auschalten gemächlich, aber nicht bein Einschalten. 
Wie Schnell sich die Schaltung nach überspannung erhohlt sollte 
nebensächlich sein.

Wegen des Spannungsabfalls kann tatsächlich eine Diode parallel zum 
Widerstand sinnvoll sein. Ganz ohne extra Trennung hefen aber die Extra 
Dioden nicht viel, denn die Spannung kann dann trotzdem zu hoch werden.

Autor: quant (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute,
der thread ist zwar nicht mehr aktuell aber vllt antwortet ja trotzdem 
einer. ich habe mir letztens durch falsches anstecken eines steckers den 
i2c eines relativ teuren moduls zerschossen. Da ich nun dabei bin eine 
kleine platine zu entwerfen möchte ich gleich eine passende 
schutzbeschaltung für den i2c vorsehen. (natürlich gibt es inzwischen 
auch einen verpolungssicheren stecker :)) ich habe nun eine idee und 
wollte mal fragen ob sie sich so realisieren lassen könnte (siehe bild). 
Die beiden dioden sind supressordioden, die ab 4,1V leitend werden. Mein 
(zugegeben unschöner) Plan ist nun, dass bei einer überspannung die 
diode leitend wird und der strom über die diode und den 33ohm widerstand 
abfließt. dieser soll nicht viel leistung vertragen und nach kurzer zeit 
abrauchen.
alternativ könnte man auch die oben genannte polyfuse nutzen. zu dieser 
muss ich mich jedoch erstmal belesen da ich sie noch nie verwendet habe.

was haltet ihr von der idee? spricht rein technisch (außer vllt der 
feuergefahr) etwas dagegen?

gruß quant

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.