Forum: Mikrocontroller und Digitale Elektronik I2C Kapazität


von Test T. (Gast)


Lesenswert?

Hallo Forum,

ich setzte mich gerade mit dem Bus I2C auseinander. Dabei verstehe ich 
leider nicht wie man die Buskapazität ausrechnet.
Ich möchte gerne den Atmega328 nutzten. Ich hab schon irgendwo gelesen, 
das die Kapazität ungefähr pro cm 1pF beträgt.
Stimmt das soweit und könnte mir jemand sagen, auf welche Kapazität ich 
beim Atmega328 achten muss und wie ich das nachher verrechne. Auf eine 
Antwort würde ich mich freuen.

PS: Ich arbeite mit dem Arduino Uno

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Alexander K. schrieb:
> Ich möchte gerne den Atmega328 nutzten. Ich hab schon irgendwo gelesen,
> das die Kapazität ungefähr pro cm 1pF beträgt.
> Stimmt das soweit und könnte mir jemand sagen, auf welche Kapazität ich
> beim Atmega328 achten muss und wie ich das nachher verrechne.

 Warum ?
 Falls die Leitungen nicht länger als 20cm sind, braucht dich das nicht
 zu interessieren.

von Sascha W. (sascha-w)


Lesenswert?

Hallo,

ist ja nicht schlecht sich mit den Grundlagen zu beschäftigen, aber an 
der Stelle machst du dir zu viele Gedanken.
So lange du dein I2C nicht über etliche Meter verkabeln willst, brauchst 
du nicht mit irgendwelchen Kapazitäten rumzurechnen.

Sascha

von Test T. (Gast)


Lesenswert?

Mit 20cm klappt es bis jetzt auch wunderbar, jedoch würde ich im 
nachhinein eine längere Strecke überbrücken. Ich dachte da an so 50m. 
Dazu muss ich denke ich mal noch die Taktrate anpassen. Es geht mir ja 
nur darum das ich weiß wie man das ausrechet. Ich hab gerade noch etwas 
rumgelesen und bin drauf gestoßen, das der µC an der Spannungsversorgung 
parallel einen Kondensator geschaltet hat. Muss ich diesen dazu 
addieren?

von Malte-Kevin (Gast)


Lesenswert?

Bei 50m ist I2C definitiv die falsche Wahl...

von Sascha W. (sascha-w)


Lesenswert?

Alexander K. schrieb:
> Mit 20cm klappt es bis jetzt auch wunderbar, jedoch würde ich im
> nachhinein eine längere Strecke überbrücken. Ich dachte da an so 50m.
Wenn du Glück hast geht das vielleicht, aber dafür ist I2C nicht 
gemacht. Das war für Verbindung von Bausteinen innerhalb eines Gerätes.
> Dazu muss ich denke ich mal noch die Taktrate anpassen.
Mit Sicherheit
> Es geht mir ja
> nur darum das ich weiß wie man das ausrechnet
In den Daten deines verwendeten Kabels suchen wie viel pF pro Meter das 
hat
> Ich hab gerade noch etwas
> rumgelesen und bin drauf gestoßen, das der µC an der Spannungsversorgung
> parallel einen Kondensator geschaltet hat. Muss ich diesen dazu
> addieren?
Nein der hat mit dem Bus doch nichts zu tun.

Sascha

von Test T. (Gast)


Lesenswert?

In den Daten deines verwendeten Kabels suchen wie viel pF pro Meter das
hat

Danke schon mal für den Tipp. Muss ich nicht noch die Busteilnehmer 
dazurechnen und wenn ja wo finde ich die Angabe?

Beitrag "Fragen zum I2C Bus"
"Hab ich hier im 2 Post gelesen"

von 1N 4. (1n4148)


Lesenswert?

> Bei 50m ist I2C definitiv die falsche Wahl...

Geht mit den passenden Leitungstreibern und passender Frequenz schon. 
Würde dann aber eher auf RS485 oder so gehen.

von Klaus (Gast)


Lesenswert?

Alexander K. schrieb:
> In den Daten deines verwendeten Kabels suchen wie viel pF pro Meter das
> hat
>
> Danke schon mal für den Tipp. Muss ich nicht noch die Busteilnehmer
> dazurechnen und wenn ja wo finde ich die Angabe?

