Forum: Mikrocontroller und Digitale Elektronik Tiny841 Wafer#/Lot#/XY Coord auslesen


von Markus (Gast)


Lesenswert?

Hallo Leute
wer hat sich schon näher mit dem tiny841 beschäftigt und versteht wie 
die
Tabelle 23-6 Contents of Device Signature Imprint Table
von der Firmware aus auszulesen ist? Mich interessieren nur die 
Wafer#/Lot#/XY Koordinaten um daraus eine ID zu bilden. Hat mir jem. 
einen Tipp oder einen code den ich mir genauer anschauen könnte?
Viele Grüße
Markus

von spess53 (Gast)


Lesenswert?

Hi

>Hat mir jem.
>einen Tipp oder einen code den ich mir genauer anschauen könnte?

Datenblatt S.223/224 '23.4.3 Device Signature Imprint Table Read'?

MfG Spess

von Markus (Gast)


Lesenswert?

Hi Leute

ich habe immer noch Probleme diese Tabelle auszulesen, könnte jem. bitte 
darauf einen Blick werfen?

Wenn ich die Daten auslese, erhalte ich folgendes (Erster Wert 1E = Byte 
address 0x00 internal)

1E 3C 93 1B 15 80 FF 81 FF 40 FF FF FF 69 FF FF FF FF FF FF FF FF FF FF 
17 01 12 02 13 02 FF FF 1F FF 08 39 44 16 80 85 BB 9E F8 B8 7D 17

Wobei hier schon die erste Frage auftaucht:

1E    93    15
Das ist die Signatur für ATTiny841 - in Tabelle 23-6 taucht diese 
Variable gar nicht auf, steht auf "reserved". Auch sonst finde ich im 
Datenblatt keinen Hinweis drauf, nur dass die 3 Signatur Werte eben 
diese Werte sein sollen die in der Device Imprint Table stehen sollen. 
In der Tabelle gibt es aber keinen Signature Parameter.

Dann ab der 15. Hexziffer (gleich nach der 69) sollte die Lot# stehen, 
bei mir steht aber 6x FF. Dann zwei Byte weiter die WaferNr. = FF. usw.

Es scheint so als wären die Daten entweder nicht einprogrammiert, oder 
die Tabelle stimmt nicht überein mit der Adress Map die ich auslese.

Wie kann man eigentlich diese Daten aus Atmel Studio heraus rauslesen? 
Beim Xmega tauchen nach dem Connect ja diese Werte auf, ich finde das 
beim ATtiny841 und STK600 leider nicht. Dann könnte ich wenigstens 
vergleichen ob es wirklich an der Tabelle im Datenblatt liegt.
Der Code:


#define __BOOT_SIGROW_READ (_BV(__SPM_ENABLE) | _BV(RSIG))
#define boot_signature_byte_get(addr) \
(__extension__({ \
uint8_t __result; \
_asm__ __volatile_ \
( \
"sts %1, %2\n\t" \
"lpm %0, Z\n\t" \
: "=r" (__result) \
: "i" (_SFR_MEM_ADDR(__SPM_REG)), \
"r" ((uint8_t)(__BOOT_SIGROW_READ)), \
"z" ((uint16_t)(addr)) \
); \
__result; \
}))


for(uint16_t i=0; i<0x2E; i++) {
BufTx[9+i] = boot_signature_byte_get(i);
IloscTx++;
}

von Spreißl (Gast)


Lesenswert?

Hi,

ich habe mehr oder weniger die Lösung zu dem Problem:

es scheint mir so, dass bei älteren Controllern standartmäßig die Lot 
und Wafer Nummern FF betragen.
habe selbst länger probiert und "zufällig" hats dann mal geklappt- nach 
genauerem Hin und Her bin ich dann darauf gekommen, dass es nur mit der 
"neuen" Charge klappt. Bei denen hat auch jeder wirklich ne andere 
Nummer.

mfg
Spreißl

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
Noch kein Account? Hier anmelden.