Forum: Mikrocontroller und Digitale Elektronik Problem mit ATMega8 - Flash überschreibt EEPROM


von Ales J. (alesh)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

bin neu hier und hätte gleich mal eine Frage zum (Open source) 3D 
Lancmaster von Damir Vrancic.
http://dsc.ijs.si/3dlancmaster/default.htm
Kurzinfo: ein programmierbarer Stereo-LANC-Controller zum 
synchronisieren von 2 Camcordern für Stereo-Video.


Ich habe die Hardware soweit fertig, habe aber ein Problem mit dem 
Programmieren vom ATMega8 Flash/EEPROM via ISP.
ISP-Programmieren funktioniert zwar, d.h. ich kann prima schreiben, 
auslesen und vergleichen, aber irgendwie überschreibt mir das Flash nach 
dem Programmieren den EEPROM-Inhalt.
Wenn ich zuerst das EEPROM programmiere, ist der Vergleich i.O.
Sobald ich aber das Flash programmiere, ist zwar der Falsh-Vergleich 
i.O., aber der EEPROM-Vergleich NICHT i.O. (und auch keine Funktion des 
Lanc-Controllers.)
Die fuse bits sind entsprechend auf ext. Quarz gesetzt, BODEN=0, 
BODLEVEL=0, wie von Damir empfohlen. Siehe auch Anhang.
EESAVE bringt leider auch nix.

Hab' auf Damir's Rat auch verschiedene Programmiergeschwindigkeiten 
getestet, ohne Erfolg.
Problem tritt sowohl mit AVRStudio, AVRDude, als auch mit Ponyprog auf.

Hat jemand eine Idee, woran das liegen könnte?
Könnte das ein defekter ATMega8 sein?
Oder liegt das vielleicht an der Software?

Leider habe ich keine Kenntnisse in C-Programmierung, um einen Möglichen 
Fehler aus dem Quellcode herauszulesen und ggf. so hinzubiegen, um 
daraus ein funktionierendes . hex/.eep zu erzeugen.
Quellcode siehe Anhang.

Über Hilfe würde ich mich sehr freuen.

Danke im Voraus
Schöne Grüße
Alesh

von MWS (Gast)


Lesenswert?

Warum glaubst Du, gibt's da ein Kästchen mit "Preserve EEPROM memory 
..." ?

von MWS (Gast)


Lesenswert?

> EESAVE bringt leider auch nix.
Gerade erst gesehen. Die Aussage halte ich für nicht zutreffend.

In AVR Studio muss Flash und EEProm sowieso separat geschrieben werden, 
dann halt das EEProm nach dem Flash beschreiben.

Physikalisch ist beides getrennt und benötigt verschiedene 
Schreibmethoden, überschreiben des EEProm aus "Versehen" beim 
Beschreiben des Flash geht also nicht.

von Chris L. (kingkernel)


Lesenswert?

beim avr-studio musst du im Programmierfenster 2 Dateien angeben. einmal 
die hex-datei für den flash und zum anderen die eep-datei für das 
eeprom. eskann aber sein, dass du eine hex-datei hast, die auch den 
eeprominhalt enthält, dann diese angeben. du kannst sowohl flash als 
auch eeprom getrennt programmieren, auslesen und auch prüfen.
versuch also mal beide dateien anzugeben und dann getrennt zu 
programmieren und zu prüfen. und das eeprom am besten erst nach dem 
flash beschreiben.
sollte das nicht gehen, versuch mal einen anderen mega8, wenn du noch 
einen hast.

das phänomen ist mir bisher noch nicht unter gekommen, bei mir hat 
bisher alles geklappt

von Ales J. (alesh)


Lesenswert?

Christian L. schrieb:

> sollte das nicht gehen, versuch mal einen anderen mega8, wenn du noch
> einen hast.

Hallo Leute,

vielen Dank für Eure Antworten.

Nachdem ich den ATMega8 getauscht habe, ging's dann.


Danke & Gruß
Alesh

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
Noch kein Account? Hier anmelden.