Forum: Mikrocontroller und Digitale Elektronik [AVR] TWI Adresse über einen Analog Input Pin setzen


von axlalf (Gast)


Lesenswert?

Hallo!

Ich will einen TWI-Bus aufbauen, ich hab noch nichts programmiert, im 
Moment versuche ich noch alle Probleme auszuräumen.

Im Moment stehe ich vor dem Problem, wie man am besten die Adresse eines 
Slaves setzt. Ich möchte mehrere ATtiny25 als Slaves verwenden. Nach 
Abzug der 2 Pins für den TWI-Bus, bleiben noch 4 Pins für IO. Davon kann 
ich vielleicht noch einen Analog Pin entbehren über den man die Adresse 
einstellt. Wie macht man das am besten wenn man nur einen Pin hat?

Ich dachte erst man setzt für jede Adresse einen bestimmten Widerstand 
ein, liest den analogen Wert aus und rechnet das in eine Nummer zwischen 
2-100 um. (Auf Adresse 1 wollte ich meinen Master legen).

Gibt es einen besseren Weg?

Danke!

axlalf

von Timmo H. (masterfx)


Lesenswert?

axlalf schrieb:
> Gibt es einen besseren Weg?
mit einem freien Pin? Nein.

Wieviele µCs willst du denn adressieren? Wirklich 100 Stück? Da wirds 
natürlich eng wegen Rauschen, Toleranz etc.

ansonsten halt nen µC mit ein paar Pins mehr nehmen. Oder du schreibst 
die µC Adresse individuell ins EEPROM

von axlalf (Gast)


Lesenswert?

Naja, ich dachte so an vielleicht bis zu 32 stück sollten reichen...

Würde das gehen? Das sollte die Sache mit dem Widerstand einfacher 
machen. Naja das mit in den EEPROM schreiben ist ein bisschen doof weil 
es wird nicht für mich, und wenn der jemand dann die Adresse ändern will 
dann wirds schwierig.

Okay, dann werde ich das mit dem Widerstand machen.

von Peter D. (peda)


Lesenswert?

axlalf schrieb:
> Naja das mit in den EEPROM schreiben ist ein bisschen doof weil
> es wird nicht für mich, und wenn der jemand dann die Adresse ändern will
> dann wirds schwierig.

Das ist sogar das einfachste.
Ein neu programmierter Slave meldet sich auf einer default Adresse.
Du hängst immer nur einen Slave an den Master, der erkennt die default 
Adresse und fordert Dich auf, eine andere Adresse zuzuweisen. Die 
speichert dann der Slave in seinem EEPROM ab.


Peter

von Achim M. (minifloat)


Lesenswert?

Peter Dannegger schrieb:
> Ein neu programmierter Slave meldet sich auf einer default Adresse.

Ein Slave, der den einen entbehrlichen Pin auf Masse gezogen hat, meldet 
sich im Adressprogrammmiermodus mit einer Default-Adresse.
So kann man auch Slaves im nachhinein, ohne einen Programmer zu 
benutzen, noch umadressieren.
mfg mf

von axlalf (Gast)


Lesenswert?

@mf: Du bist genial :P Das klingt am besten. Danke für alle Ideen!

axlalf

von Achim M. (minifloat)


Lesenswert?

axlalf schrieb:
> Du bist genial

Nur mit Peters Vorarbeit :)

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.