Hallo, habe ein Problem mit EEPROM, mit welchem ich schon seit vielen Monaten vergeblich kaempfe. Benutze den EEPROM, um die Sprachdateien meines Geraets abzuspeichern. Es ist ein Variablenfeld deklariert mit unsigned char eetext[3700] EEMEM; , aus welchem ich danach die die einzelnen Buchstaben nacheinander auslese mit: buchstabe = (char)eeprom_read_byte(&eetext[imtext]); "imtext" wird natuerlich vorher deklariert mit volatile unsigned int imtext=0; Es geht eine weile gut, jedoch nach mehrmaligem Ein-/Ausschalten sind immer wieder einzelne stellen im EEPROM geloescht. Auch die Funktion "Verify" zeigt dann an, dass der Inhalt des EEPROMs auf dem Atmega128 nicht mehr mit der entsprechenden hex Datei auf dem Rechner uebereinstimmt. Meine Software uberschreibt es ganz sicher nicht. Sie beschreibt den EEPROM nur ein mal und kehrt an diese Stelle nie wieder zurueck. Es passiert sowohl mit AVR-Studio 4 inkl. WinAVR wie auch mit dem AtmelStudio 6. Kennt jemand aehnliche Faelle? Gruesse Lukas
vielleicht fehlt dir bei Chip_select ein Pullup oder pulldown ? Was fürn Eeprom ? k.
Lukas schrieb: > Es passiert sowohl mit AVR-Studio 4 inkl. WinAVR wie auch mit dem > AtmelStudio 6. Was hat den dass mit deinem Problem zu tun? Das sind doch nur Texteditoren! Wie immer sit das Problem in dem >Code< in Zeile 42. Ist den Hinweis angekommen? _
Lukas schrieb: > Kennt jemand aehnliche Faelle? Das Problem taucht regelmässig hier i Forum und auch naderswo auf, die Lösung dazu steht im Datenblatt, und lautet "brown out detection" einschalten. Oliver
Also die Stelle mit der Adresse 0 wird manchmal bei einem reset überschrieben... Vlt. steigt deine Versorgung so langsam an, dass der µC erstmal amok läuft, mach mal die BOD (Brown-Out-Detection) an und stell die auf einen Wert der für deinen Quarz passt.
Bin nur nebenbei zum Programmierer geworden und lerne immer noch. "Brown-Out-Detection" war mir bis jetzt kein Begriff, aber danke fuer den Hinweis, werde in dieser Richtung weiterforschen. Was mit "Chip_select Pullup pulldown" gemeint ist, weiss ich noch nicht. Noch nicht. Werde nachlesen. Vielen Dank an alle fuer die Hinweise. Lukas prelis.de
Lukas schrieb: > Was mit > "Chip_select Pullup pulldown" gemeint ist, weiss ich noch nicht. das würde sich auf ein externes EEprom beziehen. Mitlerweile glaube ich aber, dass du irgendein internes verwendest. In diesem Falle kannst du den Hinweis vergessen. k.
Klaus De lisson schrieb: > Lukas schrieb:> Was mit> "Chip_select Pullup pulldown" gemeint ist, weiss ich noch nicht.das würde sich auf ein externes EEprom beziehen. Mitlerweile glaube ichaber, dass du irgendein internes verwendest. In diesem Falle kannst duden Hinweis vergessen.k. Ja, ich verwende den internen EEPROM. Habe mittlerweile ueber BOD nachgelesen und werde es heute Abend testen. Gruesse L.L.
Brown-Out-detection bedeutet, dass der µC sich solange im Reset befindet bis die Versorgung über den programierten Wert (bei AVRs entweder 4,3 oder 2,7 V) befindet und damit davor keinen Mist (z.B. EEPROM löschen) machen kann. Ist in den Fuses drinne. Für <= 8MHz reichen 2,7V für > 8MHz musst du 4,3 V einstellen.
Max D. schrieb: > Ist in den Fuses drinne. Für <= 8MHz reichen 2,7V für >8MHz musst du 4,3 V einstellen. Betreibe meinen ATmega128 AU mit 16mHz, daher sind 4,3V zu waehlen. Aber laut Datenblatt ist 2,7V (BODLEVEL=1) nur fuer ATmega128L waehlbar.
Lukas schrieb: > laut Datenblatt ist 2,7V (BODLEVEL=1) nur fuer ATmega128L waehlbar. Das passt schon. es ist nur wichtig, dass der uC nicht beim Ein- oder Ausschalten irgendwo herumdümpelt und nicht genau weiss was er tut. Gruss k.
Klaus De lisson schrieb: > es ist nur wichtig, dass der uC nicht beim Ein- oder Ausschalten > irgendwo herumdümpelt und nicht genau weiss was er tut. Wie heißt es so schön in der Bibel: Herr vergib ihm, denn er weiß nicht, was er tut! Bernhard
Bernhard R. schrieb: > Wie heißt es so schön in der Bibel: Herr vergib ihm, denn er weiß nicht, > was er tut! Der Herr wird dem AVR es vielleicht vergeben. Meine Kunden mir aber nicht. :)
Es funktioniert!!! :) BOD war die Loesung! Meine Firma ist gerettet! :) VIELEN VIELEN DANK AN ALLE! Lukas
Bernhard R. schrieb: > Klaus De lisson schrieb: >> es ist nur wichtig, dass der uC nicht beim Ein- oder Ausschalten >> irgendwo herumdümpelt und nicht genau weiss was er tut. > > Wie heißt es so schön in der Bibel: Herr vergib ihm, denn er weiß nicht, > was er tut! > > Bernhard Was soll das bedeuten ? Minst du es war falsch ? k.
Lukas schrieb: > habe ein Problem mit EEPROM, mit welchem ich schon seit vielen Monaten > vergeblich kaempfe. Lukas schrieb: > Es funktioniert!!! :) BOD war die Loesung! Meine Firma ist gerettet! :) Ähem, vielleicht solltes du dich tatsächlich mal etwas mit google und den damit gebotenen Suchmöglichkeiten im Netz befassen. Denn wie schon gesagt, das Problem (und viele andere auch) ist seit langem bekannt, und die Lösungen dazu auch. Maximal 5 Minunten Internet-Recherche hätten dir monatelanges kämpfen erspart. Alleine hier im Forum liefert eine Suchen nach "avr eeprom datenverlust" ausreichend viele Treffer. Oliver
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.