mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATMega8 EEPROM - Probleme


Autor: Tobias B. (roxxity)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich lese hier schon länger mit, und bisher hab ich für alles eine Lösung 
gefunden, aber jetzt bin ich ratlos.

Mein EEPROM scheint Daten zu vergessen und ich kann mir nicht erklären 
warum. Es lässt sich auch keine Regelmäßigkeit feststellen, wann das 
passiert. Einige Variablen sind dann einfach mit wirren Werten 
überschrieben.

Ich programmiere in C und übers AVRStudio. Was mein Programm tut hab ich 
mal stichpunktartig aufgelistet:

- Timer1  mit CompareA+B, läuft immer für eine Software-PWM
- Variablen werden beim Start aus dem EEPROM ins RAM gelesen und danach 
nicht mehr angerührt. (eeprom_read_word) Erst danach kommt das sei();
- Ein Array wird hin und wieder aus dem Programmspeicher gelesen 
(pgm_read_word)
- Ein ADC-Eingang wird benutzt.
- Die Schaltung wird einfach abgeschalten, dabei fällt die Spannung 
relativ langsam ab.
- LB Lockbits sind gesetzt

Weis da jemand was dazu? Bin echt ratlos.

Grüße, Tobias

Autor: Gregor B. (gregor54321)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
brownout detection aktiviert?

Autor: peter-neu-ulm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn die Betriebsspannung abgeschaltet wird, kann, besonders bei großem 
Stütz-C, der Kontroller relativ lange im unteren Spannungsbereich 
arbeiten, wo z. B. der Programmzähler nicht mehr richtig arbeitet. Das 
kann dazu führen dass ungewollt am EEPROM rumprogrammiert wird.
Abhilfe ist die brown-out-Technik: immer wenn die zulässige 
Betriebsspannung unterschritten wird, schaltet sich der Kontroller in 
ein Reset. Dann wird durch die Wartezeit beim Neustart des Programms ein 
Zugriff auf das EEPROM verhindert.
Also bei Verwendung des EEPROM immer Brown-Out aktivieren. Möglichst 
große Start-up-Zeit einstellen.

Autor: Tobias B. (roxxity)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das scheint der Fehler gewesen zu sein. Steht sogar schön im Datenblatt 
drin -.-

Danke!

Autor: Nils (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe auch ein Problem mit dem internen EEprom beim MEGA32.

Ich möchte ein WORD ins eeprom speichern. Dazu benutze ich die eeprom.h 
vom AVR Studio und eeprom_write_word (0x0001,2500);.

Wenn ich jetzt compiliere, dann warnt der compiler mit folgender Meldung
"../main.c:76: warning: passing argument 1 of 'eeprom_write_word' makes 
pointer from integer without a cast"

Weiß jemand von euch woran das liegen könnte.

Danke und Gruss

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.