Easy Way to Read UID(Unique ID) on i.MXRT RT1050

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Easy Way to Read UID(Unique ID) on i.MXRT RT1050

5,903 Views
1920844004
Contributor III

Greetings,

I',m working on ai.MXRT RT1050-based board, running RTOS. Lately, I'm with the requirement of obtain an identificator that must be unique to every board. I've been searching, and I notice the FUSEMAP module on Reference Manual, that claims to have a UID(Unique ID) information, UNIQUE_ID[63:0] ,Settings vary—used by HAB;but I can't figure out how to obtain it in my app image. Apparently, this module only access by the PC tool,such as blhost. Anybody could help me telling me an easy way to access this UID in my app image?

Thanks in advance

Tags (1)
0 Kudos
Reply
12 Replies

3,612 Views
camelshoko
Contributor I

截屏2022-09-07 17.11.57.png

 

this is my code add 64bit + 32bit = 96bit for normal use.

0 Kudos
Reply

5,000 Views
1920844004
Contributor III

Please refer to my previous post .

0 Kudos
Reply

5,000 Views
1920844004
Contributor III

below is tested succeed,read fuses in app in keil5.

readfuseOK.png

0 Kudos
Reply

5,000 Views
zhoubin
Contributor I

Dear Liu:

      Why we dont use OCOTP->CFG0 and OCOTP->CFG1 reg to obtain the UID in app.

      uint32_t CFG0; /**< Value of OTP Bank0 Word1 (Configuration and Manufacturing Info.), offset: 0x410 */
      uint32_t CFG1; /**< Value of OTP Bank0 Word2 (Configuration and Manufacturing Info.), offset: 0x420 */

Best regards

4,999 Views
jay_heng
NXP Employee
NXP Employee
0 Kudos
Reply

5,000 Views
1920844004
Contributor III

dear igorpadykov:

I find it! thanks!

0 Kudos
Reply

5,000 Views
348478748
Contributor I

Hi zhihui

I also encountered the problem of reading the UID.

The efuse_example has a bug.

How did you solve it?

Thanks in advance

0 Kudos
Reply

5,000 Views
1920844004
Contributor III

no!

now,PC use USB HID can read uuid, you should use nxpSecBoot.exe.my weixin is:18124528727,join it, and you make farther communication.

0 Kudos
Reply

5,000 Views
igorpadykov
NXP Employee
NXP Employee

Hi zhihui

one can try attached example.

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

5,000 Views
1920844004
Contributor III

Thank you for your reply. I have a bug in the testing process.

static inline bool OCOTP_CheckErrorFlag()

{

 if((OCOTP->CTRL&OCOTP_CTRL_ERROR_MASK) == OCOTP_CTRL_ERROR_MASK)

    return true;

  else

    return false;

}

this function always return true. I find RT1050RM,HW_OCOTP_CTRL ERROR  bit9 ERROR:

Set by the controller when an access to a locked region(OTP or shadow register) is requested.

 locked region.  BUT,I can read it by blhost.exe :

command:  .\blhost.exe -u -- read-memory 0x401F4610 4

 Inject command 'efuse-read-once'

Response status = 0 (0x0) Success.

Response word 1 = 4 (0x4)

Response word 2 = 1710761092 (0x65f82484)

so ,it is not be locked,is it right?

so ,why OCOTP_CTRL_ERROR is always be set ?

thanks!

0 Kudos
Reply

5,000 Views
igorpadykov
NXP Employee
NXP Employee

one can look on another example on

https://community.nxp.com/thread/478430 

0 Kudos
Reply

5,000 Views
1920844004
Contributor III

Hi igorpadykov:

thanks!

where are the attached example.?  I can not find it.

0 Kudos
Reply