I²C Multimaster

Hier habt Ihr die Möglichkeit direkt mit dem fischertechnik Team in Kontakt zu treten
Here you have the Possibility to get in direct contact with the fischertechnik-Team

Moderator: fischertechnik Mitarbeiter

Forumsregeln
Bitte beachte die Forumsregeln!

In dieser Unterkategorie können nur fischertechnik-Mitarbeiter und Moderatoren antworten!
Antworten
Benutzeravatar
ski7777
Beiträge: 870
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

I²C Multimaster

Beitrag von ski7777 » 26 Jan 2016, 07:36

Hallo,

ich wollte mal wissen ob ich TXT und TX parallel schalten kann(natürlich mit Levelshifter). Also, dass beide als Master fungieren und jeder die vollen Rechte hat.

Raphael

Markus Burkhardt
Beiträge: 171
Registriert: 12 Jan 2016, 09:13

Re: I²C Multimaster

Beitrag von Markus Burkhardt » 26 Jan 2016, 14:09

Hallo Raphael,

das ist eine sehr gute Frage. Bevor ich dir Quatsch erzähle, mache ich mich lieber schlau. Ich melde mich sobald ich es in Erfahrung gebracht habe.

Viele Grüße
Markus

jona2004
Beiträge: 149
Registriert: 10 Jun 2011, 22:30

Re: I²C Multimaster

Beitrag von jona2004 » 26 Jan 2016, 21:51

Hallo Markus,
Da mag ich mich dochmal einmischen.
Eine der Haupteigenschaften des I2C Busses ist die Multimasterfähigkeit. Das ist u.a. der Grund warum beide Leitungen (SCL, SDA) als opendrain betrieben werden und darum pull-ups benoetigt werden (wer low treibt gewinnt). Wenn fischertechnik keine speziellen Schutzschaltungen eingebaut hat, sollte das problemlos gehen. Wenn zwei Master gleichzeitig senden gewinnt derjenige der die niedrigere addresse mehr 0en sendet.
Mich hatte auch die Antwort zum Thema ´clock stretching' gewundert, da diese Eigenschaft normalerweise tief in der Hardware vergraben ist, und laut I2C spec verhanden sein muss.
Daraufhin habe ich mir mal die Spezifikation des laut Hardware Hack von Herrn Boge vorhandenen controllers "AM3352BZCZ60" angeschaut. Dort wird clock stretching explizit erwähnt. Es kann auch nicht per Software configuriert werden. Auch hier gilt natürlich das keine Schaltungen im TXT vorhanden sein dürfen, die die opendrain Eigenschaften aushebeln.
Grüße Joachim

Markus Burkhardt
Beiträge: 171
Registriert: 12 Jan 2016, 09:13

Re: I²C Multimaster

Beitrag von Markus Burkhardt » 27 Jan 2016, 09:49

Hallo Joachim,

danke für deine Anmerkungen. Ich bezweifele nicht, dass I²C im Allgemeinen multimasterfähig ist. Ich werde hier im Forum aber nicht behaupten, dass es klappt, wenn ich mir nicht sicher bin.

Was das Thema clock-stretching angeht: mein Kenntnisstand ist, dass der TXT clock stretching nicht unterstützt, obwohl die Hardware es, wie du bereits gesagt hast, beherrscht. Und meiner Erfahrung nach sind Spezifikationen leider meist nur Richtlinien (wenn ich mir z.B. anschaue, wie viele Jahre es dauert, bis es einen Compiler gibt, der eine neue C++-Spezifikation komplett umsetzt :roll: ).

Viele Grüße
Markus

Benutzeravatar
H.A.R.R.Y.
Beiträge: 1083
Registriert: 01 Okt 2012, 08:38
Wohnort: Westpfalz

Re: I²C Multimaster

Beitrag von H.A.R.R.Y. » 27 Jan 2016, 12:18

Hallo jona2004,

das mit der HW-Unterstützung für clock-stretching funktioniert natürlich nur, wenn die zugedachte HW des Controllers auch benutzt wird. Falls die Pins des Controllers aber für andere Dinge belegt sind (oder spezielle Schutzschaltungen ihre Auswirkungen zeigen) bleibt nur die SW-Emulation des I²C und dann ist das mit dem clock-stretching ein ganz anderes Thema.

Das mit dem Multimaster ist eine der vielen Betriebsarten des I²C, die in der Spezifikation beschrieben sind. Es wird aber nirgendwo gefordert, daß jeder Busteilnehmer die "Königsdisziplin" Multimaster+Slave beherrschen muß. Üblicherweise ist "Single-Master" ausreichend, bzw. "Slave" für reine Peripheriebausteine.

Und den wirklichen Sachverhalt rund um TX(T) lassen wir jetzt mal Markus in aller Ruhe klären.

Grüße
H.A.R.R.Y.
[42] SURVIVE - or die trying

Markus Burkhardt
Beiträge: 171
Registriert: 12 Jan 2016, 09:13

Re: I²C Multimaster

Beitrag von Markus Burkhardt » 27 Jan 2016, 15:41

Hallo Raphael,

der TXT unterstützt leider den Multimaster-Betrieb nicht. Wie Rei Vilo bereits in einem anderen Thread geschrieben hat, wird Multimaster zwar von der Hardware unterstützt, jedoch reagiert der TXT zu langsam auf die Freigabe des Slave-Gerätes.

Viele Grüße
Markus

Antworten