Forum: Mikrocontroller und Digitale Elektronik Störempfindlichkeit des I2C


von Andreas H. (andreas1993)


Lesenswert?

Guten Tag,

Ich bin am überlegen, ob ich einen SPI oder I2C-Schnittstelle nehmen 
soll. Hab schon viel über die Vor- bzw.
Nachteile gelesen.

Meine Frage wäre jetzt, warum ist die I2C-Schnittstelle
störempindlicher?

Gruss
Andreas

von Frank K. (fchk)


Lesenswert?

Andreas Hoffmann schrieb:

> Meine Frage wäre jetzt, warum ist die I2C-Schnittstelle
> störempindlicher?

1. SCL und SDA sind bidirektional, dadurch wird es schwerer, 
Treiberbausteine dahinter zu schalten.

2. SPI arbeitet mit Push-Pull-Ausgängen, d.h. das Signal wird aktiv auf 
1 oder 0 getrieben. Bei I2C können die Ausgänge nur nach 0 treiben, der 
1-Zustand wird durch einen Pullup realisiert, der natürlich nicht so 
stark sein darf, denn sonst würde der 0-Zustand nicht erreicht werden 
oder zu viel Energie verbrauchen.

3. Das Zeitverhalten zwischen SCL und SDA (wer wird zuerst 0) ist 
empfindlicher, bei Störungen kann der Bus hängen bleiben. SPI ist 
einfacher und robuster. Das maximale, was passieren kann, sind 
Übertragungsfehler.

fchk

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Andreas Hoffmann schrieb:
> Meine Frage wäre jetzt, warum ist die I2C-Schnittstelle
> störempindlicher?

Wobei sich die Frage m.E. nur bei sehr langen Leitungen stellt oder 
vielleicht bei sehr schlechten PCB-Layouts. Warum fragst Du?

von T.roll (Gast)


Lesenswert?

Mal auch ein bisschen was für I²C und gegen SPI:
* Bei SPI brauchst du pro Slave eine Select-Slave(SS)-Leitung, bei I²C 
reichen für alle Slave einmalig zwei Leitungen.

SPI: 3 Leitungen(MOSI,MISO,SCK) + 1 für jeden Slave
I²C: 2 Leitungen (SDA,SCL)

* Bei SPI ist nicht viel festgelegt. Mehrere Bausteine können zueinander 
inkompatibel sein. Der Master muss dann öfter seine SPI-Einstellungen 
ändern. Üblicherweise gibt es 4 Modi.

von spontan (Gast)


Lesenswert?

Andreas Hoffmann schrieb:
>Meine Frage wäre jetzt, warum ist die I2C-Schnittstelle
>störempindlicher?

Wenn die Schnittstellen so betrieben werden, wie sie mal vorgesehen 
waren (I2C als Bus zwischen IC auf Leiterplatten und nicht über lange 
Leitungen, wie es manche "Spezialisten" tun), dann ist die 
Störempfindlichkeit gar kein Thema.

Wie ist denn Deine Aufgabenstellung??????

von operator (Gast)


Lesenswert?

Frank K. schrieb:
> 1. SCL und SDA sind bidirektional,

SCL ist doch nur unidirektional und wird vom Master vorgegeben?

Und bei SPI kann man auch eine Daisy Chain betreiben, womit die 
unzähligen CS Leitungen entfallen.

von Peter P. (nuppel)


Lesenswert?

Naja SCL sehe ich schon als bidirektional an da der Slave auch
"Clock Stretching" betreiben könnte.

Angenommen er braucht noch mal ein wenig Zeit um Daten zu sortieren
zieht er SCL weiter auf "low".
So lange steht der Bus.

In der I2C-Spezifikation sind keine Maximalzeiten für das "Clock 
Stretching"  angegeben.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Es geht ja hier nicht darum zum 1000sten Mal die Unterschiede und 
Spezifikationen zu diskutieren, sondern ausschließlich um die 
Störempfindlichkeit.

Torsten C. schrieb:
> Warum fragst Du?

spontan schrieb:
> Wie ist denn Deine Aufgabenstellung?

Ich bin gespannt auf die Antwort von Andreas Hoffmann, bis dahin ist 
m.E. alles gesagt. Oder?

von Andreas H. (andreas1993)


Lesenswert?

Guten Abend,

ich hab keine Aufgabenstellung. Ich will nur mich mit Schnittstellen 
beschäftigen und langsam anfangen sie in mein Programm mit ein 
zubeziehen.

mfg
andreas

von Jobst M. (jobstens-de)


Lesenswert?

Dann solltest Du Dich mit beiden Schnittstellen befassen. Denn evtl. 
kannst Du Dir bei einem IC nicht aussuchen, welche Schnittstelle es hat.


Gruß

Jobst

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Jobst M. schrieb:
> Dann solltest Du Dich mit beiden Schnittstellen befassen.

Macht er ja, er hat ja nach beiden gefragt.

@Andreas: Und wenn man aus dem Gerät heraus will, gib's noch RS485, CAN, 
LIN usw., die könnten Dich auch interessieren.

