Forum: Mikrocontroller und Digitale Elektronik Tiny2313 Adresse einstellen


von Philipp H. (drame)


Lesenswert?

Hallo

Ich habe folgendes Problem:

Ich will mit Funk ein Netzwerk mit mehreren Avrs aufbaun.
Jeder Avr soll natürlich eine andre Nummer(adresse haben)
Natürlich wäre es möglich jedem eine Fixe adresse ein zuprogrammieren,
die idee ist aber, bei jedem Avr die adresse extern ein
zustellen...also irgendwie mit jumpern oder sowas in der art....
jetzt ist das problem das ich natürlich mit einem adressbyte die
adressen einstellen könnte und dann einfach bei port B die pins
einlesen....
ich brauch aber mehr als 255 adressen....also müssten es schon 2 byte
sein

da der tiny 2313 aber nicht viele ports hat und ich den rest der ports
für andre sachen brauche, wollte ich fragen ob ihr eine idee habt, wie
man bei jedem modul mit dem tiny drinnen die adresse einstellen kann
und sie jederzeit auch wieder ändern....

(das ändern hat den sinn, das man jedes modul auf eine beliebige stelle
stellen kann und dann einfach die richtige adresse einstellen)

mfg Philipp

von inoffizieller WM-Rahul (Gast)


Lesenswert?

Multiplexen...
Einfach die Schalter über zwei weitere Controllerpins mit Strom
versorgen.

von Ronny (Gast)


Lesenswert?

Kleines serielles EEPROM dran in dem die Adresse steht.Darin kann man
dann auch gleich noch andere Settings sichern.

Und geändert werden kann die Adresse dann per Software.Nachteil ist
natürlich das der EEPROM zumindest 1x programmiert werden muss.Oder du
opferst 2 Pins für eine Initial-Adresse (0x00..0x03) per Jumper und
proggst dann wieder per Software die korrekte Adresse rein.

von Philipp H. (drame)


Lesenswert?

Hmmm Multiplexen hab ich mir schon überlegt....

wie würde das dann ausschaun....hab bei multiplexer in der schule
irgendwie ausgeschaltet ^^

@ronny....wär schon gute idee....aber der sinn der sache is ja, dass
man ohne pc einfach die adresse einstellen könne soll

von Rick Dangerus (Gast)


Lesenswert?

Oder die DIP-Schalterchen an ein Schieberegister mit parallelen
Eingängen anschließen und dann in einem Rutsch per SPI o.ä. auslesen.

Man kann auch einen Pull-down an einen Port hängen. Wenn man dann den
internen Pull-up aktiviert kann man sehen, ob das Pin seinen Wert
ändert. Also eine Messung ohne internen Pull-up und eine mit.

1. Fall immer noch low -> wird per Schalter auf Masse gezogen
2. Fall Wert geändert -> Pin offen
3. Fall immer noch high -> wird per Schalter auf Vcc gezogen

Damit kann man pro Port drei Zustände erkennen.
1 Pin ->   3 Zustände
2 Pin ->   9 Zustände
3 Pin ->  27 Zustände
4 Pin ->  81 Zustände
5 Pin -> 243 Zustände
6 Pin -> 729 Zustände

Das steht auch in einer Appnote, ich glaube bei AVRfreaks.

Rick

von Philipp H. (drame)


Lesenswert?

hmm...mit schiebe register wär auch eine gute idee

mal schaun.....

sonst noch jemand ideen?

von Michael Wilhelm (Gast)


Lesenswert?

wie oftmals beim DMX adressiert wird, mittels 3 Stück BCD-Schalter. Dann
sind direkt 12 Portpins weg, gemultiplext dann nur noch 5 oder 6. der
Einstellbereich ist dann zwischen 0 und 999.

MW

von TravelRec. (Gast)


Lesenswert?

7-Segment-Anzeige dran und up/down Tasten. Die 7-Segment blinkert dann
nacheinander die Adresse durch, Beispiel 5-6-3-Pause-5-6-3-Pause... Das
geht dann auch für 4 und mehrstelligere Adressen. Den up/down-Tasten
ordnet man einen dynamischen Zähler zu, so daß man durch Festhalten der
Tasten einen Weiterlauf erzielt, um nicht 1000mal drücken zu müssen.
Läßt man die Tasten dann für mindestens 5 Sekunden unbetätigt, wird die
aktuelle Adress im internen EEPROM 1x abgespeichert.

von Philipp H. (drame)


Lesenswert?

Hmmm
ich werds jetzt mit einem 16Bit schift register machen
Dann brauch ich genau 4 Pins zum Einlesen und steuern
DAmit bin ich glücklich :D

danke für eure Hilfe

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.