Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: I2C-Busleitung Kategorie: I²C-Bus (von André H. - 27.08.2005 11:41)
Als Antwort auf I2C-Busleitung von wema - 24.08.2005 12:28
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT V3.0
Hallo wema,

> leider ist mir bei meinem letzten Beitrag einer Fehler unterlaufen und der Text wurde in der
> falschen Katergorie abgelegt (Admin, bitte den Text unter "2W-Bus" löschen). Daher hier nocheinmal
> meine Anfrage einschl. einer Ergänzung:

Bitte schreibe es, wenn ein Thread entfernt werden soll, immer kurz als Antwort auf den
betreffenden Thread mit dem Topic "Thread löschen" (oder ähnliches) und nicht inden neuen Thread.
So sehe ich das schneller und kann entsprechend schnell handeln.
Wenn allerdings nur die Kategorie falsch ist, reicht ein entsprechender Hinweis.
Ich ändere dann die Kategorie des gesamten Threads.

> obwohl ich sämtliche Beiträge bzgl. des I2C-Busses gelesen habe, sind bei mir doch noch einige
> Fragen offen.
>
> 1. In "Tipps und Ergänzungen" steht ja einiges über einen langen I2C-Bus. Haben die Daten auch
> heute noch Gültigkeit?

Ja, das haben sie. Allerdings müsste ich mittlerweile einiges hinzufügen, da ich dort
noch nicht alle Möglichkeiten, die heute möglich sind, beschrieben habe.

> Oder sind die Module (MaxRel8 und HSRel5) bereits intern mit einem 330
> Ohm- Widerstand zum Bus hin ausgerüstet?

Das kommt auf die Ausführung an.
Alle meine I²C-Bus-Komponenten ohne I²C-Bus-Puffer oder Extender haben immer
einen 330 Ohm-Widerstand bestückt.
Bei einem gepufferten Bus allerdings wären die 330 Ohm, wegen der höheren Ströme
eher hinderlich. Darum gibt es hier keine.
Ob ein Bus gepuffert ist, oder nicht, hängt nicht nur von Puffern oder Bus-Extendern ab,
sondern besonders auch vom gesamt-Pull-Up.
D.h., auch, wenn man mit I²C-Bus-Puffern arbeitet, kann ein Bus ungepuffert betrieben werden.
Dabei definiere ich gepuffert und ungepuffert einfach in der Abhägigkeit des gesamt-Pull-Ups.
Bis hinab zu ungefähr 3k gesamt Pull-Up definiere ich als ungepuffert.
Darunter als gepuzffert. Dann mu� aber auch mit I²C-Bus Puffern oder Extendern gearbeitet werden,
Sonst können es einem die I²C-Bus-ICs übelnehmen.

Das CC2-ReglerBoard mit bestückten I²C-Bus-Puffer oder I²C-Bus-Extender, das gilt auch
für das CC2-StarterBoard, ist ein Sonderfall.
Standardmä�ig ist der externe Bus immer so vorgesehen, da� er ungepuffert betrieben
werden kann. Dementsprechend sind die Pull-Ups dimensioniert.


> 2. Ich habe 6 Module am I2C-Bus hängen. 3 Stück kommen so ca. nach 15Metern hinter dem
> Reglerboard, dann die restlichen 3 Module erst wieder nach einer Strecke von rund 15Metern. MuÃ?
> ich hier auch bei allen Modulen die empfohlenen 330Ohm zwischen Modul und Bus-Leitung setzen?

Bei keinen meiner Platinen müssen irgenwelche 330Ohm-Widerstände extra gesetzt werden.
Wo diese nötig sind, sind diese bereits auf der Platine vorhanden.

> Und reicht am Ende je ein 10kOhm zwischen SDA und +5V und SCL und +5V (terminieren)?
> 3. Ich habe alle meine I2C-Module einschl. der Port-Extender erstellt. Ist das jetzt ein Problem
> oder habe ich das falsch gemacht?

Ein Terminieren im eigentlichen Sinn gibt es beim I²C-Bus, zumindest beim ungepufferten
und gepufferten, nicht. Dies ist nur beim I²C-TranceiverBus (auch I²C-Differential-Bus genannt)
notwendig.

Allerdings verbessern extra-Pull-Ups an den Enden langer Busse die Störsicherheit.
Bei ungepufferten Bussen sollte man nicht unter 3k gesamt-Pull-Up kommen.
Somit sollte kein kleinerer Wert, als 10k benutzt werden. Zur Not 8,2k.

Bei gepufferten Bussen kann der gesamt-Pull-Up auch unter 1k haben.
Unter 300 Ohm sollte dieser aber auch nicht betragen, da sonst so Dinge, wie
Leitungswiderstände langsam zum tragen kommen.

> In meiner Bastelkiste waren noch 2,2kOhm vorhanden, damit klappte es dann einigermaÃ?en mit
> der terminierung, als ich jedoch 3,3kOhm verwendet habe hatte ich immer wieder Schwierigkeiten
> (die Module wurden nach einem Reset mal gefunden, dann teilweise wieder nicht)

Welcher Pull-Up der richtige ist, hängt von der Betriebsart des Bussen ab:
Gepuffert oder Ungepuffert.
Ein gemischter Betrieb von gepufferten und ungepufferten Elementen
mit niedrigen Pull-Up geht meistens schief.
Allerdings würde ich bei Deinem 30m-Bus auf jeden Fall schon gepuffert arbeiten.
D.h. Gesamt-Pull-Up unter 3kOhm und keine ungepufferten Komponenten (z.B. HSRel5)
direkt an den Bus anschlieÃ?en.
Hier mu� ein I²C-Bus-Puffer zwischen geschaltet werden.
Hinter einem I²C-Bus-Puffer (oder auch Extender) an der ungepufferten Seite
können ohne weiteres mehrere I²C-Bus-Komponenten betrieben werden.
D.h., da Du je drei Komponenten alle 15m hast, reicht alle 15m ein I²C-Bus-Puffer,
an dem alle 3 Platinen angeschlossen werden.

MfG André H.



Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten: