[AVR] Device Signature Imprint Table auslesen / Produktions-Code

OP #3637468
Lesenswert?

tach,

wer kann mir weiter helfen?
Ich hätte gerne für eine unique Device-ID den "Device Signature Imprint 
Table" meines ATtiny841 ausgelesen, der an definierten Stellen die 
Lot-Nummer, Wafer, X und Y bereit hält.
Bekommen tue ich aber nur 0xFF an den Stellen und die Signature Bytes an 
Stellen, wo das Datenblatt sie gar nicht definiert.

Datenblatt: 
http://www.atmel.com/Images/Atmel-8495-8-bit-AVR-Microcontrollers-ATtiny441-ATtiny841_Datasheet.pdf

Ich brauche die Tabelle auf Seite 221 und lese sie aus wie beschrieben 
auf Seite 223,
1
#include <avr/pgmspace.h>
2
for(uint8_t i=0; i<0x1F; i++) {
3
  cli();
4
  SPMCSR = 0x21;
5
  tmp = __LPM_enhanced__(tmp); // --> LPM reg, Z
6
  sei();
7
  // output tmp via UART
8
}
bzw.
1
#include <avr/boot.h>
2
for(uint8_t i=0; i<0x1F; i++) {
3
  cli();
4
  tmp = boot_signature_byte_get(tmp);
5
  sei();
6
  // output tmp via UART
7
}

Ich weiß, Teil-/Pseudocode ist nicht beliebt, aber beide Wege führen zu 
gleichem Ergebnis:
1
0000: 1E 4E 93 21 15 80 FF 81 FF 51 FF FF FF 69 FF FF
2
0010: FF FF FF FF FF FF FF FF 17 01 12 02 13 02 FF FF

Laut Tabelle im Datenblatt sollte ich meine Daten von 0x0E bis 0x17 
finden ... offensichtlich nicht.

Benutzt wird Atmels aktuelle GCC-Tool-Chain mit avr-libc 
(avr8-gnu-toolchain-3.4.3.1072-linux.any.x86_64).

Danke für Tipps.
Gast #3723395
Lesenswert?

Nein, hab's aufgegeben.
Wir generieren eine ID beim flashen, Datenbankbasiert, und schreiben das 
dann an das Ende vom Flash. das ist dann auch garantiert unique, da ich 
nur 6 Bytes von der ID verwende.

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