-
-
Ethernet-Bootloader für Atmega32+ENC28J60
Hallo liebe Leute.
Nachdem ich nun einigermaßen einfache UDP-Port Ansteuerungen mit einem Atmega32 sowie dem ENC28J60 programmieren kann dachte ich mir ein neues Projekt anzustreben.
Da ich nun bereits schon mehrere Boards gebaut und vernetzt habe, dachte ich an eine zentrale Flashmöglichkeit. Am besten natürlich es direkt über das Ethernet, denn dies ist immer verbunden.
Ich dachte an eine Möglichkeit einen Art Server ins Netzwerk zu hängen auf dem die zu flashende Datei liegt. Das Programm welches beim start des Microcontrollers geladen wird schaut erstmal im Netzwerk nach ob dort ein Server mit einer aktuelleren Version zufinden ist und läd diese herunter.
Möglich wäre dies in einen extra Flash zu laden oder so zu schreiben dass die Datei Stück für Stück in den eigenen Flash geladen wird und anschließen sich selber programmiert (Self-Programming).
Hat jemand eine Ahnung wie man sowas am einfachsten realisieren könnte ? Wäre für jede Info sowie Hilfe dankbar.
Mfg.
Oliver
-
Erfahrener Benutzer
Robotik Visionär
Das sollte sogar ohne externen Speicher gehen. Genau wie bei den normalen Bootloadern auch, eine Seite (256 Worte oder Bytes ?) hohlen und dann den Teil des Flash aktualisieren. Nur den eigentlichen Netzzugang wird man schwer updaten können, denn den braucht man ja schon für den Bootloader und das alles doppelt zu haben sollte man vermeiden. Eventuelle höhere Ebenen des Protokolls könnte man natürlich aktualisieren.
-
Erfahrener Benutzer
Robotik Einstein
ich möchte hier nochmals den W5100(mit hardwired IP stack) und das WIZ812MJ einwerfen (auch wenns fast schon an werbung grenzt, aber den ENC halte ich für weit überholt), da du nur ne reihe von werten über SPI in die register jagen musst um ihn zu initialisieren und auszulesen! den software IP stack in die bootsektion zu quetschen halte ich persönlich für unmöglich
PS distru für die module ist
http://www.dacomwest.de/de/ethermodul.htm
das ding kann auch dhcp und tcp und du musst dich um kein stück der paketdaten kümmern, einfach in den speicher schreiben, adresse eintragen, oder im tcp einfach direkt den sendebefehl geben
-
Ja ist ja wirklich schön deine tollen Ethernet-Controller.
Aber wie du nunmal lesen kannst arbeite ich mit dem ENC28J60 und deshalb bringt mir jetzt deine Sache nicht viel denn ich werde bestimmt nicht den Chip wechseln.
Ich dachte an eine simple UDP Übertragung.
Man müsste herausfinden wie groß der Bootsektor eines Atmega32 ist.
Insgesamt müsste folgendes rein:
-Treiber für ENC28J60
-Kleines IP Stack für die UDP Übertragung
-Flashprogrammierung
Ich werde mal schauen das ich die Tage was erarbeite.
Ein Probleme sehe ich allerdings an den ganzen IP sowie Mac-Adressen.
Jedes Board hat eine andere IP sowie Mac-Adresse deshalb müsste jedes Board eine Vordefinierte ID bekommen welche durch den Server erkannt wird. Dieser stellt für jede ID eine neue .hex-Datei zur Verfügung welche jedem Board eine eigene IP-sowie Mac-Adresse zuordnet.
Bis demnächst.
Greetz
Oliver
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen