@peter-neu-ulm
Ganz komische Aussage...
Es können jederzeit mehrere Master auf den I2C Bus zugreifen. Der jenige
Master, der ein langsameres Taktsignal erzeugt, oder über SDA mehr
Nullen auf den Bus legt gewinnt und kann seine Datenübertragung
fortsetzen. Der zweite Master muss sein Senden sofort unterbrechen.
Deswegen überprüfen die Hardware-I2C-Implementation in UCs immer auch
wenn sie senden, welcher Pegel auf SDA und SCL anliegt.
Es gibt auch manche Single-Master-Devices die obigen Algo nicht
verstehen und so für unvorhersehbare Ereignisse auf dem Bus sorgen.
Derjenige Master der eine START-Bedinung erzeugt und obige Bedingung
gewinnt, kann den Bus belegen.
Z.B. kann es passieren, dass zwei Master gleichzeitig auf ein EEPROM
zugreifen wollen, der eine lesend, der andere schreibend. Bei gleicher
Geschwindigkeit wird der Master, der schreiben will gewinnnen, da er
eine 0 als letztes Bit in der Adresse sendet. Der zweite Master merkt
dies erst beim letzen Byte uns muss hier seine Datenübertragung
unterbrechen.
Das ganze funktioniert, da alle I2C auf Open-Kollektor bzw. Open-Drain
basieren. Deswegen ist dieser Bus auch nicht der schnellste. Ladezeit
zwischen Pull-Up und Kapazität...
Der Slave kann zusätzlich im System für "Clock-Stretching" sorgen, wenn
ihm das Taktsignal zu "schnell" ist...