Forum: Mikrocontroller und Digitale Elektronik I²C: Master/Slave Umschaltung


von Ehren (Gast)


Lesenswert?

Hallo zusammen,

Ich habe ein System mit 4 Controllern.
1 Master und 3 Slaves. Ist es möglich, dass ein Slave eigenständig (z.B. 
bei neuen Messwerten) an den Master etwas senden?
Ich will nicht, die 3 Slaves kontinuierlich zu pollen.
Habt Ihr Lösungsvorschläge?

Danke im voraus!

Gruß
Ehrengast

von dummy (Gast)


Lesenswert?

>Ist es möglich, dass ein Slave eigenständig (z.B.
>bei neuen Messwerten) an den Master etwas senden?

Nein, dazu müsste der Slave Master werden.

>Ich will nicht, die 3 Slaves kontinuierlich zu pollen.

Dann hast du dir den falschen Bus ausgesucht.

>Habt Ihr Lösungsvorschläge?

Nimm CAN.

von Cyblord -. (cyblord)


Lesenswert?

Ehren schrieb:

> Habt Ihr Lösungsvorschläge?

Es gibt Bausteine die lösen das mit einer Interrupt Leitung. Der Slave 
löst einen Interrupt aus, wenn sich etwas ändert. Sprich: Er betägtigt 
einen Portpin welcher beim Master ebenfalls auf einen freien Portpin 
führt. Also unabhängig vom I2C-Bus.
Der Master kann dann die Daten abholen und muss nicht ständig pollen. 
Wenn man die Interuppt-Ausgänge als OC ausführt, kann man auch viele 
Bausteine an einen Interrupt hängen, dann müssen eben alle abgefragt 
werden.

gruß cyblord

von Peter D. (peda)


Lesenswert?

Ehren schrieb:
> Ist es möglich, dass ein Slave eigenständig (z.B.
> bei neuen Messwerten) an den Master etwas senden?

Natürlich, I2C ist Multimaster fähig.
Jeder kann jederzeit senden. Senden mehrere gleichzeitig, gewinnt einer 
die Arbitration. Die anderen kriegen das mit und können es später 
nochmal versuchen.

Ich hab sowas schonmal gemacht mit Philips 87C751 und 80C652. Leider 
werden die nicht mehr hergestellt.
Den 80C652 habe ich durch den P89C668 ersetzt, bis auch der eingestampft 
wurde.

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.