I2C Bus: Wie Busteilnehmer anschließen?

Gast #432421
Lesenswert?

Hi

ich habe einen I2C Bus welcher nur aus AVRs besteht. Der Bus ist so 
aufgebaut:
Jeder Bus-Teilnehmer kann I2C-Slave und I2C-Master sein. Der Bus besteht 
zum einen aus einem aus einer "Zentrale" und ca. 4 - 20 "Slaves".

Als maximale Buslänge sind 5m geplant. (PS ich weiß das I2C für was 
anderes entwickelt wurde)

Vor langer Zeit habe ich irgendwo im WWW von jemandem gelesen dass er 
jedem Busteilnehmer einen Reihenwiderstand in die SCL und SDA gehängt 
hat.
Eventuell hat er auch noch einen Pull-up vor oder hinter den 
Reihenwiderstand gehängt.....

Weiß jemand was über die Hintergründe so eines Reihenwiderstandes?
(Eventuell Reflexionen oder damit der "Sender" den bus leicher 
runterziehen kann?)

Ich habe keine Ahnung wie groß der Serienwiderstand sein muss.

bringt so ein Widerstand überhaupt Vorteile für mich?

Gibt es sonst noch Tipps die die Lage bei mir aufhellen?

reicht ein Pullup auf einer Seite des Busses oder sollte noch irgendein 
Abshclusswiderstand am ende vom Bus hin????

Um viele Tipps wird gebeten.

PS: Oder geht es einfach so:
Jeder AVR hängt direkt am Bus mit aktiviertem Pullupwiderstand und sonst 
gar nix?
Gast #432458
Lesenswert?

Schau mal hier rein:

http://de.wikipedia.org/wiki/I2C

Grundsätzlich ist nur ein Pull-Up (z.B. 1KOhm) für jede Leitung 
notwendig. Die internen Pull-Ups kannst du abschalten (nur diese reichen 
erfahrungsgemäß nicht). Ein Abschlusswiderstand ist nicht vorgesehen. 
Bei 5m Kabellänge ist Vorsicht angebracht (Rauschen, Signal-Degeneration 
usw.). Grundsätzlich ist I2C ein Single-Master-Bus, wenn du mehrere 
Master wünschst, musst du (per Software) für entsprechende 
Kollisionsvermeidung (Stichwort z.B. TDMA) sorgen.
#432467
Lesenswert?

Wo hast du das mit dem Single-Master denn her? Selbst in dem von dir 
genannten Wikipedia Artikel steht:
"Mehrere Master sind möglich (Multimaster-Mode). Die Buszuteilung 
(Arbitrierung) ist dabei per Spezifikation geregelt."
Zu den Fragen: schau dir mal die Spezifiktation an, da stehen auch 
Vorschriften zu Leitungsführung bei längeren Bussen. Du musst halt 
darauf achten, dass die Gesamtkapazität des Busses die Specs nicht 
sprengt (15pF glaub ich), sonst brauchst du u.U. z.B. Strong-Pullups.

Gruß
Fabian
Gast #432618
Lesenswert?

> Die internen Pull-Ups kannst du abschalten

Davon kann ich nur abarten! Immer die internen Pull-Up's einschalten, 
gerade wenn man mehr als einen AVR am Bus hängen hat. Wenn sie nicht 
eingeschaltet sind, dann kann der Bus in einen undefinierten Zustand 
fallen und die Leitungen immer auf Low ziehen. Die Erfahrung durfte ich 
leider auch schon machen und hat mich mehrere Stunden Arbeit gekostet. 
Also nie ohne interne Pull-Up's die TWI-Schnittstelle betreiben.
(Firma: Promaxx.net) #433079
Lesenswert?

Ein Widerstand vom uC zum Datenbus bringt "sanftere" Flanken auf dem 
Bus, der dann nicht soviel HF-Störungen ausstrahlt. Die Widerstände 
ergeben zusammen mit der Kapazität des Busses ein RC-Glied, das hohe 
Frequenzen abschwächt.
Dadurch werden auch die Flanken "schwächer".
Gast #433226
Lesenswert?

@SiO2

Da fragst Du mich was :) Ich habe am Anfang auch nur die externen 
Pull-Up's drangehabt und nach der ersten Übertragung ging der Bus nicht 
mehr in den High-Zustand und verblieb immer auf Low. An dem Bus hingen 
zwei Mega8, ein Mega128, ein LCD und ein Schrittmotorcontroller. Nachdem 
ich nur die internen Pull-Up's aktiviert habe, ohne das Programm 
abzuändern, lief alles ohne Probleme.

Keine Ahnung warum das danach lief, da ich nur ein Metaller bin und kein 
Elektroniker. Bei mir laufen manche Versuch nach dem Prinzip "Try & 
Error" ab, da mir leider einige Grundlagen fehlen. Irgendwo hier im 
Forum habe ich ein Beitrag gefunden, wo jemand ein ähnliches Problem 
hatte, aber nachdem er die Internen eingeschaltet hatte, funktionierte 
bei ihm auch alles. Leider finde ich den Thread jetzt nicht mehr.

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