Forum: Mikrocontroller und Digitale Elektronik Attiny mit Seriennummer? Oder Zufallsgenerator


von Tombo (Gast)


Lesenswert?

Hallo,
hat ein Attiny eine Seriennumer die man auslesen könnte?
Oder wie programmiert man einen einfachen Zufallsgenerator? um einzelne 
controller adressieren zu können?

von Cyblord -. (cyblord)


Lesenswert?

Tombo schrieb:
> Hallo,
> hat ein Attiny eine Seriennumer die man auslesen könnte?
> Oder wie programmiert man einen einfachen Zufallsgenerator? um einzelne
> controller adressieren zu können?

Nein die haben keine eindeutige ID.
Wenn du eine eindeutige ID willst, nimm z.B. einen entsprechenden 1-Wire 
Baustein:
http://www.maximintegrated.com/en/products/digital/memory-products/DS2401.html

Alternativ spricht auch wenig Dagegen eine laufende Seriennummer beim 
programmieren ins Flash oder EEPROM zu speichern.

Einen Zufallsgenerator kann man gut mit einem ADC Eingang und evt. einem 
kleinen Rauschgenerator davor (im einfachsten Fall ne Diode) 
realisieren.

: Bearbeitet durch User
von Tombo (Gast)


Lesenswert?

ja es geht natürlich darum sich Bauteile zu sparen und extra bei jeder 
programmierung ist natürlich auch mega umständlich..leider

von Cyblord -. (cyblord)


Lesenswert?

Tombo schrieb:
> ja es geht natürlich darum sich Bauteile zu sparen und extra bei jeder
> programmierung ist natürlich auch mega umständlich..leider

Leider lebst du in der Realität und nicht im Lilalummerland. Also musst 
du aus der Realität das beste machen. Es spricht auch nichts dagegen, 
bei einer Batch-Programmierung von vielen Controllern, das hochzählen 
völlig automatisch vorzunehmen. Somit hättest du kaum merkbaren 
Zeitverzug.
Was du damit nun für ein Problem hast, weiß ich nicht.

von Thomas E. (thomase)


Lesenswert?

Tombo schrieb:
> um einzelne
> controller adressieren zu können?

Dann hast du doch einen Master, der die Dinger aufruft. Der kann dem 
Controller dann eine ID verpassen, sofern er noch keine hat.
Irgendwie muss ein neues Device ohnehin im Netz bekannt gemacht werden.

mfg.

von Tombo (Gast)


Lesenswert?

eben, aber es wird immer gleichzeitig an ALLE gesendet..es würden also 
auch ALLE gleichzeitig antworten..daher geht das dann nicht..mit einem 
einfachen Zufallsgenerator wäre es dann also das einfachste...rauschen 
vom ADC wird aber sicher keine Werte von 0-255 oder so ausspucken..daher 
müßte ich einen einfachst Zufallsgenerator haben

von Cyblord -. (cyblord)


Lesenswert?

Tombo schrieb:

> einfachen Zufallsgenerator wäre es dann also das einfachste...rauschen
> vom ADC wird aber sicher keine Werte von 0-255 oder so ausspucken..daher
> müßte ich einen einfachst Zufallsgenerator haben

Dann musst du diese Werte halt in einen Bereich von 0-255 bringen.

Allerdings ist bei so einem kleinen Adressraum die Chance dann schon 
recht gut, hier oftmals doppelte Adressen zu bekommen. Da macht ein ZG 
keinen Sinn.

Dasselbe Problem hast du bei einer Silicon ID. Wenn du die auf 0-255 
normierst (z.B. mittels Modulo) hast du hohe 
Kollisionswahrscheinlichkeit.

Programmiere die Adresse ins EEPROM ein und gut ist.

von Max D. (max_d)


Lesenswert?

Also wenn du ne handvoll (einstellige Stückzahlen) AVRs hast, dann mach 
das halt für jeden "von Hand" im Code. Wenn du mehr hast, dann bastel 
dir ein skript, dass dir in einem eep file (kann man ja auch ein .bin 
nehmen, das is einfacher zu modifiziern) einfach die Nummern hochzählt. 
Wenn du Linux benutzt, dann dürfte das sogar iwie mit Bordmitteln gehen.

von Tombo (Gast)


Lesenswert?

na logo, notfalls halt genereieren bi 65000 oder so..daran würde es ja 
nicht scheiter..wenn mal was kollidiert ist es dann auch kein Drama 
solange es nicht zu oft passiert..nervig ist dann natürlich nur 
herauszufinden welche es ist evtl..aber das bekommt man sicher auch gut 
in den Griff

von Karl H. (kbuchegg)


Lesenswert?

Und woher weiss dann die Zentrale, wer eigentlich wer ist?

Vergiss die Idee mit den Zufallszahlen wieder.
Über wieviele Tiny reden wir eigentlich?

: Bearbeitet durch User
von Tombo (Gast)


Lesenswert?

?!? na weill alle Nummern abgefragt werden und dann adressiert werden?! 
das ist doch wohl keine Ernste Frage-oder? :-)
Die werden logischerweise adressiert

von Karl H. (kbuchegg)


Lesenswert?

Karl Heinz schrieb:

> Über wieviele Tiny reden wir eigentlich?

Und ach ja: wie sieht das Gesamtsystem aus?
Bei einer Handvoll Satelliten ist es simpler, beim programmieren jedem 
eine Nummer zu verpassen.
Vielleicht geht ja auch irgendwas in der Richtung: das ganze wird 
schrittweise in Betrieb genommen. Die Zentrale fragt beim Programmstart 
ab, wer noch keine ID hat (das darf dann nur 1 Satellit sein) und wenn 
es einen gibt, dann verpasst sie ihm eine (die bereits angemeldeten 
kennt sie ja schon). Dann wird der nächste Satellit angesteckt und das 
selbe Spiel wiederholt sich. Das alles so lange, bis alle Satelliten bei 
der Zentrale bekannt sind und eine ID haben.

Aber vielleicht geht das ja auch nicht, weil sich die Satelliten zu oft 
ändern? Es ist ein Unterschied, ob man eine Anlage einmalig in Betrieb 
nimmt und die dann relativ konstant bleibt, oder ab sich die 
Gesamtkonfiguration oft ändert. In deinem einen Fall kann man auch schon 
mal einmalig eine Krücke in Kauf nehmen, weil alles andere einfach viel 
Aufwand für nichts ist.

von Karl H. (kbuchegg)


Lesenswert?

Tombo schrieb:
> ?!? na weill alle Nummern abgefragt werden und dann adressiert werden?!
> das ist doch wohl keine Ernste Frage-oder? :-)

Doch. Ist es.

Die Zentrale fragt jetzt die Nummer 18567.
Die antwortet.

Aber woher weiss die Zentrale, dass das der Sensor im Schlafzimmer ist? 
Das könnte ja auch der Tiny mit der Nummer 2985 sein?

von Tombo (Gast)


Lesenswert?

hmmk..ja stimmt, das ist durchaus auch eine brauchbare 
Möglichkeit..werde ich mal überdenken :-)

von Tombo (Gast)


Lesenswert?

das mit der Zurodnung wäre kein Problem, könnte sich j die entsprechende 
Platine urch aufleuchten einer LED signalisieren, aber wie  gesagt, die 
andere Idee scheint mir such gut zu sein

von Adder (Gast)


Lesenswert?

Nach dem programmieren der Geräte wirst du die doch bestimmt erstmal 
testen.
Der "testbustmaster" kann dann doch die Adresse vergeben.

Ansonsten schau mal wie die das früher beim Ethernet mit dem Kolisionen 
auf dem Koaxkabel gehandhabt haben.

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.