Hallo ! Habe das Problem, dass nach der Wiederkehr der Versorgungsspannung Werte im internem EEprom des Mega32 manchmal verändert sind. Hat jemand das Problem schon mal gehabt oder weiß Abhilfe ? Grüße Josy
EEARl/H nach Schreibvorgang auf letzte Adresse im EE setzen, Resetzeit auf längstmögliche Zeit einstellen, internen RC-Oscil.verwenden, Resetbaustein einsetzen, Durchdrehen, Controllerfamilie wechseln, Brownout in den Fuses auf höchsten Wert setzen ;-), I2C EE verwenden bzw. Uhrenbaustein mit Bat.und Ram usw. Atmel nervt..... SG Josy
Das EEprom der AVRs reagiert sehr empfindlich auf eine langsam abfallenden Spannungsversorgung beim AUSschalten. Das EEprom scheint nach dem einschalten/(reset?) erstmal "abgekoppelt" zu sein. Bestehende daten werden dann auch nicht bei langsam "absterbender" Schaltung verändert. Aber: Bereits ein einziger lesezugriff reicht um die daten beim mächten ausschalten in gefahr zu bringen. Habe das mehrfach nach spätestens 50 mal ausschalten gesehen. Um das zu verhindern muss man den "Brown out detector" einschalten (low Fuse BODEN), und eine möglichst hohe schaltschwelle einstellen (low Fuse BODLEVEL). Details dazu z.b. Datasheet Mega8 Seite 38. Habe "BODEN" und "BODLEVEL" auf 0 ("programmed") gesetzt. Dadurch bekommt der AVR unterhalb von 4V einen dauerhaften reset. Damit waren auch nach über 150x ausschalten keine veränderungen festsellbar. Atmel gibt auch selbst im datasheet einen hinweis darauf unter "Preventing EEPROM Corruption"... habe auber auch eine weile gebraucht um den Bug zu finden.
Danke für die Antworten. Werde bei kritischen Werten eher ein externes EEprom nehmen. Bieten auch mehr Speicherplatz und sind schnell ausgetauscht. So kann man Konfigurationen auf andere Systeme schnell übertragen und das Klapptop kann zu Hause bleiben. Gruß Josy
Schau Dir dazu mal den AT28C64B mit "Software Data Protection Enable/Disable Algorithm" an. Ist etwas umstaendlich da man beide Sequenzen bei jedem Schreibvorgang braucht (disable-Daten schreiben-enable), aber dafuer sicher. Ich hab das Teil im Einsatz und es funktioniert reibungslos solange man nicht genau waehrend des Schreibvorganges den Strom abschaltet. Ich rufe zur Sicherheit bei jedem Reset des Systems die enable-Routine 1x auf um sicher zu sein dass der Schutz aktiviert ist falls doch mal im unguenstigsten Moment abgeschaltet wurde. juergen
Danke Juergen ! Habe gesehen, dass im Mega32 der Brounout-Level auf 4,0 V eingestellt war, aber der Brounout-Dedector dich freigegben war (BODEN = 1). Habe jetzt mit eingeschaltetem BOD getestet (langsam sinkende Versorgungsspannung, ca 150x) und es trat kein Problem bis jetzt mehr auf. Gruß Josy
Na bitte, dann sollte es ja auch so gehen. Der Vorteil des 28C64B ist halt dass es ein absoluter Schreibschutz ist, egal wie der Rest des Systems ausschaut. Ich habe den genommen weil meine Controller keine BOD-Mimik haben. juergen
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.