27. 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 factoryprogrammed identification and calibration data that allow the user firmware or other external devices to automatically match the characteristics of the microcontroller.

27.1 DESIG registers

27.1.1 DESIG ADC trimming max diff (DESIG_ADCMAXDIFF)

Address offset: 0x000

Reset value: 0xXXXX XXXX (X is factory-programmed)

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.OFFSET[19:16]
rrrr
1514131211109876543210
OFFSET[19:16]GAIN[11:0]
rrrrrrrrrrrrrrrr
Bits 31:20Reserved, must be kept at reset value.
Bits 19:12OFFSET[19:12] : ADC trimming offset maximum differential (ADC_VINP - ADC_VINM at 1.2 V).
Bits 11:0GAIN[11:0] : ADC trimming gain maximum differential (ADC_VINP - ADC_VINM at 1.2 V).

27.1.2 DESIG ADC trimming max negative (DESIG_ADCMAXNEG)

Address offset: 0x004

Reset value: 0xXXXX XXXX (X is factory-programmed)

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.OFFSET[19:16]
rrrr
1514131211109876543210
OFFSET[19:16]GAIN[11:0]
rrrrrrrrrrrrrrrr
Bits 31:20Reserved, must be kept at reset value.
Bits 19:12OFFSET[19:12] : ADC trimming offset maximum negative (ADC_VINM at 1.2 V).
Bits 11:0GAIN[11:0] : ADC trimming gain maximum negative (ADC_VINM at 1.2 V).

27.1.3 DESIG ADC trimming max positive (DESIG_ADCMAXPOS)

Address offset: 0x008

Reset value: 0xXXXX XXXX (X is factory-programmed)

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.OFFSET[19:16]
rrrr
1514131211109876543210
OFFSET[19:16]GAIN[11:0]
rrrrrrrrrrrrrrrr
Bits 31:20Reserved, must be kept at reset value.
Bits 19:12OFFSET[19:12] : ADC trimming offset maximum positive (ADC_VINP at 1.2 V).
Bits 11:0GAIN[11:0] : ADC trimming gain maximum positive (ADC_VINP at 1.2 V).

27.1.4 DESIG ADC trimming mean diff (DESIG_ADCMEANDIFF)

Address offset: 0x00C

Reset value: 0xXXXX XXXX (X is factory-programmed)

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.OFFSET[19:16]
rrrr
1514131211109876543210
OFFSET[19:16]GAIN[11:0]
rrrrrrrrrrrrrrrr
Bits 31:20Reserved, must be kept at reset value.
Bits 19:12OFFSET[19:12] : ADC trimming offset mean differential (ADC_VINP - ADC_VINM at 2.4 V).
Bits 11:0GAIN[11:0] : ADC trimming gain mean differential (ADC_VINP - ADC_VINM at 2.4 V).

27.1.5 DESIG ADC trimming mean negative (DESIG_ADCMEANNEG)

Address offset: 0x010

Reset value: 0xXXXX XXXX (X is factory-programmed)

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.OFFSET[19:16]
rrrr
1514131211109876543210
OFFSET[19:16]GAIN[11:0]
rrrrrrrrrrrrrrrr
Bits 31:20Reserved, must be kept at reset value.
Bits 19:12OFFSET[19:12] : ADC trimming offset mean negative (ADC_VINM at 2.4 V).
Bits 11:0GAIN[11:0] : ADC trimming gain mean negative (ADC_VINM at 2.4 V).

27.1.6 DESIG ADC trimming max positive (DESIG_ADCMEANPOS)

Address offset: 0x000

Reset value: 0xXXXX XXXX (X is factory-programmed)

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.OFFSET[19:16]
rrrr
1514131211109876543210
OFFSET[19:16]GAIN[11:0]
rrrrrrrrrrrrrrrr
Bits 31:20Reserved, must be kept at reset value.
Bits 19:12OFFSET[19:12] : ADC trimming offset mean positive (ADC_VINP at 2.4 V).
Bits 11:0GAIN[11:0] : ADC trimming gain mean positive (ADC_VINP at 2.4 V).

27.1.7 DESIG ADC trimming min diff (DESIG_ADCMINDIFF)

Address offset: 0x018

Reset value: 0xXXXX XXXX (X is factory-programmed)

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.OFFSET[19:16]
rrrr
1514131211109876543210
OFFSET[19:16]GAIN[11:0]
rrrrrrrrrrrrrrrr
Bits 31:20Reserved, must be kept at reset value.
Bits 19:12OFFSET[19:12] : ADC trimming offset minimum differential (ADC_VINP - ADC_VINM at 3.6 V).
Bits 11:0GAIN[11:0] : ADC trimming gain minimum differential (ADC_VINP - ADC_VINM at 3.6 V).

27.1.8 DESIG ADC trimming min negative (DESIG_ADCMINNEG)

Address offset: 0x01C

Reset value: 0xXXXX XXXX (X is factory-programmed)

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.OFFSET[19:16]
rrrr
1514131211109876543210
OFFSET[19:16]GAIN[11:0]
rrrrrrrrrrrrrrrr
Bits 31:20Reserved, must be kept at reset value.
Bits 19:12OFFSET[19:12] : ADC trimming offset minimum negative (ADC_VINM at 3.6 V).
Bits 11:0GAIN[11:0] : ADC trimming gain minimum negative (ADC_VINM at 3.6 V).

27.1.9 DESIG ADC trimming min positive (DESIG_ADCMINPOS)

Address offset: 0x020

Reset value: 0xXXXX XXXX (X is factory-programmed)

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.OFFSET[19:16]
rrrr
1514131211109876543210
OFFSET[19:16]GAIN[11:0]
rrrrrrrrrrrrrrrr
Bits 31:20Reserved, must be kept at reset value.
Bits 19:12OFFSET[19:12] : ADC trimming offset minimum positive (ADC_VINP at 3.6 V).
Bits 11:0GAIN[11:0] : ADC trimming gain minimum positive (ADC_VINP at 3.6 V).

27.1.10 DESIG reference temperature register (DESIG_TSREFR)

Address offset: 0x05C

Reset value: 0xXXXX XXXX (X is factory-programmed)

31302928272625242322212019181716
TS_REF[31:16]
rrrrrrrrrrrrrrrr
1514131211109876543210
TS_REF[15:0]
rrrrrrrrrrrrrrrr
Bits 31:0TS_REF[31:0] : reference temperature for ADC at 30°C.

27.1.11 DESIG temperature calibration register (DESIG_TSCAL1R)

Address offset: 0x060

Reset value: 0xXXXX XXXX (X is factory-programmed)

31302928272625242322212019181716
TS_CAL[31:16]
rrrrrrrrrrrrrrrr
1514131211109876543210
TS_CAL[15:0]
rrrrrrrrrrrrrrrr
Bits 31:0TS_CAL[31:0] : temperature measurement calibration for ADC at 30°C.

27.1.12 DESIG package data register (DESIG_PKGR)

Address offset: 0x0EC

Reset value: 0xXXXX XXXX (X is factory-programmed)

31302928272625242322212019181716
PKG[31:16]
rrrrrrrrrrrrrrrr
1514131211109876543210
PKG[15:0]
rrrrrrrrrrrrrrrr
Bits 31:0TS_REF[31:0]:
Package type:
0x5F325F32: VFQFPN32
0xAC36AC36: WLCSP36

27.1.13 DESIG 64-bit unique device identifier register 1 (DESIG_UID64R1)

Address offset: 0x0F0

Reset value: 0xXXXX XXXX (X is factory-programmed)

31302928272625242322212019181716
UID[31:16]
rrrrrrrrrrrrrrrr
1514131211109876543210
UID[15:0]
rrrrrrrrrrrrrrrr
Bits 31:0UID[31:0]: unique serial number (first 4 bytes)

27.1.14 DESIG 64-bit unique device identifier register 2 (DESIG_UID64R2)

Address offset: 0x0F4

Reset value: 0xXXXX XXXX (X is factory-programmed)

31302928272625242322212019181716
UID[63:48]
rrrrrrrrrrrrrrrr
1514131211109876543210
UID[47:32]
rrrrrrrrrrrrrrrr
Bits 31:0UID[63:32]: unique serial number (last 4 bytes)

27.1.15 DESIG register map

STMicroelectronics logo
STMicroelectronics logo

Table 286. PWRC register map

OffsetRegister313029282726252423222120191817161514131211109876543210
0x000DESIG_ADCMA
XDIFF
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.OFFSET[19:12]GAIN[11:0]
Reset valueXXXXXXXXXXXXXXXXXXXX
0x004DESIG_ADCMA
XNEG
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.OFFSET[19:12]GAIN[11:0]
Reset valueXXXXXXXXXXXXXXXXXXX
0x008DESIG_ADCMA
XPOS
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.OFFSET[19:12]GAIN[11:0]
Reset valueXXXXXXXXXXXXXXXXXXX
0x00CDESIG_ADCME
ANDIFF
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.OFFSET[19:12]GAIN[11:0]
Reset valueXXXXXXXXXXXXXXXXXXX
0x010DESIG_ADCME
ANNNEG
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.OFFSET[19:12]GAIN[11:0]
Reset valueXXXXXXXXXXXXXXXXXXX
0x014DESIG_ADCME
ANPOS
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.OFFSET[19:12]GAIN[11:0]
Reset valueXXXXXXXXXXXXXXXXXXX
0x018DESIG_ADCMI
NDIFF
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.OFFSET[19:12]GAIN[11:0]
Reset valueXXXXXXXXXXXXXXXXXXX
0x01CDESIG_ADCMI
NNEG
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.OFFSET[19:12]GAIN[11:0]
Reset valueXXXXXXXXXXXXXXXXXXX
0x020DESIG_ADCMI
NPOS
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.OFFSET[19:12]GAIN[11:0]
Reset valueXXXXXXXXXXXXXXXXXXX
0x024 -
0x5B
ReservedRes.
0x05CDESIG_TSREF RTS_REF[31:0]
Reset valuerrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
0x060DESIG_TSCAL 1RPKG [31:0]
STMicroelectronics logo
STMicroelectronics logo
OffsetRegister313029282726252423222120191817161514131211109876543210
0x060Reset valuerrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
0x064
0xE8
ReservedRes.
0x0ECDESIG_PKGRPKG[31:0]
Reset valuerrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
0x0F0DESIG_UID64R 1UID[31:0]
Reset valuerrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
0x0F4DESIG_UID64R 2UID[63:32]
Reset valuerrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr

Refer to Section 2.2.2: Memory map and register boundary addresses for the register boundary addresses.

Important security notice

The STMicroelectronics group of companies (ST) places a high value on product security, which is why the ST product(s) identified in this documentation may be certified by various security certification bodies and/or may implement our own security measures as set forth herein. However, no level of security certification and/or built-in security measures can guarantee that ST products are resistant to all forms of attacks. As such, it is the responsibility of each of ST's customers to determine if the level of security provided in an ST product meets the customer needs both in relation to the ST product alone, as well as when combined with other components and/or software for the customer end product or application. In particular, take note that:

Revision history

Table 287. Document revision history

DateVersionChanges
25-Jun-20241Initial release.
20-Nov-20242

Updated:

  • Section 7.3.2: I/O pin alternate function multiplexer and mapping (EVENTOUT description)
  • Table 18. GPIO register map and reset values (typo in register name @0x18)
  • Table 22. Command list available for customer
  • Section 11.5.1: DMAMUX request line multiplexer channel x configuration register (DMAMUX_CxCR)
  • Figure 22. ADC top level diagram
  • Section 12.2.1: Temperature sensor subsystem
  • Figure 23. ADC sampling time Tsw and sampling period Ts
  • Section 12.5.1: ADC mode overview

Added:

  • Section 12.2.2: Battery sensor
  • Section 12.2.6: Calibration points
  • Cross-reference note to DESIG registers in Section 12.6.8: ADC gain and offset correction 1 register (COMP_1) through Section 12.6.11: ADC gain and offset correction 4 register (COMP_4).

Removed ADC TIMER_CONF register.

4-Apr-20253

Added correct references to Deepstop mode

Updated referenced to Bluetooth standard

Updated Section 6.6: RCC registers

Updated Section 9.5.5: Enabling protection example

Updated Section 21: Inter-integrated circuit (I2C) interface

22-Oct-20254

Updated:

  • Section 12.5.1: ADC mode overview
  • Section 12.6.3: ADC control register (CTRL)
  • Section 25.9.3: Wakeup management

Contents

1Documentation conventions . . . . .2
1.1General information . . . . .2
1.2List of abbreviations for registers . . . . .2
1.3Glossary . . . . .2
1.4Availability of peripherals . . . . .3
1.5Acronyms . . . . .3
2System and memory overview . . . . .6
2.1System architecture . . . . .6
2.1.1S0: CPU (Cortex®-M0+) S-bus . . . . .7
2.1.2S1: DMA-bus . . . . .7
2.1.3S2: radio system-bus . . . . .7
2.1.4BusMatrix . . . . .7
2.2Memory organization . . . . .7
2.2.1Introduction . . . . .7
2.2.2Memory map and register boundary addresses . . . . .9
2.3Arm® Cortex®-M0+ . . . . .10
2.3.1CPU memory remap . . . . .11
2.3.2Interrupts . . . . .11
3AHB up/down converter . . . . .14
3.1AHB up/down converter description . . . . .14
4I/O operating modes . . . . .16
5Power controller (PWRC) . . . . .20
5.1Features . . . . .20
5.2Power supply domains . . . . .20
5.3Power voltage supervisor . . . . .21
5.3.1Power-on reset POR / power-down reset (PDR) / Brownout Reset (BOR) . . . . .21
5.3.2Power voltage detection (PVD) . . . . .22
5.4Operating modes . . . . .22
5.4.1Run mode . . . . .22
5.4.2Deepstop mode . . . . .23
5.4.3Shutdown mode . . . . .25
5.4.4Operating mode transition management . . . . .26
5.5SMPS step-down regulator . . . . .27
5.6I/O pull-ups/pull-downs during low power mode . . . . .29
5.7PWRC registers . . . . .30
5.7.1Control register 1 (PWRC_CR1) . . . . .30
5.7.2Control register 2 (PWRC_CR2) . . . . .31
5.7.3Control register 3 (PWRC_CR3) . . . . .32
5.7.4Control register 4 (PWRC_CR4) . . . . .34
5.7.5Status register 1 (PWRC_SR1) . . . . .35
5.7.6Status register 2 (PWRC_SR2) . . . . .37
5.7.7Control register 5 (PWRC_CR5) . . . . .39
5.7.8I/O port A pull-up control register (PWRC_PUCRA) . . . . .41
5.7.9I/O port A pull-down control register (PWRC_PDCRA) . . . . .42
5.7.10I/O port B pull-up control register (PWRC_PUCRB) . . . . .43
5.7.11I/O port B pull-down control register (PWRC_PDCRB) . . . . .45
5.7.12Control register 6 (PWRC_CR6) . . . . .47
5.7.13Control register 7 (PWRC_CR7) . . . . .48
5.7.14Status register 3(PWRC_SR3) . . . . .49
5.7.15Debug register (PWRC_DBGR) . . . . .50
5.7.16Extended status and reset register (PWRC_EXTSRR) . . . . .51
5.7.17PWRC register map . . . . .52
5.8Programmer model . . . . .55
5.8.1Reset reason management . . . . .55
5.8.2SMPS output level re-programming . . . . .55
6Reset and clock controller (RCC) . . . . .57
6.1Reset management. . . . .57
6.1.1General description. . . . .57
6.1.2Power reset. . . . .58
6.1.3Watchdog reset. . . . .58
6.1.4LOCKUP reset . . . . .58
6.1.5System reset request . . . . .58
6.1.6Deepstop exit . . . . .58
6.2Clock management . . . . .58
6.2.1System clock details . . . . .59
6.2.2Peripheral clock details . . . . .60
6.2.3Slow clock frequency details . . . . .61
6.3System frequency switch while MR_BLE is used . . . . .61
6.4Clock observation on external pad . . . . .62
6.5Miscellaneous . . . . .62
6.5.1IO BOOSTER . . . . .62
6.6RCC registers . . . . .63
6.6.1Clock source control register (RCC_CR) . . . . .63
6.6.2Clocks configuration register (RCC_CFGR) . . . . .65
6.6.3Clocks Sources Software Calibration register (RCC_CSSWCR) . . . . .67
6.6.4Clock interrupt enable register (RCC_CIER) . . . . .69
6.6.5Clock interrupt flag register (RCC_CIFR) . . . . .70
6.6.6Clock switch command register (RCC_CSCMDR) . . . . .71
6.6.7AHB0 macro cells reset register (RCC_AHBRSTR) . . . . .73
6.6.8APB0 macro cells reset register (RCC_APB0RSTR) . . . . .73
6.6.9APB1 macro cells reset register (RCC_APB1RSTR) . . . . .74
6.6.10APB2 macro cells reset register (RCC_APB2RSTR) . . . . .76
6.6.11AHB0 macro cells clock enable register (RCC_AHBENR) . . . . .76
6.6.12APB0 macro cell clock enable register (RCC_APB0ENR) . . . . .77
6.6.13APB1 macro cells clock enable register (RCC_APB1ENR) . . . . .78
6.6.14APB2 macro cells clock enable register (RCC_APB2ENR) . . . . .80
6.6.15V33 reset status register (RCC_CSR) . . . . .81
6.6.16RF software high speed external register (RCC_RFSWHSECR) . . . . .82
6.6.17RF high speed external register (RCC_RFHSECR) . . . . .83
6.6.18RCC register map . . . . .84
6.7Programmer model . . . . .88
6.7.1Switch the system on the PLL64M clock tree . . . . .88
6.7.2Use the direct HSE instead of the RC64MPLL block . . . . .88
6.7.3Changing the system clock frequency while the MR_BLE is enabled . . . . .89
7General-purpose I/O (GPIO) . . . . .90
7.1Introduction . . . . .90
7.2GPIO main features . . . . .90
7.3GPIO functional description . . . . .90
7.3.1General-purpose I/O (GPIO) . . . . .92
7.3.2I/O pin alternate function multiplexer and mapping . . . . .93
7.3.3I/O port control registers . . . . .93
7.3.4I/O port data registers . . . . .93
7.3.5I/O data bitwise handling . . . . .94
7.3.6GPIO locking mechanism . . . . .94
7.3.7I/O alternate function input/output . . . . .94
7.3.8External interrupt/wakeup lines . . . . .94
7.3.9Input configuration . . . . .94
7.3.10Output configuration . . . . .95
7.3.11Alternate function configuration . . . . .96
7.3.12Analog configuration . . . . .96
7.3.13Using the LSE oscillator pins as GPIOs . . . . .97
7.4GPIO registers . . . . .98
7.4.1GPIOA port mode register (GPIOA_MODER) . . . . .98
7.4.2GPIOB port mode register (GPIOB_MODER) . . . . .98
7.4.3GPIOA port output type register (GPIOA_OTYPER) . . . . .99
7.4.4GPIOB port output type register (GPIOB_OTYPER) . . . . .99
7.4.5GPIOA port output speed register (GPIOA_OSPEEDR) . . . . .100
7.4.6GPIOB port output speed register (GPIOB_OSPEEDR) . . . . .100
7.4.7GPIOA port pull-up/pull-down register (GPIOA_PUPDR) . . . . .101
7.4.8GPIOB port pull-up/pull-down register (GPIOB_PUPDR) . . . . .101
7.4.9GPIOA port input data register (GPIOA_IDR) . . . . .102
7.4.10GPIOB port input data register (GPIOB_IDR) . . . . .102
7.4.11GPIOA port output data register (GPIOA_ODR) . . . . .103
7.4.12GPIOB port output data register (GPIOB_ODR) . . . . .103
7.4.13GPIOA port bit set/reset register (GPIOA_BSRR) . . . . .104
7.4.14GPIOB port bit set/reset register (GPIOB_BSRR) . . . . .104
7.4.15GPIOA port configuration lock register (GPIOA_LCKR) . . . . .105
7.4.16GPIOB port configuration lock register (GPIOB_LCKR) . . . . .105
7.4.17GPIOA alternate function low register (GPIOA_AFRL) . . . . .107
7.4.18GPIOB alternate function low register (GPIOB_AFRL) . . . . .107
7.4.19GPIOA alternate function high register (GPIOA_AFRH) . . . . .108
7.4.20GPIOB alternate function high register (GPIOB_AFRH) . . . . .108
7.4.21GPIOA port bit reset register (GPIOA_BRR) . . . . .108
7.4.22GPIOB port bit reset register (GPIOB_BRR) . . . . .109
7.4.23GPIO register map . . . . .110
8System controller (SYSCFG) . . . . .113
8.1SYSCFG main features . . . . .113
8.2System controller registers. . . . .113
8.2.1Die ID register (DIE_ID) . . . . .113
8.2.2JTAG ID register (JTAG_ID) . . . . .114
8.2.3I2C Fast-Mode Plus pin capability control register (I2C_FMP_CTRL) . . . . .115
8.2.4I/O interrupt detection type register (IO_DTR) . . . . .116
8.2.5I/O interrupt edge register (IO_IBER) . . . . .117
8.2.6I/O interrupt polarity event register (IO_IEVR) . . . . .118
8.2.7I/O interrupt enable register (IO_IER) . . . . .119
8.2.8I/O Interrupt status and clear register (IO_ISCR) . . . . .120
8.2.9Power controller interrupt enable register (PWRC_IER) . . . . .121
8.2.10Power controller interrupt status and clear register (PWRC_ISCR) . . . . .122
8.2.11MR_BLE RX or TX sequence information detection type register (BLERXTX_DTR) . . . . .123
8.2.12MR_BLE RX or TX sequence information detection type register (BLERXTX_IBER) . . .124
8.2.13MR_BLE RX or TX sequence information detection event register (BLERXTX_IEVR) . . .125
8.2.14MR_BLE RX or TX sequence information detection interrupt enable register (BLERXTX_IER) . . . . .126
8.2.15MR_BLE RX or TX sequence information detection status and clear register (BLERXTX_ISCR) . . . . .127
8.2.16System controller register map . . . . .128
9Embedded Flash memory . . . . .131
9.1Flash main features . . . . .131
9.2Description . . . . .131
9.3Flash controller register map . . . . .132
9.4Flash controller registers . . . . .133
9.4.1Command register (COMMAND) . . . . .133
9.4.2Configuration register (CONFIG) . . . . .134
9.4.3Interrupt status register (IRQSTAT) . . . . .135
9.4.4Interrupt mask register (IRQMASK) . . . . .136
9.4.5Raw status register (IRQRAW) . . . . .137
9.4.6SIZE register . . . . .138
9.4.7Address register (ADDRESS) . . . . .139
9.4.8Linear feedback shift register (LFSRVAL) . . . . .140
9.4.9Main Flash page protection registers (PAGEPROTx) . . . . .140
9.4.10Data registers (DATA0-DATA3) . . . . .142
9.5Programmer model . . . . .143
9.5.1General information . . . . .143
9.5.2Read function examples . . . . .144
9.5.3Erase function examples . . . . .144
9.5.4Write function examples . . . . .145
9.5.5Enabling protection example . . . . .146
9.5.6OTP function example . . . . .146
9.5.7Write page protection example . . . . .148
10DMA controller (DMA) . . . . .149
10.1DMA introduction . . . . .149
10.2DMA main features . . . . .149
10.3DMA functional description . . . . .149
10.3.1DMA transactions . . . . .149
10.3.2Arbiter . . . . .150
10.3.3DMA channels . . . . .150
10.3.4Programmable data width, data alignment and endians . . . . .151
10.3.5Error management . . . . .152
10.3.6Interrupts. . . . .152
10.3.7DMA request mapping . . . . .152
10.4DMA registers . . . . .153
10.4.1DMA interrupt status register (DMA_ISR) . . . . .153
10.4.2DMA interrupt flag clear register (DMA_IFCR) . . . . .154
10.4.3DMA channel x configuration register (DMA_CCRx) (x = 1..8, where x = channel number) . . . . .155
10.4.4DMA channel x number of data register (DMA_CNDTRx) (x = 1..8, where x = channel number). . . . .157
10.4.5DMA channel x peripheral address register (DMA_CPARx) (x = 1..8, where x = channel number). . . . .158
10.4.6DMA channel x memory address register (DMA_CMARx) (x = 1..8, where x = channel number). . . . .159
10.4.7DMA register map . . . . .160
11DMA request multiplexer (DMAMUX) . . . . .164
11.1Introduction . . . . .164
11.2DMAMUX main features. . . . .164
11.3DMAMUX implementation . . . . .164
11.3.1DMAMUX instantiation . . . . .164
11.3.2DMAMUX mapping . . . . .165
11.4DMAMUX functional description . . . . .165
11.4.1DMAMUX block diagram. . . . .165
11.4.2DMAMUX channels. . . . .166
11.4.3DMAMUX request line multiplexer. . . . .166
11.5DMAMUX registers . . . . .167
11.5.1DMAMUX request line multiplexer channel x configuration register (DMAMUX_CxCR) . . . . .167
11.5.2DMAMUX register map . . . . .168
12Analog digital converter (ADC). . . . .170
12.1Features . . . . .170
12.2ADC presentation . . . . .170
12.2.1Temperature sensor subsystem . . . . .171
12.2.2Battery sensor. . . . .172
12.2.3ADC input mode conversion . . . . .172
12.2.4Steady-state input impedance. . . . .172
12.2.5Input signal sampling transient response . . . . .172
12.2.6Calibration points . . . . .173
12.2.7Down sampler (DS). . . . .174
12.3Interrupts . . . . .175
12.4DMA interface175
12.5ADC mode175
12.5.1ADC mode overview175
12.6ADC registers177
12.6.1Version register (VERSION_ID)177
12.6.2ADC configuration register (CONF)177
12.6.3ADC control register (CTRL)179
12.6.4ADC input voltage switch selection register (SWITCH)180
12.6.5Down sampler configuration register (DS_CONF)181
12.6.6ADC sequence programming 1 register (SEQ_1)182
12.6.7ADC sequence programming 2 register (SEQ_2)183
12.6.8ADC gain and offset correction 1 register (COMP_1)184
12.6.9ADC gain and offset correction 2 register (COMP_2)185
12.6.10ADC gain and offset correction 3 register (COMP_3)185
12.6.11ADC gain and offset correction 4 register (COMP_4)186
12.6.12ADC gain and offset selection register (COMP_SEL)187
12.6.13ADC watchdog threshold register (WD_TH)188
12.6.14ADC watchdog configuration register (WD_CONF)189
12.6.15Down sampler data out register (DS_DATAOUT)189
12.6.16ADC interrupt status register (IRQ_STATUS)190
12.6.17ADC interrupt enable register (IRQ_ENABLE)191
12.6.18ADC register map192
13Public key accelerator (PKA)195
13.1Introduction195
13.2PKA main features195
13.3PKA functional description195
13.3.1Enabling/disabling PKA196
13.3.2PKA RAM197
13.3.3Executing a PKA operation197
13.3.4Security level197
13.3.5PKA error management197
13.4Operating modes198
13.4.1Compute Montgomery parameter199
13.4.2Compute modular exponentiation200
13.4.3Compute the ECC scalar multiplication201
13.4.4Point check202
13.4.5ECDSA sign203
13.4.6ECDSA verification204
13.4.7RSA CRT exponentiation . . . . .205
13.4.8Modular reduction . . . . .205
13.4.9Arithmetic addition . . . . .206
13.4.10Arithmetic Subtraction . . . . .207
13.4.11Comparison . . . . .208
13.4.12Arithmetic multiplication . . . . .208
13.4.13Modular addition . . . . .209
13.4.14Modular inversion . . . . .209
13.4.15Modular subtraction. . . . .210
13.4.16Montgomery multiplication. . . . .210
13.5Processing time . . . . .211
13.5.1PKA interrupts. . . . .213
13.6PKA registers. . . . .214
13.6.1PKA control register (PKA_CR). . . . .214
13.6.2PKA status register (PKA_SR) . . . . .216
13.6.3PKA clear flag register (PKA_CLRFR) . . . . .217
13.6.4PKA RAM memory . . . . .218
13.6.5PKA register map . . . . .219
14Random number generator (RNG). . . . .220
14.1Features . . . . .220
14.2RNG registers . . . . .221
14.2.1RNG configuration register (RNG_CR) . . . . .221
14.2.2RNG status flag register (RNG_SR) . . . . .222
14.2.3RNG value register (RNG_VAL) . . . . .222
14.2.4RNG register map . . . . .223
15Cyclic redundancy check calculation unit (CRC) . . . . .224
15.1Introduction . . . . .224
15.2CRC main features . . . . .224
15.3CRC functional description. . . . .224
15.3.1CRC block diagram. . . . .224
15.3.2CRC operation . . . . .225
15.4CRC registers . . . . .226
15.4.1Data register (CRC_DR) . . . . .226
15.4.2Independent data register (CRC_IDR) . . . . .226
15.4.3Control register (CRC_CR) . . . . .227
15.4.4Initial CRC value (CRC_INIT) . . . . .227
15.4.5CRC polynomial (CRC_POL) . . . . .228
15.4.6CRC register map . . . . .229
16General purpose timer (TIM2) . . . . .230
16.1TIM2 introduction. . . . .230
16.2TIM2 main features . . . . .230
16.3TIM2 functional description . . . . .231
16.3.1Time-base unit . . . . .231
16.3.2Counter modes . . . . .233
16.3.3Repetition counter. . . . .241
16.3.4External trigger input. . . . .242
16.3.5Clock selection . . . . .242
16.3.6Capture/compare channels . . . . .244
16.3.7Input capture mode . . . . .246
16.3.8PWM input mode . . . . .246
16.3.9Forced output mode . . . . .248
16.3.10Output compare mode . . . . .248
16.3.11PWM mode . . . . .249
16.3.12Asymmetric PWM mode . . . . .251
16.3.13Combined PWM mode . . . . .252
16.3.14Clearing the OCxREF signal on an external event . . . . .253
16.3.15One-pulse mode . . . . .254
16.3.16Retriggerable one-pulse mode (OPM). . . . .255
16.3.17Encoder interface mode . . . . .255
16.3.18UIF bit remapping . . . . .258
16.3.19Timer input XOR function. . . . .258
16.3.20DMA burst mode . . . . .258
16.4TIM2 registers . . . . .260
16.4.1TIM2 control register 1 (TIMx_CR1) . . . . .260
16.4.2TIM2 control register 2 (TIMx_CR2) . . . . .262
16.4.3TIM2 slave mode control register (TIMx_SMCR). . . . .263
16.4.4TIM2 DMA/interrupt enable register (TIMx_DIER). . . . .265
16.4.5TIM2 status register (TIMx_SR) . . . . .266
16.4.6TIM2 event generation register (TIMx_EGR). . . . .267
16.4.7TIM2 capture/compare mode register 1 (TIMx_CCMR1). . . . .268
16.4.8TIM2 capture/compare mode register 2 (TIMx_CCMR2). . . . .272
16.4.9TIM2 capture/compare enable register (TIMx_CCER). . . . .274
16.4.10TIM2 counter (TIMx_CNT) . . . . .275
16.4.11TIM2 prescaler (TIMx_PSC) . . . . .275
16.4.12TIM2 auto-reload register (TIMx_ARR) . . . . .276
16.4.13TIM2 repetition counter register (TIMx_RCR) . . . . .276
16.4.14TIM2 capture/compare register 1 (TIMx_CCR1) . . . . .276
16.4.15TIM2 capture/compare register 2 (TIMx_CCR2) . . . . .277
16.4.16TIM2 capture/compare register 3 (TIMx_CCR3) . . . . .277
16.4.17TIM2 capture/compare register 4 (TIMx_CCR4) . . . . .278
16.4.18TIM2 DMA control register (TIM2_DCR) . . . . .279
16.4.19TIM2 DMA address for full transfer (TIM2_DMAR) . . . . .280
16.4.20TIM2 input selection register (TIM2_TISEL) . . . . .280
16.4.21TIM2 register map. . . . .281
17General purpose timer (TIM16/17) . . . . .285
17.1TIM16/17 introduction. . . . .285
17.2TIM16 and TIM17 main features . . . . .285
17.3TIM16/17 functional description. . . . .286
17.3.1Time-base unit . . . . .286
17.3.2Counter modes . . . . .287
17.3.3Repetition counter. . . . .290
17.3.4Clock selection . . . . .291
17.3.5Capture/compare channels. . . . .291
17.3.6Input capture mode. . . . .293
17.3.7Forced output mode . . . . .294
17.3.8Output compare mode . . . . .294
17.3.9PWM mode . . . . .295
17.3.10Complementary outputs and deadtime insertion . . . . .296
17.3.11Using the break function . . . . .297
17.3.12Bidirectional break inputs . . . . .299
17.3.13One-pulse mode . . . . .300
17.3.14UIF bit remapping . . . . .301
17.3.15DMA burst mode. . . . .301
17.4TIM16/17 registers . . . . .303
17.4.1TIM16/17 control register 1 (TIMx_CR1) . . . . .304
17.4.2TIM16/17 control register 2 (TIMx_CR2) . . . . .306
17.4.3TIM16/17 DMA/interrupt enable register (TIMx_DIER) . . . . .307
17.4.4TIM16/17 status register (TIMx_SR) . . . . .308
17.4.5TIM16 and 17 event generation register (TIMx_EGR) . . . . .309
17.4.6TIM16/17 capture/compare mode register 1 (TIMx_CCMR1) . . . . .310
17.4.7TIM16/17 capture/compare enable register (TIMx_CCER) . . . . .313
17.4.8TIM16/17 counter (TIMx_CNT) . . . . .315
17.4.9TIM16/17 prescaler (TIMx_PSC) . . . . .316
17.4.10TIM16/17 auto-reload register (TIMx_ARR) . . . . .317
17.4.11TIM16/17 repetition counter register (TIMx_RCR). . . . .318
17.4.12TIM16/17 capture/compare register 1 (TIMx_CCR1). . . . .319
17.4.13TIM16/17 break and deadtime register (TIMx_BDTR). . . . .320
17.4.14TIM16/17 DMA control register (TIMx_DCR). . . . .323
17.4.15TIM16/17 DMA address for full transfer (TIMx_DMAR). . . . .324
17.4.16TIM17 option register 1 (TIM17_OR1). . . . .325
17.4.17TIM16/17 alternate function register 1(TIMx_AF1) . . . . .326
17.4.18TIM16/17 input selection register (TIM16_TISEL). . . . .328
17.4.19TIM16/17 register map . . . . .329
18Infrared interface (IRTIM) . . . . .332
19Real-time clock (RTC). . . . .333
19.1Introduction . . . . .333
19.2RTC main features . . . . .333
19.3RTC functional description. . . . .334
19.3.1RTC block diagram . . . . .334
19.3.2Clock and prescalers. . . . .334
19.3.3Real-time clock and calendar . . . . .335
19.3.4Programmable alarm. . . . .335
19.3.5Periodic auto-wakeup . . . . .335
19.3.6RTC initialization and configuration. . . . .336
19.3.7Reading the calendar . . . . .337
19.3.8Resetting the RTC. . . . .337
19.3.9RTC synchronization. . . . .337
19.3.10RTC smooth digital calibration. . . . .338
19.3.11Calibration clock output. . . . .339
19.3.12Alarm output . . . . .340
19.4RTC low-power modes . . . . .340
19.5RTC interrupts . . . . .340
19.6RTC registers. . . . .341
19.6.1RTC time register (RTC_TR). . . . .341
19.6.2RTC date register (RTC_DR) . . . . .342
19.6.3RTC control register (RTC_CR) . . . . .343
19.6.4RTC initialization and status register (RTC_ISR). . . . .345
19.6.5RTC prescaler register (RTC_PRER) . . . . .347
19.6.6RTC wakeup timer register (RTC_WUTR). . . . .347
19.6.7RTC alarm A register (RTC_ALRMAR) . . . . .348
19.6.8RTC write protection register (RTC_WPR) . . . . .349
19.6.9RTC sub-second register (RTC_SSR) . . . . .349
19.6.10RTC shift control register (RTC_SHIFTR) . . . . .350
19.6.11RTC calibration register (RTC_CALR) . . . . .351
19.6.12RTC alarm A sub second register (RTC_ALRMASSR) . . . . .352
19.6.13RTC backup registers (RTC_BKPxR) . . . . .353
19.6.14RTC register map . . . . .354
20Independent watchdog (IWDG) . . . . .356
20.1Introduction . . . . .356
20.2IWDG main features . . . . .356
20.3IWDG functional description . . . . .356
20.3.1Window option . . . . .356
20.3.2Register access protection . . . . .357
20.3.3Debug mode . . . . .357
20.4IWDG registers . . . . .357
20.4.1Key register (IWDG_KR) . . . . .357
20.4.2Prescaler register (IWDG_PR) . . . . .358
20.4.3Reload register (IWDG_RLR) . . . . .358
20.4.4Status register (IWDG_SR) . . . . .359
20.4.5Window register (IWDG_WINR) . . . . .360
20.4.6IWDG register map . . . . .361
21Inter-integrated circuit (I 2 C) interface . . . . .362
21.1Introduction . . . . .362
21.2I 2 C main features . . . . .362
21.3I 2 C implementation . . . . .363
21.4I 2 C functional description . . . . .363
21.4.1I 2 C block diagram . . . . .363
21.4.2I 2 C clock requirements . . . . .364
21.4.3Mode selection . . . . .364
21.4.4I 2 C initialization . . . . .365
21.4.5Software reset . . . . .368
21.4.6Data transfer . . . . .369
21.4.7I 2 C target mode . . . . .370
21.4.8I 2 C controller mode . . . . .375
21.4.9I 2 C_TIMINGR register configuration examples . . . . .386
21.4.10SMBus specific features . . . . .386
21.4.11SMBus initialization . . . . .388
21.4.12SMBus: I2C_TIMEOUTR register configuration examples . . . . .390
21.4.13SMBus target mode . . . . .390
21.4.14Error conditions. . . . .395
21.4.15DMA requests . . . . .396
21.5I2C interrupts . . . . .397
21.6I2C registers. . . . .399
21.6.1Control register 1 (I2C_CR1). . . . .399
21.6.2Control register 2 (I2C_CR2). . . . .402
21.6.3Own address 1 register (I2C_OAR1). . . . .405
21.6.4Own address 2 register (I2C_OAR2). . . . .406
21.6.5Timing register (I2C_TIMINGR). . . . .407
21.6.6Timeout register (I2C_TIMEOUTR). . . . .408
21.6.7Interrupt and status register (I2C_ISR) . . . . .409
21.6.8Interrupt clear register (I2C_ICR) . . . . .411
21.6.9PEC register (I2C_PECR). . . . .412
21.6.10Receive data register (I2C_RXDR). . . . .413
21.6.11Transmit data register (I2C_TXDR). . . . .414
21.6.12I2C register map . . . . .415
22Universal synchronous asynchronous receiver transmitter (USART) . . . . .417
22.1USART introduction . . . . .417
22.2USART main features. . . . .417
22.3USART extended features . . . . .418
22.4USART implementation . . . . .418
22.5USART functional description . . . . .419
22.5.1USART character description . . . . .420
22.5.2FIFOs and thresholds . . . . .421
22.5.3Transmitter . . . . .422
22.5.4Receiver . . . . .425
22.5.5Baud rate generation. . . . .429
22.5.6Tolerance of the USART receiver to clock deviation . . . . .430
22.5.7Auto baud rate detection. . . . .431
22.5.8Multiprocessor communication . . . . .432
22.5.9Modbus communication . . . . .433
22.5.10Parity control. . . . .434
22.5.11LIN (local interconnection network) mode . . . . .434
22.5.12USART synchronous mode. . . . .436
22.5.13Single-wire half-duplex communication . . . . .439
22.5.14Receiver timeout. . . . .440
22.5.15Smartcard mode . . . . .440
22.5.16IrDA SIR ENDEC block . . . . .443
22.5.17Continuous communication using DMA . . . . .445
22.5.18RS232 hardware flow control and RS485 driver enable . . . . .447
22.6USART interrupts . . . . .449
22.7USART registers . . . . .450
22.7.1Control register 1 (USARTx_CR1) . . . . .450
22.7.2Control register 2 (USARTx_CR2) . . . . .453
22.7.3Control register 3 (USARTx_CR3) . . . . .457
22.7.4Baud rate register (USARTx_BRR) . . . . .461
22.7.5Guard Time and prescaler register (USARTx_GTPR) . . . . .462
22.7.6Receiver timeout register (USARTx_RTOR) . . . . .463
22.7.7Request register (USARTx_RQR) . . . . .464
22.7.8Interrupt and status register (USARTx_ISR) . . . . .465
22.7.9Interrupt flag clear register (USART_ICR) . . . . .470
22.7.10Receive data register (USART_RDR) . . . . .472
22.7.11Transmit data register (USART_TDR) . . . . .473
22.7.12Prescaler register (USARTx_PRESC) . . . . .474
22.7.13USART register map . . . . .475
23Universal Asynchronous Receiver Transmitter (LPUART) . . . . .477
23.1LPUART introduction . . . . .477
23.2LPUART main features . . . . .477
23.3LPUART functional description . . . . .478
23.3.1LPUART character description . . . . .480
23.3.2FIFOs and thresholds . . . . .481
23.3.3Transmitter . . . . .482
23.3.4Receiver . . . . .485
23.3.5Baud rate generation . . . . .487
23.3.6Multiprocessor communication . . . . .488
23.3.7Parity control . . . . .490
23.3.8Single-wire half-duplex communication . . . . .490
23.3.9Continuous communication using DMA . . . . .491
23.3.10RS232 hardware flow control and RS485 driver enable . . . . .493
23.3.11Wakeup from Deepstop mode . . . . .495
23.4LPUART interrupts . . . . .496
23.5LPUART registers . . . . .497
23.5.1Control register 1 (LPUART_CR1) . . . . .497
23.5.2Control register 2 (LPUART_CR2) . . . . .500
23.5.3Control register 3 (LPUART_CR3) . . . . .502
23.5.4Baud rate register (LPUART_BRR) . . . . .505
23.5.5Request register (LPUART_RQR) . . . . .505
23.5.6Interrupt and status register (LPUART_ISR) . . . . .506
23.5.7Interrupt flag clear register (LPUART_ICR) . . . . .510
23.5.8Receive data register (LPUART_RDR) . . . . .510
23.5.9Transmit data register (LPUART_TDR) . . . . .511
23.5.10Prescaler register (LPUART_PRESC) . . . . .512
23.5.11LPUART register map . . . . .513
24Serial peripheral interface / inter-IC sound (SPI/I2S) . . . . .515
24.1Introduction . . . . .515
24.2SPI main features . . . . .515
24.3I2S main features . . . . .515
24.4SPI/I2S implementation . . . . .516
24.5SPI functional description . . . . .516
24.5.1General description . . . . .516
24.5.2Communications between one master and one slave . . . . .517
24.5.3Standard multi-slave communication . . . . .519
24.5.4Slave select (NSS) pin management . . . . .520
24.5.5Communication formats . . . . .521
24.5.6Configuration of SPI . . . . .523
24.5.7Procedure to enable SPI . . . . .524
24.5.8Data transmission and reception procedures . . . . .524
24.5.9SPI status flags . . . . .531
24.5.10SPI error flags . . . . .532
24.5.11NSS pulse mode . . . . .533
24.5.12TI mode . . . . .533
24.5.13CRC calculation . . . . .534
24.6SPI interrupts . . . . .535
24.7I2S functional description . . . . .535
24.7.1I2S general description . . . . .535
24.7.2Supported audio protocols . . . . .537
24.7.3Clock generator . . . . .542
24.7.4I2S master mode . . . . .546
24.7.5I2S slave mode . . . . .548
24.7.6I2S error flags . . . . .549
24.7.7DMA features . . . . .549
24.8I2S interrupts .....549
24.9SPI and I 2 S registers .....550
24.9.1SPI control register 1 (SPIx_CR1) .....550
24.9.2SPI control register 2 (SPIx_CR2) .....553
24.9.3SPI status register (SPIx_SR) .....555
24.9.4SPI data register (SPIx_DR) .....557
24.9.5SPI CRC polynomial register (SPIx_CRCPR) .....558
24.9.6SPI Rx CRC register (SPIx_RXCRCR) .....559
24.9.7SPI Tx CRC register (SPIx_TXCRCR) .....560
24.9.8SPIx_I2S configuration register (SPIx_I2SCFGR) .....561
24.9.9SPIx_I2S prescaler register (SPIx_I2SPR) .....563
24.9.10SPI/I2S register map .....564
25Radio IP .....566
25.1Overview .....566
25.1.1Architecture overview of the MR_BLE IP .....566
25.1.2Global scenario for Bluetooth® LE protocol usage .....567
25.1.3Miscellaneous features: RF activity monitoring .....568
25.1.4Bluetooth® LE standard 5.1 additional support .....568
25.2Interfacing with the MR_BLE IP .....569
25.2.1Interrupt lines to the CPU .....569
25.2.2Interface with the RAM embedded in the SoC .....570
25.2.3Interface with the power clock and reset controllers .....570
25.3Warning for users .....571
25.4Radio resource manager (RRM) .....571
25.4.1Semaphore .....572
25.4.2UDRA .....572
25.4.3Direct register access .....575
25.4.4RRM registers .....575
25.5Radio registers .....579
25.5.1Radio register list .....579
25.5.2Radio registers description .....582
25.5.3Trimming information .....592
25.6Radio FSM .....592
25.6.1Radio FSM sequences .....592
25.6.2Radio FSM states overview .....594
25.6.3Radio FSM interrupts .....596
25.7Radio controller .....596
25.7.1Slow clock measurement . . . . .596
25.7.2Radio FSM interrupt management . . . . .596
25.7.3Radio controller registers . . . . .597
25.8IP_BLE . . . . .599
25.8.1Overview . . . . .599
25.8.2Bluetooth LE link layer Sequencer . . . . .599
25.8.3IP_BLE interrupts . . . . .610
25.8.4IP_BLE RAM tables . . . . .611
25.8.5Complementary information . . . . .637
25.8.6Angle of arrival (AoA) and angle of departure (AoD) . . . . .643
25.8.7AES . . . . .649
25.8.8MSB first feature . . . . .650
25.8.9IP_BLE registers . . . . .651
25.9Wakeup block . . . . .662
25.9.1Time features management . . . . .662
25.9.2Sleep feature management . . . . .663
25.9.3Wakeup management . . . . .663
25.9.4CPU wakeup management . . . . .664
25.9.5wakeup block registers . . . . .664
26Debug support (DBG) . . . . .668
26.1SWD debug features . . . . .668
27Device electronic signature (DESIG) . . . . .669
27.1DESIG registers . . . . .669
27.1.1DESIG ADC trimming max diff (DESIG_ADCMAXDIFF) . . . . .669
27.1.2DESIG ADC trimming max negative (DESIG_ADCMAXNEG) . . . . .669
27.1.3DESIG ADC trimming max positive (DESIG_ADCMAXPOS) . . . . .670
27.1.4DESIG ADC trimming mean diff (DESIG_ADCMEANDIFF) . . . . .670
27.1.5DESIG ADC trimming mean negative (DESIG_ADCMEANNEG) . . . . .671
27.1.6DESIG ADC trimming max positive (DESIG_ADCMEANPOS) . . . . .671
27.1.7DESIG ADC trimming min diff (DESIG_ADCMINDIFF) . . . . .672
27.1.8DESIG ADC trimming min negative (DESIG_ADCMINNEG) . . . . .672
27.1.9DESIG ADC trimming min positive (DESIG_ADCMINPOS) . . . . .673
27.1.10DESIG reference temperature register (DESIG_TSREFR) . . . . .673
27.1.11DESIG temperature calibration register (DESIG_TSCAL1R) . . . . .674
27.1.12DESIG package data register (DESIG_PKGR) . . . . .674
27.1.13DESIG 64-bit unique device identifier register 1 (DESIG_UID64R1) . . . . .675
27.1.14DESIG 64-bit unique device identifier register 2 (DESIG_UID64R2) . . . . .675
27.1.15DESIG register map . . . . .676
Important security notice .....678
Revision history .....679

List of tables

Table 1.List of abbreviations for registers . . . . .2
Table 2.Acronyms . . . . .3
Table 3.STM32WB05xZ memory map and peripheral register boundary addresses . . . . .9
Table 4.SRAM0 reserved locations . . . . .10
Table 5.Address remapping depending on REMAP bit . . . . .10
Table 6.Interrupt vectors. . . . .12
Table 7.GPIO alternate options AF0, AF1 and AF2 modes . . . . .17
Table 8.GPIOs AF3, AF4 and AF6 modes . . . . .18
Table 9.I/O analog feature mapping . . . . .19
Table 10.I/O additional function mapping . . . . .19
Table 11.SMPS BOM information . . . . .28
Table 12.PWRC register map . . . . .52
Table 13.Flags versus CPU reboot reason . . . . .55
Table 14.Wakeup reason flags . . . . .55
Table 15.CPU versus MR_BLE clock dependency. . . . .61
Table 16.RCC register map and reset values . . . . .84
Table 17.Port bit configuration . . . . .92
Table 18.GPIO register map and reset values. . . . .110
Table 19.SYSCFG register map and reset values . . . . .128
Table 20.Flash memory section address . . . . .131
Table 21.Flash APB registers . . . . .132
Table 22.Command list available for customer . . . . .133
Table 23.Flash size information. . . . .138
Table 24.System memory protection . . . . .146
Table 25.Programmable data width and endian behavior (when PINC=MINC=1 and NDT=4) . . . . .151
Table 26.DMA interrupt requests. . . . .152
Table 27.DMA register map and reset values . . . . .160
Table 28.DMAMUX instantiation . . . . .164
Table 29.DMAMUX map . . . . .165
Table 30.DMAMUX register map and reset values. . . . .168
Table 31.Calibration points. . . . .174
Table 32.ADC interrupt requests . . . . .175
Table 33.ADC mode summary . . . . .175
Table 34.ADC register map and reset values . . . . .192
Table 35.Operating modes . . . . .198
Table 36.Montgomery parameter input data . . . . .199
Table 37.Montgomery parameter output data . . . . .199
Table 38.Modular exponentiation input data . . . . .200
Table 39.Modular exponentiation output data . . . . .200
Table 40.ECC scalar multiplication input data . . . . .201
Table 41.ECC scalar multiplication output data . . . . .201
Table 42.Point check input data . . . . .202
Table 43.Point check output data . . . . .202
Table 44.ECDSA sign input data . . . . .203
Table 45.ECDSA sign output data . . . . .203
Table 46.ECDSA verification input data . . . . .204
Table 47.ECDSA verification output data . . . . .204
Table 48.RSA CRT exponentiation input . . . . .205
Table 49.RSA CRT exponentiation output data . . . . .205
Table 50.Modular reduction input data . . . . .205
Table 51.Modular reduction output data . . . . .205
Table 52.Arithmetic addition input data. . . . .206
Table 53.Arithmetic addition output data. . . . .206
Table 54.Arithmetic subtraction input data . . . . .207
Table 55.Arithmetic subtraction output data . . . . .207
Table 56.Comparison input data . . . . .208
Table 57.Comparison output data . . . . .208
Table 58.Arithmetic multiplication input data . . . . .208
Table 59.Arithmetic multiplication output data . . . . .208
Table 60.Modular addition input data . . . . .209
Table 61.Modular addition output data . . . . .209
Table 62.Modular inversion input data . . . . .209
Table 63.Modular inversion output data . . . . .209
Table 64.Modular subtraction input data . . . . .210
Table 65.Modular subtraction output data . . . . .210
Table 66.Montgomery multiplication input data . . . . .210
Table 67.Montgomery multiplication output data . . . . .210
Table 68.Modular exponentiation . . . . .211
Table 69.ECC scalar multiplication . . . . .211
Table 70.ECDSA signature average computation time . . . . .211
Table 71.ECDSA verification average computation times . . . . .211
Table 72.Montgomery parameters average computation times . . . . .212
Table 73.PKA interrupt requests . . . . .213
Table 74.PKA register map . . . . .219
Table 75.RNG register map and reset values . . . . .223
Table 76.CRC register map and reset values . . . . .229
Table 77.Counting direction versus encodersignals . . . . .256
Table 78.Output control bits for OCx channels . . . . .275
Table 79.TIM2 register map and reset values . . . . .281
Table 80.Break protection disarming conditions . . . . .300
Table 81.Output control bits for complementary OCx and OCxN channels with break feature . . . . .314
Table 82.TIM2 register map and reset values . . . . .329
Table 83.RTC register map and reset values . . . . .354
Table 84.IWDG register map . . . . .361
Table 85.STM32WB05xZ I 2 C implementation . . . . .363
Table 86.I 2 C-SMBUS specification data setup and hold times . . . . .367
Table 87.I 2 C configurable table . . . . .370
Table 88.I 2 C-SMBUS specification clock timings . . . . .378
Table 89.Examples of timings settings for f I2CCLK = 16 MHz . . . . .386
Table 90.SMBus timeout specifications . . . . .387
Table 91.SMBUS with PEC configuration . . . . .389
Table 92.Examples of TIMEOUTA settings (max. t TIMEOUT = 25 ms) . . . . .390
Table 93.Example of TIMEOUTB settings . . . . .390
Table 94.Examples of TIMEOUTA settings (max. t IDLE = 50 µs) . . . . .390
Table 95.I 2 C interrupt requests . . . . .397
Table 96.I 2 C register map . . . . .415
Table 97.USART/LPUART features . . . . .418
Table 98.Noise detection from sampled data . . . . .428
Table 99.Tolerance of the USART receiver when BRR [3:0] = 0000 (high-density devices) . . . . .430
Table 100.Tolerance of the USART receiver when BRR[3:0] is different from 0000 (high-density devices) . . . . .430
Table 101.Frame formats . . . . .434
Table 102.USART interrupt requests . . . . .449
Table 103.USART register map . . . . .475
Table 104.Error calculation for programmed baud rates at f ck =32.768 KHz . . . . .487
Table 105.Error calculation for programmed baud rates at f ck =16 MHz . . . . .488
Table 106.Frame formats . . . . .490
Table 107.LPUART interrupts . . . . .496
Table 108.LPUART register map and reset values . . . . .513
Table 109.STM32WB05xZ SPI implementation. . . . .516
Table 110.SPI interrupts requests . . . . .535
Table 111.Audio frequency precision using I2SCLK = 64 MHz . . . . .544
Table 112.Audio frequency precision using I2SCLK = 32 MHz . . . . .544
Table 113.Audio frequency precision using I2SCLK = 16 MHz . . . . .546
Table 114.I 2 S interrupt request . . . . .549
Table 115.Interrupt summary . . . . .569
Table 116.Command start list details . . . . .573
Table 117.UDRA command format in RAM. . . . .574
Table 118.RRM registers list . . . . .575
Table 119.UDRA_CTRL0 register description . . . . .576
Table 120.UDRA_IRQ_ENABLE register description . . . . .576
Table 121.UDRA_IRQ_STATUS register description . . . . .576
Table 122.UDRA_RADIO_CFG_PTR register description . . . . .576
Table 123.SEMA_IRQ_ENABLE register description . . . . .576
Table 124.SEMA_IRQ_STATUS register description . . . . .577
Table 125.BLE_IRQ_ENABLE register description . . . . .577
Table 126.BLE_IRQ_STATUS register description . . . . .577
Table 127.VP_CPU_CMD_BUS register description . . . . .578
Table 128.VP_CPU_SEMA_BUS register description . . . . .578
Table 129.VP_CPU_IRQ_ENABLE register description . . . . .578
Table 130.VP_CPU_IRQ_STATUS register description . . . . .579
Table 131.Radio register list. . . . .580
Table 132.AA0_DIG_USR register description . . . . .582
Table 133.AA1_DIG_USR register description . . . . .582
Table 134.AA2_DIG_USR register description . . . . .582
Table 135.AA3_DIG_USR register description . . . . .582
Table 136.DEM_MOD_DIG_USR register description . . . . .582
Table 137.RADIO_FSM_USR register description . . . . .583
Table 138.PHYCTRL_DIG_USR register description . . . . .583
Table 139.AFC1_DIG_ENG register description . . . . .583
Table 140.CR0_DIG_ENG register description . . . . .583
Table 141.CR0_LR register description . . . . .584
Table 142.VIT_CONF_DIG_ENG register description . . . . .584
Table 143.LR_PD_THR_DIG_ENG register description . . . . .584
Table 144.LR_RSSI_THR_DIG_ENG register description . . . . .584
Table 145.LR_AAC_THR_DIG_ENG register description . . . . .584
Table 146.SYNTHCAL0_DIG_ENG register description . . . . .585
Table 147.DTB5_DIG_ENG register description . . . . .585
Table 148.RXADC_ANA_USR register description . . . . .585
Table 149.LDO_ANA_ENG register description . . . . .586
Table 150.CBIAS0_ANA_ENG register description . . . . .586
Table 151.CBIAS1_ANA_ENG register description . . . . .586
Table 152.SYNTHCAL0_DIG_OUT register description . . . . .586
Table 153.SYNTHCAL1_DIG_OUT register description . . . . .586
Table 154.SYNTHCAL2_DIG_OUT register description . . . . .586
Table 155.SYNTHCAL3_DIG_OUT register description . . . . .587
Table 156.SYNTHCAL4_DIG_OUT register description . . . . .587
Table 157.. SYNTHCAL5_DIG_OUT register description . . . . .587
Table 158.FSM_STATUS_DIG_OUT register description . . . . .588
Table 159.RSSI0_DIG_OUT register description . . . . .588
Table 160.RSSI1_DIG_OUT register description . . . . .588
Table 161.AGC_DIG_OUT register description . . . . .588
Table 162.DEMOD_DIG_OUT register description . . . . .589
Table 163.AGC2_ANA_TST register description . . . . .589
Table 164.AGC0_DIG_ENG register description . . . . .589
Table 165.AGC1_DIG_ENG register description . . . . .589
Table 166.AGC10_DIG_ENG register description . . . . .589
Table 167.AGC11_DIG_ENG register description . . . . .589
Table 168.AGC12_DIG_ENG register description . . . . .590
Table 169.AGC13_DIG_ENG register description . . . . .590
Table 170.AGC14_DIG_ENG register description . . . . .590
Table 171.AGC15_DIG_ENG register description . . . . .590
Table 172.AGC16_DIG_ENG register description . . . . .590
Table 173.AGC17_DIG_ENG register description . . . . .590
Table 174.AGC18_DIG_ENG register description . . . . .590
Table 175.AGC19_DIG_ENG register description . . . . .590
Table 176.RXADC_HW_TRIM_OUT register description . . . . .591
Table 177.CBIAS0_HW_TRIM_OUT register description . . . . .591
Table 178.AGC_HW_TRIM_OUT register description . . . . .591
Table 179.ANTSW0_DIG_USR register description . . . . .591
Table 180.ANTSW1_DIG_USR register description . . . . .591
Table 181.ANTSW2_DIG_USR register description . . . . .591
Table 182.ANTSW3_DIG_USR register description . . . . .592
Table 183.Radio FSM states summary (including exit conditions and timings). . . . .595
Table 184.ACTIVE2 to Tx or Rx state duration . . . . .595
Table 185.Radio Controller registers list . . . . .597
Table 186.RADIO_CONTROL_ID register description . . . . .597
Table 187.CLK32COUNT_REG register description . . . . .597
Table 188.CLK32PERIOD_REG register description . . . . .598
Table 189.CLK32FREQUENCY_REG register description . . . . .598
Table 190.RADIO_CONTROL_IRQ_STATUS register description . . . . .598
Table 191.RADIO_CONTROL_IRQ_ENABLE register description . . . . .599
Table 192.Summary of flags and RAM table pointers behavior versus Tx Skip command . . . . .609
Table 193.Summary of flags and RAM table pointers behavior versus Rx Skip command . . . . .609
Table 194.GlobalStatMach RAM table . . . . .613
Table 195.GlobalStatMach RAM table register list . . . . .615
Table 196.GlobalStatMach.WORD0 register description . . . . .615
Table 197.GlobalStatMach.WORD1 register description . . . . .615
Table 198.GlobalStatMach.WORD2 register description . . . . .616
Table 199.GlobalStatMach.WORD3 register description . . . . .617
Table 200.GlobalStatMach.WORD4 register description . . . . .617
Table 201.GlobalStatMach.WORD5 register description . . . . .618
Table 202.GlobalStatMach.WORD6 register description . . . . .619
Table 203.StatMach RAM table . . . . .620
Table 204.StatMach RAM table register list . . . . .622
Table 205.StatMach.WORD0 register description . . . . .623
Table 206.StatMach.WORD1 register description . . . . .625
Table 207.StatMach.WORD2 register description . . . . .625
Table 208.StatMach.WORD3 register description . . . . .625
Table 209.StatMach.WORD4 register description . . . . .626
Table 210.StatMach.WORD5 register description . . . . .626
Table 211.StatMach.WORD6 register description . . . . .626
Table 212.StatMach.WORD7 register description . . . . .626
Table 213.StatMach.WORD8 register description . . . . .627
Table 214.StatMach.WORD9 register description . . . . .628
Table 215.StatMach.WORDA register description . . . . .628
Table 216.StatMach.WORDB register description . . . . .629
Table 217.StatMach.WORDC register description . . . . .629
Table 218.StatMach.WORDD register description . . . . .629
Table 219.StatMach.WORDE register description . . . . .629
Table 220.StatMach.WORDF register description . . . . .630
Table 221.StatMach.WORD10 register description . . . . .630
Table 222.StatMach.WORD11 register description . . . . .630
Table 223.StatMach.WORD12 register description . . . . .630
Table 224.StatMach.WORD13 register description . . . . .630
Table 225.StatMach.WORD14 register description . . . . .630
Table 226.StatMach.WORD15 register description . . . . .631
Table 227.StatMach.WORD16 register description . . . . .631
Table 228.StatMach.PaPower values . . . . .632
Table 229.TxRxPack RAM table . . . . .633
Table 230.TxRxPack . . . . .634
Table 231.TxRxPack.WORD0 register description. . . . .634
Table 232.TxRxPack.WORD1 register description. . . . .634
Table 233.TxRxPack.WORD2 register description. . . . .636
Table 234.TxRxPack.WORD3 register description. . . . .636
Table 235.Truth table to select the correct algorithm . . . . .639
Table 236.RAM table bit fields usage versus algorithm number. . . . .640
Table 237.Transmission sequence . . . . .640
Table 238.Reception sequence. . . . .641
Table 239.Delays for Sequencer 2 nd INIT step proposal. . . . .642
Table 240.Behavior versus CTEDisable and CTEAndSampling bits value . . . . .645
Table 241.IP_BLE controller registers list. . . . .652
Table 242.INTERRUPT 1REG register description . . . . .652
Table 243.INTERRUPT2REG register description . . . . .654
Table 244.TIMEOUTDESTREG register description . . . . .655
Table 245.TIMEOUTREG register description. . . . .655
Table 246.TIMERCAPTUREREG register description . . . . .655
Table 247.CMDREG register description . . . . .655
Table 248.STATUSREG register description. . . . .656
Table 249.INTERRUPT1ENABLEREG register description . . . . .658
Table 250.INTERRUPT1LATENCYREG register description. . . . .659
Table 251.MANAESKEY0REG register description . . . . .659
Table 252.MANAESKEY1REG register description . . . . .659
Table 253.MANAESKEY2REG register description . . . . .659
Table 254.MANAESKEY3REG register description . . . . .659
Table 255.MANAESCLEARTEXT0REG register description. . . . .659
Table 256.MANAESCLEARTEXT1REG register description. . . . .659
Table 257.MANAESCLEARTEXT2REG register description. . . . .659
Table 258.MANAESCLEARTEXT3REG register description. . . . .660
Table 259.MANAESCHIPHERTEXT0REG register description. . . . .660
Table 260.MANAESCHIPHERTEXT1REG register description. . . . .660
Table 261.MANAESCHIPHERTEXT2REG register description. . . . .660
Table 262.MANAESCHIPHERTEXT3REG register description. . . . .660
Table 263.MANAESCMDREG register description . . . . .660
Table 264.MANAESSTATREG register description . . . . .660
Table 265.AESLEPRIVPOINTERREG register description. . . . .660
Table 266.AESLEPRIVHASHREG register description . . . . .660
Table 267.AESLEPRIVPRANDREG register description . . . . .661
Table 268.AESLEPRIVCMDREG register description . . . . .661
Table 269.AESLEPRIVSTATREG register description . . . . .661
Table 270.STATUS2REG register description. . . . .661
Table 271.wakeup block register list . . . . .664
Table 272.WAKEUP_OFFSET register description . . . . .665
Table 273. ABSOLUTE_TIME register description . . . . .665
Table 274. MINIMUM_PERIOD_LENGTH register description. . . . .665
Table 275. AVERAGE_PERIOD_LENGTH register description . . . . .665
Table 276. MAXIMUM_PERIOD_LENGTH register description . . . . .666
Table 277. STATISTIC_RESTART register description . . . . .666
Table 278. BLUE_WAKEUP_TIME register description. . . . .666
Table 279. BLUE_SLEEP_REQUEST_MODE register description. . . . .666
Table 280. CM0_WAKEUP_TIME register description . . . . .667
Table 281. CM0_SLEEP_REQUEST_MODE register description. . . . .667
Table 282. WAKEUP_BLE_IRQ_ENABLE register description. . . . .667
Table 283. WAKEUP_BLE_IRQ_STATUS register description. . . . .667
Table 284. WAKEUP_CM0_IRQ_ENABLE register description . . . . .667
Table 285. WAKEUP_CM0_IRQ_STATUS register description . . . . .667
Table 286. PWRC register map . . . . .676
Table 287. Document revision history . . . . .679

List of figures

Figure 1.STM32WB05xZ system architecture . . . . .6
Figure 2.Memory map . . . . .8
Figure 3.AHB up/down converter . . . . .14
Figure 4.Power supply domain overview . . . . .21
Figure 5.Power-on reset/power-down reset waveform . . . . .21
Figure 6.Power regulators and SMPS configuration in mode . . . . .23
Figure 7.Power regulators and SMPS configuration in Deepstop mode . . . . .25
Figure 8.Power regulators and SMPS configuration in Shutdown mode . . . . .26
Figure 9.PWRC state machine for operating modes transition . . . . .27
Figure 10.Power supply configuration . . . . .28
Figure 11.PWRC SMPS state machine overview . . . . .28
Figure 12.Reset generation . . . . .57
Figure 13.Clock tree generation . . . . .59
Figure 14.RCC_LCO / RCC_MCO output clocks . . . . .62
Figure 15.Basic structure of a mixed analog/digital five-volt tolerant I/O port bit . . . . .91
Figure 16.Basic structure of a digital only five-volt tolerant I/O port bit . . . . .91
Figure 17.Input floating/pull-up/pull-down configurations . . . . .95
Figure 18.Output configuration . . . . .95
Figure 19.Alternate function configuration . . . . .96
Figure 20.High impedance-analog configuration . . . . .97
Figure 21.DMAMUX block diagram . . . . .165
Figure 22.ADC top level diagram . . . . .171
Figure 23.ADC sampling time T sw and sampling period T s . . . . .173
Figure 24.Effect of analog source resistance . . . . .173
Figure 25.Block diagram . . . . .195
Figure 26.CRC calculation unit block diagram . . . . .224
Figure 27.Advanced-control timer block diagram . . . . .231
Figure 28.Counter timing diagram with prescaler division change from 1 to 2 . . . . .232
Figure 29.Counter timing diagram with prescaler division change from 1 to 4 . . . . .232
Figure 30.Counter timing diagram, internal clock divided by 1 . . . . .233
Figure 31.Counter timing diagram, internal clock divided by 2 . . . . .233
Figure 32.Counter timing diagram, internal clock divided by 4 . . . . .234
Figure 33.Counter timing diagram, internal clock divided by N . . . . .234
Figure 34.Counter timing diagram, update event when ARPE=0 (TIMx_ARR not preloaded) . . . . .234
Figure 35.Counter timing diagram, update event when ARPE=1 (TIMx_ARR preloaded) . . . . .235
Figure 36.Counter timing diagram, internal clock divided by 1 . . . . .236
Figure 37.Counter timing diagram, internal clock divided by 2 . . . . .236
Figure 38.Counter timing diagram, internal clock divided by 4 . . . . .236
Figure 39.Counter timing diagram, internal clock divided by N . . . . .237
Figure 40.Counter timing diagram, update event when repetition counter is not used . . . . .237
Figure 41.Counter timing diagram, internal clock divided by 1, TIMx_ARR = 0x6 . . . . .238
Figure 42.Counter timing diagram, internal clock divided by 2 . . . . .238
Figure 43.Counter timing diagram, internal clock divided by 4, TIMx_ARR=0x36 . . . . .239
Figure 44.Counter timing diagram, internal clock divided by N . . . . .239
Figure 45.Counter timing diagram, update event with ARPE=1 (counter underflow) . . . . .239
Figure 46.Counter timing diagram, update event with ARPE=1 (counter overflow) . . . . .240
Figure 47.Update rate examples depending on mode and TIMx_RCR register settings . . . . .241
Figure 48.External trigger input block . . . . .242
Figure 49.Control circuit in normal mode, internal clock divided by 1 . . . . .242
Figure 50.TI2 external clock connection example . . . . .243
Figure 51.Control circuit in external clock mode 1 . . . . .243
Figure 52.External trigger input block . . . . .244
Figure 53.Control circuit in external clock mode 2 . . . . .244
Figure 54.Capture/compare channel (example: channel 1 input stage) . . . . .245
Figure 55.Capture/compare channel 1 main circuit . . . . .245
Figure 56.Output stage of capture/compare channel (channel 4, 3, 2 and 1) . . . . .245
Figure 57.PWM input mode timing . . . . .247
Figure 58.Output compare mode, toggle on OC1 . . . . .249
Figure 59.Edge-aligned PWM waveforms (ARR=8) . . . . .250
Figure 60.Center-aligned PWM waveforms (ARR=8) . . . . .251
Figure 61.Generation of 2 phase-shifted PWM signals with 50% duty cycle . . . . .252
Figure 62.Combined PWM mode on channel 1 and 3 . . . . .253
Figure 63.Clearing TIMx_OCxREF . . . . .253
Figure 64.Example of one-pulse mode . . . . .254
Figure 65.Retriggerable one-pulse mode . . . . .255
Figure 66.Example of counter operation in encoder interface mode . . . . .257
Figure 67.Example of encoder interface mode with TI1FP1 polarity inverted . . . . .257
Figure 68.Measuring time interval between edges on 3 signals . . . . .258
Figure 69.TIM16 and TIM17 block diagram . . . . .285
Figure 70.Counter timing diagram with prescaler division change from 1 to 2 . . . . .286
Figure 71.Counter timing diagram with prescaler division change from 1 to 4 . . . . .287
Figure 72.Counter timing diagram, internal clock divided by 1 . . . . .288
Figure 73.Counter timing diagram, internal clock divided by 2 . . . . .288
Figure 74.Counter timing diagram, internal clock divided by 4 . . . . .288
Figure 75.Counter timing diagram, internal clock divided by N . . . . .289
Figure 76.Counter timing diagram, update event when ARPE=0 (TIMx_ARR not preloaded) . . . . .289
Figure 77.Counter timing diagram, update event when ARPE=1 (TIMx_ARR preloaded) . . . . .290
Figure 78.Update rate examples depending on mode and TIMx_RCR register settings . . . . .291
Figure 79.Control circuit in normal mode, internal clock divided by 1 . . . . .291
Figure 80.Capture/compare channel (example: channel 1 input stage) . . . . .292
Figure 81.Capture/compare channel 1 main circuit . . . . .292
Figure 82.Output stage of capture/compare channel (channel 1) . . . . .293
Figure 83.Output compare mode, toggle on OC1 . . . . .295
Figure 84.Edge-aligned PWM waveforms (ARR=8) . . . . .296
Figure 85.Complementary output with deadtime insertion . . . . .297
Figure 86.Deadtime waveforms with delay greater than the negative pulse . . . . .297
Figure 87.Deadtime waveforms with delay greater than the positive pulse . . . . .297
Figure 88.Various output behavior in response to a break event on BRK (OSSI = 1) . . . . .299
Figure 89.Output redirection . . . . .300
Figure 90.Example of one-pulse mode . . . . .301
Figure 91.IR internal hardware connections with TIM16 and TIM17 . . . . .332
Figure 92.RTC block diagram . . . . .334
Figure 93.Independent watchdog block diagram . . . . .357
Figure 94.I 2 C block diagram . . . . .363
Figure 95.I 2 C bus protocol . . . . .365
Figure 96.Setup and hold timings . . . . .366
Figure 97.I 2 C initialization flowchart . . . . .368
Figure 98.Data reception . . . . .369
Figure 99.Data transmission . . . . .369
Figure 100.Target initialization flowchart . . . . .372
Figure 101.Transfer sequence flowchart for I2C target transmitter, NOSTRETCH=0 . . . . .373
Figure 102.Transfer sequence flowchart for I2C target transmitter, NOSTRETCH=1 . . . . .373
Figure 103.Transfer bus diagram for I2C target transmitter . . . . .374
Figure 104.Transfer sequence flowchart for target receiver with NOSTRETCH=0 . . . . .374
Figure 105.Transfer sequence flowchart for target receiver with NOSTRETCH=1 . . . . .375
Figure 106.Transfer bus diagrams for I2C target receiver . . . . .375
Figure 107.Controller clock generation . . . . .377
Figure 108.Controller initialization flowchart . . . . .379
Figure 109.10-bit address read access with HEAD10R=1. . . . .379
Figure 110.Transfer sequence flowchart for I2C controller transmitter for N ≤ 255 bytes . . . . .380
Figure 111.Transfer sequence flowchart for I2C controller transmitter for N > 255 bytes . . . . .381
Figure 112.Transfer bus diagrams for I2C controller transmitter. . . . .382
Figure 113.Transfer sequence flowchart for I 2 C controller receiver for N > 255 bytes . . . . .383
Figure 114.Transfer sequence flowchart for I 2 C controller receiver for N > 255 bytes . . . . .384
Figure 115.Transfer bus diagrams for I 2 C controller receiver. . . . .385
Figure 116.Timeout intervals for t LOW:SEXT , t LOW:MEXT . . . . .388
Figure 117.Transfer sequence flowchart for SMBus target transmitter N bytes + PEC . . . . .391
Figure 118.Transfer bus diagrams for SMBus target transmitter (SBC=1). . . . .391
Figure 119.Transfer sequence flowchart for SMBus target receiver N bytes + PEC . . . . .392
Figure 120.Bus transfer diagrams for SMBus target receiver (SBC=1) . . . . .393
Figure 121.Bus transfer diagrams for SMBus controller transmitter . . . . .394
Figure 122.Bus transfer diagrams for SMBus controller receiver . . . . .395
Figure 123.I 2 C interrupt mapping diagram . . . . .398
Figure 124.USART block diagram . . . . .420
Figure 125.Word length programming . . . . .421
Figure 126.Configurable stop bits . . . . .422
Figure 127.TC/TXE behavior when transmitting . . . . .424
Figure 128.Start bit detection when oversampling by 16 or 8. . . . .425
Figure 129.usart_ker_ck clock divider block diagram . . . . .427
Figure 130.Data sampling when oversampling by 16 . . . . .428
Figure 131.Data sampling when oversampling by 8 . . . . .428
Figure 132.Mute mode using Idle line detection. . . . .432
Figure 133.Mute mode using address mark detection . . . . .433
Figure 134.Break detection in LIN mode (11-bit break length - LBDL bit is set) . . . . .435
Figure 135.Break detection in LIN mode vs. framing error detection. . . . .436
Figure 136.USART example of synchronous master transmission . . . . .437
Figure 137.USART data clock timing diagram M=0 . . . . .437
Figure 138.USART data clock timing diagram (M bits = 01) . . . . .438
Figure 139.RX data setup/hold time. . . . .438
Figure 140.ISO 7816-3 asynchronous protocol . . . . .440
Figure 141.Parity error detection using 1.5 stop bits. . . . .442
Figure 142.IrDA SIR ENDEC - block diagram . . . . .445
Figure 143.IrDA data modulation (3/16) - normal mode . . . . .445
Figure 144.Transmission using DMA . . . . .446
Figure 145.Reception using DMA . . . . .447
Figure 146.Hardware flow control between 2 USARTs . . . . .447
Figure 147.RS232 RTS flow control. . . . .448
Figure 148.RS232 CTS flow control. . . . .448
Figure 149.LPUART block diagram . . . . .479
Figure 150.LPUART word length programming . . . . .481
Figure 151.Configurable stop bits . . . . .483
Figure 152.TC/TXE behavior when transmitting . . . . .484
Figure 153.lpuart_ker_ck clock divider block diagram . . . . .486
Figure 154.Mute mode using idle line detection. . . . .489
Figure 155.Mute mode using address mark detection . . . . .489
Figure 156.Transmission using DMA . . . . .491
Figure 157.Reception using DMA . . . . .492
Figure 158.Hardware flow control between 2 LPUARTs . . . . .493
Figure 159.RS232 RTS flow control. . . . .493
Figure 160.RS232 CTS flow control. . . . .494
Figure 161.SPI block diagram. . . . .517
Figure 162.Full-duplex single master/single slave application . . . . .518
Figure 163.Half-duplex single master/single slave application . . . . .518
Figure 164.Simplex single master/single slave application (master in transmit-only/slave in receive-only mode) . . . . .519
Figure 165.Master and three independent slaves . . . . .520
Figure 166.Hardware/software slave select management. . . . .521
Figure 167.Data clock timing diagram . . . . .522
Figure 168.Data alignment when data length is not equal to 8-bit or 16-bit . . . . .523
Figure 169.Packing data in FIFO for transmission and reception . . . . .526
Figure 170.Master full-duplex communication . . . . .528
Figure 171.Slave full-duplex communication . . . . .529
Figure 172.Master full-duplex communication with CRC. . . . .530
Figure 173.Master full-duplex communication in packed mode . . . . .531
Figure 174.NSSP pulse generation in Motorola SPI master mode . . . . .533
Figure 175.TI mode transfer . . . . .534
Figure 176.I 2 S block diagram . . . . .536
Figure 177.I 2 S Philips protocol waveforms (16/32-bit full accuracy, CPOL = 0) . . . . .537
Figure 178.I 2 S Philips standard waveforms (24-bit frame with CPOL = 0). . . . .537
Figure 179.Transmitting 0x8EAA33 . . . . .538
Figure 180.Receiving 0x8EAA33. . . . .538
Figure 181.I 2 S Philips standard (16-bit extended to 32-bit packet frame with CPOL = 0). . . . .538
Figure 182.Example of 16-bit data frame extended to 32-bit channel frame . . . . .538
Figure 183.MSB justified 16-bit or 32-bit full-accuracy length with CPOL = 0. . . . .539
Figure 184.MSB justified 24-bit frame length with CPOL = 0 . . . . .539
Figure 185.MSB justified 16-bit extended to 32-bit packet frame with CPOL = 0 . . . . .539
Figure 186.LSB justified 16-bit or 32-bit full-accuracy length with CPOL = 0 . . . . .540
Figure 187.LSB justified 24-bit frame length with CPOL = 0 . . . . .540
Figure 188.Operations required to transmit 0x3478AE . . . . .540
Figure 189.Operations required to receive 0x3478AE . . . . .541
Figure 190.LSB justified 16-bit extended to 32-bit packet frame with CPOL = 0 . . . . .541
Figure 191.Example of 16-bit data frame extended to 32-bit channel frame (2) . . . . .541
Figure 192.PCM standard waveforms (16-bit). . . . .542
Figure 193.PCM standard waveforms (16-bit extended to 32-bit packet frame) . . . . .542
Figure 194.Audio sampling frequency definition . . . . .543
Figure 195.I 2 S clock generator architecture . . . . .543
Figure 196.MR_BLE architecture overview . . . . .567
Figure 197.RRM overview . . . . .571
Figure 198.UDRA command list mapping in RAM (example). . . . .573
Figure 199.Radio FSM overview . . . . .594
Figure 200.Sequencer steps overview . . . . .602
Figure 201.Sequencer Initialization steps timings overview. . . . .605
Figure 202.Tx sequence . . . . .606
Figure 203.Rx sequence . . . . .607
Figure 204.RAM table dependency overview . . . . .612
Figure 205.Pointer management and packet counter increment algorithm . . . . .638
Figure 206.Bluetooth LE link layer channel management overview . . . . .639
Figure 207.Timings of an Rx sequence . . . . .641
Figure 208.Timings of a Tx sequence . . . . .642
Figure 209.MSBFirst feature principle overview. . . . .651
Figure 210.IP_BLE wakeup timing contributors . . . . .664
IMPORTANT NOTICE – READ CAREFULLY

STMicroelectronics NV and its subsidiaries (“ST”) reserve the right to make changes, corrections, enhancements, modifications, and improvements to ST products and/or to this document at any time without notice.

In the event of any conflict between the provisions of this document and the provisions of any contractual arrangement in force between the purchasers and ST, the provisions of such contractual arrangement shall prevail.

The purchasers should obtain the latest relevant information on ST products before placing orders. ST products are sold pursuant to ST's terms and conditions of sale in place at the time of order acknowledgment.

The purchasers are solely responsible for the choice, selection, and use of ST products and ST assumes no liability for application assistance or the design of the purchasers' products.

No license, express or implied, to any intellectual property right is granted by ST herein.

Resale of ST products with provisions different from the information set forth herein shall void any warranty granted by ST for such product.

If the purchasers identify an ST product that meets their functional and performance requirements but that is not designated for the purchasers' market segment, the purchasers shall contact ST for more information.

ST and the ST logo are trademarks of ST. For additional information about ST trademarks, refer to www.st.com/trademarks . All other product or service names are the property of their respective owners.

Information in this document supersedes and replaces information previously supplied in any prior versions of this document.

© 2025 STMicroelectronics – All rights reserved