Forum: Mikrocontroller und Digitale Elektronik i2c Slave soll Master benachrichtigen


von johnny (Gast)


Lesenswert?

Hallo zusammen!

Ich habe 5 mcs über i2c verbunden.
Einer davon ist der Master die anderen sind die Slaves. Jetzt hätte ich 
es gerne, dass wenn ein Slave neue Daten hat das dem Master mitteilt und 
der sich die daten dann abholt.
Wie mache ich das am geschicktesten?
Ich sehe folgende Möglichkeiten:
 - Interrupt am Master auslösen der dann alle Slaves abfragt
 - Slave zum Master ernennen und die daten übertragen
 - der Master pollt die ganze Zeit

wichtig ist dass auf die neuen Daten seht schnell reagiert wird

Was wäre nach eurer Erfahrung die beste Lösung?

Danke!!
Johnny

von Lukas (Gast)


Lesenswert?

johnny schrieb:
> Was wäre nach eurer Erfahrung die beste Lösung?

Der I2C ist dafür sclecht geeignet. Wenn Du noch die Wahl hast, nimm CAN 
und Du erhälst Multi-Master-Fähigkeit.

von johnny (Gast)


Lesenswert?

leider sind meine slaves attiny2313s und die können nur i2c und uart...

von STK500-Besitzer (Gast)


Lesenswert?

johnny schrieb:
> leider sind meine slaves attiny2313s und die können nur i2c und uart...

Dann muss der Master in regelmäßigen Abständen nach den Daten fragen...

von Klaus (Gast)


Lesenswert?

johnny schrieb:
> - Interrupt am Master auslösen der dann alle Slaves abfragt

Wie bei beim SMBus:

> Der SMBus hat ein optionales Signal (ALERT#), das der Slave nutzen
> kann, um einen Interrupt an den Controller zu senden.

MfG Klaus

von Thomas (Gast)


Lesenswert?

Hallo,

lass doch bei deinen Master einen Reset auslösen -> Nach dem Reset 
einfach Slave abfragen.

Wenn du noch genug IO-Ports frei hast - kannst du sogar abfragen welcher 
der Slave's den Reset ausgelöst hat.

Gruß

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.