2025-07-08 3:46 PM
Hi everyone,
I’m working with an STM32L476 and need to parse its 96-bit Unique Device ID (UID).
According to RM0351, the UID starts at address 0x1FFF 7590.
Reading that region with STM32CubeProgrammer gives:
• 0x1FFF 7590 : 0x004A0029
• 0x1FFF 7594 : 0x58335011
• 0x1FFF 7598 : 0x2031374B
So the full UID (high → low) is 0x2031374B 58335011 004A0029.
According to this documentation, the lower 32 bits encode the X/Y coordinates of the die on the wafer, in BCD.
That leaves two questions:
Bit mapping
Which 16-bit half-word is X and which is Y?
Is it X = bits [31:16] and Y = bits [15:0], or the other way around?
BCD validity
If the field is pure BCD (8421), every nibble should be 0-9, yet the value 0x4A contains nibble A (10).
Do recent STM32 parts still use BCD for these coordinates, or should those half-words be treated as plain unsigned integers?
Any clarification or official reference would be greatly appreciated.
Thanks!