42. Device electronic signature (DESIG)
The device electronic signature is stored in the system memory area of the flash memory module, and can be read using the debug interface or by the CPU. It contains factory-programmed identification and calibration data that allow the user firmware or other external devices to match the characteristics of the microcontroller automatically.
42.1 Device electronic signature registers
42.1.1 DESIG package data register (DESIG_PKGR)
Address offset: 0x000
Reset value: 0xXXXX XXXX (X is factory-programmed)
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PKG[4:0] | ||||
| r | r | r | r | r | |||||||||||
Bits 31:5 Reserved, must be kept at reset value.
Bits 4:0 PKG[4:0] : Package type
00001: UFQFPN32
00010: UFQFPN48
00011: WLCSP37
00101: UFQFPN32 USB
00110: UFQFPN48 USB
01101: WLCSP37 SMPS USB
01110: UFQFPN48 SMPS USB
Others: reserved
42.1.2 DESIG 96-bit unique device ID register 1 (DESIG_UIDR1)
Address offset: 0x200
Reset value: 0xXXXX XXXX (X is factory-programmed)
The 96-bit unique device identifier is ideally suited:
- • For use as a serial number (USB string serial number or other end applications).
- • For use as part of the security keys, to increase the code security in the flash memory while using and combining this unique ID with software cryptographic primitives and protocols before programming the memory.
- • During processes such as secure boot.
This unique device identifier provides a reference number, unique for a given device and in any context. These bits cannot be altered by the user.

| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| UID[31:16] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| UID[15:0] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
Bits 31:0 UID[31:0] : X and Y coordinates on the wafer expressed in BCD format
42.1.3 DESIG 96-bit unique device ID register 2 (DESIG_UIDR2)
Address offset: 0x204
Reset value: 0xXXXX XXXX (X is factory-programmed)

| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| UID[63:48] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| UID[47:32] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
Bits 31:0 UID[63:32] : Lot and wafer number
UID[63:40] = LOT_NUM[23:0], lot number lower part (ASCII encoded)
UID[39:32] = WAF_NUM[7:0], wafer number (8-bit unsigned number)
42.1.4 DESIG 96-bit unique device ID register 3 (DESIG_UIDR3)
Address offset: 0x208
Reset value: 0xXXXX XXXX (X is factory-programmed)

| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| UID[95:80] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| UID[79:64] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
Bits 31:0 UID[95:64] : LOT_NUM[55:24], lot number higher part (ASCII encoded)
42.1.5 DESIG temperature calibration 1 register (DESIG_TSCAL1R)
Address offset: 0x210
Reset value: 0xXXXX XXXX (X is factory-programmed)
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | TS_CAL1[11:0] | |||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | ||||
Bits 31:12 Reserved, must be kept at reset value.
Bits 11:0 TS_CAL1[11:0] : Factory temperature sensor calibration 1 value for ADC4
42.1.6 DESIG temperature calibration 2 register (DESIG_TSCAL2R)
Address offset: 0x240
Reset value: 0xXXXX XXXX (X is factory-programmed)
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | TS_CAL2[11:0] | |||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | ||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
Bits 31:28 Reserved, must be kept at reset value.
Bits 27:16 TS_CAL2[11:0] : Factory temperature sensor calibration 2 value for ADC4
Bits 15:0 Reserved, must be kept at reset value.
42.1.7 DESIG flash size data register (DESIG_FLASHSIZER)
Address offset: 0x2A0
Reset value: 0xXXXX XXXX (X is factory-programmed)
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| RAM_SIZE[15:0] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FLASH_SIZE[15:0] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
Bits 31:16 RAM_SIZE[15:0] : RAM memory size
These bits indicate the size of the total device system RAM memory in Kbytes.
For example, 0x0040 corresponds to 64 Kbytes.
Bits 15:0 FLASH_SIZE[15:0] : Flash memory size
These bits indicate the size of the device Flash memory in Kbytes.
As an example, 0x0040 corresponds to 64 Kbytes.
42.1.8 DESIG internal voltage reference calibration register (DESIG_VREFINTCALR)
Address offset: 0x2A4
Reset value: 0xXXXX XXXX (X is factory-programmed)
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | VREFINT_CAL[11:8] | |||
| r | r | r | r | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| VREFINT_CAL[7:0] | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | |||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:20 Reserved, must be kept at reset value.
Bits 19:8 VREFINT_CAL[11:0] : Factory internal voltage reference calibration value for ADC4
Bits 7:0 Reserved, must be kept at reset value.
42.1.9 DESIG IEEE 64-bit unique device ID register 1 (DESIG_UID64R1)
Address offset: 0x500
Reset value: 0xXXXX XXXX (X is factory-programmed)
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| DEVNUM[31:16] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DEVNUM[15:0] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
Bits 31:0 DEVNUM[31:0] : device number
The 32-bit unique device number is a sequential number, different for each individual device.
42.1.10 DESIG IEEE 64-bit unique device ID register 2 (DESIG_UID64R2)
Address offset: 0x504
Reset value: 0x0080 E120
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| STID[23:8] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| STID[7:0] | DEVID[7:0] | ||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
Bits 31:8
STID[23:0]
: company ID
0x0080E1 for STMicroelectronics
Bits 7:0
DEVID[7:0]
: device ID
0x20: STM32WBA2xxx
42.1.11 DESIG register map
Table 428. DESIG register map and reset values
| Offset | Register | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x000 | DESIG_ PKGR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PKG[4:0] | ||||
| Reset value | x | x | x | x | x | ||||||||||||||||||||||||||||
| 0x004- 0x1FF | Reserved | ||||||||||||||||||||||||||||||||
| 0x200 | DESIG_ UIDR1 | UID[31:0] | |||||||||||||||||||||||||||||||
| Reset value | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | |
| 0x204 | DESIG_ UIDR2 | UID[63:32] | |||||||||||||||||||||||||||||||
| Reset value | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | |
| 0x208 | DESIG_ UIDR3 | UID[95:64] | |||||||||||||||||||||||||||||||
| Reset value | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | |
| 0x210 | DESIG_ TSCAL1R | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | TS_CAL1[11:0] | |||||||||||
| Reset value | x | x | x | x | x | x | x | x | x | x | x | x | |||||||||||||||||||||
| 0x214- 0x23F | Reserved | ||||||||||||||||||||||||||||||||
| 0x240 | DESIG_ TSCAL2R | Res. | Res. | Res. | Res. | TS_CAL2[11:0] | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | |||||||||||
| Reset value | x | x | x | x | x | x | x | x | x | x | x | x | |||||||||||||||||||||
| 0x248- 0x29F | Reserved | ||||||||||||||||||||||||||||||||
| 0x2A0 | DESIG_ FLASHSIZER | RAM_SIZE[15:0] | FLASH_SIZE[15:0] | ||||||||||||||||||||||||||||||
| Reset value | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | |
| 0x2A4 | DESIG_ VREFINT_ CALR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | VREFINT_CAL[11:0] | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | |||||||||||
| Reset value | x | x | x | x | x | x | x | x | x | x | x | x | |||||||||||||||||||||
| 0x2A8- 0x4FF | Reserved | ||||||||||||||||||||||||||||||||
| 0x500 | DESIG_ UID64R1 | DEVNUM[31:0] | |||||||||||||||||||||||||||||||
| Reset value | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | |
| 0x504 | DESIG_ UID64R2 | STID[23:0] | DEVID[7:0] | ||||||||||||||||||||||||||||||
| Reset value | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | |