Forum: Mikrocontroller und Digitale Elektronik AVR uC Software update über Eeprom?


von markus (Gast)


Lesenswert?

Hallo Zusammen

ich baue für ein paar Freunde ein paar simple Geräte mit AVR uC (aktuell 
Atmega328). Falls ich mal ein Update der Software erstelle (Bugfix, neue 
Funktionen), besteht die Möglichkeit, dass ich die neue Software über 
ein EEprom in den uC einspielen kann? Meine Freunde sind nur Anwender 
und ich möchte ein mögliches SW update so einfach wie möglich machen 
(Gerät auf, EEprom tausche, Gerät zu, fertig). Anschlüsse wie USB sind 
am Gerät nicht vorhanden und möchte ich wenn möglich vermeiden.

Geht das? Nach welchen Stichworten muss ich suchen um mich schlau zu 
machen? Bin ein ziemlicher Neuling auf dem Gebiet.

Vielen Dank für eure Unterstützung.

Gruss und schönen Sonntag noch!
Markus

von Frank K. (fchk)


Lesenswert?

markus schrieb:

> ich baue für ein paar Freunde ein paar simple Geräte mit AVR uC (aktuell
> Atmega328). Falls ich mal ein Update der Software erstelle (Bugfix, neue
> Funktionen), besteht die Möglichkeit, dass ich die neue Software über
> ein EEprom in den uC einspielen kann? Meine Freunde sind nur Anwender
> und ich möchte ein mögliches SW update so einfach wie möglich machen
> (Gerät auf, EEprom tausche, Gerät zu, fertig). Anschlüsse wie USB sind
> am Gerät nicht vorhanden und möchte ich wenn möglich vermeiden.

Im Gegensatz zu 8051 und vielen anderen Architekturen kann ein AVR Code 
nur aus dem internen Flash ausführen. Bevor Du EEPROMs tauschen lässt, 
lass deine User doch den AVR tauschen. Für die User ist der Aufwand der 
gleiche, und Du hast null Aufwand.

Wenn Du ihnen die Arbeit erleichtern willst, mach einen Nullkraftsockel 
rein.

fchk

von (prx) A. K. (prx)


Lesenswert?

markus schrieb:
> besteht die Möglichkeit, dass ich die neue Software über
> ein EEprom in den uC einspielen kann?

Geht. Du kannst einen Bootloader bauen, der den Inhalt vom EEPROM ins 
Flash programmiert, wenn er einen Unterschied sieht.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Am einfachsten wäre es natürlich über eine Serielle Schnittstelle, aber 
da du das ja nicht willst...

Klar kann man ein Update auch über ein EEPROM machen, einfach beim Start 
ein Magicbyte, am besten noch mit Version und Checksumme aus dem ERPROM 
auslesen und dann wenns ne neuere Version ist auslesen und ins Flash 
speichern. Im Grunde ist es so einfach das wenn man dafür Hilfe braucht, 
lieber die Finger davon lassen sollte.

Ansonsten schau dir mal ein Beispiel zum SPM Mnemonic an.

von c-hater (Gast)


Lesenswert?

markus schrieb:

> ich baue für ein paar Freunde ein paar simple Geräte mit AVR uC (aktuell
> Atmega328). Falls ich mal ein Update der Software erstelle (Bugfix, neue
> Funktionen), besteht die Möglichkeit, dass ich die neue Software über
> ein EEprom in den uC einspielen kann?

Natürlich geht das. Du musst einfach nur einen passenden Bootloader 
schreiben.

Der muss erkennen können, ob die Firmware im externen EEPROM eine andere 
ist als die im Flash und wenn das der Fall ist, halt die aus dem EEPROM 
in den Flash kopieren und einen Reset auslösen.

Ich würde aber als Medium statt EEPROM eher SD-Card benutzen. Die kann 
man viel "benutzerfreundlicher" realisieren. Ausserdem findest du dafür 
bereits fertige Bootloader im Netz.

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.