STM32 unikalūs numeriukai

Posted: 2015-11-25 in Darbeliai
Žymos:, ,

Unikalus ID | Darau, blėGera žinia tiems, kas krapštosi su STM32 procesoriukais. Kiekvienas iš jų (bent jau teoriškai) turi unikalų 96 bitų serijinį numerį, įsiūtą firmwarėje. Tai yra baisiai naudinga, nes gaminant visokius įrenginius patogu juos „pririšti“ pagal kokį nors numerėlį. Be to, kadangi šis ID yra įsiūtas į procesoriuko ROM atmintį, jis nesikeičia ir jo nesugadinsite perrašydami programinę įrangą. Jis liks ten, kur ir turi likti.

Kaip tą numeriuką pasiimti? Pradžiai reikia pasigriebti savo procesoriuko „Reference Manual“. STM32F10x tai bus RM0008. Skyriuje 29.2 yra duotas unikalaus identifikatoriaus registro adresas: 0x1FFFF7E8. Kadangi registrą sudaro 96 bitai, jį galima nuskaityti, kaip tris 32 bitų beženklius skaičiukus (unsigned long int arba uint32_t).

Galime užsidefaininti tris skaičiukus šitaip:

#define U_ID_0 (*(uint32_t*) 0x1FFFF7E8)
#define U_ID_1 (*(uint32_t*) 0x1FFFF7EC)
#define U_ID_2 (*(uint32_t*) 0x1FFFF7F0)

Ir tada juos pavaizduoti į buferį:

sprintf(buf, "UniqID: %08X %08X %08X\r\n", U_ID_0, U_ID_1, U_ID_2);

Kaip tą buferį išspausdinti į kokią konsolę, jau jūsų reikalas. Ar per JTAG/SWD debugerį, ar per USARTą, kaip patinka.

Patikrinau savo porą devboardų, rezultatai va tokie:

UniqID: 066AFF48 57566650 87193539
UniqID: 0671FF32 34375430 43060944

Nu tikrai unikalūs numeriukai. Tiesa, internetai sako, kad jei gautumėte labai senų procesoriukų, iš pirmųjų bandomųjų partijų, tai jie gali turėti ir neunikalius ID. Na, bet tikėtina, kad nepasitaikys 🙂

Reklama
Komentarai
  1. n\a parašė:

    Skyrius turetu buti 30.2 🙂 Tik man vienas klausimas kyla, kodel reference manual’e pirma registra isskaido i du 16bit registrus. Galbut del “This field value is also reserved for a future feature.“ parasymo. Kazkaip abejoju, kad butu isskirta del to, kad parodytu gallimybe nuskaityti byte/half-word/word ilgio reiksmes

    • Darau, Blė parašė:

      Nu, pas mane gal vieno skyriaus trūksta. Tie dokai karts nuo karto atnaujinami, ypač, jei koks naujas nelabai besiskiriantis nuo ankstesnių procesoriukas išleidžiamas. Nuorodą įdėjau į tai, kas yr gamtoj, o skaičiau pas save jau porą metų gulintį lakštą.

      Dėl registrų nežinau, neimu į galvą 🙂

Parašykite komentarą

Įveskite savo duomenis žemiau arba prisijunkite per socialinį tinklą:

WordPress.com Logo

Jūs komentuojate naudodamiesi savo WordPress.com paskyra. Atsijungti / Keisti )

Twitter picture

Jūs komentuojate naudodamiesi savo Twitter paskyra. Atsijungti / Keisti )

Facebook photo

Jūs komentuojate naudodamiesi savo Facebook paskyra. Atsijungti / Keisti )

Google+ photo

Jūs komentuojate naudodamiesi savo Google+ paskyra. Atsijungti / Keisti )

Connecting to %s