TWI Adressen abfragen

Gast #1145662
Lesenswert?

Nacht miteinander.

Ich suche eine Möglichkeit die Adresse aller ans TWI angeschlossenen 
Geräte auszulesen. Der Sinn ist, dass nicht immer alle möglichen Slaves 
ans System angeschlossen sind und der AVR das erkennen soll, und dazu 
auch neue ICs erkennen.
Bsp: Ich betreibe 3 I²C Temperatursensoren am TWI.
Beim µC soll jetzt beim einschalten erkennen, wieviele davon da sind und 
ob neue vorhanden sind. Die meisten ICs haben ja feste Adressräume. 
Damit könnte man doch erkennen, was für ein Gerät angeschlossen ist.

Natürlich müsste man die Adressräume fest einspeichern und der µC 
erkennt anhand der Adresse um welches Bauteil es sich handelt.

Geht es vielleicht so, dass man einfach alle Adressen abfrägt, die ich 
dem µC schon eingegeben habe?
1
if (adresse == TEMPSENSOR_LM75)
2
lade_temp_routinen_lm75();
3

4
if (adresse == TEMPSENSOR_DS1621)
5
lade_temp_routinen_da1621();
6

7
usw.

TEMPSENSOR_NAME müssten dann die Adressbereiche enthalten damit erkannt 
wird um welches Bauteil es sich handelt.
Gast #1145673
Lesenswert?

Und damit hat auch keines der angeschlossenen Teile Probleme? Nicht dass 
der µC dann sonst einen Aufstand macht weil er keine Antwort bekommt.

Wenn es keine Probleme gibt, werde ich wahrscheinlich die bekannten 
Adressbereiche abfragen. Thx.
Gast #1145779
Lesenswert?

>wenn Du nicht vergisst, auch ein Stop hinterherzuschicken, wenn sich ein
>Slave mit ACK gemeldet hat, spricht nichts dagegen.

Das STOP musst Du auch dann senden, wenn sich kein Slave mit ACK meldet, 
damit alle anderen Bus-Teilnehmer wissen das die Transaktion bendet ist.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren