Hallo,
mir ist es leider passiert, dass die Signatur sich geändert hat. Ich
vermute, dass mir das durch einen Kurzschluss passiert ist.
Leider kann ich nun meinen atmega48 auch nicht mehr programmieren.
Ich benutze zum programmieren das STK500.
Kann man die Signatur wiederherstellen oder sind die dann endgültig
zerstört?
mfg
Ich glaube nicht, dass es dir gelungen ist, die Signatur zu zerstören.
Diese Meldung kommt meist, wenn die max. SPI-Frequenz überschritten
wurde (max. 1/4 der Quarz-Frequenz) oder der angesprochene Controller
nicht mit dem ausgewaehltem übereinstimmt.
Hallo,
Mehmet Kendi wrote:
> Ich glaube nicht, dass es dir gelungen ist, die Signatur zu zerstören.> Diese Meldung kommt meist, wenn die max. SPI-Frequenz überschritten> wurde (max. 1/4 der Quarz-Frequenz) oder der angesprochene Controller> nicht mit dem ausgewaehltem übereinstimmt.
Zitat aus dem datasheet Seite 289:
The ATmega48/88/168 has a byte calibration value for the internal RC
Oscillator. This byte resides in the high byte of address 0x000 in the
signature address space...
nichts ist unmöglich
@Carsten
versuche mal den AVR im STK500 via High - Voltage Programming zu
reanimieren.
Gruß aus dem Odenwald
@Joachim Rath
Das, was Du meinst, ist nicht die Signatur, sondern die Calibration.
Mit der Signatur stellt der Host (Programmer, JTAG etc.) fest, welcher
Controller angeschlossen ist.
Mit der Calibration Byte tut man die die interne RC-Frequenz fine tunen.
Mehmet Kendi wrote:
> @Joachim Rath>> Das, was Du meinst, ist nicht die Signatur, sondern die Calibration.> Mit der Signatur stellt der Host (Programmer, JTAG etc.) fest, welcher> Controller angeschlossen ist.> Mit der Calibration Byte tut man die die interne RC-Frequenz fine tunen.
Signatur und Calibration Byte liegen im gleichen Adressbereich.
Gruß aus dem Odenwald
> Signatur und Calibration Byte liegen im gleichen Adressbereich.
Nicht nur im gleichen, sondern im selben Adressbereich. Die Signatur
steht in den unteren Bytes der adressierten Worte, die Calibration ligt
in den oberen Bytes der adressierten Worte.
Es gab hier schon mehrere Threads, in denen das Problem diskutiert
wurde. Es ist also nicht der erste AVR, der seine Signatur vergessen
hat. Alltäglich ist das aber nicht.
KH
Tatsaechlich. Ist mir noch nie aufgefallen, dass Signature und
Calibration zum Teil dieselbe Adresse benutzen. Tja, schauen und
erkennen. Danke für die Belehrung.
> Danke für die Belehrung.
Sorry, als Oberlehrer wollte ich eigentlich nicht auftreten. ;-)
Es ist aber schon so, dass die Adresse ein 16-Bit-Wort adressiert, wobei
das untere Byte ein Signature-Byte enthält und das obere ein
Calibrationsbyte. Bei einigen AVRs können 4 Worte adressiert werden, da
es bis zu 4 Calibrationsbytes gibt. Siehe auch AVR-Appnote 053.
Das hat aber nichts mit dem hier vorliegenden Problem des Vergessens der
eigenen ID zu tun, ich wollte halt nur Deine Aussage präzisieren...
Frohe Weihnachten...
KH
Kachel - Heinz wrote:
>> Danke für die Belehrung.>> Sorry, als Oberlehrer wollte ich eigentlich nicht auftreten. ;-)>
So habe ich es auch nicht aufgefasst. Vielleicht eine etwas unglückliche
Wortwahl.
Auch Euch allen ein frohes Weihnachtsfest und ein glückliches neues
Jahr.
MfG aus Istanbul
konnte man das Calibrationbyte nicht manipulieren?
Da sollte es doch auch mit dem signaturbyte gehen?
Was mir allerdings aufgefallen ist, dass wenn ich den Quarz vergesse ins
brett zustecken gelegentlich eine falsche Signatur ausgelesen wird. ;-)
> konnte man das Calibrationbyte nicht manipulieren?
Es gibt einen Unterschied zwischen den Calibrationsbytes im
Signature-Space (der nur von einem Programmer erreichbar ist), dem
Calibrationsbyte in der letzten Flash- und EEP-Zelle bei Auslieferung
und dem Wert im I/O-Register OSCCAL. Den Wert in OSCCAL kann das
AVR-Programm jederzeit manipulieren, die Kopien in Flash und EEP werden
beim Brennen sowiso meist gelöscht, der Signature-Space sollte Readonly
sein, wenn das ISP-Protokoll eingehalten wird, also nicht grenzwertig
ist.
> Da sollte es doch auch mit dem signaturbyte gehen?
Normalerweise nicht, vermutlich aber mit undokumentierten ISP-Kommandos
oder durch grenzwertiges Timing.
> Was mir allerdings aufgefallen ist, dass wenn ich den Quarz vergesse ins> brett zustecken gelegentlich eine falsche Signatur ausgelesen wird. ;-)
Das könnte dann grenzwertiges Timing sein.
Mit der Signature hatte ich noch keinerlei Trödel, mit der Calibration
hatte ich mich mal intensiv beschäftigt, als die AVRs noch nicht
selbstständig beim Reset calibrierten, was z.B. bei Tiny12 und Tiny15
der Fall war, aber auch bei Mega8 uns vielen seiner Brüder, wenn man
einen internen Takt ungleich 1MHz aktiviert hat. Bei moderneren AVRs
wird die Calibration beim Hardware-Reset automatisch ausgeführt.
KH
Morgen,
Zitat aus dem M8 datasheet Seite 296:
3. 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, especially,if the part is running on
internal RC oscillator.
Problem Fix / Workaround:
Ensure that the chiperase command has exceeded before applying the next
command.
Gruß aus dem Odenwald
hallo,
ja also ich habe sie seither immer mit "High Voltage" programmiert, was
auch sehr gut funktionierte. wenn ich bei den Fuses schaue, und ich will
eine umprogrammieren, dann geht das auch nicht mehr! Er bringt dann
"Validation failed". Ich kann sie auch nicht mehr über ISP prgrammieren,
weil ich die Fuse nicht mehr gesetzt ist.
Bei einem habe ich das aber wieder hinbekommen! Aber diesen kann ich
nicht mehr mit "High Voltage" programmieren und dieser tut auch so nicht
mehr das, was er eigentlich sollte...
Alles etwas sehr seltsam..