PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 2 I²C Master miteinander kommunizieren lassen?



N8Surfer
25.01.2007, 12:36
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

SprinterSB
25.01.2007, 12:54
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.

N8Surfer
25.01.2007, 13:00
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?

SprinterSB
25.01.2007, 13:41
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.

N8Surfer
25.01.2007, 13:47
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

SprinterSB
25.01.2007, 14:55
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.