I²C Multimaster
Moderator: fischertechnik Mitarbeiter
Forumsregeln
Bitte beachte die Forumsregeln!
In dieser Unterkategorie können nur fischertechnik-Mitarbeiter und Moderatoren antworten!
Bitte beachte die Forumsregeln!
In dieser Unterkategorie können nur fischertechnik-Mitarbeiter und Moderatoren antworten!
I²C Multimaster
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
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
-
- Beiträge: 171
- Registriert: 12 Jan 2016, 09:13
Re: I²C Multimaster
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
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
Re: I²C Multimaster
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
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
-
- Beiträge: 171
- Registriert: 12 Jan 2016, 09:13
Re: I²C Multimaster
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 ).
Viele Grüße
Markus
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 ).
Viele Grüße
Markus
- H.A.R.R.Y.
- Beiträge: 1083
- Registriert: 01 Okt 2012, 08:38
- Wohnort: Westpfalz
Re: I²C Multimaster
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.
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
-
- Beiträge: 171
- Registriert: 12 Jan 2016, 09:13
Re: I²C Multimaster
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
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