Operácie

Falošné čipy: Rozdiel medzi revíziami

Z SensorWiki

Riadok 28: Riadok 28:
  
 
* https://onlinedocs.microchip.com/pr/GUID-CBDC1838-0100-4F26-A45A-134958193C3B-en-US-4/index.html?GUID-5A8FB4BC-BC6B-47F2-AACE-6B6B107D5E8A - tieto mi sedia vo vypise?  
 
* https://onlinedocs.microchip.com/pr/GUID-CBDC1838-0100-4F26-A45A-134958193C3B-en-US-4/index.html?GUID-5A8FB4BC-BC6B-47F2-AACE-6B6B107D5E8A - tieto mi sedia vo vypise?  
Device Signature Byte 1 0x0000    - tu byva 1E co znamena vyrobca: Microchip
 
Device Signature Byte 2 0x0002    - tu by mala byt velkost Flash pamate, napr. 0x90 znamena 1kB
 
Device Signature Byte 3 0x0004    - toto je konkretne device (ATtiny 13 ma 0x07 napriklad)
 
RC Oscillator Calibration Byte 0x0001
 
  
 
+
Device Signature Byte 1 [0x0000]    - tu je kod vyrobcu
      Signature Bytes Address
+
     
   Part   0x000  0x001  0x002
+
                                      0x1E      Microchip (Atmel)
  ATmega48   0x1E   0x92   0x05
+
    
  ATmega88   0x1E   0x93   0x0A
+
Device Signature Byte 2 [0x0002]    - tu by mala byt velkost Flash pamate:
  ATmega168   0x1E   0x94   0x06
+
    
 
+
                                      0x8F                512
   Second            ATtiny
+
                                      0x90                1024
  signature byte:  ATmega memory size
+
                                      0x91                2048
 +
                                      0x92               4096
 +
                                      0x93               8192
 +
                                      0x94               16384
 +
                                      0x95              32768
 +
                                      0x96              65536
 +
                                      0x97              131072
 +
    
 +
Device Signature Byte 3 [0x0004]    - toto je unikatne ID pre konkretny device
 
    
 
    
  0x8F                512
+
                            Signature Bytes    Device
  0x90                1024
 
  0x91                2048
 
  0x92                4096
 
  0x93                8192
 
  0x94              16384
 
  0x95              32768
 
  0x96              65536
 
  0x97              131072
 
  
  1E 93 05 ATmega8
+
                                      0x1E  0x92  0x05    ATmega48
  1E 93 0A ATmega88
+
                                        1E    92    07    ATtiny44
  1E 94 06 ATmega168  
+
                                        1E   93   05   ATmega8
  1E 95 0F ATmega328P
+
                                        1E   93   0A   ATmega88
  1E 95 16 ATmega328PB (!)
+
                                        1E    93    0B    ATtiny85
 +
                                        1E    94    03    ATmega16
 +
                                        1E   94   06   ATmega168  
 +
                                        1E    95    02    ATmega32
 +
                                        1E   95   0F   ATmega328P
 +
                                        1E   95   16   ATmega328PB (!)
 +
 +
RC Oscillator Calibration Byte [0x0001]
 +
Lot Number 1st Char            [0x000F]
 +
Lot Number 2nd Char            [0x000E]
 +
Lot Number 3rd Char            [0x0011]
 +
Lot Number 4th Char            [0x0010]
 +
Lot Number 5th Char            [0x0013]
 +
Lot Number 6th Char            [0x0012]
 +
Reserved                      [0x0014]
 +
Wafer Number                  [0x0015]
 +
X-coordinate                  [0x0017]
 +
Y-coordinate                  [0x0016]
 +
  
  1E 94 03  ATmega16
 
  1E 95 02  ATmega32
 
  1E 92 07  ATtiny44
 
  1E 93 0B  ATtiny85
 
  
  

Verzia zo dňa a času 19:52, 25. jún 2024

Falošné čipy sú celkom často diskutovanou témou a tak som sa k nej dostal napokon aj ja. Začalo to celkom nevinne, nedokázal som totiž na jednej doštičke s klonom Arduino Nano rozchodiť časovač T2. A ani na druhej, ale na Arduino UNO mi to išlo. To už som začal hľadať chybu všade inde len nie u seba a napokon som narazil na stránku, kde bola opísaná jedna z možností, ako detekovať pravé Atmel (resp. Microchip) čipy a ako odhaliť tie nepravé. Je to celkom zaujímavé a dostaneme sa tak až celkom na úroveň výroby jednotlivých čipov. Každý mikroprocesor ATmega328P je spočiatku len jedna časť kremíkovej platne z priemerom 8 palcov, na ktorej sa postupne vrstva po vrstve vyrába celá štruktúra procesora. Ako takáto platňa (wafer) vyzerá?

[Silicon Wafer]
Kremíková platňa (wafer) s priemerom 8 palcov, ktorú drží v ruke Eric Weddington (Atmel)
v roku 2013 na Maker Faire New York. Jedna takáto platňa obsahuje približne 1500 mikroprocesorov ATmega328.
(Foto/Source: Lenore Edman, Evil Mad Scientist

Obvykle sa procesory (a iné obvody) nevyrábajú po jednom, ale v tzv. dávkach (batch, LOT) obsahujúcch niekoľko takýchto platní - od jednotiek až po niekoľko desiatok. No a firma Atmel po výrobe procesorov každý kus na platni otestuje a zapíše do pamäte jeho polohu a číslo platne, takže aj spätne sa dá zistiť, kedy, kde a ako procesor vyrobili. Každý procesor tak získa unikátne výrobné číslo (signature). Podrobnosti o tomto kóde sú zverejnené a tak nie je ťažko spraviť si jednoduchý program, ktorý tento kód dokáže prečítať.

ChipWaferOrganization.png

Lokalizácia konkrétneho čipu na kremíkovej platni
Zdroj: https://www.artwork.com/package/wmapconvert/manual_v2/glossary_of_terms.html

No a aké sú výsledky?


Sem pride tabulka so 4-5 Arduino Nano, najprv fotka celej dosky, pod nou USB prevodnik a konektor a napokon aj vycitany Signature.

Celkom na konci bude program, ktory si kazdy moze spustit a vyskusat spolu s odkazom na popis toho signature od Atmelu (miCrochipu):

Device Signature Byte 1 [0x0000]     - tu je kod vyrobcu
      
                                      0x1E      Microchip (Atmel)
 
Device Signature Byte 2 [0x0002]     - tu by mala byt velkost Flash pamate:
  
                                      0x8F                 512
                                      0x90                1024
                                      0x91                2048
                                      0x92                4096 
                                      0x93                8192
                                      0x94               16384 
                                      0x95               32768
                                      0x96               65536 
                                      0x97              131072
 
Device Signature Byte 3 [0x0004]     - toto je unikatne ID pre konkretny device 
 
                      		       Signature Bytes     Device
                                      0x1E  0x92  0x05    ATmega48
                                        1E    92    07    ATtiny44
                                        1E    93    05    ATmega8
                                        1E    93    0A    ATmega88
                                        1E    93    0B    ATtiny85
                                        1E    94    03    ATmega16
                                        1E    94    06    ATmega168	  
                                        1E    95    02    ATmega32
                                        1E    95    0F    ATmega328P
                                        1E    95    16    ATmega328PB (!)

RC Oscillator Calibration Byte [0x0001]
Lot Number 1st Char            [0x000F]
Lot Number 2nd Char            [0x000E]
Lot Number 3rd Char            [0x0011]
Lot Number 4th Char            [0x0010]
Lot Number 5th Char            [0x0013]
Lot Number 6th Char            [0x0012]
Reserved                       [0x0014]
Wafer Number                   [0x0015]
X-coordinate                   [0x0017]
Y-coordinate                   [0x0016]