30. Device electronic signature

Low-density devices are STM32F101xx, STM32F102xx and STM32F103xx microcontrollers where the Flash memory density ranges between 16 and 32 Kbytes.

Medium-density devices are STM32F101xx, STM32F102xx and STM32F103xx microcontrollers where the Flash memory density ranges between 64 and 128 Kbytes.

High-density devices are STM32F101xx and STM32F103xx microcontrollers where the Flash memory density ranges between 256 and 512 Kbytes.

XL-density devices are STM32F101xx and STM32F103xx microcontrollers where the Flash memory density ranges between 768 Kbytes and 1 Mbyte.

Connectivity line devices are STM32F105xx and STM32F107xx microcontrollers.

This section applies to the whole STM32F10xxx family, unless otherwise specified.

The electronic signature is stored in the System memory area in the Flash memory module, and can be read using the JTAG/SWD or the CPU. It contains factory-programmed identification data that allow the user firmware or other external devices to automatically match its interface to the characteristics of the STM32F10xxx microcontroller.

30.1 Memory size registers

30.1.1 Flash size register

Base address: 0x1FFF F7E0

Read only = 0xXXXX where X is factory-programmed

1514131211109876543210
F_SIZE
rrrrrrrrrrrrrrrr

Bits 15:0 F_SIZE : Flash memory size

This field value indicates the Flash memory size of the device in Kbytes.

Example: 0x0080 = 128 Kbytes.

30.2 Unique device ID register (96 bits)

The unique device identifier is ideally suited:

The 96-bit unique device identifier provides a reference number which is unique for any device and in any context. These bits can never be altered by the user.

The 96-bit unique device identifier can also be read in single bytes/half-words/words in different ways and then be concatenated using a custom algorithm.

Base address: 0x1FFF F7E8

Address offset: 0x00

Read only = 0xXXXX where X is factory-programmed

1514131211109876543210
U_ID(15:0)
rrrrrrrrrrrrrrrr

Bits 15:0 U_ID(15:0) : 15:0 unique ID bits

Address offset: 0x02

Read only = 0xXXXX where X is factory-programmed

1514131211109876543210
U_ID(31:16)
rrrrrrrrrrrrrrrr

Bits 15:0 U_ID(31:16) : 31:16 unique ID bits

This field value is also reserved for a future feature.

Address offset: 0x04

Read only = 0xXXXX XXXX where X is factory-programmed

31302928272625242322212019181716
U_ID(63:48)
rrrrrrrrrrrrrrrr

1514131211109876543210
U_ID(47:32)
rrrrrrrrrrrrrrrr

Bits 31:0 U_ID(63:32) : 63:32 unique ID bits

Address offset: 0x08

Read only = 0xXXXX XXXX where X is factory-programmed

31302928272625242322212019181716
U_ID(95:80)
rrrrrrrrrrrrrrrr
1514131211109876543210
U_ID(79:64)
rrrrrrrrrrrrrrrr

Bits 31:0 U_ID(95:64) : 95:64 Unique ID bits.