In den AVR-Manuals, die I2C unterstützen, ist das Protokoll schön erklärt. Die AVR-TWI sind Multi-Master fähig. Bei Kollision kommt es zu einer Arbitrierung und ein Master gewinnt, der andere wird zum Slave.
Hi,
ist es möglich dass ich einem Master Befehle mit einem anderen Master schicke?
wenn ja, wie stellt man das an?
reagiert er automatisch wenn ich ne slave adresse eintrage und twea enable?
oder beisst sich das dann mit was anderem?
grüßle
Flo
In den AVR-Manuals, die I2C unterstützen, ist das Protokoll schön erklärt. Die AVR-TWI sind Multi-Master fähig. Bei Kollision kommt es zu einer Arbitrierung und ein Master gewinnt, der andere wird zum Slave.
Disclaimer: none. Sue me.
ja gut, dass einer verliert ist schon klar. aber wie kann ich einem master dann befehle zukommen lassen,
die er auswerten soll? oder macht der von selbst dann das ackn. und so weiter, sobald er verloren hat?
würde dann ja heissen, dass ich dem gar keine adresse geben muss?
Doch ein Master brauch dann auch eine (Slave)Adresse.
Ausserdem ist nicht gesagt, daß einer verliert. Wenn 2 Master gleichzeitig die gleichen Daten senden, wird das nicht erkannt.
Disclaimer: none. Sue me.
ok, warte mal, muss genauer beschreiben:
master1 soll master2 einen befehl schicken, den der dann ausführen soll.
master2 soll gar nicht groß sonst auf dem bus was senden, muss halt nur als master am bus angebunden sein (hardware sache).
wie stell ich das dann an?
trage ich ne addresse ins addressregister ein? wie geht´s dann anschließend weiter?
grüßle
flo
Versteh ich net...
Ob master oder Slave unterscheidet sich ja nicht per Hardware. Man hat also nur Slaves am Bus und wer was zu sagen hat, wird Master. Wenn zwei (oder mehr) Master kollidieren, dann gewinnt einer.
Eine Multi-Master Implementierung hat also mehr States zu berücksichtigen.
Disclaimer: none. Sue me.
Lesezeichen