cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H7A3 Unique Device ID number question

RCooke88
Associate III

Hi @SofLit,

I need to develop a unique serial number for one of our products that will go into production soon. I'd rather use the UID that is built into the STM32H7A3 chip but I have some questions.

I understand that it is a 96bit value that I can read from the chip but I'd rather not have to use such a long and unwieldy number.

I looked at page 2920 of the manual RM4055 but it doesn't really tell me which byte is for which variable (Lot, Wafer, Die, etc).

This number will need to fit onto our 7" display as well as the serial number label on the product's back side.

Has anyone else been able to figure out the UID format?

Thanks,

Richard

1 ACCEPTED SOLUTION

Accepted Solutions

Hello @RCooke88 ,

Following are what we can provide as UID structure information:

0x8FFF800 - 16 bits ->	X coordinate (integer)
0x8FFF802 - 16 bits ->	Y coordinate (integer)

0x8FFF804 - 8 bits -> Wafer number (integer) 0x8FFF805 - 8 bits -> LOT_ID0 (ascii code) 0x8FFF806 - 8 bits -> LOT_ID1 (ascii code) 0x8FFF807 - 8 bits -> LOT_ID2 (ascii code) 0x8FFF808 - 8 bits -> LOT_ID3 (ascii code) 0x8FFF809 - 8 bits -> LOT_ID4 (ascii code) 0x8FFF80A - 8 bits -> LOT_ID5 (ascii code) 0x8FFF80B - 8 bits -> LOT_ID6 (ascii code)

It's the same as STM32H743. 

I'm pushing internally to add these details in RM0455.

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.

View solution in original post

9 REPLIES 9
AScha.3
Chief II

Hi,

look, from search here :

https://community.st.com/t5/stm32-mcus/how-to-obtain-and-use-the-stm32-96-bit-uid/ta-p/621443

 

I would use the 

  • UID[31:0]: X and Y coordinates on the wafer expressed in BCD format
  • UID[39:32]: WAF_NUM[7:0] Wafer number (8-bit unsigned number)

So you get a 40bit number, just for this chip. (is 12 digits )

If you feel a post has answered your question, please click "Accept as Solution".

@SofLit indicated that he'd check the specifics for the H7Ax/H7Bx

https://community.st.com/t5/stm32-mcus-products/stm32h743-unique-device-id-register/m-p/648318#M237588

I'm not sure there's anything in there that can be reduced in a way that's unique, and hashing is still likely to result in collisions.

You've also got 1KB of OTP, and if you're buying MAC Numbers for Ethernet, etc, then you could use that.

Commercially it would likely make sense to use your own scheme, which you can then relate to screen and MCU serial numbers if you need that within your own back-end databases, and perhaps any public / private keys you want to push into these devices.

You could use elliptic curve signing to permanently associate a specific MCU and PANEL, etc to a specific piece of hardware, but that obviously makes any rework / replacement exceeding difficult and undesirable.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
SofLit
ST Employee

I requested you to check RM0433 and asked if this is the information you are looking for. Could you please confirm and open a new thread with a specific title as other users can find the thread easily later?

Thank you

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.

I think the crux of the question here, is there anything that can be reduced effectively?

I think the realistic answer is that it cannot, and ST's not buying unique MAC/UUID numbers and passing the costs on to everyone.

ST's only reasonable guarantee is that the 96-bit value is unique for those IC's sold and manufactured by ST. The only way there'd be more than one instance would be if the process broke down somewhere, not impossible, but highly unlikely. 

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

SofLit,

I did open up a new thread and I tagged you (it's this thread). RM0433 is the manual for STM32H742 and '43 chips. We're using the STM32H7A3 chip. Both of the manuals (RM4033 and RM4055) show pretty much the same information. Neither one adds any information on which byte is what variable (Lot, Wafer, Die, etc.).

Thanks,

Richard

No. RM0433 shows wafer and lot information. Please check again.

PS: we cannot provide more details than what was provided in RM0433

SofLit_0-1709930660112.png

 

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.

>>Neither one adds any information on which byte is what variable

Long term they are all variable, and collectively they are unique.

The question is how variable, or what's the scope of a particular variable. The X, Y sounds like it could be an offset, not an index. It would get into what are the dimensions of the individual dies, and how many are on a wafer at a given fab.

Figure the wafers out of Crolles (VQ) are 300mm / 12", die likely smaller than 5x5mm, so >3000 die per wafer

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

Hello @RCooke88 ,

Following are what we can provide as UID structure information:

0x8FFF800 - 16 bits ->	X coordinate (integer)
0x8FFF802 - 16 bits ->	Y coordinate (integer)

0x8FFF804 - 8 bits -> Wafer number (integer) 0x8FFF805 - 8 bits -> LOT_ID0 (ascii code) 0x8FFF806 - 8 bits -> LOT_ID1 (ascii code) 0x8FFF807 - 8 bits -> LOT_ID2 (ascii code) 0x8FFF808 - 8 bits -> LOT_ID3 (ascii code) 0x8FFF809 - 8 bits -> LOT_ID4 (ascii code) 0x8FFF80A - 8 bits -> LOT_ID5 (ascii code) 0x8FFF80B - 8 bits -> LOT_ID6 (ascii code)

It's the same as STM32H743. 

I'm pushing internally to add these details in RM0455.

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.
LCE
Principal

I'm not sure if it was @Tesla DeLorean  or @Piranha who gave me the advice of building a 32-bit CRC from the 96-bit UID.

I'm using the result as part of my ethernet MACs and DNS-names.

But I'm not yet in high volume production - and probably will never be for our company. 😉