mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Zum Verständnis von I2C...


Autor: Josef Voglhuber (beis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn in einem Multi-Master-System zwei Master etwas von dem selben Slave
haben wollen, müsste doch zu Problemen kommen können.

Mal so ein kleines Denkexperiment: Angenommen es sind an einem I2C-Bus
zwei Master und ein Slave angeschlossen. Im gleichen Moment wollen
beide Master was vom Slave und fangen deshalb im selben Moment zu
senden an. Sie generieren eine Startcondition und schreiben die selbe
Adresse auf den Bus. Dann müsste doch für beide Master die Arbitrierung
klappen, da es ja zu keiner Kollision kommt. Aber wie geht es dann
weiter? Angenommen beide Master Übermitteln jetzt zwei unterschiedliche
Anfragebytes. Hier müsste es dann aufgrund der Hardwareverdrahteten
Oder-Schaltung zu Datenmüll kommen?

Ist es denn überhaupt zulässig den selben Slave von zwei Mastern aus
anzusprechen?
Hat jemand bereits Erfahrung mit dieser Fragestellung?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das klappt schon.

Solange beide das gleiche senden, gibts kein Problem.

Nur beim ersten unterschiedlichen Bit verabschiedet sich einer und der
andere macht weiter.


Peter

Autor: Josef Voglhuber (beis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wiso sollte sich beim ersten unterschiedlichen Bit jemand
verabschieden?

Heist das nun  das ein Master immer merkt wenn ein anderer zur selben
Zeit sendet?
So wit ch das verstanden habe, bekommt das nur ein der Master während
der Arbitrierung mit, also im ersten Byte, dass übertragen wird.

Josef

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Heist das nun  das ein Master immer merkt wenn ein anderer zur selben
Zeit sendet?"

Nein.
Er merkt nur, wenn er high sendet und low zurückliest und verläßt
sofort den Mastermodus.

Der andere kriegt davon nichts mit (sendet low und liest low) und macht
einfach weiter.

Schau Dir mal die Zustände an, da gibt es auch "Arbitrierung verloren
im Datenbyte".


Peter

Autor: Josef Voglhuber (beis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke,
jetz hab ich es verstanden.

Grüße
Josef

Autor: Markus N. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ahhhh 10000 Dank das hab ich mich auch schon immer gefragt.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.