TWI nur mit Mastern

OP Persönliche Seite #357561
Lesenswert?
• ▲
▼
Hallo
ich will mit mehreren AVRs (ca.8 Stck.) ein Art Netzwerk aufbauen. Die
AVRs sollen aber dabei alle mal Master spielen dürfen, d.h. alle
schicken nacheinander ihre aktuellen Daten an die Anderen raus.
Ist da überhaupt möglich?
Oder soll nur einer Master sein, und alle Anderen nacheinander
auffordern ihren Müll an den Master zu senden und der Verteilt ihn
dann?
Wie könnte ich das machen, da nicht immer alle "online" sind dass
sich der als erster "angemeldeter" automatisch als Master schaltet?

luxx
Gast #357562
Lesenswert?
• ▲
▼
>Ist da überhaupt möglich?
ja
>Oder soll nur einer Master sein, und alle Anderen nacheinander
>auffordern ihren Müll an den Master zu senden und der Verteilt ihn
>dann?
wäre wahrscheinlich einfacher
>Wie könnte ich das machen, da nicht immer alle "online" sind dass
>sich der als erster "angemeldeter" automatisch als Master schaltet?
ein Master redet wenn er was zu sagen hat und überprüft ob es richtig
gesendet wurde
Hast du Dir schon den TWI-Teil im AVR Datenblatt durchgelesen?
Da steht schon drin wie man sowas macht!
Gast #357563
Lesenswert?
• ▲
▼
Du könntest ja eine Token Ring Struktur nachempfinden.
- Jeweils der im Besitz des Token befindliche Atmel darf senden.
- nach einer bestimmten kurzen Zeitspanne muss der Token weitergegeben
  werden
- wenn ein Atmel etwas senden möchte, muß er auf den Token warten
Gast #357565
Lesenswert?
• ▲
▼
TWI = I²C ist multimasterfähig.
Der Master mit dem dominanterem Bit gewinnt die Arbitrierung.
Jetzt muß man sich nur noch überlegen, wie man herausfindet, ob man
gestört wurde, und wann man wieder senden darf.
Eigentlich müssen alle Master grundsätzlich als Slave konfiguriert
werden, und nur wenn sie senden wollen/sollen, zum Master werden.
Durch den Slave-Betrieb kann man dann auch feststellen, ob der Bus
gerade in Benutzung durch einen anderen Master ist.
Dann muß man halt warten, bis der fertig ist.
Das sollte theoretisch funktionieren.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren