Forum: Mikrocontroller und Digitale Elektronik Atmel AT98C51ED2 flash download


von Jan S. (jsc)


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

von Rolf (Gast)


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

von Peter D. (peda)


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

von Jan S. (jsc)


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

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
Noch kein Account? Hier anmelden.