Forum: Mikrocontroller und Digitale Elektronik Kurze Frage zu i2c und gemeinsame Masse


von Christoph (Gast)


Lesenswert?

Hi
Ich habe ein paar I2C slaves die ich mit einem attiny ansteuer. Klappt 
soweit prima. Die Bauteile hängen aber alle an der selben 
Spannungsversorgung.

Jetzt möchte ich einen entfernteren AtMega zum steuern des I2C busses 
verwenden. Der hat sein eigenes Schaltnetzteil, sprich es gibt keine 
Gemeinsame Masse.

Reicht es wenn ich die Massen beider Schaltungen verbinde? Das habe ich 
getestet aber es geht nicht.
Oder muss brauche ich eine gemeinsame Versorgungsspannung und gemeinsame 
Masse?

Gruß
Christoph

von I2C-User (Gast)


Lesenswert?

Hallo!

Hmm, irgendwie verstehe ich deine Frage nicht ganz, aber ich hoffe, dass 
dir klar ist, wenn mehrere Master auf dem Bus arbeiten, muss ein 
Arbitrationsprozess ein Chaos vermeiden.
Denn beginnen zwei Master gleichzeitig zu senden, so muss jeder Master 
den Zustand der SDA–Leitung kontrollieren. Sendet ein Master z.B. eine 1 
und detektiert aber eine 0, so muss er seine Aktivitäten am Bus 
einstellen. Der Master mit der niedrigsten Adresse gewinnt sozusagen.
Die Clock wird aufgrund der wired-And Verknüpfung der einzelnen 
Bausteine synchronisiert.

MfG

von spess53 (Gast)


Lesenswert?

Hi

>Jetzt möchte ich einen entfernteren AtMega

Was ist bei dir 'enfernt'? Eine Masseverbindung muss auf jeden Fall 
sein.

MfG Spess

von Alex22 (Gast)


Lesenswert?

Wie Spess schon fragte: Wie weit ist dein "Master" weg? Wie lang ist der 
Bus insgesamt?

I2C (Inter-Integrated-Circuit) ist ursprünglich für die Verbindung von 
Bauteilen auf einer Platine gedacht. Nicht, um z.B. einen Hausbus 
(o.ä.) zu realisieren.

Wie ist deine Bustopologie insgesamt?
Welche Übertragungsrate benutzt du?

Schöne Grüße,
Alex

von Christoph (Gast)


Lesenswert?

Also es gibt einen Master und mehrer Slaves ;-)

Die Entfernung ist auch irrelevant. Ich hatte meine Schaltung mit einem 
attiny aufgebaut. Der ist für meine Software leider zu klein weswegen 
ich die selbe Software auf einen atmega abgestimmt habe. Nur der 
wiederrum passt natürlich nicht auf das Bord vom attiny und sitzt zur 
zeit auf einem entwicklungsboard mit eigener Spannungsversorgung.

Die Tatsächliche Entfernung Master-Slave beträgt ca. 30 cm und ist das 
selbe Kabel wie an dem tiny.

Also die Slaves hängen an einer eigenen und der Master an einer eigenen 
Spannungsversorgung.

Die Frage ist nun wie ich die Spannungsversorgungen brücken muss/darf. 
Reicht es hier nur Masse zu verbinden?

Gruß

von Alex22 (Gast)


Lesenswert?

Solange du nur die Massen verbindest sollte das ganze Funktionieren.
Hast du denn versuchsweise mal alle Geräte an die gleiche 
Spannungsversorgung angeschlossen (falls möglich)?

von I2C-User (Gast)


Lesenswert?

Hallo, nochmals!

Also so war die Frage gemeint :-)

Wieviele Bausteine hängen denn am Bus überhaupt? Soweit ich noch in 
Erinnerung habe, hängt die Anzahl der Bausteine am Bus von der gesamten 
kapazitiven Belastung ab, die 400pF nicht übersteigen darf.

Ansonsten würde ich auch dasselbe, wie Alex22 geschrieben hat, 
versuchen.

MfG

von Christoph (Gast)


Lesenswert?

So habs raus

Es reicht doch nur die Massen zu verbinden.

Bei mir wars eine Kombination aus falscher Taktfrequenz (falschen 
Fusebits) und nicht funktionerendem I2C (habe den "hardeware i2c" des 
mega16 genommen und wohl irgendwas wesentliches noch nicht verstanden).

Das hat man halt davon wenn man aus Geiz die Controller 
unterdimensioniert.

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.