EEPROM auslesen

OP #1631703
Lesenswert?

Hallo

Daß Daten im EEPROM nach Stromausfall erhalten bleiben, ist mir bekannt, 
aber daß sie nach Umprogrammieren weg sind, finde ich unpraktisch, 
insbesonders, wenn man den Umgang mit der eep-Datei nicht kennt, wo die 
EEPROM-Inhalte angeblich gespeichert werden könnten seien, was ich aber 
leider nicht nachvollziehen kann.

Also, ich habe ein Programm, das Meßwerte ins EEPROM schreibt und sie 
z.Zt. zwecks Kontrolle auch gleich wieder ausliest.
Ich möchte aber, daß sie im EEPROM bleiben und daß ich sie später mit 
einem anderen Programm wieder auslesen kann. Sie müssen also 
Umprogrammieren des ATMEGA und ggf. Stromausfall überstehen.

Kann mir vielleicht jemand beschreiben, wie man das bewerkstelligt?
Muß man die o.g. eep-Datei beim Programmieren aktivieren oder das 
Überschreiben des EEPROMs deaktivieren?


Vielen Dank schon mal
Alexander


PS: Ich benutze einen ATMEGA16 und gcc incl. avrdude auf einem 
XP-Rechner
OP #1632092
Lesenswert?

Grrrr schrieb:
> Lies einfach mal gründlich das Datenblatt

Hatte ich nicht ausdrücklich geschrieben, daß ich gcc benutze? Dort ist 
eeprom.h enthalten - was soll also der Hinweis auf das Datenblatt mit 
der unkomfortablen Lösung?

> und die Beschreibung von
> avrdude. Dann werden alle Deine Fragen geklärt.

Wenn ich damit zurechtgekommen wäre, hätte ich hier nicht nachfragen 
müssen.
So komme ich einfach nicht über die Nachfrage "can't set buffers for 
lpt1" hinweg; meine Schnittstelle com3 wird nicht akzeptiert.

Trotzdem vielen Dank
mfg
Gast #1632102
Lesenswert?

Alexander Schmeil schrieb:
> Hatte ich nicht ausdrücklich geschrieben, daß ich gcc benutze? Dort ist
> eeprom.h enthalten - was soll also der Hinweis auf das Datenblatt mit
> der unkomfortablen Lösung?

Sie soll Dich darauf hinweisen, das Deine Frage von Anzeichen für 
absolute Unwissenheit nur so strotzt.
Grundwissen mussst Du Dir selbst aneignen und nicht Deine Faulheit hier 
auf Kosten Anderer ausleben.

> Wenn ich damit zurechtgekommen wäre, hätte ich hier nicht nachfragen
> müssen.

Wir sind hier nicht dafür da Dir den Darwin-Arward zu ersparen. Wenn Du 
nicht lesen kannst, werde Gärtner.

> So komme ich einfach nicht über die Nachfrage "can't set buffers for
> lpt1" hinweg; meine Schnittstelle com3 wird nicht akzeptiert.

Soll das ein Argument sein oder reine Verzweiflung? Haust uns hier 
irgendeine Fehlermeldung um die Ohren?


> Trotzdem vielen Dank

Du kannst mich auch mal gerne haben.
#1632121
Lesenswert?

Alexander Schmeil schrieb:

> Also, ich habe ein Programm, das Meßwerte ins EEPROM schreibt und sie
> z.Zt. zwecks Kontrolle auch gleich wieder ausliest.
> Ich möchte aber, daß sie im EEPROM bleiben und daß ich sie später mit
> einem anderen Programm wieder auslesen kann. Sie müssen also
> Umprogrammieren des ATMEGA und ggf. Stromausfall überstehen.

Dein ATMEGA hat sicherlich auch eine Fuse, mit der man den EEPROM gegen 
Überschreiben beim Programmieren schützen kann.

AUch Brennprogramme unterscheiden oft zwischen 'Flash beschreiben', 
'EEprom beschreiben' und 'beides in einem Aufwasch beschreiben'. Benutzt 
du letzteres, kann dich nur noch die Fuse im Mega davor retten, dass das 
Brennprogramm das EEPROM beschreibt

> Kann mir vielleicht jemand beschreiben, wie man das bewerkstelligt?
> Muß man die o.g. eep-Datei beim Programmieren aktivieren oder das
> Überschreiben des EEPROMs deaktivieren?

Beides ist möglich.
Für ersteres empfiehlt sich das Studium der avrdude Doku. Für letzteres 
das Studium des Datenblattes.
Gast #1632124
Lesenswert?

Alexander Schmeil schrieb:
> Hatte ich nicht ausdrücklich geschrieben, daß ich gcc benutze?

Hattest du. gcc hat aber nichts mit deinem Problem zu tun.

Du kannst mit avrdude flashdaten und eepromdaten übertragen, musst es 
aber nicht zusammen tun. Und du kannst den AVR dazu bringen, seinen 
eeprom-Daten nicht zu vergessen.

Infos dazu stehen in der avrdude-Doku und im Datenblatt.

Also:
RTFM

Oliver
#1632134
Lesenswert?

Alexander Schmeil schrieb:
> Also, ich habe ein Programm, das Meßwerte ins EEPROM schreibt und sie
> z.Zt. zwecks Kontrolle auch gleich wieder ausliest.
> Ich möchte aber, daß sie im EEPROM bleiben und daß ich sie später mit
> einem anderen Programm wieder auslesen kann. Sie müssen also
> Umprogrammieren des ATMEGA und ggf. Stromausfall überstehen.
>
> Kann mir vielleicht jemand beschreiben, wie man das bewerkstelligt?
> Muß man die o.g. eep-Datei beim Programmieren aktivieren oder das
> Überschreiben des EEPROMs deaktivieren?

Also einen Stromausfall überstehen sie immer.
Beim Umprogrammieren des Atmegas muss man unterscheiden, ob der 
Programmer den Chip mit Chip Erase löscht, oder nur das Flash 
umprogrammiert, meisten aber wird ein Chip Erase gemacht. Dabei wird der 
ganze Chip gelöscht.
Man kann aber die FUSE EESAVE setzen/löschen, dann wird dieses 
verhindert.

Die EEP-Datei nützt für die Erhaltung der Daten nichts, sie enthält nur 
Initial-Werte für das EEPROM, z.B. wenn man im EEPROM einer Seriennummer 
ablegen will.
Wenn der Programmer die EEP-Datei in den Chip schreibt, werden die alten 
Werte überschrieben.
#1632227
Lesenswert?

Karl heinz Buchegger schrieb:
> AUch Brennprogramme unterscheiden oft zwischen 'Flash beschreiben',
> 'EEprom beschreiben' und 'beides in einem Aufwasch beschreiben'. Benutzt
> du letzteres, kann dich nur noch die Fuse im Mega davor retten, dass das
> Brennprogramm das EEPROM beschreibt

Nö.
Bei 'EEprom beschreiben' und 'beides in einem Aufwasch beschreiben' wird 
der EEPROM natürlich immer überschrieben.

Nur das pure 'Flash beschreiben' + EESAVE schützt den EEPROM.

Das EESAVE verhindert das Mitlöschen beim Flash löschen.


Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren