Hallo zusammen ich habe noch nicht lange mit der AVR Programmierung zu tun, und habe daher einige "Verständnis-Probleme", was den I²C Bus betrifft. Die Jungs von google hab ich auch schon gefragt, aber da weiss jeder was anderes. Mein vorhaben ist es, 2, bzw. bis zu 4 Mega8 über den I²C zu verbinden. Einer der ist übergeordnete Steuerung, also Master und permanent im System. Der zweite (oder der dritte und vierte) befindet sich an einem Auswechselbaren Systemteil, welches entfernt, und durch ein anderes ersetzt werden kann. Wie verhält sich nu der Master, wenn ich einen Slave abziehe, also die I²C Verbindung trenne?! Lässt sich dieser Zustand im Programm erkennen, und entsprechend darauf reagieren? Ich Programmiere mit BASCOM-AVR (weiss nicht, ob es was zur Sache tut, aber ich wollt´s mal los werden ;-)). Die Steuerung soll auch noch arbeiten, wenn einer, oder alle der Slaves fehlen. Wie gebe ich einem Mega8 die Bus-Adresse vor, und was würde passieren, wenn 2 Teilnehmer die gleiche Adresse haben? Wie groß darf die maximale Leitungslänge für einen I²C Bus sein, und benötige ich zwischen den Mega8 wirklich nur 2 Leitungen? Könnte ich als mit einem 4 Poligen Stecker zwischen Master und Slave auskommen? (GND, VCC, und die beiden Busleitungen). Vielen Dank schon mal im Voraus Gruß Mike
Hallo Mike! Ich hab dir die I²C alias TWI spec mal angehängt... > Wie verhält sich nu der Master, wenn ich einen Slave abziehe, also die > I²C Verbindung trenne?! Lässt sich dieser Zustand im Programm erkennen, > und entsprechend darauf reagieren? Die I²C Verbindung kannst du nicht trennen, weil die wahrscheinlich zu dem Zeitpunkt gar nicht existiert. Natürlich lässt sich solch ein Zustand im System erkennen. Du musst nur am Bus fragen wer so alles da is ;-) > Die Steuerung soll auch noch arbeiten, wenn einer, oder alle der Slaves > fehlen. Kein Problem, rein Programmtechnischer Aufwand... > Wie gebe ich einem Mega8 die Bus-Adresse vor, und was würde passieren, > wenn 2 Teilnehmer die gleiche Adresse haben? Siehe Datenblatt... und beide würden dir auf deine Frage Antworten, was bewirkt, dass die Antwort unbrauchbar wäre... > Wie groß darf die maximale Leitungslänge für einen I²C Bus sein, und Siehe spec... > benötige ich zwischen den Mega8 wirklich nur 2 Leitungen? Könnte ich als > mit einem 4 Poligen Stecker zwischen Master und Slave auskommen? (GND, > VCC, und die beiden Busleitungen). Ja, 2 Leitungen genügen hier eben SDA und SCL. Is ja ein BiDi-Bus. Weiterführende Informationen, wie du deinem Mega eine Adresse gibst (Taufe) und wie das HW-TWI arbeitet findest du im Datenblatt vom Controller! Ich würd dir für die Aufgabe jedoch C empfehlen, das is ne echte Hochsprache und du findest diverse fertige Libs, die dir schon viel Arbeit abnehmen... Grüße Markus
Hallo Markus Vielen Dank erstmal für die Mühe! Das hat mir schon mal etwas weiter geholfen. Möchte gerne bei Basic (BASCOM) bleiben, da ich den Syntax halbwegs verstanden habe, und nicht schon was neues lernen möchte, bevor ich das alte richtig begriffen habe. Viele Grüße Mike
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.