Attiny44 vergisst EEPROM-Inhalt

OP #2311544
Lesenswert?

Hallo,

mein Attiny44 vergisst das, was ich im EEPROM speichere. Fuses sind 
gleich wie beim Attiny2313 und gesetzt auf lfuse=0xEF und hfuse=0xDB.
Brown-Out-Detection ist somit 2,7V.

geschrieben wird mit
1
eeprom_write_dword(&eecode, savedcode);
2
eeprom_write_byte(&eelength, savedlength);

gelesen mit
1
savedcode = eeprom_read_dword(&eecode);
2
savedlength = eeprom_read_byte(&eelength);

Deklaration:
1
static byte_t eelength EEMEM;
2
static uint32_t eecode EEMEM;

Ich weiß nicht, woran es hapert, hat einer eine Idee?

Gruß,

Sven
Gast #2311555
Lesenswert?

Ja..
Oft liegt es daran. das Die Betriebsspannung absinkt, ( beim 
Aussschalten ) werend immer noch /RESET  High=5V+ ist..
Also Spannungswächter IC einbauen oder den Reseteingang mit Diode 
richtung V+ legen, damit der Kondensator am /RES entladen wird bei 
passiven RC Glied.
OP #2311567
Lesenswert?

Dann baue ich doch einen Kurzen, wenn ich flashe?
Das Problem tritt auch bei einer Schaltung ohne Kondensator am Reset auf 
(alte Revision)

Also an den Befehlen liegt es nicht, das muss irgendwie wohl mit dem 
Wegfall der Spannung zusammenhängen! (Darum erwähnte ich auch schon das 
mit dem Brown-Out)

Zufällig jemand aus Bremen hier mit einem High-Voltage-Programmierer?

Edit: Also habe ich parallel eine Diode zum Pullup-Widerstand am Reset 
geschaltet und egal wie herum, es geht nicht.
OP #2311958
Lesenswert?

Michael K. schrieb:
> Kannst ja mit dem AVR
> Studio mal den EEPROM Inhalt auslesen ...

Na super, das wird wieder spaßig. Ich habe das Studio ggf. nicht 
installiert, nie benutzt und programmiere eigentlich unter Linux, da ich 
eine vorhandene Firmware ändere mit Makefile etc.
Ich bin doch noch relativer Einsteiger! :-(

Falls ich mich an das Datenblatt halten möchte und den Beispielcode von 
da nehme:
1
void EEPROM_write(unsigned int ucAddress, unsigned char ucData)
wie bekomme ich
a) ucAdress heraus bzw. was trage ich dafür ein?
b) wandle die Zahlen (byte_t, uint32_t) in char um und zurück?
OP #2312284
Lesenswert?

Karl Heinz Buchegger schrieb:
> Sven Z. schrieb:
>
>> Ich bin doch noch relativer Einsteiger! :-(
>
> Du machst aber nicht zufällig den Fehler, dass du immer dann den EPROM
> Inhalt verlierst, nachdem du eine neue Software eingespielt hast und der
> Programmer den µC einem Komplettreset unterzogen hat, der auch das
> EEPROM löcht, sofern man das nicht mit einer Fuse unterbunden hat?

Also, wenn ich das Fuse-Bit setze, lässt sich der Controller nicht mehr 
programmieren. Nun habe ich schon 2 "Schrott"-Tinys und gleich muss ich 
einen AVR-Doper bauen zwecks Wiederbelebung! :-( Ich habe nur noch einen 
funktionierenden!

Nein, der Fehler tritt auf, sobald ich den Stecker ziehe. Das mit dem 
Programmierverlust weiß ich!
OP #2312788
Lesenswert?

Und es lag doch am Programm! :-D

Nachvollziehen kann ich es aber nicht!
Ich speichere einen Code sowie die Länge des Codes. Solange ich den 
Attiny nicht anrühre läuft alles wunderbar, aber sobald er vom Netz 
getrennt wird, klappt es nicht.
Ich habe jetzt die Code-Auswertung anders ausgeführt, allerdings mit 
anderen Nachteilen. Dann müsste ich mir noch mal überlegen, was ich 
ansonsten machen kann.

Danke erst einmal für die Hilfe!

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