Forum: Mikrocontroller und Digitale Elektronik 1:1 Kopie eines ATMega32


von Manfred Reyzl (Gast)


Lesenswert?

Ich will das Programm inkl. EEPROM eines ATMega32 auf einen zweiten
ATMEGA32 kopieren. Ich habe ein STK500 und habe schon alles was mir
dazu eingefallen ist ausprobiert.

Jeweils aus dem alten ATMega32 lesen und dann in den neuen ATMega32
schreiben

1. Flashinhalt lesen -> schreiben
2. EEPROM Inhalt lesen -> schreiben
3. Fuse- und Control-Bits lesen -> schreiben

Leider bringe ich keinen der neuen ATMegas zum Laufen. "Beruhigend"
ist dabei, dass ich es mit mehreren Prozessoren versucht habe und den
selben Effekt bekam. Ich will den Alten ersetzen, da er offensichtlich
einen Defekt an einem Port hat. Leider habe ich die passenden Sourcen
nicht mehr.

Besten Dank für Eure Hilfe.

von Bjoern B. (tishima)


Lesenswert?

Sind in dem alten Proz die Lock Bits gesetzt, dann kannste dir die 1:1
Kopie abschminken. Nach dem auslesen mal in das Hex bzw. BIN File
schauen, wenn da nur son Müll drinn steht wie 00 01 02 03 04 05 usw.
ist der Prozessor gelockt.

gruß,
Bjoern

von Manfred Reyzl (Gast)


Lesenswert?

Hallo Bjoern,
Lock Bits sind nicht gesetzt. Der alte Prozessor ist ja auch von mir
programmiert worden.
Grüße
Manfred

von inoffizieller WM-Rahul (Gast)


Lesenswert?

Die Fuses wirst du wohl eher manuell einstellen / "kopieren" müssen.
Bei den anderen beiden Speichern solltest du den Umweg über eine Datei
gehen.
Wenn das auch nicht geht, wird deine Zielschaltungen einen an der
Waffel haben...

von Thomas O. (Gast)


Lesenswert?

also hast du keine Fehlermeldungen die das Lesen betreffen?

von Manfred Reyzl (Gast)


Lesenswert?

Nein, Lesen und Schreiben ist jeweils ohne Fehlermeldung.

von Thomas O. (Gast)


Lesenswert?

dann schau dir mal das ausgelesenen File an ob da überhaupt was
drinsteht was nach Programm auschaut, kannst dir ja die Opcodes mal
anschauen und vergleichen

von pete nerlinger (Gast)


Lesenswert?

kompilier doch neu und flash dann den 2. controller. auf die einfachsten
dinge kommen die leute meist werd durch nen kleinen stupser... :)

von Thomas O. (Gast)


Lesenswert?

er hat ja den Quellcode seines eigenen Programmes nicht mehr zum
neukompilieren ;-)

zeig mal her dein ausgelesenes .hex File

von Manfred Reyzl (Gast)


Angehängte Dateien:

Lesenswert?

Anbei das hex file.

von Thomas O. (Gast)


Lesenswert?

schaut in Ordnung aus, nicht das du was auf dem STK500 falsch gejumpert
hast oder die Taktquelle nicht die richtige ist.

von Sebastian (Gast)


Lesenswert?

Gleich Vorweg: Ich kenn mich da nicht so gut aus. Aber ist das normal,
dass der Disassambler immerwieder zwischendrin einzelne Bytes mit
"Data or unknown opcode" hat?
Oder hast du damals so verstreut Datenbytes im Programm gehabt? Ich
setzt meine Daten normalerweise immer schön am Stück.

Sebastian

von Sebastian (Gast)


Lesenswert?

Ah, ich weiss warum. Das sind schon zusammenhängede Daten, aber die
Daten werden vom Disassambler als Opcode interpretiert und für die
meisten der Hexwerte gibts wohl einen passenden Opcode, sodass nur
vereinzelt Daten nicht interpretiert werden.

von Thomas O. (Gast)


Lesenswert?

wird daran liegen das ein x86 Dissambler nicht alle Befehle(opcodes) des
AVR Assemblers kennt.

von Sebastian (Gast)


Lesenswert?

Jetzt nur noch rein interessehalber, das Problem hat sich ja gelöst: Ich
hab das vom AVR-Studio disassamblen lassen. Der kennt schon alle Befehle
des AVR Assamblers, oder? Du verwirrst mich irgendwie.

@Manfred
Entschuldige bitte die Neugier, aber was hat das Programm eigentlich
gemacht? Schaut aus wie für ein Chemiewerk.

Sebastian

von Thomas O. (Gast)


Lesenswert?

sorry das AVR-Studio kann ja auch disassamblen. Dachte du hättest das
mit nem normalen Disassembler gemacht. Habe gerade auch ein Hex-File
durchgejagt und solche Meldungen nicht gefunden, kann es sein das du
den falschen AVR gewählt hast, weil ja bei manchen Typen einige Befehle
fehlen und es AVR-Studio dann vielleicht falsch anzeigt.

von Thomas O. (Gast)


Lesenswert?

Hab "Data or unknown opcode" doch noch gefunden dort wo einfach nichts
im Flash steht erscheint das.

von struberg (Gast)


Lesenswert?

Du solltest beim Ziel Mega32 auch noch darauf achten, ob du die Fuses
für Taktsource (internal, Quarz, externalClock), prescaler (CKSEL0..3),
etc richtig gesetzt hast.

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.