AVR I2C Adresskonflikt

OP #3018151
Hallo,

ich habe momentan einen ATmega2560 und einen Lichtsensor am I²C 
angebungen. Soweit klappt alles mit dem Auslesen und dem Einstellen des 
Lichtsensors (Single Conversion, Genauigkeit, ..).

Ich wollte nun gerne mehrere dieser Sensoren an einen ATmega2560 hängen.

Dabei habe ich nur ein Problem:

Die Lichtsensoren haben eine vom Werk her fest eingebrannte I²C-Adresse 
(bei allen Sensoren dieses Typs die gleiche Adresse!). Damit kann ich 
natürlich nicht von beiden Sensoren die einzelnen Werte (ohne Probleme) 
auslesen, da ich ja keinen einzeln adressieren kann und der ATmega nur 
einen I²C-Treiber hat...

Gibt es eine Möglichkeit beide (oder noch mehr) Sensoren unabhängig 
voneinander zu betreiben, ohne für jeden einen eigenen ATmega zu 
benötigen?

Gruß Daniel
#3018155
Du kannst ja I2C über jeden Pin machen. Also nimm mehrere Pins.
Oder du schaltest jeden Sensor über einen Portpin ein und aus. Dann 
machst du immer nur den Sensor an, mit dem du grade Messen willst. I2C 
Leitungen gehen zu allen. Solche Sensoren sollten ja so wenig Strom 
ziehen dass du die direkt per Portpin schalten kannst. Der Aufwand ist 
also gering.

gruß cyblord
Gast #3018161
Welcher Sensor? Datenblatt...
Normal haben die doch 2 oder 3 Adressleitungen wo du den Rest der 
Adresse hardwareseitig festlegen kannst. Oder du musst eine Sub-Adresse 
programmieren.
OP #3018195
@Maier: Es handelt sich dabei um den TSL4531 von AMS (Link: 
http://ams.com/eng/content/download/250085/975413/142835). Er hat 
keinerlei Hardware-Adressierung sost wäre das ja kein Problem. Die 
komplette Adresse (0x29) ist bei allen Sensoren identisch!

@cyblord: Inwiefern kann ich I²C über jeden Pin machen? Per Software 
I²C?
Das mit dem Umschalten habe ich schon probiert aber iwie haut das mit 
der Hardware nicht so ganz hin... Also halt nur den anschalten den ich 
messen will...
#3018275
Es gibt Bausteine, die 3 oder 4 Pins haben, über die man dann 8+ 
Adressen auswählen kann, für jeden Baustein extra, je nach dem, ob man 
den Pin an Gnd oder Vdd anschließt. Wenn ich mehrere an den selben Bus 
hängen wollte, würde ich mir welche suchen, die das können.

Grüße,
Sven
#3018389
Oliver J. schrieb:
> Sven B. schrieb:
>> Wenn ich mehrere an den selben Bus
>> hängen wollte, würde ich mir welche suchen, die das können.
>
> ... da es ja "so viele" I2C Lichtsensoren am Markt gibt.
Der hier hat schonmal zwei mögliche Adressen: 
http://rohmfs.rohm.com/en/products/databook/datasheet/ic/sensor/light/bh1710fvc-e.pdf

Aber gut, wenn es genau dieser sein soll, fällt die Möglichkeit 
natürlich weg. :)
Gast #3020235
Daniel K. schrieb:

> Gibt es eine Möglichkeit beide (oder noch mehr) Sensoren unabhängig
> voneinander zu betreiben, ohne für jeden einen eigenen ATmega zu
> benötigen?

Bus muxen.

Ein 4052 für ein paar Cent erlaubt dir z.B. vier Sensoren mit gleicher 
Adresse. Zur Auswahl des anzusprechenden Sensors benötigst du zwei 
zusätzliche Pins für die Kanalwahl des 4052.

Mit 2x4051 und drei Pins für die Kanalwahl wären dann 8 Sensoren nach 
der gleiche Methode möglich und mit einem 4067 und vier Pins 16.
Gast #3020325
Ich würde es mit einem Analogmultiplexer (DA) und einem einfachen 
Digitalen (CL) Mux. versuchen. Vielleicht kannst Du Dir auch letzteren 
auch sparen und allen einen Einheitstakt spendieren.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.