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

4,357 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
12 Replies

2,066 Views
camelshoko
Contributor I

截屏2022-09-07 17.11.57.png

 

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

0 Kudos

3,454 Views
1920844004
Contributor III

Please refer to my previous post .

0 Kudos

3,454 Views
1920844004
Contributor III

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

readfuseOK.png

0 Kudos

3,454 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

3,453 Views
jay_heng
NXP Employee
NXP Employee
0 Kudos

3,454 Views
1920844004
Contributor III

dear igorpadykov:

I find it! thanks!

0 Kudos

3,454 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

3,454 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

3,454 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!
-----------------------------------------------------------------------------------------------------------------------

3,454 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

3,454 Views
igorpadykov
NXP Employee
NXP Employee

one can look on another example on

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

0 Kudos

3,454 Views
1920844004
Contributor III

Hi igorpadykov:

thanks!

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

0 Kudos