IMHO ist die zulässige Kapazität 400pf sowohl für SCL als SDA. Ich würd 
so als Daumenwert 50pF pro Meter für das Kabel, 10pF für jedes Device 
und 10pF für für jeden Stecker mit dazugehöriger Platinenanbindung 
ansetzen. Ich bin zwar kein Anhänger der Schule, die I2C nur für 
Verbindungen innerhalb einer Platine sieht, aber ohne zusätzliche 
Maßnahmen halte ich 50m für nicht erreichbar. Ein Master, ein Slave, 
gutes Layout, vernünftiges Kabel und richtige Belegung der Adern 
(Crosstalk ist da dein Feind, weniger die Kapazität) können 5m schaffen.

Die Erfahrung lehrt, daß die Geschwindigkeit keine wirkliche Rolle 
spielt. Wenn es bei 100k nicht geht, geht es auch bei 10k nicht. Es 
dauert nur 10 mal länger, bis man den Fehler bemerkt.

MfG Klaus

von Widerstand (Gast)


Lesenswert?

Im Datenblatt zu P82B715 I2C-Bustreibern hat es einiges an 
Berechnungskram drin, Kapazitäten, Pull-Ups etc., ich glaube das kann 
Dir weiterhelfen:

www.nxp.com/documents/data_sheet/P82B715.pdf

Gleichzeitig weißt Du jetzt auch, womit Du die Reichweite verlängern 
kannst, wenn das Ergebnis Deiner damit angestellten Berechnungen 
unbefriedigend ist. Was es sein wird, denn dieser Baustein kann gerade 
maximal 50 m/ 3000pf.

Eingesetzt gesehen habe ich die Chips in einem modularen 
Notbeleuchtungssystem. Die 6, 8 Platinen waren dabei gerade mal auf 
lächerlichen 1,50 m Gesamtbreite montiert, Buslänge allerschlimmstens 3 
m. Gut, bei so einem System will man auf Nummer sehr sicher gehen, aber 
sah weit von 50 m aus.

von Widerstand (Gast)


Lesenswert?

Und wozu in die Ferne schweifen, wenns im Wiki liegt so nah:
https://www.mikrocontroller.net/articles/I2C_als_Hausbus

von Widerstand (Gast)


Lesenswert?

(Sollte mich doch mal anmelden, um editieren zu können.)

In dieser auch im Wiki erwähnten Appnote zu I2C findest Du mehr, als Du 
jemals wissen wolltest:
http://www.horter.de/doku/AN255-02.pdf (oder dem Link im Wiki folgen, 
bei Horter gibts ne Platine mit dem Bustreiber.)

von Olaf (Gast)


Lesenswert?

Bei 50m wuerde ich auf jedenfall mal ernsthaft ueber 
Potentialdifferenzen nachdenken! Alleine deshalb ist I2C schonmal ein 
Schmerz im Arsch.

Olaf

von Klars (Gast)


Lesenswert?

50 cm, das meinst du nicht ernst. Auf einer Platine, z.B. kann man ohne 
Probleme schon 1 m erreichen. Bei meinen Platinen ohne zusätzliche IC 
komme ich auf ca. 5 bis 10 m. Mit 2 zusätzlichen Platinen komme ich auf 
ca. 30 bis 50 m. Mit einem anderen IC geht es bis auf ca. 300 m. Dann 
gibt es noch kann. Auch eine Potentialtrennung, komplett mit SCL, SDA, 
GND, Rück und 5V geht ohne jede Probleme. Als Zeit sollte auf jeden Fall 
100kHz damit gehen.
MFG Kl

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Klars schrieb:
> 50 cm, das meinst du nicht ernst. Auf einer Platine, z.B. kann man ohne
> Probleme schon 1 m erreichen.

 LOL.
 Sicher, wenn die Leitungen als Antenne geführt sind - rund um die
 Platine.

> Bei meinen Platinen ohne zusätzliche IC
> komme ich auf ca. 5 bis 10 m. Mit 2 zusätzlichen Platinen komme ich auf
> ca. 30 bis 50 m. Mit einem anderen IC geht es bis auf ca. 300 m.

 Alle Achtung, so einen Mist kann nicht jeder bauen. Dazu muss man
 schon begabt sein.

von Alexander (Gast)


Lesenswert?

Jetzt hätte ich noch eine Frage, gilt das mit den 400pF jeweils für eine 
Leitung oder für beide zusammen.

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.