Forum: Mikrocontroller und Digitale Elektronik ATmega8-16 signature + calibration bytes zurückgesetzt


von Finn W. (farthen)


Lesenswert?

Ich habe hier einen ATmega8-16, wo die Signature Bytes auf 0xFFFFFF, die 
Calibration Bytes auf 0xFFFF zurückgesetzt wurden. Ich hatte ein 
Programm für einen Tiny2313 genommen, neu für den Mega compiliert und 
übertragen und seit dem habe ich dieses Problem. Der µC lässt sich ohne 
Probleme programmieren und verwenden.

Und nein, am Programmer liegt es nicht, bei einem anderen Mega8-16 und 
einem Tiny2313 lassen sich diese Bytes ohne Probleme auslesen.

Trotzdem sind hier mal die Infos:

Programmer: usbprog (http://www.embedded-projects.net/usbprog) mit AVR 
ISP Firmware

Software: avrdude unter Windows

Schaltung: 
http://www.mikrocontroller.net/wikifiles/f/f6/Mega8_Tutorial.png auf 
einem Breadboard, Oszillator ist nicht da, interner Takt wird verwendet.


Das hier war relativ ergiebig, wollte den uralten Thread jedoch nicht 
bumpen: Beitrag "ATmega64 vergist seine Signature-Bytes"
Gab es da in den letzten Jahren irgendwelche Erkenntnisse?

Hat irgendwer eine Idee, wie ich die Signature Bytes wiederherstellen 
kann? Und vielleicht auch die Calibration Bytes zumindest auf 0x80 und 
nicht auf 0xFF umstellen?

von Frentzen (Gast)


Lesenswert?

mich würde auch interessieren ob ich den ATmega irgendwie auf die 
standard-fuses zurücksetzen kann wie er üblicherweise aus der Fabrik 
kommt.

von Finn W. (farthen)


Lesenswert?

Klar, wenn du über ISP nicht mehr drauf kommst nimmst du halt high 
voltage.

von max power (Gast)


Lesenswert?

da hast du glaube ich schlechte karten... laut datenblatt:

Signature may be Erased in Serial Programming Mode
If the signature bytes are read before a chiperase command is completed, 
the signature may be erased causing the device ID and calibration bytes 
to disappear. This is critical, espe-
cially, if the part is running on internal RC oscillator.

Problem Fix / Workaround:
Ensure that the chiperase command has exceeded before applying the next 
command.


>Calibration Bytes zumindest auf 0x80 und nicht auf 0xFF umstellen?
eine ander möglichkeit ist den wert im eeprom abspeichern und im 
programm dann nach OSCCAL zu schieben.
wie es ja üblich ist bei den 2,4 und 8 mhz OSCCAL werten.

von Finn W. (farthen)


Lesenswert?

Oder einen externen clock zu verwenden, was ich jetzt tue :-)

Der mega ist ja noch ansprechbar, halt nur falsche id und so

von max power (Gast)


Lesenswert?

>Und nein, am Programmer liegt es nicht, bei einem anderen Mega8-16 und
>einem Tiny2313 lassen sich diese Bytes ohne Probleme auslesen.

aber irgentwie frage ich mich dann schon wie der hund da reinkommt wenn 
nicht der programmer schuld ist?

das programm kann imho nur so einen fehler produzieren wenn es den 
"bootloader befehl" page erase ausführt und nicht auf die abarbeitung 
wartet.

von Finn W. (farthen)


Lesenswert?

Nein, die Bytes sind ja auch gelöscht. Das ist kein Programmfehler.

von max power (Gast)


Lesenswert?

ich hatte nicht richtig überlegt...
ein programm kann auf keinen fall so einen fehler auslösen!
ich dachte ein page erase und gleich danach ein signature read und der 
atmega is hin aber ein bootloader kann keine signatur roh lesen.

allein isp oder hv können signatur roh auslesen und in verbindung mit 
chiperase passiert dann der fehler.

also kurz um, entweder wars ein wackler in den anschlüssen oder der 
programmer hat nen bug und wartet nicht auf beendigung des chiperase 
befehls.

von Finn W. (farthen)


Lesenswert?

Ich tippe auf Wackler in den Anschlüssen. Ist ja auch egal, Problem ist 
nur, wie bekomme ich die Signatur wieder geschrieben?

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.