Operácie

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

Zo stránky SensorWiki

Balogh (diskusia | príspevky)
Bez shrnutí editace
Balogh (diskusia | príspevky)
Bez shrnutí editace
Riadok 21: Riadok 21:
</center>
</center>
No a aké sú výsledky?
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):
* 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
      Signature Bytes Address
  Part   0x000  0x001  0x002
  ATmega48   0x1E   0x92   0x05
  ATmega88   0x1E   0x93   0x0A
  ATmega168   0x1E   0x94   0x06
  Second            ATtiny
  signature byte:  ATmega memory size
 
  0x8F                512
  0x90                1024
  0x91                2048
  0x92                4096
  0x93                8192
  0x94              16384
  0x95              32768
  0x96              65536
  0x97              131072
* Nas zaujima toto: Serial number - https://microchip.my.site.com/s/article/Serial-number-in-AVR---Mega-Tiny-devices

Verzia z 12:32, 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ť.


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 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


 		    Signature Bytes Address
 Part		   0x000   0x001   0x002
 ATmega48	   0x1E	   0x92	   0x05
 ATmega88	   0x1E	   0x93	   0x0A
 ATmega168	   0x1E	   0x94	   0x06
 Second            ATtiny 
 signature byte:   ATmega memory size
 
 0x8F                 512
 0x90                1024
 0x91                2048
 0x92                4096 
 0x93                8192
 0x94               16384 
 0x95               32768
 0x96               65536 
 0x97              131072