cancel
Showing results for 
Search instead for 
Did you mean: 

STM32C071 unique ID - what are the first 4 bytes really?

DavidEGrayson
Associate II

I have a NUCLEO-C071RB with an STM32C071RB.  In section 31.1 of RM0490 Rev 5, it describes the first 32 bits of the unique ID like this:

Bits 31:0 UID[31:0]: X and Y coordinates on the wafer expressed in BCD format

BCD should mean binary-coded decimal, which means each 4-bit nibble is between 0 and 9, but if I run "STM32_Programmer_CLI --connect port=swd -r8 0x1FFF7550 12", I get:

0x1FFF7550 : AF 00 40 00 14 50 36 42 48 37 30 20

The first byte, 0xAF, is not BCD.

In my experience working with these chips, it looks like bytes 0 and 2 are just arbitrary binary bytes which tend to be less than 0x80 but not always.  And bytes 1 and 3 are always 0.

So what do those first four bytes really represent?  And is the documentation for the other 8 bytes in RM0490 accurate? It says there is a 1-byte wafer number, followed by 7 bytes of ASCII for the lot number.

(Part of the reason I'd like to know this is so I can make a good scheme for converting the unique ID to an ASCII  string using less than two hex characters per byte, taking advantage of the parts of the unique ID that tend to be ASCII or zero.)

1 ACCEPTED SOLUTION

Accepted Solutions
STOne-32
ST Employee

Dear @Andrew Neil  @DavidEGrayson ,

Sorry for the wording.  The UID is Unique across all STM32 MCUs whatever is the series alike STM32F1, F0, C0 H7 etc, wanted just to highlight it .

 

Now back to original question, we confirm that our Reference Manual should be updated for STM32C0 and the decoding of X and Y is the following:

  • X and Y coordinates are coded on 16 bits, most significant bit being the sign bit.

So this means that the bit 15 is the sign bit and the 15 others are the coordinate number in hex format.

You can use this Internal Number#219769 for tracking in future.

Thanks again for spotting this . 

STOne-32.

View solution in original post

3 REPLIES 3
STOne-32
ST Employee

Dear @DavidEGrayson ,

Thank you for spotting this inconsistency, indeed these unique  96-bit are coded across all Unitary STM32 MCUs across all families , all series and may be impacted by our Different diffusion  factories , so either in BCD or Integer , HEX .

These are the X and Y position of the die at Wafer level which may be an 8 inch or 12 inch diameter , You can do maths how many die we may produce by a Wafer based on the die size which is equivalent to the WLCSP variant from each MCU part. It may happen also they the nibbles are mixed for the X and Y, But most important we guarantee that the coding is unique for the 96-bits .

Hope it helps you and will check internally with our factory on this particular device .

Regards,

STOne-32


@STOne-32 wrote:

Unitary STM32 MCUs


What does "Unitary" mean in this context?

A complex system that works is invariably found to have evolved from a simple system that worked.
A complex system designed from scratch never works and cannot be patched up to make it work.
STOne-32
ST Employee

Dear @Andrew Neil  @DavidEGrayson ,

Sorry for the wording.  The UID is Unique across all STM32 MCUs whatever is the series alike STM32F1, F0, C0 H7 etc, wanted just to highlight it .

 

Now back to original question, we confirm that our Reference Manual should be updated for STM32C0 and the decoding of X and Y is the following:

  • X and Y coordinates are coded on 16 bits, most significant bit being the sign bit.

So this means that the bit 15 is the sign bit and the 15 others are the coordinate number in hex format.

You can use this Internal Number#219769 for tracking in future.

Thanks again for spotting this . 

STOne-32.