I²C: Master/Slave Umschaltung

Gast #3671386
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
Gast #3671397
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.
#3671399
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
#3671920
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.