-
-
Erfahrener Benutzer
Robotik Einstein
Hi All,
der I²C oder auch interIC Bus ist per Definition des IEEE ein Zweidrahthardwarebus mit einem Master und max. 254 Slaves wobei jeder Slave auch als Master agieren kann solange ihm diese Aufgabe zugewiesen wurde. Hört sich kompliziert an ist aber halb so wild wenn man sich an die Regeln hält. D.h. wenn ein BUS-Member redet haben alle anderen zu lauschen denn bekanntlich darf man in der Elektronik Eingänge beliebig parallel schalten -Ausgänge niemals. Diese Absprache ist aber nicht in der Norm per Definition festgelegt sondern muß bei der Implementierung selber programmiert werden -und zwar so das niemals zwei Teilnehmer gleichzeitig senden. Wenn Du Streß vermeiden willst baust Du einen Ring auf O auf I, O auf I usw. und gibst jedem Teilnehmer eine eigene Adresse. In deinem Datenpaket legst Du als erstes die Adresse und nur der der gemeint ist nimmt die Daten an die anderen ignorieren und schieben es über den eigenen Ausgang weiter.
Schon hast Du ein praktikables serielles Bussystem.
Wenn Du das allerdings mit C-Control in Basic machen willst wird Dir wohl wenig Rechenleistung für anderes übrigbleiben. Wenn mich nicht alles täuscht war in Elektor.de -zwar für deren MC68XXX Board- mal eine solche Routine in C oder sogar Assembler publiziert. Die machen überigens sehr viel mit dem I²C.
Gruß Hartmut
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen