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
Beim Mega8 besteht laut den Errata die Möglichkeit, sich die Signatur zu zerschießen, wenn bei ISP-Vorgang was schief läuft:
1 | Signature may be Erased in Serial Programming Mode |
2 | If the signature bytes are read before a chiperase command is completed, the sig- |
3 | nature may be erased causing the device ID and calibration bytes to disappear. This |
4 | is critical, especially, if the part is running on internal RC oscillator. |
Und ich hab hier auch noch andere AVRs liegen, die nicht mehr wissen wer sie sind, aber ansonsten noch ganz normal funktionieren...
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..
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.