UART atmega8 automatische adressvergabe

Gast #1202224
hallo zusammen,

Folgendes Problem.. ich habe mehrere atmega8 controller an einer 
gemeinsamen UART hängen.Ich verwende ein datenframe von jeweils 4 byte( 
checksumme, controlword, nutzdaten und eine adresse. Mit dem adressbyte 
adressiere ich jeweils den kontroller, dem ich daten schicken möchte. 
Nun folgendes, wie kann ich mein kontrollernetz hochfahren, wenn ich 
nicht jedem kontroller softwaremässig seine eigene adresse gebe? Bislang 
mache ich es so dass ich für jeden kontroller eine eigene software 
compiliere mit jeweils unterschiedlicher adresse. Wäre es nicht möglich 
das beim starten zu erledigen, wie beispielsweise bei CAN- bus usw.?

danke und lg
Gast
du kannst die adresse in den eprom schreiben, dann kannst du immer die 
gleiche addresse verwenden.

Wenn die kontroller sich jedesmal eine neue Adresse holen, dann kannst 
du sie ja überhaupt nicht unterscheiden.
Gast
hmm ich habe es mir so vorgestellt: Ich starte das netz und gebe dann 
jedem kontroller per configurationsfile die schlussendliche adresse.
Es geht mir um folgendes.. wenn kontroller hinzukommen (was 
wahrscheinlich ist) muss der kontroller mit genau der richtigen software 
bespielt werden (richtige adresse) damit das ganze wieder funktioniert). 
Mit der automatischen vergabe, wäre nur eine anpassung der 
configurationsfiles notwendig.Eine andere möglichkeit ausser dipschalter 
gibts nicht?

lg
Gast
Doch. Du kannst auch sowas die DHCP machen. Gerät einschalten und dann 
lauscht es nach einer Adresse. Die kannst du dann senden. Allerdings 
benötigt das wiederum einen Master. Da ist die Idee mit dem EEPROM am 
Besten. Die Adresse kannst du ja beim flashen leicht per Script 
anpassen.
Gast
> Also wegen master ist das kein problem. Einen master habe ich. Lässt
> sich so etwas wie DHCP nach deiner meinung per uart realisieren?
gundsätzlich ja.

Ich habe auch schon mal darüber nachgedacht, aber es gibt ein kleine 
Problem. Wenn alle geräte am Bus gleichzeitig Strom bekommen und sich 
gleichzeitig (ist ja gleiche Software und die Quarze weichen auch nicht 
so stark ab) dann gibt es ein Problem bei einem Bus wo immer nur einer 
Senden kann. Man müsste ein Art zufallzahl einbauen welceh für eine 
künstliche verzögerrung sorg. Diese kann aber nicht in Sofware erzeugt 
werden weil ja jeder µC gleich ist. Man müsste also vermutich den ADC 
verwenden.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.