Forum: Mikrocontroller und Digitale Elektronik 100Ohm Widerstände beim I2C


von Wheels C. (wheels)


Angehängte Dateien:

Lesenswert?

Hallo,

weiß jemand wozu die 100Ohm Widerstände in der SCL und SDA-Leitung des 
I2C dienen könnten und wie sie berechnet werden?

schon mal Danke

grüße Wheels

von Alex W. (a20q90)


Lesenswert?

Kurzschlussschutz damit bei solchem die Ein/Ausgänge nicht überlastet 
werden und der uC abschmiert/kaputt geht

von Wheels C. (wheels)


Lesenswert?

Und wie kann man sie berechnen?

von ptc (Gast)


Lesenswert?

ergibt nach Ohmschen gesetz 50mA, ist also noch im grünen bereich für 
nen Avr.
würde die widerstände aber nicht unbedingt verwenden, ich denke dadurch 
könnte das signal schlechter werden.

von Klaus R. (klara)


Lesenswert?

Hallo Wheels,
diese Widerstände sind nicht als Kurzschlussschutz gedacht. Der Bus ist 
ein Openkollektor - System. Wenn da eine Steuerleitung kurzgeschlossen 
wird, so fliesst der Strom nur durch den externen Pullup-Widerstand 
gegen Masse. Was anderes machen die I2C-Bausteine auch nicht. Sie 
erzeugen jeweils mit jeder "Null" einen Kurzschluss gegen Masse.
Diese Widerstände könnte man bei kurzen Leitungen auch weglassen. Bei 
längeren Leitungen verringern diese Widerstände Reflektionen. Letztlich 
verringern sie auch die kapazitive Belastung verursacht durch die 
einzelnen I2C-Ports. Je höher die Taktrate und je länger die Leitung, je 
eher treten diese Wirkungen auf. Ist übrigens, alles bei Philips 
nachzulesen.
Man geht mit den Widerständen bis zu 330 Ohm hoch. So habe ich sie auch 
bei mir im Einsatz.
Noch ein Zusatz: Ich arbeite in der Regel mit 5V. Bei 3,3V könnte der 
Vorwiderstand geringer ausfallen. Wenn man 330 Ohm anteilig vermindert 
so käme man für 3,3V - Bussysteme auf 218 Ohm. Mehr würde ich da nicht 
einsetzen. Wenn es wichtig wäre, so sollte man weiter googlen.
Gruss Klaus.

von Wheels C. (wheels)


Lesenswert?

Vielen Dank Klaus. Nur was verstehst Du unter den Reflektionen?

von Oliver H. (Firma: OliverHeinrichs.de) (dobson)


Lesenswert?

Wheels C. schrieb:
> Nur was verstehst Du unter den Reflektionen?

Induktive Überlagerungen.

Zum Beispiel legt man ja auch keine Netzleitungen (L-N-PE) und 
Netzwerkleitungen (CAT5, CAT7, e.t.c.) in einen Schacht zusammen.

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Oliver Heinrichs schrieb:
> Induktive Überlagerungen.
>
> Zum Beispiel legt man ja auch keine Netzleitungen (L-N-PE) und
> Netzwerkleitungen (CAT5, CAT7, e.t.c.) in einen Schacht zusammen.

Darum geht es aber nicht.

Schickt man eine Welle in eine Leitung, wird diese an jeder 
"Bruchstelle" gebrochen und reflektiert. Die Welle kommt dann zurück und 
überlagert sich mit den eingehenden. Das kann so weit gehen, dass sich 
die Wellen aufheben.

Aus diesem Grund durfte man früher bei einem sogenannten Yellow-Cable 
(vorläufer der einigen noch bekannten Coax-Netzwerke) die Daten nur an 
bestimmten Stellen reinschicken und rausholen (Wellenberg). AUch mussten 
Leitungen eine bestimmte Länge haben, damit sich Reflexionen nicht so 
sehr auswirken.

von Wheels C. (wheels)


Lesenswert?

Hab's verstanden und Danke dafür.

Grüße Wheels

von Ronny T. (Gast)


Lesenswert?

Nennt sich Serienterminierung. Sehr schön erklärt werden die 
Zusammenhänge hier: (wo sonst? :-)

http://www.mikrocontroller.net/articles/Wellenwiderstand

von Martin (Gast)


Lesenswert?

Die 1 KOhm Pullup gegen 5 V scheinen mir etwas klein geraten zu sein. 
Für I2C-Bausteine (100 KHz) nehme ich 4,7 KOhm und keine Widerstände in 
der Takt- und Datenleitung.

