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
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
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++; }
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.