von Jobst M. (jobstens-de)


Lesenswert?

Torsten C. schrieb:
> Macht er ja, er hat ja nach beiden gefragt

Andreas Hoffmann schrieb:
> Ich bin am überlegen, ob ich einen SPI oder I2C-Schnittstelle nehmen
> soll.

Das oder macht mich da etwas skeptisch ...

von Michael S. (Gast)


Lesenswert?

Hallo,

ich schreibe das hier rein, da ich nciht extra einen neuen beitrag 
machen möchte. Ich muss jetzt auch zum ersten mal den I2C Bus auf meiner 
Platine verwenden. Er ist ca 7cm lang. auf Bottom führt eine 8mm Breite 
Leiterbahn die eine Spannung von 24V DC und eine max Stromstärke von 4A 
hat. Auf der gesamten Innenlage darüber fließt der Strom wieder zurück ( 
GND Potential ) auf der 2. Innenlage sind nun Signalleitungen und auch 
der I2C Bus. Nun verläuft der I2C-Bus leider zeitweise parallel zu der 
24V 4A Leiterbahn von Bottom und schneidet sie dann schließlich. Ich 
kann das absolut nicht einschätzen, ob das zu störungen/ dem ausfall des 
I2C Buses führen kann. Es ist leider sogut wie nicht möglich den Bus 
anderst zu Routen/ extrem aufwändlig und er verlängert sich extrem.

Gruß

von Mike (Gast)


Lesenswert?

spontan schrieb:
> Wenn die Schnittstellen so betrieben werden, wie sie mal vorgesehen
> waren (I2C als Bus zwischen IC auf Leiterplatten und nicht über lange
> Leitungen, wie es manche "Spezialisten" tun)

Selbst der Erfinder des I²C (Philips/NXP) zählt sich zu den 
"Spezialisten" und veröffentlicht in seiner Application Note AN10658 
Hinweise zur Buspufferung und den Betrieb bis 120m Buslänge

www.nxp.com/documents/application_note/AN10658.pdf

von Frank K. (fchk)


Lesenswert?

Michael S. schrieb:

> Platine verwenden. Er ist ca 7cm lang. auf Bottom führt eine 8mm Breite
> Leiterbahn die eine Spannung von 24V DC und eine max Stromstärke von 4A
> hat. Auf der gesamten Innenlage darüber fließt der Strom wieder zurück (
> GND Potential ) auf der 2. Innenlage sind nun Signalleitungen und auch
> der I2C Bus.

Die 4A über die Ground-Plane können unangenehm werden, weil Du Dir dann 
Potentialunterschiede durch den Spannungsabfall einhandeln kannst. 
Versuche, die Rückleitung der 4A-Leiterbahn nicht über den Ground Layer 
zu realisieren, sondern über einen anderen Layer, und zwar so, dass der 
Abstand zwischen Hin- und Rückleitung an jedem Punkt minimal ist. Dann 
nämlich heben sich die Felder der beiden Leiterbahnen nahezu auf. Die 
Rückleitung verbindest Du an EINER Stelle mit der Ground Plane. Dann 
dürfte Dir kein Ungemach drohen.

Signale sollten die 4A-Leiterbahnen außerhalb des von Hin- und 
Rückleiter aufgespannten Fläche kreuzen. Eventuell musst Du die Layer 
umsortieren.

Das sind alles Vorsichtsmaßnahmen. Ich kann nicht sagen, ob die 
Maßnahmen in Deinem Fall unbedingt notwendig sind, sie schaden aber 
keinesfalls.

fchk

von Mike (Gast)


Lesenswert?

Michael S. schrieb:
> Ich kann das absolut nicht einschätzen, ob das zu störungen/ dem ausfall
> des I2C Buses führen kann.
Das kommt drauf an, wie hoch die Stromänderungen auf deiner 4A Leitung 
sein können und ob während der Änderungen I2C-Kommunikation stattfindet 
soll.

von R42 (Gast)


Lesenswert?

Zeig mal das Layout, ansonsten ist wieder R42 zu gross.

von Peter D. (peda)


Lesenswert?

Michael S. schrieb:
> Stromstärke von 4A
> hat. Auf der gesamten Innenlage darüber fließt der Strom wieder zurück

Das macht man nicht. Hohe Ströme und auch Schutzerde führt man an den 
Planes vorbei (z.B. Split-Plane) und verbindet sie an einer Stelle mit 
einem Net-Tie.

von Jörg S. (joerg-s)


Lesenswert?

Mike schrieb:
> spontan schrieb:
>> Wenn die Schnittstellen so betrieben werden, wie sie mal vorgesehen
>> waren (I2C als Bus zwischen IC auf Leiterplatten und nicht über lange
>> Leitungen, wie es manche "Spezialisten" tun)
> Selbst der Erfinder des I²C (Philips/NXP) zählt sich zu den
> "Spezialisten" und veröffentlicht in seiner Application Note AN10658
> Hinweise zur Buspufferung und den Betrieb bis 120m Buslänge
In der AN10216 geht's auch bis 1km ;)

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.