Soweit sollte es funktionieren. Den Startbefehl an alle könnte man per General Call schicken. Dazu werden Daten an die reservierte Adresse 0x00 gesendet, auf die alle Slaves hören sollten.der Master füttert die Slave nacheinander mit einer menge Daten und danach gibt er für alle slave gleichzeitig den Startbefehl.
Das geht m.E. nicht, weil es bedeutet, dass die Slaves aktiv senden müssen und damit zum Master werden. Dann hättest Du ein Multi-Master-System, was Du ja vermeiden wolltest.Danach müssen die Slave sich zurückmelden, was zeitversetzt und eher selten gleichzeitig passiert
--> Die Slaves dürfen sich nicht aktiv zurückmelden, sondern müssen warten, bis sie gefragt werden. Der Master muss sie pollen, d.h., er muss die Slaves zyklisch abfragen, bis sie eine Antwort senden. Ist ein Slave noch beschäftigt, könnte er den TWI-Interrupt deaktivieren. Der Master würde dann wahrscheinlich ein Timeout bekommen - müsste man ausprobieren.
Soll kein Polling stattfinden, muss man sich einen anderen Weg ausdenken, wie die Slaves dem Master mitteilen können, dass sie fertig sind. Z.B über spezielle Interrupt-Leitungen...
Gruß, Achim.
Lesezeichen