von Simon K. (simon) Benutzerseite


Lesenswert?

Entschuldigung, aber keines der bisher genannten Sachen trifft zu. 
Serienwiderstände bringen nur bei Point-To-Point Verbindungen etwas 
gegen Reflektionen. Siehe Artikelsammlung.

http://www.nxp.com/acrobat_download/usermanuals/UM10204_3.pdf

Seite 46:
----
As shown in Figure 33, series resistors (Rs) of, e.g., 300 Ω can be used 
for protection
against high-voltage spikes on the SDA and SCL lines (resulting from the 
flash-over of a
TV picture tube, for example). If series resistors are used, designers 
must add the
additional resistance into their calculations for Rp and allowable bus 
capacitance
----

Da ist auch ein Diagramm, wo der maximale Wert von Rs abgelesen werden 
kann. Er ist abhängig von der Größe des Pullup-Widerstands.

von Simon K. (simon) Benutzerseite


Lesenswert?

Ronny T. schrieb:
> Nennt sich Serienterminierung. Sehr schön erklärt werden die
> Zusammenhänge hier: (wo sonst? :-)
>
> http://www.mikrocontroller.net/articles/Wellenwiderstand

Das ist Falsch.

Zitat aus dem von dir verlinkten Artikel:

----
Datensignale können meist problemlos mit Serienterminierung betrieben 
werden. Taktsignale dürfen nur bei Punkt zu Punkt Verbindungen mit 
Serienterminierung betrieben werden (ein Sender und nur ein Empfänger). 
Anderenfalls kann es zu Fehlfunktionen kommen, da ein Takteingang, 
welcher in der Mitte der Leitung sitzt für ein paar Nanosekunden eine 
Spannung am Eingang anliegen hat die etwa VCC/2 entspricht.
----

von Ronny T. (Gast)


Lesenswert?

Hmmm... aber in diesem Beispiel ist am I2C ja auch nur 1 Endpunkt. 
Insofern könnte man da dann auch wieder Serienterminieren.

von Simon K. (simon) Benutzerseite


Lesenswert?

Da sind doch 4 Schraubklemmen (Oder was das sein soll). Also keine P2P 
Verbindung.

von Ronny T. (Gast)


Lesenswert?

Hätte mal auf irgendwas Richchtung Modulsteckplatz getippt. Insofern: 
Wenn es ein Bus ist, dann wären aber die 100Ohm Widerstände schon fehl 
am Platz. Genau aus dem von Dir genannten Grund.

von Klaus R. (klara)


Lesenswert?

Hallo,
zumindest verringern Serienwiderstände bei den I2C-Clients die 
Auswirkungen der Portkapazitäten. Dies macht sich in Grenzfällen positiv 
bemerkbar. Ich denke da auch an Laufzeitverzögerungen. Der DS1631 ist da 
nach meiner Meinung etwas empfindlich. Wenn der PCF8574 noch zuverlässig 
arbeitet, tut es ein DS1631 schon lange nicht mehr.
High-voltage spikes habe ich zwar noch nicht beobachtet. Dann müsste man 
ja vorsichtshalber auch den I2C-Master schützen. Das wäre aber etwas für 
ESD-Bausteine.
Gruss Klaus.

von Reinhard Kern (Gast)


Lesenswert?

Hallo,

die ganze Diskussion dreht sich um etwas, was es eigentlich nicht gibt: 
I2C ist kein Industriebus, vielmehr Lichtjahre davon entfernt. Gedacht 
ist I2C als Inter-IC-Bus, also auf der Leiterplatte zum nächsten IC.

Deshalb ist keineswegs alles Gesagte falsch, aber für den Zweck der 
Übung, etwa ein RTC-Chip an die CPU anzuschliessen, ist es irrelevant.

Für mich ist die Idee, Microcontrollerpins direkt per Kabel in die böse 
Welt da draussen zu schicken, einfach abwegig.

Gruss Reinhard

von Jürgen H. (Gast)


Lesenswert?

An oben gezeigtem Schaltungsauszug werden üblicherweise 4 bis 12 ATMega8 
als I2C-Slaves angeschlossen. Die Verdrahtung zu den Slaves ist meist 
als  Sternverdrahtung ausgeführt. Die einzelnen I2C-Leitungen zu den 
Slaves sind üblicherweise 5 bis ca. 40 cm lang.

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.