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?
mich würde auch interessieren ob ich den ATmega irgendwie auf die standard-fuses zurücksetzen kann wie er üblicherweise aus der Fabrik kommt.
Klar, wenn du über ISP nicht mehr drauf kommst nimmst du halt high voltage.
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.
Oder einen externen clock zu verwenden, was ich jetzt tue :-) Der mega ist ja noch ansprechbar, halt nur falsche id und so
>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.
Nein, die Bytes sind ja auch gelöscht. Das ist kein Programmfehler.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.