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?
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
ja es geht natürlich darum sich Bauteile zu sparen und extra bei jeder programmierung ist natürlich auch mega umständlich..leider
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.
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.
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
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.
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.
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
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
?!? na weill alle Nummern abgefragt werden und dann adressiert werden?! das ist doch wohl keine Ernste Frage-oder? :-) Die werden logischerweise adressiert
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.
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?
hmmk..ja stimmt, das ist durchaus auch eine brauchbare Möglichkeit..werde ich mal überdenken :-)
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.