Forum: Mikrocontroller und Digitale Elektronik XMega I2C Dynamische Adressvergabe


von Hans W. (hans_w30)


Lesenswert?

Hallo,
Ich versuche seit einiger Zeit mehere XMegas über I2C kommunizieren zu 
lassen. Hierzu sollen sie beim Einschalten eine dynamische Adresse 
bekommen. Nach dem Einschalten versucht jeder über einen General call 
die ID des Bausteins zu senden. Der der zuerst sendet, sendet nach der 
Baustein-ID noch seine I2C ID. Seine I2C ID wird bestimmt von einer 
Basis Adresse. Wenn einer eine I2C ID auf den Bus legt, wird diese von 
den anderen Bausteinen die noch keine I2C Adresse haben incrementiert 
und als BasisAdresse übernommen. Soweit die Idee.

Ich benutze zur Zeit zum Testen zwei verschiedene Bausteine. Ein XMega 
128A1 und ein XMega 16A4. Auf beiden läuft der gleiche Code(nur die 
Baustein ID ist anders).
Das Problem ist das sich beide unterschiedlich verhalten. Wenn der 128A1 
zuerst seine ID sendet dann klappt alles. Wenn der 16A4 zuerst sendet 
bekommt dies der 128er nicht mit.
(Nach der Initialisierung warte ich eine Zeit bis ich anfange zu senden. 
Jeder Baustein ist als Master und als Slave initialisiert.)


Hat jemand irgendeine Idee woran das liegen könnt?

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
Noch kein Account? Hier anmelden.