mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fragen zu I²C


Autor: Hans Schwarzkopf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich will in meinem Partykeller 16 Lampen per Relais in bestimmten
Mustern blinken lassen. Nun hab ich mir gedacht dass ich die Muster von
einer CHIP-Karten (die ja nichts anderes als I²C-EEPROMS sind) lese und
dann in die Tat umsetze.
Mir ist da was nicht so klar. Da am I²C-Bus mehrere Slaves
angeschlossen werden können, hat jeder seine eigene Addresse. Woher
weiß ich die aber? Und wie ist dann der Einsatz von mehreren Karten
möglich? Muss ich dann jede Adresse ausprobieren?
Und was passierz eigendlich, wenn zwei Slaves zufällig die selbe
Adresse haben?

mFg

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

grundsätzlich hat es im normalen I2C-Modus ja nur 7-Bit Adressen, wobei
Adressen mit 0000xxx und 1111xxx reserviert sind, d.h. es blieben noch
112 Möglichkeiten übrig, die man per Software durchprobieren kann. Das
sollte eigentlich kein Problem sein, denn wenn kein Gerät mit der
getesteten Adresse da ist, gibt's auch kein Acknowledge. Unterstützt
der I2C-Slave General Call, dann geht's noch einfacher. Mit der
General Call Address (0000000 --> eine der bereits erwähnten
Reservierten) wird einfach alles am I2C-Bus angesprochen. Damit lässt
sich dann z.B. auch die I2C-Adresse eines Slaves per Software neu
vergeben.

Wenn zwei Slaves die gleiche Adresse haben, dann antworten sie auch
gleichzeitig. Grundsätzlich arbeitet der I2C-Bus nach dem
Wired-And-Prinzip, d.h. eine 1 wird von einer 0 überschrieben. Wenn
zwei Master gleichzeitig senden, dann prüfen sie jeweils, ob das was
sie schreiben auch auf dem Bus ankommt und wenn nicht, dann hören sie
auf zu schreiben. Im Klartext heisst das, daß sich einer der beiden
durchsetzt. Bei den Slaves gibt es also zwei Möglichkeiten: Entweder
das tut genauso und es antwortet eben nur einer von beiden oder es
antworten beide und es gibt Datenmüll...

Grundsätzlich sollte die I2C-Beschreibung weiterhelfen:

http://www.semiconductors.philips.com/acrobat_down...

Gruss Florian.

Autor: Peter Kasi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einfach mal in ein Datenblatt einer I²C-Chipkarte schauen (z.b. bei
Reichelt), da steht auch drin unter welcher Adresse man die ansprechen
kann. Bei Chipkarten dürfte das immer die selbe sein. Wird wohl auch
nicht in der Spezifikation vorgesehen sein mehrere I²C-Karten an einem
Bus gleichzeitig zu betreiben....

Gruß
Peter

Autor: Ratber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Hans



Bei den meisten Speicherkarten ist die Adresse 0xA0 vergeben.
(Telefon,Krankenkarte usw.)



Und "NEIN" einen Adress-Pin gibt es bei Chipkarten nicht.

Entweder du läst imeer nur eine Karte laufen oder du mußt 2 I2C-busse
betreiben.

Eine Billige Alternative ist einfach den Bus umzuschalten.

Entweder per Relais,Transen oder komfortabel mit nem kleinen
Busextender der selber über I2C gesteuert wird.


Such dir was aus. ;-)

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.