Tiny841 Wafer#/Lot#/XY Coord auslesen

Gast #3806342
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
Gast #3830094
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++;
}
Gast #4055488
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.