Attiny mit Seriennummer? Oder Zufallsgenerator

#4152186
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.
#4152217
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.
Gast #4152239
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
#4152244
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.
#4152248
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.
Gast #4152263
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
#4152284
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.
Gast #4152328
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.

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