www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Suche I²C Bus Grundlagen


Autor: Michael Junge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Markus L. (lucky79)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Michael Junge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.