Störempfindlichkeit des I2C

#3549787
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
Gast #3549987
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.
Gast #3549995
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??????
#3550043
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.
Gast #3596586
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ß
Gast #3596633
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
#3596727
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
#3597246
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 ;)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren