XMega usersig programmieren/löschen

Gast #2636789
Lesenswert?

Hi Leute!

Ich muss euch mal um Rat bezüglich der usersig beim XMega bitten.

Prizipiell möchte ich bei einigen uC eine Art Seriennummer führen und 
benutze dafür die usersig.

Dazu habe ich mir ein Python-Script geschrieben, welches immer beim 
Flashen die usersig vom XMega ausliest und diese setzt, wenn die beiden 
ersten Bytes den Wert 0xff haben.

Soweit so schön. Jetzt wollte ich die usersig ein zweites Mal 
überschreiben - was jedoch nicht mehr geht.
Scheinbar sind die Schreibe-Operationen immer eine Art UND- Verknüpfung.

Ich vermute, dass es daran liegt, dass die usersig vorm Programmieren 
wieder gelöscht werden muss - was avrdude nicht kann.

Als Workaround hatte ich nun versucht die usersig vom XMega aus 
zurückzusetzen.

Für den Zugriff auf die usersig benutze ich die Funktionen von XBoot aus 
der sp_driver.S . Löschen wollte ich mit SP_EraseUserSigatureRow() - 
ohne Wirkung. Das Auslesen über SP_ReadUserSignatureByte(0) 
funktioniert.

Vielleicht hat ja jemand Ideen. An dem Problem hänge ich schon eine 
ganze Weile :-(


BTW. Die prodsig wollte ich nicht nehmen, da meine eigenen Seriennummern 
von 0-500 gehen sollten.


Danke schonmal für eure Hinweise!
Moderator Persönliche Seite #2636820
Lesenswert?

Alexander Krause schrieb:
> Jetzt wollte ich die usersig ein zweites Mal
> überschreiben - was jedoch nicht mehr geht.
> Scheinbar sind die Schreibe-Operationen immer eine Art UND- Verknüpfung.

Ja, man kann Bits immer nur von 1 nach 0 beschreiben.  Gelöscht werden
sie von 0 nach 1.  (Daher nennt man das auch "NAND Flash".)

> Ich vermute, dass es daran liegt, dass die usersig vorm Programmieren
> wieder gelöscht werden muss - was avrdude nicht kann.

So ist es.  "Wir arbeiten dran"[tm]

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren