mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmel AT98C51ED2 flash download


Autor: Jan Schwinkendorf (jsc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich suche nach einer Lösung, den AT89C51ED2 embedded zu flashen. Flip 
habe ich bisher verwendet, möchte aber gern selbst einen Bootloader 
schreiben, der unabhängig von einem PC funktioniert.

Mein AT89C51 ist über RS485 mit einem Host Controller verbunden. Ich 
möchte, dass der Host Controller ein Firmware update für den AT89C51 
durchführen kann. Dazu müsste der Host die neue Firmware in z.B. 256 
Byte Happen stückeln und über die RS485 downloaden.

Damit der AT89C51 die neue Firmware geflasht bekommen kann müsste er per 
Software in diesen Download-Zustand versetzt werden. Nach Download soll 
automatisch das frisch geflashte Programm des AT89C51 ausgeführt werden. 
Vorteil davon ist, dass man nur einen Software update für den Host 
Controller machen muss und der die "Unterverteilung" vornimmt.

Hat jemand Erfahrung damit?

Gruss
JAN

Autor: Rolf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stichwort: IAP. An so einen Bootloader hätte ich auch Intresse. Ich bin 
mir nicht sicher, ob das so ohne weiteres geht, da der Bootcode im 
gleichen Flash ausgeführt werden müsste, wie der neu zu programmierende. 
Vermutlich ginge es nur, wenn der Bootloader im XRAM ausgeführt wird. 
Dazu brauchte man beim AT89C51x eine Neumann-Struktur mit externen SRAM.

Ich habe sowas schon programmiert, allerding für µPSD3200-Baureihe 
(8051-Kompatibel) von STM. Diese haben aber 2 unabhängige FLASH-Speicher 
auf dem Chip. Damit wird IAP problemlos realisierbar.

Rolf

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit nem Custom-Bootloader geht bei den Atmel 8051 ganz einfach, Du 
kannst ja mit dem Bootvektorbyte jede 0x**00-Adresse als Resetstart 
auswählen.

Wir machen das auch und haben einen CAN-Bootloader drin, der dann die 
API-Funktionen des Hersteller-Bootloaders aufruft.

Nach jedem Einschalten ist dann der CAN-Bootloader aktiv und wartet auf 
ein bestimmtes Kommando. Ansonsten startet er nach dem Timeout die 
Applikation.


Peter

Autor: Jan Schwinkendorf (jsc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Rolf & Peter,

danke für die Infos. Ich habe daraufhin noch mal das Datenblatt vom 
AT89C51ED2 durchforstet und einiges dazu gefunden. So ganz trivial 
scheint mir das aber nicht zu sein...Peter, falls Du Code hast, den ich 
als Basis für die Programmierung des RS484 downloads verwenden könnte, 
wäre ich dankbar.

Gruss
JAN

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.