RM0434-STM32WB55-35
Introduction
This document is addressed to application developers. It provides complete information on how to use the STM32WB55xx and STM32WB35xx microcontrollers.
These multiprotocol wireless and ultra-low-power devices embed a powerful ultra-low-power radio compliant with the Bluetooth ® Low Energy SIG specification 5.4 and with IEEE 802.15.4-2011. They contain a dedicated Arm ® Cortex ® -M0+ for performing the real-time low layer operation.
The STM32WB55xx and STM32WB35xx microcontrollers feature different memory sizes, packages and peripherals, and include ST state of the art patented technology.
Related documents
Available from STMicroelectronics web site www.st.com :
- • STM32WB55xx and STM32WB35xx datasheets
- • STM32WB55xx and STM32WB35xx errata sheets
For information on the Arm ® Cortex ® -M4 and Cortex ® -M0+ cores, refer, respectively, to the corresponding Technical Reference Manuals, available from the www.arm.com website.
For information on 802.15.4 refer to the IEEE website ( www.ieee.org ).
For information on Bluetooth ® refer to www.bluetooth.com .
Contents
- 1 Documentation conventions . . . . . 61
- 1.1 General information . . . . . 61
- 1.2 List of abbreviations for registers . . . . . 61
- 1.3 Register reset value . . . . . 62
- 1.4 Glossary . . . . . 62
- 1.5 Availability of peripherals . . . . . 62
- 2 System and memory overview . . . . . 63
- 2.1 System architecture . . . . . 63
- 2.1.1 S0: CPU1 (CPU1 Cortex®-M4) I-bus . . . . . 64
- 2.1.2 S1: CPU1 (CPU1 Cortex®-M4) D-bus . . . . . 64
- 2.1.3 S2: CPU1 (CPU1 Cortex®-M4) S-bus . . . . . 64
- 2.1.4 S3: CPU2 (Cortex®-M0+) S-bus . . . . . 65
- 2.1.5 S4, S5: DMA-bus . . . . . 65
- 2.1.6 S6: Radio system-bus . . . . . 65
- 2.1.7 BusMatrix . . . . . 65
- 2.2 Memory organization . . . . . 66
- 2.2.1 Introduction . . . . . 66
- 2.2.2 Memory map and register boundary addresses . . . . . 67
- 2.2.3 Bit banding . . . . . 72
- 2.3 Boot configuration . . . . . 73
- 2.4 CPU2 boot . . . . . 74
- 2.5 CPU2 SRAM fetch disable . . . . . 75
- 2.1 System architecture . . . . . 63
- 3 Embedded flash memory (FLASH) . . . . . 76
- 3.1 Introduction . . . . . 76
- 3.2 FLASH main features . . . . . 76
- 3.3 FLASH functional description . . . . . 77
- 3.3.1 Flash memory organization . . . . . 77
- 3.3.2 Empty check . . . . . 78
- 3.3.3 Error code correction (ECC) . . . . . 78
- 3.3.4 Read access latency . . . . . 78
- 3.3.5 Adaptive real-time memory accelerator (ART Accelerator) . . . . . 80
| 3.3.6 | Flash memory program and erase operations . . . . . | 83 |
| 3.3.7 | Flash main memory erase sequences . . . . . | 84 |
| 3.3.8 | Flash main memory programming sequences . . . . . | 86 |
| 3.4 | FLASH option bytes . . . . . | 91 |
| 3.4.1 | Option bytes description . . . . . | 91 |
| 3.4.2 | Option bytes programming . . . . . | 98 |
| 3.5 | FLASH UID64 . . . . . | 101 |
| 3.6 | Flash memory protection . . . . . | 102 |
| 3.6.1 | Read protection (RDP) . . . . . | 102 |
| 3.6.2 | Proprietary code readout protection (PCROP) . . . . . | 106 |
| 3.6.3 | Write protection (WRP) . . . . . | 107 |
| 3.6.4 | CPU2 security (ESE) . . . . . | 108 |
| 3.7 | FLASH program/erase suspension . . . . . | 109 |
| 3.8 | FLASH interrupts . . . . . | 110 |
| 3.9 | Register access protection . . . . . | 110 |
| 3.10 | FLASH registers . . . . . | 111 |
| 3.10.1 | Flash memory access control register (FLASH_ACR) . . . . . | 111 |
| 3.10.2 | Flash memory key register (FLASH_KEYR) . . . . . | 112 |
| 3.10.3 | Flash memory option key register (FLASH_OPTKEYR) . . . . . | 112 |
| 3.10.4 | Flash memory status register (FLASH_SR) . . . . . | 113 |
| 3.10.5 | Flash memory control register (FLASH_CR) . . . . . | 114 |
| 3.10.6 | Flash memory ECC register (FLASH_ECCR) . . . . . | 116 |
| 3.10.7 | Flash memory option register (FLASH_OPTR) . . . . . | 117 |
| 3.10.8 | Flash memory PCROP zone A start address register (FLASH_PCROP1ASR) . . . . . | 119 |
| 3.10.9 | Flash memory PCROP zone A end address register (FLASH_PCROP1AER) . . . . . | 120 |
| 3.10.10 | Flash memory WRP area A address register (FLASH_WRP1AR) . . . . . | 120 |
| 3.10.11 | Flash memory WRP area B address register (FLASH_WRP1BR) . . . . . | 121 |
| 3.10.12 | Flash memory PCROP zone B start address register (FLASH_PCROP1BSR) . . . . . | 121 |
| 3.10.13 | Flash memory PCROP zone B end address register (FLASH_PCROP1BER) . . . . . | 122 |
| 3.10.14 | Flash memory IPCC mailbox data buffer address register (FLASH_IPCCBR) . . . . . | 122 |
| 3.10.15 | Flash memory CPU2 access control register (FLASH_C2ACR) . . . . . | 122 |
| 3.10.16 | Flash memory CPU2 status register (FLASH_C2SR) . . . . . | 123 |
| 3.10.17 | Flash memory CPU2 control register (FLASH_C2CR) . . . . . | 125 |
- 3.10.18 Secure flash memory start address register (FLASH_SFR) . . . . . 126
- 3.10.19 Flash memory secure SRAM2 start address and CPU2 reset vector register (FLASH_SRRVR) . . . . . 127
- 3.10.20 FLASH register map . . . . . 129
- 4 Radio system . . . . . 131
- 4.1 Introduction . . . . . 131
- 4.2 Main features . . . . . 131
- 4.3 Radio system functional description . . . . . 132
- 4.3.1 General description . . . . . 132
- 5 Power control (PWR) . . . . . 133
- 5.1 Power supplies . . . . . 133
- 5.1.1 Independent analog peripherals supply . . . . . 137
- 5.1.2 Independent USB transceivers supply . . . . . 137
- 5.1.3 Independent LCD supply (available only on STM32WB55xx) . . . . . 137
- 5.1.4 Battery backup domain . . . . . 138
- 5.1.5 Voltage regulator . . . . . 139
- 5.1.6 Dynamic voltage scaling management . . . . . 140
- 5.2 Power supply supervisor . . . . . 140
- 5.2.1 Power-on reset (POR) / power-down reset (PDR) / brown-out reset (BOR) . . . . . 140
- 5.2.2 Programmable voltage detector (PVD) . . . . . 142
- 5.2.3 Peripheral voltage monitoring (PVM) . . . . . 143
- 5.3 CPU2 boot . . . . . 144
- 5.4 Low-power modes . . . . . 146
- 5.4.1 Run mode . . . . . 152
- 5.4.2 Low-power run mode (LP run) . . . . . 152
- 5.4.3 Entering Low-power mode . . . . . 153
- 5.4.4 Exiting Low-power mode . . . . . 153
- 5.4.5 Sleep mode . . . . . 155
- 5.4.6 Low-power sleep mode (LP sleep) . . . . . 156
- 5.4.7 Stop0 mode . . . . . 157
- 5.4.8 Stop1 mode . . . . . 159
- 5.4.9 Stop2 mode . . . . . 160
- 5.4.10 Standby mode . . . . . 162
- 5.4.11 Shutdown mode . . . . . 164
- 5.1 Power supplies . . . . . 133
| 5.4.12 | Auto wake-up from Low-power mode ..... | 165 |
| 5.5 | Real-time radio information ..... | 166 |
| 5.6 | PWR registers ..... | 167 |
| 5.6.1 | PWR control register 1 (PWR_CR1) ..... | 167 |
| 5.6.2 | PWR control register 2 (PWR_CR2) ..... | 168 |
| 5.6.3 | PWR control register 3 (PWR_CR3) ..... | 169 |
| 5.6.4 | PWR control register 4 (PWR_CR4) ..... | 171 |
| 5.6.5 | PWR status register 1 (PWR_SR1) ..... | 172 |
| 5.6.6 | PWR status register 2 (PWR_SR2) ..... | 173 |
| 5.6.7 | PWR status clear register (PWR_SCR) ..... | 174 |
| 5.6.8 | PWR control register 5 (PWR_CR5) ..... | 175 |
| 5.6.9 | PWR Port A pull-up control register (PWR_PUCRA) ..... | 176 |
| 5.6.10 | PWR Port A pull-down control register (PWR_PDCRA) ..... | 177 |
| 5.6.11 | PWR Port B pull-up control register (PWR_PUCRB) ..... | 177 |
| 5.6.12 | PWR Port B pull-down control register (PWR_PDCRB) ..... | 178 |
| 5.6.13 | PWR Port C pull-up control register (PWR_PUCRC) ..... | 178 |
| 5.6.14 | PWR Port C pull-down control register (PWR_PDCRC) ..... | 179 |
| 5.6.15 | PWR Port D pull-up control register (PWR_PUCRD) (STM32WB55xx only) ..... | 179 |
| 5.6.16 | PWR Port D pull-down control register (PWR_PDCRD) (STM32WB55xx only) ..... | 180 |
| 5.6.17 | PWR Port E pull-up control register (PWR_PUCRE) ..... | 180 |
| 5.6.18 | PWR Port E pull-down control register (PWR_PDCRE) ..... | 181 |
| 5.6.19 | PWR Port H pull-up control register (PWR_PUCRH) ..... | 181 |
| 5.6.20 | PWR Port H pull-down control register (PWR_PDCRH) ..... | 182 |
| 5.6.21 | PWR CPU2 control register 1 (PWR_C2CR1) ..... | 182 |
| 5.6.22 | PWR CPU2 control register 3 (PWR_C2CR3) ..... | 184 |
| 5.6.23 | PWR extended status and status clear register (PWR_EXTSCR) ..... | 185 |
| 5.6.24 | PWR register map and reset value table ..... | 187 |
| 6 | Reset and clock control (RCC) ..... | 189 |
| 6.1 | Reset ..... | 189 |
| 6.1.1 | Power reset ..... | 189 |
| 6.1.2 | System reset ..... | 189 |
| 6.1.3 | Backup domain reset ..... | 191 |
| 6.2 | Clocks ..... | 191 |
| 6.2.1 | HSE clock ..... | 195 |
| 6.2.2 | HSI16 clock ..... | 196 |
| 6.2.3 | MSI clock ..... | 196 |
| 6.2.4 | HSI48 clock ..... | 197 |
| 6.2.5 | PLLs ..... | 198 |
| 6.2.6 | LSE clock ..... | 198 |
| 6.2.7 | LSI1 clock ..... | 199 |
| 6.2.8 | LSI2 clock ..... | 200 |
| 6.2.9 | System clock (SYSCLK) selection ..... | 200 |
| 6.2.10 | Clock source frequency versus voltage scaling ..... | 200 |
| 6.2.11 | Clock security system (CSS) on HSE ..... | 201 |
| 6.2.12 | Clock security system on LSE (LSECSS) ..... | 201 |
| 6.2.13 | LSI source selection ..... | 202 |
| 6.2.14 | SMPS step-down converter clock ..... | 202 |
| 6.2.15 | ADC clock ..... | 203 |
| 6.2.16 | RTC clock ..... | 203 |
| 6.2.17 | Timer clock ..... | 203 |
| 6.2.18 | Watchdog clock ..... | 204 |
| 6.2.19 | True RNG clock ..... | 204 |
| 6.2.20 | Clock-out capability ..... | 204 |
| 6.2.21 | Internal/external clock measurement with TIM16/TIM17 ..... | 205 |
| 6.2.22 | Peripheral clocks enable ..... | 206 |
| 6.3 | Low-power modes ..... | 208 |
| 6.4 | RCC registers ..... | 210 |
| 6.4.1 | RCC clock control register (RCC_CR) ..... | 210 |
| 6.4.2 | RCC internal clock sources calibration register (RCC_ICSCR) ..... | 213 |
| 6.4.3 | RCC clock configuration register (RCC_CFGR) ..... | 214 |
| 6.4.4 | RCC PLL configuration register (RCC_PLLCFGR) ..... | 216 |
| 6.4.5 | RCC PLLSAI1 configuration register (RCC_PLLSAI1CFGR) ..... | 220 |
| 6.4.6 | RCC clock interrupt enable register (RCC_CIER) ..... | 222 |
| 6.4.7 | RCC clock interrupt flag register (RCC_CIFR) ..... | 223 |
| 6.4.8 | RCC clock interrupt clear register (RCC_CICR) ..... | 225 |
| 6.4.9 | RCC SMPS step-down converter control register (RCC_SMPSSCR) .. | 226 |
| 6.4.10 | RCC AHB1 peripheral reset register (RCC_AHB1RSTR) ..... | 227 |
| 6.4.11 | RCC AHB2 peripheral reset register (RCC_AHB2RSTR) ..... | 228 |
| 6.4.12 | RCC AHB3 and AHB4 peripheral reset register (RCC_AHB3RSTR) . | 229 |
| 6.4.13 | RCC APB1 peripheral reset register 1 (RCC_APB1RSTR1) ..... | 230 |
| 6.4.14 | RCC APB1 peripheral reset register 2 (RCC_APB1RSTR2) ..... | 232 |
| 6.4.15 | RCC APB2 peripheral reset register (RCC_APB2RSTR) . . . . . | 232 |
| 6.4.16 | RCC APB3 peripheral reset register (RCC_APB3RSTR) . . . . . | 233 |
| 6.4.17 | RCC AHB1 peripheral clock enable register (RCC_AHB1ENR) . . . . . | 234 |
| 6.4.18 | RCC AHB2 peripheral clock enable register (RCC_AHB2ENR) . . . . . | 235 |
| 6.4.19 | RCC AHB3 and AHB4 peripheral clock enable register (RCC_AHB3ENR) . . . . . | 236 |
| 6.4.20 | RCC APB1 peripheral clock enable register 1 (RCC_APB1ENR1) . . . . . | 237 |
| 6.4.21 | RCC APB1 peripheral clock enable register 2 (RCC_APB1ENR2) . . . . . | 239 |
| 6.4.22 | RCC APB2 peripheral clock enable register (RCC_APB2ENR) . . . . . | 239 |
| 6.4.23 | RCC AHB1 peripheral clocks enable in Sleep modes register (RCC_AHB1SMENR) . . . . . | 240 |
| 6.4.24 | RCC AHB2 peripheral clocks enable in Sleep modes register (RCC_AHB2SMENR) . . . . . | 241 |
| 6.4.25 | RCC AHB3 and AHB4 peripheral clocks enable in Sleep and Stop modes register (RCC_AHB3SMENR) . . . . . | 243 |
| 6.4.26 | RCC APB1 peripheral clocks enable in Sleep mode register 1 (RCC_APB1SMENR1) . . . . . | 244 |
| 6.4.27 | RCC APB1 peripheral clocks enable in Sleep mode register 2 (RCC_APB1SMENR2) . . . . . | 246 |
| 6.4.28 | RCC APB2 peripheral clocks enable in Sleep mode register (RCC_APB2SMENR) . . . . . | 246 |
| 6.4.29 | RCC peripherals independent clock configuration register (RCC_CCIPR) . . . . . | 248 |
| 6.4.30 | RCC backup domain control register (RCC_BDCR) . . . . . | 249 |
| 6.4.31 | RCC control/status register (RCC_CSR) . . . . . | 251 |
| 6.4.32 | RCC clock recovery RC register (RCC_CRRRCR) . . . . . | 253 |
| 6.4.33 | RCC clock HSE register (RCC_HSECR) . . . . . | 254 |
| 6.4.34 | RCC extended clock recovery register (RCC_EXTCFGR) . . . . . | 255 |
| 6.4.35 | RCC CPU2 AHB1 peripheral clock enable register (RCC_C2AHB1ENR) . . . . . | 257 |
| 6.4.36 | RCC CPU2 AHB2 peripheral clock enable register (RCC_C2AHB2ENR) . . . . . | 258 |
| 6.4.37 | RCC CPU2 AHB3 and AHB4 peripheral clock enable register (RCC_C2AHB3ENR) . . . . . | 259 |
| 6.4.38 | RCC CPU2 APB1 peripheral clock enable register 1 (RCC_C2APB1ENR1) . . . . . | 260 |
| 6.4.39 | RCC CPU2 APB1 peripheral clock enable register 2 (RCC_C2APB1ENR2) . . . . . | 262 |
| 6.4.40 | RCC CPU2 APB2 peripheral clock enable register (RCC_C2APB2ENR) . . . . . | 262 |
| 6.4.41 | RCC CPU2 APB3 peripheral clock enable register (RCC_C2APB3ENR) ..... | 263 |
| 6.4.42 | RCC CPU2 AHB1 peripheral clocks enable in Sleep modes register (RCC_C2AHB1SMENR) ..... | 264 |
| 6.4.43 | RCC CPU2 AHB2 peripheral clocks enable in Sleep modes register (RCC_C2AHB2SMENR) ..... | 265 |
| 6.4.44 | RCC CPU2 AHB3 and AHB4 peripheral clocks enable in Sleep mode register (RCC_C2AHB3SMENR) ..... | 267 |
| 6.4.45 | RCC CPU2 APB1 peripheral clocks enable in Sleep mode register 1 (RCC_C2APB1SMENR1) ..... | 268 |
| 6.4.46 | RCC CPU2 APB1 peripheral clocks enable in Sleep mode register 2 (RCC_C2APB1SMENR2) ..... | 269 |
| 6.4.47 | RCC CPU2 APB2 peripheral clocks enable in Sleep mode register (RCC_C2APB2SMENR) ..... | 270 |
| 6.4.48 | RCC CPU2 APB3 peripheral clock enable in Sleep mode register (RCC_C2APB3SMENR) ..... | 271 |
| 6.4.49 | RCC register map ..... | 272 |
| 7 | Clock recovery system (CRS) ..... | 278 |
| 7.1 | CRS introduction ..... | 278 |
| 7.2 | CRS main features ..... | 278 |
| 7.3 | CRS implementation ..... | 278 |
| 7.4 | CRS functional description ..... | 279 |
| 7.4.1 | CRS block diagram ..... | 279 |
| 7.4.2 | CRS internal signals ..... | 279 |
| 7.4.3 | Synchronization input ..... | 280 |
| 7.4.4 | Frequency error measurement ..... | 280 |
| 7.4.5 | Frequency error evaluation and automatic trimming ..... | 281 |
| 7.4.6 | CRS initialization and configuration ..... | 282 |
| 7.5 | CRS in low-power modes ..... | 283 |
| 7.6 | CRS interrupts ..... | 283 |
| 7.7 | CRS registers ..... | 283 |
| 7.7.1 | CRS control register (CRS_CR) ..... | 283 |
| 7.7.2 | CRS configuration register (CRS_CFGR) ..... | 285 |
| 7.7.3 | CRS interrupt and status register (CRS_ISR) ..... | 286 |
| 7.7.4 | CRS interrupt flag clear register (CRS_ICR) ..... | 288 |
| 7.7.5 | CRS register map ..... | 288 |
| 8 | Hardware semaphore (HSEM) ..... | 290 |
| 8.1 | HSEM introduction . . . . . | 290 |
| 8.2 | HSEM main features . . . . . | 290 |
| 8.3 | Functional description . . . . . | 291 |
| 8.3.1 | HSEM block diagram . . . . . | 291 |
| 8.3.2 | HSEM internal signals . . . . . | 291 |
| 8.3.3 | HSEM lock procedures . . . . . | 291 |
| 8.3.4 | HSEM write/read/read lock register address . . . . . | 293 |
| 8.3.5 | HSEM unlock procedures . . . . . | 293 |
| 8.3.6 | HSEM COREID semaphore clear . . . . . | 294 |
| 8.3.7 | HSEM interrupts . . . . . | 294 |
| 8.3.8 | AHB bus master ID verification . . . . . | 296 |
| 8.4 | HSEM registers . . . . . | 297 |
| 8.4.1 | HSEM register semaphore x (HSEM_Rx) . . . . . | 297 |
| 8.4.2 | HSEM read lock register semaphore x (HSEM_RLRx) . . . . . | 298 |
| 8.4.3 | HSEM interrupt enable register (HSEM_CnIER) . . . . . | 299 |
| 8.4.4 | HSEM interrupt clear register (HSEM_CnICR) . . . . . | 299 |
| 8.4.5 | HSEM interrupt status register (HSEM_CnISR) . . . . . | 299 |
| 8.4.6 | HSEM interrupt status register (HSEM_CnMISR) . . . . . | 300 |
| 8.4.7 | HSEM clear register (HSEM_CR) . . . . . | 300 |
| 8.4.8 | HSEM clear semaphore key register (HSEM_KEYR) . . . . . | 301 |
| 8.4.9 | HSEM register map . . . . . | 302 |
| 9 | Inter-processor communication controller (IPCC) . . . . . | 304 |
| 9.1 | Introduction . . . . . | 304 |
| 9.2 | IPCC main features . . . . . | 304 |
| 9.3 | IPCC functional description . . . . . | 304 |
| 9.3.1 | IPCC block diagram . . . . . | 305 |
| 9.3.2 | IPCC Simplex channel mode . . . . . | 305 |
| 9.3.3 | IPCC Half-duplex channel mode . . . . . | 308 |
| 9.3.4 | IPCC interrupts . . . . . | 311 |
| 9.4 | IPCC registers . . . . . | 312 |
| 9.4.1 | IPCC processor 1 control register (IPCC_C1CR) . . . . . | 312 |
| 9.4.2 | IPCC processor 1 mask register (IPCC_C1MR) . . . . . | 312 |
| 9.4.3 | IPCC processor 1 status set clear register (IPCC_C1SCR) . . . . . | 313 |
| 9.4.4 | IPCC processor 1 to processor 2 status register (IPCC_C1TOC2SR) . . . . . | 313 |
| 9.4.5 | IPCC processor 2 control register (IPCC_C2CR) . . . . . | 314 |
| 9.4.6 | IPCC processor 2 mask register (IPCC_C2MR) . . . . . | 314 |
| 9.4.7 | IPCC processor 2 status set clear register (IPCC_C2SCR) . . . . . | 315 |
| 9.4.8 | IPCC processor 2 to processor 1 status register (IPCC_C2TOC1SR) . . . . . | 316 |
| 9.4.9 | IPCC register map . . . . . | 317 |
| 10 | General-purpose I/Os (GPIO) . . . . . | 318 |
| 10.1 | Introduction . . . . . | 318 |
| 10.2 | GPIO main features . . . . . | 318 |
| 10.3 | GPIO implementation . . . . . | 318 |
| 10.4 | GPIO functional description . . . . . | 319 |
| 10.4.1 | General-purpose I/O (GPIO) . . . . . | 321 |
| 10.4.2 | I/O pin alternate function multiplexer and mapping . . . . . | 321 |
| 10.4.3 | I/O port control registers . . . . . | 322 |
| 10.4.4 | I/O port data registers . . . . . | 322 |
| 10.4.5 | I/O data bitwise handling . . . . . | 322 |
| 10.4.6 | GPIO locking mechanism . . . . . | 323 |
| 10.4.7 | I/O alternate function input/output . . . . . | 323 |
| 10.4.8 | External interrupt/wakeup lines . . . . . | 323 |
| 10.4.9 | Input configuration . . . . . | 323 |
| 10.4.10 | Output configuration . . . . . | 324 |
| 10.4.11 | Alternate function configuration . . . . . | 325 |
| 10.4.12 | Analog configuration . . . . . | 325 |
| 10.4.13 | Using the LSE oscillator pins as GPIOs . . . . . | 326 |
| 10.4.14 | Using the GPIO pins in the RTC supply domain . . . . . | 326 |
| 10.4.15 | Using PH3 as GPIO . . . . . | 326 |
| 10.5 | GPIO registers . . . . . | 327 |
| 10.5.1 | GPIO port mode register (GPIOx_MODER) (x =A to E and H) . . . . . | 327 |
| 10.5.2 | GPIO port output type register (GPIOx_OTYPER) (x = A to E and H) . . . . . | 328 |
| 10.5.3 | GPIO port output speed register (GPIOx_OSPEEDR) (x = A to E and H) . . . . . | 328 |
| 10.5.4 | GPIO port pull-up/pull-down register (GPIOx_PUPDR) (x = A to E and H) . . . . . | 329 |
| 10.5.5 | GPIO port input data register (GPIOx_IDR) (x = A to E and H) . . . . . | 329 |
| 10.5.6 | GPIO port output data register (GPIOx_ODR) (x = A to E and H) . . . . . | 330 |
| 10.5.7 | GPIO port bit set/reset register (GPIOx_BSRR) (x = A to E and H) . . . . . | 330 |
| 10.5.8 | GPIO port configuration lock register (GPIOx_LCKR) (x = A to E and H) . . . . . | 331 |
| 10.5.9 | GPIO alternate function low register (GPIOx_AFRL) (x = A to E and H) . . . . . | 332 |
| 10.5.10 | GPIO alternate function high register (GPIOx_AFRH) (x = A to E and H) . . . . . | 333 |
| 10.5.11 | GPIO port bit reset register (GPIOx_BRR) (x = A to E and H) . . . . . | 334 |
| 10.5.12 | GPIO register map . . . . . | 335 |
| 11 | System configuration controller (SYSCFG) . . . . . | 338 |
| 11.1 | SYSCFG main features . . . . . | 338 |
| 11.2 | SYSCFG registers . . . . . | 338 |
| 11.2.1 | SYSCFG memory remap register (SYSCFG_MEMRMP) . . . . . | 338 |
| 11.2.2 | SYSCFG configuration register 1 (SYSCFG_CFGR1) . . . . . | 339 |
| 11.2.3 | SYSCFG external interrupt configuration register 1 (SYSCFG_EXTICR1) . . . . . | 340 |
| 11.2.4 | SYSCFG external interrupt configuration register 2 (SYSCFG_EXTICR2) . . . . . | 341 |
| 11.2.5 | SYSCFG external interrupt configuration register 3 (SYSCFG_EXTICR3) . . . . . | 342 |
| 11.2.6 | SYSCFG external interrupt configuration register 4 (SYSCFG_EXTICR4) . . . . . | 344 |
| 11.2.7 | SYSCFG SRAM2 control and status register (SYSCFG_SCSR) . . . . . | 345 |
| 11.2.8 | SYSCFG configuration register 2 (SYSCFG_CFGR2) . . . . . | 346 |
| 11.2.9 | SYSCFG SRAM2 write protection register (SYSCFG_SWPR1) . . . . . | 347 |
| 11.2.10 | SYSCFG SRAM2 key register (SYSCFG_SKR) . . . . . | 347 |
| 11.2.11 | SYSCFG SRAM2 write protection register 2 (SYSCFG_SWPR2) . . . . . | 347 |
| 11.2.12 | SYSCFG CPU1 interrupt mask register 1 (SYSCFG_IMR1) . . . . . | 348 |
| 11.2.13 | SYSCFG CPU1 interrupt mask register 2 (SYSCFG_IMR2) . . . . . | 348 |
| 11.2.14 | SYSCFG CPU2 interrupt mask register 1 (SYSCFG_C2IMR1) . . . . . | 349 |
| 11.2.15 | SYSCFG CPU2 interrupt mask register 2 (SYSCFG_C2IMR2) . . . . . | 350 |
| 11.2.16 | SYSCFG secure IP control register (SYSCFG_SIPCR) . . . . . | 350 |
| 11.2.17 | SYSCFG register map . . . . . | 352 |
| 12 | Peripherals interconnect matrix . . . . . | 354 |
| 12.1 | Introduction . . . . . | 354 |
| 12.2 | Interconnect matrix implementation . . . . . | 354 |
| 12.3 | Connection summary . . . . . | 354 |
| 12.4 | Interconnection details . . . . . | 355 |
| 12.4.1 | From timer (TIM1/TIM2/TIM17) to timer (TIM1/TIM2) . . . . . | 355 |
| 12.4.2 | From timer (TIM1/TIM2) and EXTI to ADC (ADC1) . . . . . | 356 |
| 12.4.3 | From ADC (ADC1) to timer (TIM1) . . . . . | 356 |
| 12.4.4 | From HSE, LSE, LSI, MSI, MCO, RTC to timers (TIM2/TIM16/TIM17) . . . . . | 356 |
| 12.4.5 | From RTC, COMP1, COMP2 to low-power timers (LPTIM1/LPTIM2) . . . . . | 357 |
| 12.4.6 | From timer (TIM1/TIM2) to comparators (COMP1/COMP2) . . . . . | 357 |
| 12.4.7 | From USB to timer (TIM2) . . . . . | 358 |
| 12.4.8 | From internal analog to ADC1 . . . . . | 358 |
| 12.4.9 | From comparators (COMP1/COMP2) to timers (TIM1/TIM2/TIM16/TIM17) . . . . . | 358 |
| 12.4.10 | From system errors to timers (TIM1/TIM16/TIM17) . . . . . | 359 |
| 12.4.11 | From timers (TIM16/TIM17) to IRTIM . . . . . | 359 |
| 13 | Direct memory access controller (DMA) . . . . . | 360 |
| 13.1 | Introduction . . . . . | 360 |
| 13.2 | DMA main features . . . . . | 360 |
| 13.3 | DMA implementation . . . . . | 361 |
| 13.3.1 | DMA1 and DMA2 . . . . . | 361 |
| 13.3.2 | DMA request mapping . . . . . | 361 |
| 13.4 | DMA functional description . . . . . | 362 |
| 13.4.1 | DMA block diagram . . . . . | 362 |
| 13.4.2 | DMA pins and internal signals . . . . . | 363 |
| 13.4.3 | DMA transfers . . . . . | 363 |
| 13.4.4 | DMA arbitration . . . . . | 364 |
| 13.4.5 | DMA channels . . . . . | 364 |
| 13.4.6 | DMA data width, alignment, and endianness . . . . . | 368 |
| 13.4.7 | DMA error management . . . . . | 369 |
| 13.5 | DMA interrupts . . . . . | 370 |
| 13.6 | DMA registers . . . . . | 370 |
| 13.6.1 | DMA interrupt status register (DMA_ISR) . . . . . | 370 |
| 13.6.2 | DMA interrupt flag clear register (DMA_IFCR) . . . . . | 372 |
| 13.6.3 | DMA channel x configuration register (DMA_CCRx) . . . . . | 374 |
| 13.6.4 | DMA channel x number of data to transfer register (DMA_CNDTRx) . . . . . | 376 |
| 13.6.5 | DMA channel x peripheral address register (DMA_CPARx) . . . . . | 377 |
| 13.6.6 | DMA channel x memory address register (DMA_CMARx) . . . . . | 378 |
| 13.6.7 | DMA register map . . . . . | 378 |
| 14 | DMA request multiplexer (DMAMUX) . . . . . | 381 |
| 14.1 | Introduction . . . . . | 381 |
| 14.2 | DMAMUX main features . . . . . | 382 |
| 14.3 | DMAMUX implementation . . . . . | 382 |
| 14.3.1 | DMAMUX instantiation . . . . . | 382 |
| 14.3.2 | DMAMUX mapping . . . . . | 382 |
| 14.4 | DMAMUX functional description . . . . . | 385 |
| 14.4.1 | DMAMUX block diagram . . . . . | 385 |
| 14.4.2 | DMAMUX signals . . . . . | 386 |
| 14.4.3 | DMAMUX channels . . . . . | 386 |
| 14.4.4 | DMAMUX request line multiplexer . . . . . | 386 |
| 14.4.5 | DMAMUX request generator . . . . . | 389 |
| 14.5 | DMAMUX interrupts . . . . . | 390 |
| 14.6 | DMAMUX registers . . . . . | 391 |
| 14.6.1 | DMAMUX request line multiplexer channel x configuration register (DMAMUX_CxCR) . . . . . | 391 |
| 14.6.2 | DMAMUX request line multiplexer interrupt channel status register (DMAMUX_CSR) . . . . . | 392 |
| 14.6.3 | DMAMUX request line multiplexer interrupt clear flag register (DMAMUX_CFR) . . . . . | 392 |
| 14.6.4 | DMAMUX request generator channel x configuration register (DMAMUX_RGxCR) . . . . . | 393 |
| 14.6.5 | DMAMUX request generator interrupt status register (DMAMUX_RGSR) . . . . . | 394 |
| 14.6.6 | DMAMUX request generator interrupt clear flag register (DMAMUX_RGCFR) . . . . . | 394 |
| 14.6.7 | DMAMUX register map . . . . . | 395 |
| 15 | Nested vectored interrupt controller (NVIC) . . . . . | 398 |
| 15.1 | NVIC main features . . . . . | 398 |
| 15.2 | NVIC implementation . . . . . | 398 |
| 15.3 | Interrupt block diagram . . . . . | 398 |
| 15.4 | Interrupt and exception vectors . . . . . | 399 |
| 15.5 | Interrupt list . . . . . | 405 |
| 16 | Extended interrupt and event controller (EXTI) . . . . . | 407 |
| 16.1 | EXTI main features . . . . . | 407 |
| 16.2 | EXTI implementation . . . . . | 407 |
| 16.3 | EXTI block diagram . . . . . | 408 |
| 16.3.1 | EXTI connections between peripherals and CPU . . . . . | 409 |
| 16.4 | EXTI functional description . . . . . | 410 |
| 16.4.1 | EXTI configurable event input wakeup . . . . . | 410 |
| 16.4.2 | EXTI direct event input wakeup . . . . . | 412 |
| 16.5 | EXTI functional behavior . . . . . | 412 |
| 16.6 | EXTI registers . . . . . | 414 |
| 16.6.1 | EXTI rising trigger selection register (EXTI_RTSR1) . . . . . | 414 |
| 16.6.2 | EXTI falling trigger selection register (EXTI_FTSR1) . . . . . | 415 |
| 16.6.3 | EXTI software interrupt event register (EXTI_SWIER1) . . . . . | 415 |
| 16.6.4 | EXTI pending register (EXTI_PR1) . . . . . | 416 |
| 16.6.5 | EXTI rising trigger selection register (EXTI_RTSR2) . . . . . | 416 |
| 16.6.6 | EXTI falling trigger selection register (EXTI_FTSR2) . . . . . | 417 |
| 16.6.7 | EXTI software interrupt event register (EXTI_SWIER2) . . . . . | 418 |
| 16.6.8 | EXTI pending register (EXTI_PR2) . . . . . | 419 |
| 16.6.9 | EXTI CPU wakeup with interrupt mask register (EXTI_IMR1) . . . . . | 419 |
| 16.6.10 | EXTI CPU2 wakeup with interrupt mask register (EXTI_C2IMR1) . . . . . | 420 |
| 16.6.11 | EXTI CPU wakeup with event mask register (EXTI_EMR1) . . . . . | 420 |
| 16.6.12 | EXTI CPU2 wakeup with event mask register (EXTI_C2EMR1) . . . . . | 421 |
| 16.6.13 | EXTI CPU wakeup with interrupt mask register (EXTI_IMR2) . . . . . | 421 |
| 16.6.14 | EXTI CPU2 wakeup with interrupt mask register (EXTI_C2IMR2) . . . . . | 422 |
| 16.6.15 | EXTI CPU wakeup with event mask register (EXTI_EMR2) . . . . . | 422 |
| 16.6.16 | EXTI CPU2 wakeup with event mask register (EXTI_C2EMR2) . . . . . | 423 |
| 16.6.17 | EXTI register map . . . . . | 424 |
| 17 | Cyclic redundancy check calculation unit (CRC) . . . . . | 426 |
| 17.1 | CRC introduction . . . . . | 426 |
| 17.2 | CRC main features . . . . . | 426 |
| 17.3 | CRC functional description . . . . . | 427 |
| 17.3.1 | CRC block diagram . . . . . | 427 |
| 17.3.2 | CRC internal signals . . . . . | 427 |
| 17.3.3 | CRC operation . . . . . | 427 |
| 17.4 | CRC registers . . . . . | 429 |
| 17.4.1 | CRC data register (CRC_DR) ..... | 429 |
| 17.4.2 | CRC independent data register (CRC_IDR) ..... | 429 |
| 17.4.3 | CRC control register (CRC_CR) ..... | 430 |
| 17.4.4 | CRC initial value (CRC_INIT) ..... | 431 |
| 17.4.5 | CRC polynomial (CRC_POL) ..... | 431 |
| 17.4.6 | CRC register map ..... | 432 |
| 18 | Quad-SPI interface (QUADSPI) ..... | 433 |
| 18.1 | Introduction ..... | 433 |
| 18.2 | QUADSPI main features ..... | 433 |
| 18.3 | QUADSPI functional description ..... | 433 |
| 18.3.1 | QUADSPI block diagram ..... | 433 |
| 18.3.2 | QUADSPI pins ..... | 434 |
| 18.3.3 | QUADSPI command sequence ..... | 434 |
| 18.3.4 | QUADSPI signal interface protocol modes ..... | 436 |
| 18.3.5 | QUADSPI indirect mode ..... | 438 |
| 18.3.6 | QUADSPI automatic status-polling mode ..... | 439 |
| 18.3.7 | QUADSPI memory-mapped mode ..... | 440 |
| 18.3.8 | QUADSPI flash memory configuration ..... | 441 |
| 18.3.9 | QUADSPI delayed data sampling ..... | 441 |
| 18.3.10 | QUADSPI configuration ..... | 441 |
| 18.3.11 | QUADSPI use ..... | 442 |
| 18.3.12 | Sending the instruction only once ..... | 444 |
| 18.3.13 | QUADSPI error management ..... | 444 |
| 18.3.14 | QUADSPI busy bit and abort functionality ..... | 444 |
| 18.3.15 | NCS behavior ..... | 444 |
| 18.4 | QUADSPI interrupts ..... | 446 |
| 18.5 | QUADSPI registers ..... | 447 |
| 18.5.1 | QUADSPI control register (QUADSPI_CR) ..... | 447 |
| 18.5.2 | QUADSPI device configuration register (QUADSPI_DCR) ..... | 449 |
| 18.5.3 | QUADSPI status register (QUADSPI_SR) ..... | 450 |
| 18.5.4 | QUADSPI flag clear register (QUADSPI_FCR) ..... | 451 |
| 18.5.5 | QUADSPI data length register (QUADSPI_DLR) ..... | 451 |
| 18.5.6 | QUADSPI communication configuration register (QUADSPI_CCR) .. | 452 |
| 18.5.7 | QUADSPI address register (QUADSPI_AR) ..... | 454 |
| 18.5.8 | QUADSPI alternate-byte register (QUADSPI_ABR) ..... | 454 |
| 18.5.9 | QUADSPI data register (QUADSPI_DR) ..... | 455 |
- 18.5.10 QUADSPI polling status mask register (QUADSPI_PSMKR) . . . . . 455
- 18.5.11 QUADSPI polling status match register (QUADSPI_PSMAR) . . . . . 456
- 18.5.12 QUADSPI polling interval register (QUADSPI_PIR) . . . . . 456
- 18.5.13 QUADSPI low-power timeout register (QUADSPI_LPTR) . . . . . 457
- 18.5.14 QUADSPI register map . . . . . 457
19 Analog-to-digital converter (ADC) . . . . . 459
- 19.1 ADC introduction . . . . . 459
- 19.2 ADC main features . . . . . 459
- 19.3 ADC implementation . . . . . 460
- 19.4 ADC functional description . . . . . 461
- 19.4.1 ADC block diagram . . . . . 461
- 19.4.2 ADC pins and internal signals . . . . . 462
- 19.4.3 ADC clocks . . . . . 463
- 19.4.4 ADC1 connectivity . . . . . 465
- 19.4.5 Slave AHB interface . . . . . 466
- 19.4.6 ADC Deep-power-down mode (DEEPPWD) and ADC voltage regulator (ADVREGEN) . . . . . 466
- 19.4.7 Single-ended and differential input channels . . . . . 467
- 19.4.8 Calibration (ADCAL, ADCALDIF, ADC_CALFACT) . . . . . 467
- 19.4.9 ADC on-off control (ADEN, ADDIS, ADRDY) . . . . . 470
- 19.4.10 Constraints when writing the ADC control bits . . . . . 471
- 19.4.11 Channel selection (ADC_SQRy, ADC_JSQR) . . . . . 472
- 19.4.12 Channel-wise programmable sampling time (SMPR1, SMPR2) . . . . . 473
- 19.4.13 Single conversion mode (CONT = 0) . . . . . 473
- 19.4.14 Continuous conversion mode (CONT = 1) . . . . . 474
- 19.4.15 Starting conversions (ADSTART, JADSTART) . . . . . 475
- 19.4.16 ADC timing . . . . . 476
- 19.4.17 Stopping an ongoing conversion (ADSTP, JADSTP) . . . . . 476
- 19.4.18 Conversion on external trigger and trigger polarity (EXTSEL, EXTEN, JEXTSEL, JEXTEN) . . . . . 478
- 19.4.19 Injected channel management . . . . . 480
- 19.4.20 Discontinuous mode (DISCEN, DISCNUM, JDISCEN) . . . . . 481
- 19.4.21 Queue of context for injected conversions . . . . . 482
- 19.4.22 Programmable resolution (RES) - Fast conversion mode . . . . . 490
- 19.4.23 End of conversion, end of sampling phase (EOC, JEOC, EOSMP) . . . . . 491
- 19.4.24 End of conversion sequence (EOS, JEOS) . . . . . 491
| 19.4.25 | Timing diagrams example (single/continuous modes, hardware/software triggers) . . . . . | 492 |
| 19.4.26 | Data management . . . . . | 494 |
| 19.4.27 | Dynamic low-power features . . . . . | 499 |
| 19.4.28 | Analog window watchdog (AWD1EN, JAWD1EN, AWD1SGL, AWD1CH, AWD2CH, AWD3CH, AWD_HTx, AWD_LTx, AWDx) . . . . . | 504 |
| 19.4.29 | Oversampler . . . . . | 508 |
| 19.4.30 | Temperature sensor . . . . . | 513 |
| 19.4.31 | VBAT supply monitoring . . . . . | 515 |
| 19.4.32 | Monitoring the internal voltage reference . . . . . | 515 |
| 19.5 | ADC in low-power mode . . . . . | 517 |
| 19.6 | ADC interrupts . . . . . | 518 |
| 19.7 | ADC registers . . . . . | 519 |
| 19.7.1 | ADC interrupt and status register (ADC_ISR) . . . . . | 519 |
| 19.7.2 | ADC interrupt enable register (ADC_IER) . . . . . | 521 |
| 19.7.3 | ADC control register (ADC_CR) . . . . . | 523 |
| 19.7.4 | ADC configuration register (ADC_CFGR) . . . . . | 526 |
| 19.7.5 | ADC configuration register 2 (ADC_CFGR2) . . . . . | 530 |
| 19.7.6 | ADC sample time register 1 (ADC_SMPR1) . . . . . | 531 |
| 19.7.7 | ADC sample time register 2 (ADC_SMPR2) . . . . . | 532 |
| 19.7.8 | ADC watchdog threshold register 1 (ADC_TR1) . . . . . | 533 |
| 19.7.9 | ADC watchdog threshold register 2 (ADC_TR2) . . . . . | 533 |
| 19.7.10 | ADC watchdog threshold register 3 (ADC_TR3) . . . . . | 534 |
| 19.7.11 | ADC regular sequence register 1 (ADC_SQR1) . . . . . | 535 |
| 19.7.12 | ADC regular sequence register 2 (ADC_SQR2) . . . . . | 536 |
| 19.7.13 | ADC regular sequence register 3 (ADC_SQR3) . . . . . | 537 |
| 19.7.14 | ADC regular sequence register 4 (ADC_SQR4) . . . . . | 538 |
| 19.7.15 | ADC regular data register (ADC_DR) . . . . . | 538 |
| 19.7.16 | ADC injected sequence register (ADC_JSQR) . . . . . | 539 |
| 19.7.17 | ADC offset y register (ADC_OF Ry) . . . . . | 541 |
| 19.7.18 | ADC injected channel y data register (ADC_JDRy) . . . . . | 542 |
| 19.7.19 | ADC analog watchdog 2 configuration register (ADC_AWD2CR) . . . . . | 542 |
| 19.7.20 | ADC analog watchdog 3 configuration register (ADC_AWD3CR) . . . . . | 543 |
| 19.7.21 | ADC differential mode selection register (ADC_DIFSEL) . . . . . | 543 |
| 19.7.22 | ADC calibration factors (ADC_CALFACT) . . . . . | 544 |
| 19.8 | ADC common registers . . . . . | 544 |
| 19.8.1 | ADC common status register (ADC_CSR) . . . . . | 544 |
| 19.8.2 | ADC common control register (ADC_CCR) . . . . . | 545 |
| 19.9 | ADC register map . . . . . | 547 |
| 20 | Voltage reference buffer (VREFBUF) . . . . . | 550 |
| 20.1 | VREFBUF introduction . . . . . | 550 |
| 20.2 | VREFBUF implementation . . . . . | 550 |
| 20.3 | VREFBUF functional description . . . . . | 550 |
| 20.4 | VREFBUF trimming . . . . . | 551 |
| 20.5 | VREFBUF registers . . . . . | 552 |
| 20.5.1 | VREFBUF control and status register (VREFBUF_CSR) . . . . . | 552 |
| 20.5.2 | VREFBUF calibration control register (VREFBUF_CCR) . . . . . | 553 |
| 20.5.3 | VREFBUF register map . . . . . | 553 |
| 21 | Comparator (COMP) . . . . . | 554 |
| 21.1 | COMP introduction . . . . . | 554 |
| 21.2 | COMP main features . . . . . | 554 |
| 21.3 | COMP functional description . . . . . | 555 |
| 21.3.1 | COMP block diagram . . . . . | 555 |
| 21.3.2 | COMP pins and internal signals . . . . . | 555 |
| 21.3.3 | COMP reset and clocks . . . . . | 557 |
| 21.3.4 | Comparator LOCK mechanism . . . . . | 557 |
| 21.3.5 | Window comparator . . . . . | 557 |
| 21.3.6 | Hysteresis . . . . . | 558 |
| 21.3.7 | Comparator output blanking function . . . . . | 559 |
| 21.3.8 | COMP power and speed modes . . . . . | 559 |
| 21.4 | COMP low-power modes . . . . . | 560 |
| 21.5 | COMP interrupts . . . . . | 560 |
| 21.6 | COMP registers . . . . . | 561 |
| 21.6.1 | Comparator 1 control and status register (COMP1_CSR) . . . . . | 561 |
| 21.6.2 | Comparator 2 control and status register (COMP2_CSR) . . . . . | 563 |
| 21.6.3 | COMP register map . . . . . | 566 |
| 22 | Liquid crystal display controller (LCD) . . . . . | 567 |
| 22.1 | LCD introduction . . . . . | 567 |
| 22.2 | LCD main features . . . . . | 567 |
| 22.3 | LCD functional description . . . . . | 569 |
| 22.3.1 | General description ..... | 569 |
| 22.3.2 | Frequency generator ..... | 570 |
| 22.3.3 | Common driver ..... | 571 |
| 22.3.4 | Segment driver ..... | 574 |
| 22.3.5 | Voltage generator and contrast control ..... | 578 |
| 22.3.6 | Double-buffer memory ..... | 581 |
| 22.3.7 | COM and SEG multiplexing ..... | 581 |
| 22.3.8 | Flowchart ..... | 587 |
| 22.4 | LCD low-power modes ..... | 588 |
| 22.5 | LCD interrupts ..... | 588 |
| 22.6 | LCD registers ..... | 589 |
| 22.6.1 | LCD control register (LCD_CR) ..... | 589 |
| 22.6.2 | LCD frame control register (LCD_FCR) ..... | 590 |
| 22.6.3 | LCD status register (LCD_SR) ..... | 592 |
| 22.6.4 | LCD clear register (LCD_CLR) ..... | 593 |
| 22.6.5 | LCD display memory (LCD_RAMx) ..... | 594 |
| 22.6.6 | LCD display memory (LCD_RAMx) ..... | 594 |
| 22.6.7 | LCD display memory (LCD_RAMx) ..... | 595 |
| 22.6.8 | LCD register map ..... | 595 |
| 23 | Touch sensing controller (TSC) ..... | 598 |
| 23.1 | TSC introduction ..... | 598 |
| 23.2 | TSC main features ..... | 598 |
| 23.3 | TSC functional description ..... | 598 |
| 23.3.1 | TSC block diagram ..... | 598 |
| 23.3.2 | Surface charge transfer acquisition overview ..... | 599 |
| 23.3.3 | Reset and clocks ..... | 602 |
| 23.3.4 | Charge transfer acquisition sequence ..... | 602 |
| 23.3.5 | Spread spectrum feature ..... | 603 |
| 23.3.6 | Max count error ..... | 604 |
| 23.3.7 | Sampling capacitor I/O and channel I/O mode selection ..... | 604 |
| 23.3.8 | Acquisition mode ..... | 605 |
| 23.3.9 | I/O hysteresis and analog switch control ..... | 605 |
| 23.4 | TSC low-power modes ..... | 606 |
| 23.5 | TSC interrupts ..... | 606 |
| 23.6 | TSC registers ..... | 606 |
23.6.1 TSC control register (TSC_CR) . . . . . 606
23.6.2 TSC interrupt enable register (TSC_IER) . . . . . 609
23.6.3 TSC interrupt clear register (TSC_ICR) . . . . . 609
23.6.4 TSC interrupt status register (TSC_ISR) . . . . . 610
23.6.5 TSC I/O hysteresis control register (TSC_IOHCR) . . . . . 610
23.6.6 TSC I/O analog switch control register
(TSC_IOASCR) . . . . . 611
23.6.7 TSC I/O sampling control register (TSC_IOSCR) . . . . . 611
23.6.8 TSC I/O channel control register (TSC_IOCCR) . . . . . 612
23.6.9 TSC I/O group control status register (TSC_IOGCSR) . . . . . 612
23.6.10 TSC I/O group x counter register (TSC_IOGxCR) . . . . . 613
23.6.11 TSC register map . . . . . 613
24 True random number generator (RNG) . . . . . 616
24.1 RNG introduction . . . . . 616
24.2 RNG main features . . . . . 616
24.3 RNG functional description . . . . . 617
24.3.1 RNG block diagram . . . . . 617
24.3.2 RNG internal signals . . . . . 617
24.3.3 Random number generation . . . . . 618
24.3.4 RNG initialization . . . . . 620
24.3.5 RNG operation . . . . . 621
24.3.6 RNG clocking . . . . . 622
24.3.7 Error management . . . . . 622
24.3.8 RNG low-power use . . . . . 623
24.4 RNG interrupts . . . . . 623
24.5 RNG processing time . . . . . 623
24.6 RNG entropy source validation . . . . . 624
24.6.1 Introduction . . . . . 624
24.6.2 Validation conditions . . . . . 624
24.7 RNG registers . . . . . 625
24.7.1 RNG control register (RNG_CR) . . . . . 625
24.7.2 RNG status register (RNG_SR) . . . . . 625
24.7.3 RNG data register (RNG_DR) . . . . . 626
24.7.4 RNG register map . . . . . 627
25 AES hardware accelerator (AES) . . . . . 628
| 25.1 | Introduction . . . . . | 628 |
| 25.2 | AES main features . . . . . | 628 |
| 25.3 | AES implementation . . . . . | 628 |
| 25.4 | AES functional description . . . . . | 629 |
| 25.4.1 | AES block diagram . . . . . | 629 |
| 25.4.2 | AES internal signals . . . . . | 629 |
| 25.4.3 | AES cryptographic core . . . . . | 629 |
| 25.4.4 | AES procedure to perform a cipher operation . . . . . | 635 |
| 25.4.5 | AES decryption round key preparation . . . . . | 638 |
| 25.4.6 | AES ciphertext stealing and data padding . . . . . | 639 |
| 25.4.7 | AES task suspend and resume . . . . . | 639 |
| 25.4.8 | AES basic chaining modes (ECB, CBC) . . . . . | 640 |
| 25.4.9 | AES counter (CTR) mode . . . . . | 645 |
| 25.4.10 | AES Galois/counter mode (GCM) . . . . . | 647 |
| 25.4.11 | AES Galois message authentication code (GMAC) . . . . . | 652 |
| 25.4.12 | AES counter with CBC-MAC (CCM) . . . . . | 654 |
| 25.4.13 | AES data registers and data swapping . . . . . | 659 |
| 25.4.14 | AES key registers . . . . . | 661 |
| 25.4.15 | AES initialization vector registers . . . . . | 661 |
| 25.4.16 | AES DMA interface . . . . . | 662 |
| 25.4.17 | AES error management . . . . . | 663 |
| 25.5 | AES interrupts . . . . . | 664 |
| 25.6 | AES processing latency . . . . . | 664 |
| 25.7 | AES registers . . . . . | 665 |
| 25.7.1 | AES control register (AES_CR) . . . . . | 665 |
| 25.7.2 | AES status register (AES_SR) . . . . . | 668 |
| 25.7.3 | AES data input register (AES_DINR) . . . . . | 669 |
| 25.7.4 | AES data output register (AES_DOUTR) . . . . . | 669 |
| 25.7.5 | AES key register 0 (AES_KEYR0) . . . . . | 670 |
| 25.7.6 | AES key register 1 (AES_KEYR1) . . . . . | 671 |
| 25.7.7 | AES key register 2 (AES_KEYR2) . . . . . | 671 |
| 25.7.8 | AES key register 3 (AES_KEYR3) . . . . . | 671 |
| 25.7.9 | AES initialization vector register 0 (AES_IVR0) . . . . . | 672 |
| 25.7.10 | AES initialization vector register 1 (AES_IVR1) . . . . . | 672 |
| 25.7.11 | AES initialization vector register 2 (AES_IVR2) . . . . . | 672 |
| 25.7.12 | AES initialization vector register 3 (AES_IVR3) . . . . . | 673 |
- 25.7.13 AES key register 4 (AES_KEYR4) . . . . . 673
- 25.7.14 AES key register 5 (AES_KEYR5) . . . . . 673
- 25.7.15 AES key register 6 (AES_KEYR6) . . . . . 674
- 25.7.16 AES key register 7 (AES_KEYR7) . . . . . 674
- 25.7.17 AES suspend registers (AES_SUSPxR) . . . . . 674
- 25.7.18 AES register map . . . . . 675
26 Public key accelerator (PKA) . . . . . 677
- 26.1 Introduction . . . . . 677
- 26.2 PKA main features . . . . . 677
- 26.3 PKA functional description . . . . . 677
- 26.3.1 PKA block diagram . . . . . 677
- 26.3.2 PKA internal signals . . . . . 678
- 26.3.3 PKA reset and clocks . . . . . 678
- 26.3.4 PKA public key acceleration . . . . . 678
- 26.3.5 Typical applications for PKA . . . . . 680
- 26.3.6 PKA procedure to perform an operation . . . . . 682
- 26.3.7 PKA error management . . . . . 683
- 26.4 PKA operating modes . . . . . 683
- 26.4.1 Introduction . . . . . 683
- 26.4.2 Montgomery parameter computation . . . . . 684
- 26.4.3 Modular addition . . . . . 685
- 26.4.4 Modular subtraction . . . . . 685
- 26.4.5 Modular and Montgomery multiplication . . . . . 685
- 26.4.6 Modular exponentiation . . . . . 686
- 26.4.7 Modular inversion . . . . . 687
- 26.4.8 Modular reduction . . . . . 688
- 26.4.9 Arithmetic addition . . . . . 688
- 26.4.10 Arithmetic subtraction . . . . . 688
- 26.4.11 Arithmetic multiplication . . . . . 689
- 26.4.12 Arithmetic comparison . . . . . 689
- 26.4.13 RSA CRT exponentiation . . . . . 689
- 26.4.14 Point on elliptic curve Fp check . . . . . 690
- 26.4.15 ECC Fp scalar multiplication . . . . . 691
- 26.4.16 ECDSA sign . . . . . 692
- 26.4.17 ECDSA verification . . . . . 694
- 26.5 Example of configurations and processing times . . . . . 695
| 26.5.1 | Supported elliptic curves ..... | 695 |
| 26.5.2 | Computation times ..... | 697 |
| 26.6 | PKA interrupts ..... | 698 |
| 26.7 | PKA registers ..... | 699 |
| 26.7.1 | PKA control register (PKA_CR) ..... | 699 |
| 26.7.2 | PKA status register (PKA_SR) ..... | 700 |
| 26.7.3 | PKA clear flag register (PKA_CLRFR) ..... | 701 |
| 26.7.4 | PKA RAM ..... | 701 |
| 26.7.5 | PKA register map ..... | 702 |
| 27 | Advanced-control timer (TIM1) ..... | 703 |
| 27.1 | TIM1 introduction ..... | 703 |
| 27.2 | TIM1 main features ..... | 704 |
| 27.3 | TIM1 functional description ..... | 706 |
| 27.3.1 | Time-base unit ..... | 706 |
| 27.3.2 | Counter modes ..... | 708 |
| 27.3.3 | Repetition counter ..... | 719 |
| 27.3.4 | External trigger input ..... | 721 |
| 27.3.5 | Clock selection ..... | 722 |
| 27.3.6 | Capture/compare channels ..... | 726 |
| 27.3.7 | Input capture mode ..... | 728 |
| 27.3.8 | PWM input mode ..... | 729 |
| 27.3.9 | Forced output mode ..... | 730 |
| 27.3.10 | Output compare mode ..... | 731 |
| 27.3.11 | PWM mode ..... | 732 |
| 27.3.12 | Asymmetric PWM mode ..... | 735 |
| 27.3.13 | Combined PWM mode ..... | 736 |
| 27.3.14 | Combined 3-phase PWM mode ..... | 737 |
| 27.3.15 | Complementary outputs and dead-time insertion ..... | 738 |
| 27.3.16 | Using the break function ..... | 740 |
| 27.3.17 | Bidirectional break inputs ..... | 746 |
| 27.3.18 | Clearing the OCxREF signal on an external event ..... | 748 |
| 27.3.19 | 6-step PWM generation ..... | 749 |
| 27.3.20 | One-pulse mode ..... | 750 |
| 27.3.21 | Retriggerable one pulse mode ..... | 751 |
| 27.3.22 | Encoder interface mode ..... | 752 |
| 27.3.23 | UIF bit remapping ..... | 754 |
| 27.3.24 | Timer input XOR function . . . . . | 755 |
| 27.3.25 | Interfacing with Hall sensors . . . . . | 755 |
| 27.3.26 | Timer synchronization . . . . . | 758 |
| 27.3.27 | ADC synchronization . . . . . | 762 |
| 27.3.28 | DMA burst mode . . . . . | 762 |
| 27.3.29 | Debug mode . . . . . | 763 |
| 27.4 | TIM1 registers . . . . . | 764 |
| 27.4.1 | TIM1 control register 1 (TIM1_CR1) . . . . . | 764 |
| 27.4.2 | TIM1 control register 2 (TIM1_CR2) . . . . . | 765 |
| 27.4.3 | TIM1 slave mode control register (TIM1_SMCR) . . . . . | 768 |
| 27.4.4 | TIM1 DMA/interrupt enable register (TIM1_DIER) . . . . . | 770 |
| 27.4.5 | TIM1 status register (TIM1_SR) . . . . . | 772 |
| 27.4.6 | TIM1 event generation register (TIM1_EGR) . . . . . | 774 |
| 27.4.7 | TIM1 capture/compare mode register 1 (TIM1_CCMR1) . . . . . | 775 |
| 27.4.8 | TIM1 capture/compare mode register 1 [alternate] (TIM1_CCMR1) . . . . . | 776 |
| 27.4.9 | TIM1 capture/compare mode register 2 (TIM1_CCMR2) . . . . . | 779 |
| 27.4.10 | TIM1 capture/compare mode register 2 [alternate] (TIM1_CCMR2) . . . . . | 780 |
| 27.4.11 | TIM1 capture/compare enable register (TIM1_CCER) . . . . . | 781 |
| 27.4.12 | TIM1 counter (TIM1_CNT) . . . . . | 785 |
| 27.4.13 | TIM1 prescaler (TIM1_PSC) . . . . . | 785 |
| 27.4.14 | TIM1 auto-reload register (TIM1_ARR) . . . . . | 785 |
| 27.4.15 | TIM1 repetition counter register (TIM1_RCR) . . . . . | 786 |
| 27.4.16 | TIM1 capture/compare register 1 (TIM1_CCR1) . . . . . | 786 |
| 27.4.17 | TIM1 capture/compare register 2 (TIM1_CCR2) . . . . . | 787 |
| 27.4.18 | TIM1 capture/compare register 3 (TIM1_CCR3) . . . . . | 787 |
| 27.4.19 | TIM1 capture/compare register 4 (TIM1_CCR4) . . . . . | 788 |
| 27.4.20 | TIM1 break and dead-time register (TIM1_BDTR) . . . . . | 788 |
| 27.4.21 | TIM1 DMA control register (TIM1_DCR) . . . . . | 792 |
| 27.4.22 | TIM1 DMA address for full transfer (TIM1_DMAR) . . . . . | 793 |
| 27.4.23 | TIM1 option register 1 (TIM1_OR1) . . . . . | 794 |
| 27.4.24 | TIM1 capture/compare mode register 3 (TIM1_CCMR3) . . . . . | 794 |
| 27.4.25 | TIM1 capture/compare register 5 (TIM1_CCR5) . . . . . | 795 |
| 27.4.26 | TIM1 capture/compare register 6 (TIM1_CCR6) . . . . . | 796 |
| 27.4.27 | TIM1 alternate function option register 1 (TIM1_AF1) . . . . . | 797 |
| 27.4.28 | TIM1 Alternate function register 2 (TIM1_AF2) . . . . . | 798 |
| 27.4.29 | TIM1 timer input selection register (TIM1_TISEL) . . . . . | 800 |
| 27.4.30 | TIM1 register map . . . . . | 801 |
| 28 | General-purpose timer (TIM2) . . . . . | 804 |
| 28.1 | TIM2 introduction . . . . . | 804 |
| 28.2 | TIM2 main features . . . . . | 804 |
| 28.3 | TIM2 functional description . . . . . | 806 |
| 28.3.1 | Time-base unit . . . . . | 806 |
| 28.3.2 | Counter modes . . . . . | 808 |
| 28.3.3 | Clock selection . . . . . | 818 |
| 28.3.4 | Capture/Compare channels . . . . . | 822 |
| 28.3.5 | Input capture mode . . . . . | 824 |
| 28.3.6 | PWM input mode . . . . . | 825 |
| 28.3.7 | Forced output mode . . . . . | 826 |
| 28.3.8 | Output compare mode . . . . . | 826 |
| 28.3.9 | PWM mode . . . . . | 827 |
| 28.3.10 | Asymmetric PWM mode . . . . . | 831 |
| 28.3.11 | Combined PWM mode . . . . . | 831 |
| 28.3.12 | Clearing the OCxREF signal on an external event . . . . . | 832 |
| 28.3.13 | One-pulse mode . . . . . | 834 |
| 28.3.14 | Retriggerable one pulse mode . . . . . | 835 |
| 28.3.15 | Encoder interface mode . . . . . | 836 |
| 28.3.16 | UIF bit remapping . . . . . | 838 |
| 28.3.17 | Timer input XOR function . . . . . | 838 |
| 28.3.18 | Timers and external trigger synchronization . . . . . | 839 |
| 28.3.19 | Timer synchronization . . . . . | 842 |
| 28.3.20 | DMA burst mode . . . . . | 847 |
| 28.3.21 | Debug mode ..... | 848 |
| 28.4 | TIM2 registers ..... | 849 |
| 28.4.1 | TIM2 control register 1 (TIM2_CR1) ..... | 849 |
| 28.4.2 | TIM2 control register 2 (TIM2_CR2) ..... | 850 |
| 28.4.3 | TIM2 slave mode control register (TIM2_SMCR) ..... | 852 |
| 28.4.4 | TIM2 DMA/Interrupt enable register (TIM2_DIER) ..... | 855 |
| 28.4.5 | TIM2 status register (TIM2_SR) ..... | 856 |
| 28.4.6 | TIM2 event generation register (TIM2_EGR) ..... | 858 |
| 28.4.7 | TIM2 capture/compare mode register 1 (TIM2_CCMR1) ..... | 859 |
| 28.4.8 | TIM2 capture/compare mode register 1 [alternate] (TIM2_CCMR1) .. | 860 |
| 28.4.9 | TIM2 capture/compare mode register 2 (TIM2_CCMR2) ..... | 863 |
| 28.4.10 | TIM2 capture/compare mode register 2 [alternate] (TIM2_CCMR2) .. | 864 |
| 28.4.11 | TIM2 capture/compare enable register (TIM2_CCER) ..... | 865 |
| 28.4.12 | TIM2 counter (TIM2_CNT) ..... | 866 |
| 28.4.13 | TIM2 counter [alternate] (TIM2_CNT) ..... | 867 |
| 28.4.14 | TIM2 prescaler (TIM2_PSC) ..... | 867 |
| 28.4.15 | TIM2 auto-reload register (TIM2_ARR) ..... | 867 |
| 28.4.16 | TIM2 capture/compare register 1 (TIM2_CCR1) ..... | 868 |
| 28.4.17 | TIM2 capture/compare register 2 (TIM2_CCR2) ..... | 868 |
| 28.4.18 | TIM2 capture/compare register 3 (TIM2_CCR3) ..... | 869 |
| 28.4.19 | TIM2 capture/compare register 4 (TIM2_CCR4) ..... | 869 |
| 28.4.20 | TIM2 DMA control register (TIM2_DCR) ..... | 870 |
| 28.4.21 | TIM2 DMA address for full transfer (TIM2_DMAR) ..... | 870 |
| 28.4.22 | TIM2 option register 1 (TIM2_OR1) ..... | 871 |
| 28.4.23 | TIM2 alternate function option register 1 (TIM2_AF1) ..... | 871 |
| 28.4.24 | TIM2 timer input selection register (TIM2_TISEL) ..... | 872 |
| 28.4.25 | TIMx register map ..... | 873 |
| 29 | General-purpose timers (TIM16/TIM17) ..... | 876 |
| 29.1 | TIM16/TIM17 introduction ..... | 876 |
| 29.2 | TIM16/TIM17 main features ..... | 876 |
| 29.3 | TIM16/TIM17 functional description ..... | 878 |
| 29.3.1 | Time-base unit ..... | 878 |
| 29.3.2 | Counter modes ..... | 880 |
| 29.3.3 | Repetition counter ..... | 884 |
| 29.3.4 | Clock selection ..... | 885 |
| 29.3.5 | Capture/compare channels ..... | 887 |
| 29.3.6 | Input capture mode ..... | 889 |
| 29.3.7 | Forced output mode ..... | 890 |
| 29.3.8 | Output compare mode ..... | 890 |
| 29.3.9 | PWM mode ..... | 892 |
| 29.3.10 | Complementary outputs and dead-time insertion ..... | 893 |
| 29.3.11 | Using the break function ..... | 895 |
| 29.3.12 | Bidirectional break inputs ..... | 898 |
| 29.3.13 | 6-step PWM generation ..... | 899 |
| 29.3.14 | One-pulse mode ..... | 901 |
| 29.3.15 | UIF bit remapping ..... | 902 |
| 29.3.16 | Slave mode – combined reset + trigger mode ..... | 902 |
| 29.3.17 | DMA burst mode ..... | 902 |
| 29.3.18 | Using timer output as trigger for other timers (TIM16/TIM17) ..... | 903 |
| 29.3.19 | Debug mode ..... | 904 |
| 29.4 | TIM16/TIM17 registers ..... | 905 |
| 29.4.1 | TIMx control register 1 (TIMx_CR1)(x = 16 to 17) ..... | 905 |
| 29.4.2 | TIMx control register 2 (TIMx_CR2)(x = 16 to 17) ..... | 906 |
| 29.4.3 | TIMx DMA/interrupt enable register (TIMx_DIER)(x = 16 to 17) ..... | 907 |
| 29.4.4 | TIMx status register (TIMx_SR)(x = 16 to 17) ..... | 908 |
| 29.4.5 | TIMx event generation register (TIMx_EGR)(x = 16 to 17) ..... | 909 |
| 29.4.6 | TIMx capture/compare mode register 1 (TIMx_CCMR1)(x = 16 to 17) ..... | 910 |
| 29.4.7 | TIMx capture/compare mode register 1 [alternate] (TIMx_CCMR1)(x = 16 to 17) ..... | 911 |
| 29.4.8 | TIMx capture/compare enable register (TIMx_CCER)(x = 16 to 17) .. | 913 |
| 29.4.9 | TIMx counter (TIMx_CNT)(x = 16 to 17) ..... | 915 |
| 29.4.10 | TIMx prescaler (TIMx_PSC)(x = 16 to 17) ..... | 916 |
| 29.4.11 | TIMx auto-reload register (TIMx_ARR)(x = 16 to 17) ..... | 916 |
| 29.4.12 | TIMx repetition counter register (TIMx_RCR)(x = 16 to 17) ..... | 917 |
| 29.4.13 | TIMx capture/compare register 1 (TIMx_CCR1)(x = 16 to 17) ..... | 917 |
| 29.4.14 | TIMx break and dead-time register (TIMx_BDTR)(x = 16 to 17) ..... | 918 |
| 29.4.15 | TIMx DMA control register (TIMx_DCR)(x = 16 to 17) ..... | 920 |
| 29.4.16 | TIMx DMA address for full transfer (TIMx_DMAR)(x = 16 to 17) ..... | 921 |
| 29.4.17 | TIM16 option register 1 (TIM16_OR1) ..... | 922 |
| 29.4.18 | TIM16 alternate function register 1 (TIM16_AF1) ..... | 922 |
| 29.4.19 | TIM16 input selection register (TIM16_TISEL) ..... | 923 |
- 29.4.20 TIM17 option register 1 (TIM17_OR1) . . . . . 924
- 29.4.21 TIM17 alternate function register 1 (TIM17_AF1) . . . . . 924
- 29.4.22 TIM17 input selection register (TIM17_TISEL) . . . . . 925
- 29.4.23 TIM16/TIM17 register map . . . . . 926
- 30 Low-power timer (LPTIM) . . . . . 928
- 30.1 Introduction . . . . . 928
- 30.2 LPTIM main features . . . . . 928
- 30.3 LPTIM implementation . . . . . 929
- 30.4 LPTIM functional description . . . . . 930
- 30.4.1 LPTIM block diagram . . . . . 930
- 30.4.2 LPTIM trigger mapping . . . . . 930
- 30.4.3 LPTIM reset and clocks . . . . . 931
- 30.4.4 Glitch filter . . . . . 931
- 30.4.5 Prescaler . . . . . 932
- 30.4.6 Trigger multiplexer . . . . . 933
- 30.4.7 Operating mode . . . . . 933
- 30.4.8 Timeout function . . . . . 935
- 30.4.9 Waveform generation . . . . . 935
- 30.4.10 Register update . . . . . 936
- 30.4.11 Counter mode . . . . . 937
- 30.4.12 Timer enable . . . . . 937
- 30.4.13 Timer counter reset . . . . . 938
- 30.4.14 Encoder mode . . . . . 938
- 30.4.15 Debug mode . . . . . 940
- 30.5 LPTIM low-power modes . . . . . 940
- 30.6 LPTIM interrupts . . . . . 941
- 30.7 LPTIM registers . . . . . 941
- 30.7.1 LPTIM interrupt and status register (LPTIM_ISR) . . . . . 942
- 30.7.2 LPTIM interrupt clear register (LPTIM_ICR) . . . . . 943
- 30.7.3 LPTIM interrupt enable register (LPTIM_IER) . . . . . 943
- 30.7.4 LPTIM configuration register (LPTIM_CFGR) . . . . . 944
- 30.7.5 LPTIM control register (LPTIM_CR) . . . . . 947
- 30.7.6 LPTIM compare register (LPTIM_CMP) . . . . . 949
- 30.7.7 LPTIM autoreload register (LPTIM_ARR) . . . . . 949
- 30.7.8 LPTIM counter register (LPTIM_CNT) . . . . . 950
| 30.7.9 | LPTIM1 option register (LPTIM1_OR) . . . . . | 950 |
| 30.7.10 | LPTIM2 option register (LPTIM2_OR) . . . . . | 951 |
| 30.7.11 | LPTIM register map . . . . . | 952 |
| 31 | Infrared interface (IRTIM) . . . . . | 953 |
| 32 | Independent watchdog (IWDG) . . . . . | 954 |
| 32.1 | Introduction . . . . . | 954 |
| 32.2 | IWDG main features . . . . . | 954 |
| 32.3 | IWDG functional description . . . . . | 954 |
| 32.3.1 | IWDG block diagram . . . . . | 954 |
| 32.3.2 | Window option . . . . . | 955 |
| 32.3.3 | Hardware watchdog . . . . . | 956 |
| 32.3.4 | Low-power freeze . . . . . | 956 |
| 32.3.5 | Register access protection . . . . . | 956 |
| 32.3.6 | Debug mode . . . . . | 956 |
| 32.4 | IWDG registers . . . . . | 957 |
| 32.4.1 | IWDG key register (IWDG_KR) . . . . . | 957 |
| 32.4.2 | IWDG prescaler register (IWDG_PR) . . . . . | 958 |
| 32.4.3 | IWDG reload register (IWDG_RLR) . . . . . | 959 |
| 32.4.4 | IWDG status register (IWDG_SR) . . . . . | 960 |
| 32.4.5 | IWDG window register (IWDG_WINR) . . . . . | 961 |
| 32.4.6 | IWDG register map . . . . . | 962 |
| 33 | System window watchdog (WWDG) . . . . . | 963 |
| 33.1 | WWDG introduction . . . . . | 963 |
| 33.2 | WWDG main features . . . . . | 963 |
| 33.3 | WWDG functional description . . . . . | 963 |
| 33.3.1 | WWDG block diagram . . . . . | 964 |
| 33.3.2 | Enabling the watchdog . . . . . | 964 |
| 33.3.3 | Controlling the down-counter . . . . . | 964 |
| 33.3.4 | How to program the watchdog timeout . . . . . | 964 |
| 33.3.5 | Debug mode . . . . . | 966 |
| 33.4 | WWDG interrupts . . . . . | 966 |
| 33.5 | WWDG registers . . . . . | 966 |
| 33.5.1 | WWDG control register (WWDG_CR) . . . . . | 966 |
- 33.5.2 WWDG configuration register (WWDG_CFR) . . . . . 967
- 33.5.3 WWDG status register (WWDG_SR) . . . . . 968
- 33.5.4 WWDG register map . . . . . 968
- 34 Real-time clock (RTC) . . . . . 969
- 34.1 Introduction . . . . . 969
- 34.2 RTC main features . . . . . 970
- 34.3 RTC implementation . . . . . 970
- 34.4 RTC functional description . . . . . 971
- 34.4.1 RTC block diagram . . . . . 971
- 34.4.2 Clock and prescalers . . . . . 972
- 34.4.3 Real-time clock and calendar . . . . . 972
- 34.4.4 Programmable alarms . . . . . 973
- 34.4.5 Periodic auto-wake-up . . . . . 973
- 34.4.6 RTC initialization and configuration . . . . . 974
- 34.4.7 Reading the calendar . . . . . 975
- 34.4.8 Resetting the RTC . . . . . 976
- 34.4.9 RTC synchronization . . . . . 977
- 34.4.10 RTC reference clock detection . . . . . 977
- 34.4.11 RTC smooth digital calibration . . . . . 978
- 34.4.12 Time-stamp function . . . . . 980
- 34.4.13 Tamper detection . . . . . 981
- 34.4.14 Calibration clock output . . . . . 983
- 34.4.15 Alarm output . . . . . 983
- 34.5 RTC low-power modes . . . . . 984
- 34.6 RTC interrupts . . . . . 984
- 34.7 RTC registers . . . . . 985
- 34.7.1 RTC time register (RTC_TR) . . . . . 985
- 34.7.2 RTC date register (RTC_DR) . . . . . 986
- 34.7.3 RTC control register (RTC_CR) . . . . . 987
- 34.7.4 RTC initialization and status register (RTC_ISR) . . . . . 990
- 34.7.5 RTC prescaler register (RTC_PRER) . . . . . 993
- 34.7.6 RTC wake-up timer register (RTC_WUTR) . . . . . 994
- 34.7.7 RTC alarm A register (RTC_ALRMAR) . . . . . 995
- 34.7.8 RTC alarm B register (RTC_ALRMBR) . . . . . 996
- 34.7.9 RTC write protection register (RTC_WPR) . . . . . 997
| 34.7.10 | RTC sub second register (RTC_SSR) . . . . . | 997 |
| 34.7.11 | RTC shift control register (RTC_SHIFTR) . . . . . | 998 |
| 34.7.12 | RTC timestamp time register (RTC_TSTR) . . . . . | 999 |
| 34.7.13 | RTC timestamp date register (RTC_TSDR) . . . . . | 1000 |
| 34.7.14 | RTC time-stamp sub second register (RTC_TSSSR) . . . . . | 1001 |
| 34.7.15 | RTC calibration register (RTC_CALR) . . . . . | 1002 |
| 34.7.16 | RTC tamper configuration register (RTC_TAMPCR) . . . . . | 1003 |
| 34.7.17 | RTC alarm A sub second register (RTC_ALRMASSR) . . . . . | 1006 |
| 34.7.18 | RTC alarm B sub second register (RTC_ALRMBSSR) . . . . . | 1007 |
| 34.7.19 | RTC option register (RTC_OR) . . . . . | 1008 |
| 34.7.20 | RTC backup registers (RTC_BKPxR) . . . . . | 1008 |
| 34.7.21 | RTC register map . . . . . | 1009 |
| 35 | Inter-integrated circuit interface (I2C) . . . . . | 1011 |
| 35.1 | I2C introduction . . . . . | 1011 |
| 35.2 | I2C main features . . . . . | 1011 |
| 35.3 | I2C implementation . . . . . | 1012 |
| 35.4 | I2C functional description . . . . . | 1012 |
| 35.4.1 | I2C block diagram . . . . . | 1013 |
| 35.4.2 | I2C pins and internal signals . . . . . | 1013 |
| 35.4.3 | I2C clock requirements . . . . . | 1014 |
| 35.4.4 | I2C mode selection . . . . . | 1014 |
| 35.4.5 | I2C initialization . . . . . | 1015 |
| 35.4.6 | I2C reset . . . . . | 1019 |
| 35.4.7 | I2C data transfer . . . . . | 1020 |
| 35.4.8 | I2C target mode . . . . . | 1022 |
| 35.4.9 | I2C controller mode . . . . . | 1031 |
| 35.4.10 | I2C_TIMINGR register configuration examples . . . . . | 1042 |
| 35.4.11 | SMBus specific features . . . . . | 1044 |
| 35.4.12 | SMBus initialization . . . . . | 1046 |
| 35.4.13 | SMBus I2C_TIMEOUTR register configuration examples . . . . . | 1048 |
| 35.4.14 | SMBus target mode . . . . . | 1049 |
| 35.4.15 | SMBus controller mode . . . . . | 1052 |
| 35.4.16 | Wake-up from Stop mode on address match . . . . . | 1055 |
| 35.4.17 | Error conditions . . . . . | 1056 |
| 35.5 | I2C in low-power modes . . . . . | 1058 |
35.6 I2C interrupts . . . . . 1058
35.7 I2C DMA requests . . . . . 1059
35.7.1 Transmission using DMA . . . . . 1059
35.7.2 Reception using DMA . . . . . 1059
35.8 I2C debug modes . . . . . 1059
35.9 I2C registers . . . . . 1060
35.9.1 I2C control register 1 (I2C_CR1) . . . . . 1060
35.9.2 I2C control register 2 (I2C_CR2) . . . . . 1062
35.9.3 I2C own address 1 register (I2C_OAR1) . . . . . 1064
35.9.4 I2C own address 2 register (I2C_OAR2) . . . . . 1065
35.9.5 I2C timing register (I2C_TIMINGR) . . . . . 1066
35.9.6 I2C timeout register (I2C_TIMEOUTR) . . . . . 1067
35.9.7 I2C interrupt and status register (I2C_ISR) . . . . . 1068
35.9.8 I2C interrupt clear register (I2C_ICR) . . . . . 1070
35.9.9 I2C PEC register (I2C_PECR) . . . . . 1071
35.9.10 I2C receive data register (I2C_RXDR) . . . . . 1071
35.9.11 I2C transmit data register (I2C_TXDR) . . . . . 1072
35.9.12 I2C register map . . . . . 1073
36 Universal synchronous/asynchronous receiver transmitter (USART/UART) . . . . . 1074
36.1 USART introduction . . . . . 1074
36.2 USART main features . . . . . 1075
36.3 USART extended features . . . . . 1076
36.4 USART implementation . . . . . 1076
36.5 USART functional description . . . . . 1077
36.5.1 USART block diagram . . . . . 1077
36.5.2 USART signals . . . . . 1078
36.5.3 USART character description . . . . . 1079
36.5.4 USART FIFOs and thresholds . . . . . 1081
36.5.5 USART transmitter . . . . . 1081
36.5.6 USART receiver . . . . . 1085
36.5.7 USART baud rate generation . . . . . 1092
36.5.8 Tolerance of the USART receiver to clock deviation . . . . . 1093
36.5.9 USART auto baud rate detection . . . . . 1095
36.5.10 USART multiprocessor communication . . . . . 1097
| 36.5.11 | USART Modbus communication . . . . . | 1099 |
| 36.5.12 | USART parity control . . . . . | 1100 |
| 36.5.13 | USART LIN (local interconnection network) mode . . . . . | 1101 |
| 36.5.14 | USART synchronous mode . . . . . | 1103 |
| 36.5.15 | USART single-wire half-duplex communication . . . . . | 1107 |
| 36.5.16 | USART receiver timeout . . . . . | 1107 |
| 36.5.17 | USART smartcard mode . . . . . | 1108 |
| 36.5.18 | USART IrDA SIR ENDEC block . . . . . | 1112 |
| 36.5.19 | Continuous communication using USART and DMA . . . . . | 1115 |
| 36.5.20 | RS232 hardware flow control and RS485 Driver Enable . . . . . | 1117 |
| 36.5.21 | USART low-power management . . . . . | 1120 |
| 36.6 | USART in low-power modes . . . . . | 1123 |
| 36.7 | USART interrupts . . . . . | 1124 |
| 36.8 | USART registers . . . . . | 1125 |
| 36.8.1 | USART control register 1 (USART_CR1) . . . . . | 1125 |
| 36.8.2 | USART control register 1 [alternate] (USART_CR1) . . . . . | 1128 |
| 36.8.3 | USART control register 2 (USART_CR2) . . . . . | 1132 |
| 36.8.4 | USART control register 3 (USART_CR3) . . . . . | 1136 |
| 36.8.5 | USART baud rate register (USART_BRR) . . . . . | 1140 |
| 36.8.6 | USART guard time and prescaler register (USART_GTPR) . . . . . | 1140 |
| 36.8.7 | USART receiver timeout register (USART_RTOR) . . . . . | 1141 |
| 36.8.8 | USART request register (USART_RQR) . . . . . | 1142 |
| 36.8.9 | USART interrupt and status register (USART_ISR) . . . . . | 1143 |
| 36.8.10 | USART interrupt and status register [alternate] (USART_ISR) . . . . . | 1149 |
| 36.8.11 | USART interrupt flag clear register (USART_ICR) . . . . . | 1154 |
| 36.8.12 | USART receive data register (USART_RDR) . . . . . | 1156 |
| 36.8.13 | USART transmit data register (USART_TDR) . . . . . | 1156 |
| 36.8.14 | USART prescaler register (USART_PRESC) . . . . . | 1157 |
| 36.8.15 | USART register map . . . . . | 1158 |
| 37 | Low-power universal asynchronous receiver transmitter (LPUART) . . . . . | 1160 |
| 37.1 | LPUART introduction . . . . . | 1160 |
| 37.2 | LPUART main features . . . . . | 1161 |
| 37.3 | LPUART implementation . . . . . | 1162 |
| 37.4 | LPUART functional description . . . . . | 1163 |
| 37.4.1 | LPUART block diagram . . . . . | 1163 |
| 37.4.2 | LPUART signals . . . . . | 1164 |
| 37.4.3 | LPUART character description . . . . . | 1165 |
| 37.4.4 | LPUART FIFOs and thresholds . . . . . | 1166 |
| 37.4.5 | LPUART transmitter . . . . . | 1167 |
| 37.4.6 | LPUART receiver . . . . . | 1170 |
| 37.4.7 | LPUART baud rate generation . . . . . | 1174 |
| 37.4.8 | Tolerance of the LPUART receiver to clock deviation . . . . . | 1175 |
| 37.4.9 | LPUART multiprocessor communication . . . . . | 1176 |
| 37.4.10 | LPUART parity control . . . . . | 1178 |
| 37.4.11 | LPUART single-wire half-duplex communication . . . . . | 1179 |
| 37.4.12 | Continuous communication using DMA and LPUART . . . . . | 1179 |
| 37.4.13 | RS232 hardware flow control and RS485 Driver Enable . . . . . | 1182 |
| 37.4.14 | LPUART low-power management . . . . . | 1184 |
| 37.5 | LPUART in low-power modes . . . . . | 1187 |
| 37.6 | LPUART interrupts . . . . . | 1188 |
| 37.7 | LPUART registers . . . . . | 1189 |
| 37.7.1 | LPUART control register 1 (LPUART_CR1) . . . . . | 1189 |
| 37.7.2 | LPUART control register 1 [alternate] (LPUART_CR1) . . . . . | 1192 |
| 37.7.3 | LPUART control register 2 (LPUART_CR2) . . . . . | 1195 |
| 37.7.4 | LPUART control register 3 (LPUART_CR3) . . . . . | 1197 |
| 37.7.5 | LPUART baud rate register (LPUART_BRR) . . . . . | 1200 |
| 37.7.6 | LPUART request register (LPUART_RQR) . . . . . | 1200 |
| 37.7.7 | LPUART interrupt and status register (LPUART_ISR) . . . . . | 1201 |
| 37.7.8 | LPUART interrupt and status register [alternate] (LPUART_ISR) . . . . . | 1205 |
| 37.7.9 | LPUART interrupt flag clear register (LPUART_ICR) . . . . . | 1208 |
| 37.7.10 | LPUART receive data register (LPUART_RDR) . . . . . | 1209 |
| 37.7.11 | LPUART transmit data register (LPUART_TDR) . . . . . | 1209 |
| 37.7.12 | LPUART prescaler register (LPUART_PRESC) . . . . . | 1210 |
| 37.7.13 | LPUART register map . . . . . | 1211 |
| 38 | Serial peripheral interface (SPI) . . . . . | 1213 |
| 38.1 | Introduction . . . . . | 1213 |
| 38.2 | SPI main features . . . . . | 1213 |
| 38.3 | SPI implementation . . . . . | 1214 |
| 38.4 | SPI functional description . . . . . | 1214 |
| 38.4.1 | General description . . . . . | 1214 |
| 38.4.2 | Communications between one master and one slave . . . . . | 1215 |
| 38.4.3 | Standard multislave communication . . . . . | 1217 |
| 38.4.4 | Multimaster communication . . . . . | 1218 |
| 38.4.5 | Slave select (NSS) pin management . . . . . | 1219 |
| 38.4.6 | Communication formats . . . . . | 1220 |
| 38.4.7 | Configuration of SPI . . . . . | 1222 |
| 38.4.8 | Procedure for enabling SPI . . . . . | 1223 |
| 38.4.9 | Data transmission and reception procedures . . . . . | 1223 |
| 38.4.10 | SPI status flags . . . . . | 1233 |
| 38.4.11 | SPI error flags . . . . . | 1234 |
| 38.4.12 | NSS pulse mode . . . . . | 1235 |
| 38.4.13 | TI mode . . . . . | 1235 |
| 38.4.14 | CRC calculation . . . . . | 1236 |
| 38.5 | SPI interrupts . . . . . | 1238 |
| 38.6 | SPI registers . . . . . | 1239 |
| 38.6.1 | SPI control register 1 (SPIx_CR1) . . . . . | 1239 |
| 38.6.2 | SPI control register 2 (SPIx_CR2) . . . . . | 1241 |
| 38.6.3 | SPI status register (SPIx_SR) . . . . . | 1243 |
| 38.6.4 | SPI data register (SPIx_DR) . . . . . | 1244 |
| 38.6.5 | SPI CRC polynomial register (SPIx_CRCPR) . . . . . | 1245 |
| 38.6.6 | SPI Rx CRC register (SPIx_RXCRCR) . . . . . | 1245 |
| 38.6.7 | SPI Tx CRC register (SPIx_TXCRCR) . . . . . | 1245 |
| 38.6.8 | SPI register map . . . . . | 1247 |
| 39 | Serial audio interface (SAI) . . . . . | 1248 |
| 39.1 | SAI introduction . . . . . | 1248 |
| 39.2 | SAI main features . . . . . | 1248 |
| 39.3 | SAI implementation . . . . . | 1249 |
| 39.4 | SAI functional description . . . . . | 1250 |
| 39.4.1 | SAI block diagram . . . . . | 1250 |
| 39.4.2 | SAI pins and internal signals . . . . . | 1251 |
| 39.4.3 | Main SAI modes . . . . . | 1252 |
| 39.4.4 | SAI synchronization mode . . . . . | 1253 |
| 39.4.5 | Audio data size . . . . . | 1253 |
| 39.4.6 | Frame synchronization . . . . . | 1253 |
| 39.4.7 | Slot configuration . . . . . | 1257 |
| 39.4.8 | SAI clock generator . . . . . | 1259 |
| 39.4.9 | Internal FIFOs . . . . . | 1262 |
| 39.4.10 | PDM interface . . . . . | 1264 |
| 39.4.11 | AC'97 link controller . . . . . | 1272 |
| 39.4.12 | SPDIF output . . . . . | 1273 |
| 39.4.13 | Specific features . . . . . | 1276 |
| 39.4.14 | Error flags . . . . . | 1280 |
| 39.4.15 | Disabling the SAI . . . . . | 1283 |
| 39.4.16 | SAI DMA interface . . . . . | 1283 |
| 39.5 | SAI interrupts . . . . . | 1284 |
| 39.6 | SAI registers . . . . . | 1286 |
| 39.6.1 | SAI configuration register 1 (SAI_ACR1) . . . . . | 1286 |
| 39.6.2 | SAI configuration register 2 (SAI_ACR2) . . . . . | 1288 |
| 39.6.3 | SAI frame configuration register (SAI_AFRCR) . . . . . | 1290 |
| 39.6.4 | SAI slot register (SAI_ASLOTR) . . . . . | 1291 |
| 39.6.5 | SAI interrupt mask register (SAI_AIM) . . . . . | 1292 |
| 39.6.6 | SAI status register (SAI_ASR) . . . . . | 1294 |
| 39.6.7 | SAI clear flag register (SAI_ACLRFR) . . . . . | 1296 |
| 39.6.8 | SAI data register (SAI_ADR) . . . . . | 1297 |
| 39.6.9 | SAI configuration register 1 (SAI_BCR1) . . . . . | 1297 |
| 39.6.10 | SAI configuration register 2 (SAI_BCR2) . . . . . | 1300 |
| 39.6.11 | SAI frame configuration register (SAI_BFRCR) . . . . . | 1302 |
| 39.6.12 | SAI slot register (SAI_BSLOTR) . . . . . | 1303 |
| 39.6.13 | SAI interrupt mask register (SAI_BIM) . . . . . | 1304 |
| 39.6.14 | SAI status register (SAI_BSR) . . . . . | 1305 |
| 39.6.15 | SAI clear flag register (SAI_BCLRFR) . . . . . | 1307 |
| 39.6.16 | SAI data register (SAI_BDR) . . . . . | 1308 |
| 39.6.17 | SAI PDM control register (SAI_PDMCR) . . . . . | 1309 |
| 39.6.18 | SAI PDM delay register (SAI_PDMPLY) . . . . . | 1310 |
| 39.6.19 | SAI register map . . . . . | 1312 |
| 40 | Universal serial bus full-speed device interface (USB) . . . . . | 1314 |
| 40.1 | Introduction . . . . . | 1314 |
| 40.2 | USB main features . . . . . | 1314 |
| 40.3 | USB implementation . . . . . | 1314 |
| 40.4 | USB functional description . . . . . | 1315 |
| 40.4.1 | Description of USB blocks . . . . . | 1316 |
| 40.5 | Programming considerations . . . . . | 1317 |
| 40.5.1 | Generic USB device programming . . . . . | 1317 |
| 40.5.2 | System and power-on reset . . . . . | 1318 |
| 40.5.3 | Double-buffered endpoints . . . . . | 1323 |
| 40.5.4 | Isochronous transfers . . . . . | 1325 |
| 40.5.5 | Suspend/Resume events . . . . . | 1326 |
| 40.6 | USB and USB SRAM registers . . . . . | 1329 |
| 40.6.1 | Common registers . . . . . | 1329 |
| 40.6.2 | Buffer descriptor table . . . . . | 1342 |
| 40.6.3 | USB register map . . . . . | 1345 |
| 41 | Debug support (DBG) . . . . . | 1347 |
| 41.1 | Introduction . . . . . | 1347 |
| 41.2 | Debug use cases . . . . . | 1347 |
| 41.3 | DBG functional description . . . . . | 1349 |
| 41.3.1 | DBG block diagram . . . . . | 1349 |
| 41.3.2 | DBG pins and internal signals . . . . . | 1349 |
| 41.3.3 | DBG power domains . . . . . | 1350 |
| 41.3.4 | DBG clocks . . . . . | 1350 |
| 41.3.5 | Debug and low power modes . . . . . | 1351 |
| 41.3.6 | DBG reset . . . . . | 1351 |
| 41.4 | Serial wire and JTAG debug port (SWJ-DP) . . . . . | 1351 |
| 41.4.1 | JTAG debug port . . . . . | 1351 |
| 41.4.2 | SW debug port . . . . . | 1354 |
| 41.4.3 | Debug port registers . . . . . | 1355 |
| 41.4.4 | DP debug port identification register (DP_PIDR) . . . . . | 1356 |
| 41.4.5 | DP abort register (DP_ABORTR) . . . . . | 1356 |
| 41.4.6 | DP control and status register (DP_CTRL/STATR) . . . . . | 1357 |
| 41.4.7 | DP data link control register (DP_DLCR) . . . . . | 1359 |
| 41.4.8 | DP target identification register (DP_TARGETIDR) . . . . . | 1359 |
| 41.4.9 | DP data link protocol identification register (DP_DLPIDR) . . . . . | 1360 |
| 41.4.10 | DP resend register (DP_RESENR) . . . . . | 1360 |
| 41.4.11 | DP access port select register (DP_SELECTR) . . . . . | 1361 |
| 41.4.12 | DP read buffer register (DP_BUFFR) . . . . . | 1361 |
| 41.4.13 | DP target selection register (DP_TARGETSELR) . . . . . | 1362 |
| 41.4.14 | Debug port register map and reset values . . . . . | 1363 |
| 41.5 | Access ports . . . . . | 1364 |
| 41.5.1 | AP control/status word register (AP_CSWR) . . . . . | 1367 |
| 41.5.2 | AP transfer address register (AP_TAR) . . . . . | 1368 |
| 41.5.3 | AP data read/write register (AP_DRWR) . . . . . | 1368 |
| 41.5.4 | AP banked data registers (AP_BD0-3R) . . . . . | 1368 |
| 41.5.5 | AP base address register (AP_BASER) . . . . . | 1369 |
| 41.5.6 | AP identification register (AP_IDR) . . . . . | 1369 |
| 41.5.7 | Access port register map and reset values . . . . . | 1371 |
| 41.6 | Cross trigger interface (CTI) and matrix (CTM) . . . . . | 1372 |
| 41.7 | Cross trigger interface registers . . . . . | 1376 |
| 41.7.1 | CTI control register (CTI_CONTROLR) . . . . . | 1376 |
| 41.7.2 | CTI trigger acknowledge register (CTI_INTACKR) . . . . . | 1376 |
| 41.7.3 | CTI application trigger set register (CTI_APPSETR) . . . . . | 1376 |
| 41.7.4 | CTI application trigger clear register (CTI_APPCLEAR) . . . . . | 1377 |
| 41.7.5 | CTI application pulse register (CTI_APPPULSER) . . . . . | 1378 |
| 41.7.6 | CTI trigger In x enable register (CTI_INENRx) . . . . . | 1378 |
| 41.7.7 | CTI trigger out x enable register (CTI_OUTENRx) . . . . . | 1379 |
| 41.7.8 | CTI trigger in status register (CTI_TRGISTSR) . . . . . | 1379 |
| 41.7.9 | CTI trigger out status register (CTI_TRGOSTSR) . . . . . | 1380 |
| 41.7.10 | CTI channel in status register (CTI_CHINSTSR) . . . . . | 1380 |
| 41.7.11 | CTI channel out status register (CTI_CHOUTSTSR) . . . . . | 1380 |
| 41.7.12 | CTI channel gate register (CTI_GATER) . . . . . | 1381 |
| 41.7.13 | CTI claim tag set register (CTI_CLAIMSETR) . . . . . | 1381 |
| 41.7.14 | CTI claim tag clear register (CTI_CLAIMCLR) . . . . . | 1382 |
| 41.7.15 | CTI lock access register (CTI_LAR) . . . . . | 1382 |
| 41.7.16 | CTI lock status register (CTI_LSR) . . . . . | 1383 |
| 41.7.17 | CTI authentication status register (CTI_AUTHSTATR) . . . . . | 1383 |
| 41.7.18 | CTI device configuration register (CTI_DEVIDR) . . . . . | 1384 |
| 41.7.19 | CTI device type identifier register (CTI_DEVTYPE) . . . . . | 1384 |
| 41.7.20 | CTI CoreSight peripheral identity register 4 (CTI_PIDR4) . . . . . | 1385 |
| 41.7.21 | CTI CoreSight peripheral identity register 0 (CTI_PIDR0) . . . . . | 1385 |
| 41.7.22 | CTI CoreSight peripheral identity register 1 (CTI_PIDR1) . . . . . | 1385 |
| 41.7.23 | CTI CoreSight peripheral identity register 2 (CTI_PIDR2) . . . . . | 1386 |
| 41.7.24 | CTI CoreSight peripheral identity register 3 (CTI_PIDR3) . . . . . | 1386 |
| 41.7.25 | CTI CoreSight component identity register 0 (CTI_CIDR0) . . . . . | 1387 |
| 41.7.26 | CTI CoreSight peripheral identity register 1 (CTI_CIDR1) . . . . . | 1387 |
| 41.7.27 | CTI CoreSight component identity register 2 (CTI_CIDR2) . . . . . | 1388 |
| 41.7.28 | CTI CoreSight component identity register 3 (CTI_CIDR3) . . . . . | 1388 |
| 41.7.29 | CTI register map and reset values . . . . . | 1389 |
| 41.8 | Microcontroller debug unit (DBGMCU) . . . . . | 1392 |
| 41.8.1 | DBGMCU identity code register (DBGMCU_IDCODE) . . . . . | 1392 |
| 41.8.2 | DBGMCU configuration register (DBGMCU_CR) . . . . . | 1392 |
| 41.8.3 | DBGMCU CPU1 APB1 peripheral freeze register 1 (DBGMCU_APB1FZR1) . . . . . | 1393 |
| 41.8.4 | DBGMCU CPU2 APB1 peripheral freeze register 1 (DBGMCU_C2APB1FZR1) . . . . . | 1394 |
| 41.8.5 | DBGMCU CPU1 APB1 peripheral freeze register 2 (DBGMCU_APB1FZR2) . . . . . | 1395 |
| 41.8.6 | DBGMCU CPU2 APB1 peripheral freeze register 2 (DBGMCU_C2APB1FZR2) . . . . . | 1396 |
| 41.8.7 | DBGMCU CPU1 APB2 peripheral freeze register (DBGMCU_APB2FZR) . . . . . | 1396 |
| 41.8.8 | DBGMCU CPU2 APB2 peripheral freeze register (DBGMCU_C2APB2FZR) . . . . . | 1397 |
| 41.8.9 | DBGMCU register map and reset values . . . . . | 1399 |
| 41.9 | CPU2 ROM tables . . . . . | 1401 |
| 41.9.1 | CPU2 ROM1 memory type register (C2ROM1_MEMTYPER) . . . . . | 1403 |
| 41.9.2 | CPU2 ROM1 CoreSight peripheral identity register 4 (C2ROM1_PIDR4) . . . . . | 1403 |
| 41.9.3 | CPU2 ROM1 CoreSight peripheral identity register 0 (C2ROM1_PIDR0) . . . . . | 1403 |
| 41.9.4 | CPU2 ROM1 CoreSight peripheral identity register 1 (C2ROM1_PIDR1) . . . . . | 1404 |
| 41.9.5 | CPU2 ROM1 CoreSight peripheral identity register 2 (C2ROM1_PIDR2) . . . . . | 1404 |
| 41.9.6 | CPU2 ROM1 CoreSight peripheral identity register 3 (C2ROM1_PIDR3) . . . . . | 1405 |
| 41.9.7 | CPU2 ROM1 CoreSight component identity register 0 (C2ROM1_CIDR0) . . . . . | 1405 |
| 41.9.8 | CPU2 ROM1 CoreSight peripheral identity register 1 (C2ROM1_CIDR1) . . . . . | 1406 |
| 41.9.9 | CPU2 ROM1 CoreSight component identity register 2 (C2ROM1_CIDR2) . . . . . | 1406 |
| 41.9.10 | CPU2 ROM1 CoreSight component identity register 3 (C2ROM1_CIDR3) . . . . . | 1406 |
| 41.9.11 | CPU2 processor ROM table registers and reset values . . . . . | 1408 |
| 41.9.12 | CPU2 ROM2 memory type register (C2ROM2_MEMTYPE) . . . . . | 1409 |
| 41.9.13 | CPU2 ROM2 CoreSight peripheral identity register 4 (C2ROM2_PIDR4) . . . . . | 1409 |
| 41.9.14 | CPU2 ROM2 CoreSight peripheral identity register 0 (C2ROM2_PIDR0) . . . . . | 1409 |
| 41.9.15 | CPU2 ROM2 CoreSight peripheral identity register 1 (C2ROM2_PIDR1) . . . . . | 1410 |
| 41.9.16 | CPU2 ROM2 CoreSight peripheral identity register 2 (C2ROM2_PIDR2) . . . . . | 1410 |
| 41.9.17 | CPU2 ROM2 CoreSight peripheral identity register 3 (C2ROM2_PIDR3) . . . . . | 1411 |
| 41.9.18 | CPU2 ROM2 CoreSight component identity register 0 (C2ROM2_CIDR0) . . . . . | 1411 |
| 41.9.19 | CPU2 ROM2 CoreSight peripheral identity register 1 (C2ROM2_CIDR1) . . . . . | 1412 |
| 41.9.20 | CPU2 ROM2 CoreSight component identity register 2 (C2ROM2_CIDR2) . . . . . | 1412 |
| 41.9.21 | CPU2 ROM2 CoreSight component identity register 3 (C2ROM2_CIDR3) . . . . . | 1412 |
| 41.9.22 | CPU2 ROM table register map and reset values . . . . . | 1414 |
| 41.10 | CPU2 data watchpoint and trace unit (DWT) . . . . . | 1415 |
| 41.10.1 | DWT control register (DWT_CTRLR) . . . . . | 1415 |
| 41.10.2 | DWT cycle count register (DWT_CYCCNTR) . . . . . | 1417 |
| 41.10.3 | DWT CPI count register (DWT_CPICNTR) . . . . . | 1417 |
| 41.10.4 | DWT exception count register (DWT_EXCCNTR) . . . . . | 1418 |
| 41.10.5 | DWT sleep count register (DWT_SLPNCNTR) . . . . . | 1418 |
| 41.10.6 | DWT LSU count register (DWT_LSUCNTR) . . . . . | 1419 |
| 41.10.7 | DWT fold count register (DWT_FOLDCNTR) . . . . . | 1419 |
| 41.10.8 | DWT program counter sample register (DWT_PCSR) . . . . . | 1419 |
| 41.10.9 | DWT comparator register x (DWT_COMPxR) . . . . . | 1420 |
| 41.10.10 | DWT mask register x (DWT_MASKxR) . . . . . | 1420 |
| 41.10.11 | DWT function register x (DWT_FUNCTxR) . . . . . | 1420 |
| 41.10.12 | DWT CoreSight peripheral identity register 4 (DWT_PIDR4) . . . . . | 1421 |
| 41.10.13 | DWT CoreSight peripheral identity register 0 (DWT_PIDR0) . . . . . | 1422 |
| 41.10.14 | DWT CoreSight peripheral identity register 1 (DWT_PIDR1) . . . . . | 1422 |
| 41.10.15 | DWT CoreSight peripheral identity register 2 (DWT_PIDR2) . . . . . | 1423 |
| 41.10.16 | DWT CoreSight peripheral identity register 3 (DWT_PIDR3) . . . . . | 1423 |
| 41.10.17 | DWT CoreSight component identity register 0 (DWT_CIDR0) . . . . . | 1424 |
| 41.10.18 | DWT CoreSight peripheral identity register 1 (DWT_CIDR1) . . . . . | 1424 |
| 41.10.19 | DWT CoreSight component identity register 2 (DWT_CIDR2) . . . . . | 1424 |
| 41.10.20 | DWT CoreSight component identity register 3 (DWT_CIDR3) . . . . . | 1425 |
| 41.10.21 | CPU2 DWT registers . . . . . | 1426 |
| 41.11 | CPU2 breakpoint unit (PBU) . . . . . | 1429 |
| 41.11.1 | BPU control register (BPU_CTRLR) . . . . . | 1429 |
| 41.11.2 | BPU remap register (BPU_REMAPR) . . . . . | 1429 |
| 41.11.3 | BPU comparator registers (BPU_COMPxR) . . . . . | 1430 |
| 41.11.4 | BPU CoreSight peripheral identity register 4 (BPU_PIDR4) . . . . . | 1430 |
| 41.11.5 | BPU CoreSight peripheral identity register 0 (BPU_PIDR0) . . . . . | 1431 |
| 41.11.6 | BPU CoreSight peripheral identity register 1 (BPU_PIDR1) . . . . . | 1431 |
| 41.11.7 | BPU CoreSight peripheral identity register 2 (BPU_PIDR2) . . . . . | 1431 |
| 41.11.8 | BPU CoreSight peripheral identity register 3 (BPU_PIDR3) . . . . . | 1432 |
| 41.11.9 | BPU CoreSight component identity register 0 (BPU_CIDR0) . . . . . | 1432 |
| 41.11.10 | BPU CoreSight peripheral identity register 1 (BPU_CIDR1) . . . . . | 1433 |
| 41.11.11 | BPU CoreSight component identity register 2 (BPU_CIDR2) . . . . . | 1433 |
| 41.11.12 | BPU CoreSight component identity register 3 (BPU_CIDR3) . . . . . | 1434 |
| 41.11.13 | CPU2 BPU register map and reset values . . . . . | 1435 |
| 41.12 | CPU2 cross trigger interface (CTI) . . . . . | 1436 |
| 41.13 | CPU1 ROM table . . . . . | 1436 |
| 41.13.1 | CPU1 ROM memory type register (C1ROM_MEMTYPER) . . . . . | 1437 |
| 41.13.2 | CPU1 ROM CoreSight peripheral identity register 4 (C1ROM_PIDR4) . . . . . | 1438 |
| 41.13.3 | CPU1 ROM CoreSight peripheral identity register 0 (C1ROM_PIDR0) . . . . . | 1438 |
| 41.13.4 | CPU1 ROM CoreSight peripheral identity register 1 (C1ROM_PIDR1) . . . . . | 1439 |
| 41.13.5 | CPU1 ROM CoreSight peripheral identity register 2 (C1ROM_PIDR2) . . . . . | 1439 |
| 41.13.6 | CPU1 ROM CoreSight peripheral identity register 3 (C1ROM_PIDR3) . . . . . | 1440 |
| 41.13.7 | CPU1 ROM CoreSight component identity register 0 (C1ROM_CIDR0) . . . . . | 1440 |
| 41.13.8 | CPU1 ROM CoreSight peripheral identity register 1 (C1ROM_CIDR1) . . . . . | 1440 |
| 41.13.9 | CPU1 ROM CoreSight component identity register 2 (C1ROM_CIDR2) . . . . . | 1441 |
| 41.13.10 | CPU1 ROM CoreSight component identity register 3 (C1ROM_CIDR3) . . . . . | 1441 |
| 41.13.11 | CPU1 ROM table register map and reset values . . . . . | 1443 |
| 41.14 | CPU1 data watchpoint and trace unit (DWT) . . . . . | 1444 |
| 41.14.1 | DWT control register (DWT_CTRLR) . . . . . | 1444 |
| 41.14.2 | DWT cycle count register (DWT_CYCCNTR) . . . . . | 1446 |
| 41.14.3 | DWT CPI count register (DWT_CPICNTR) . . . . . | 1446 |
| 41.14.4 | DWT exception count register (DWT_EXCCNTR) . . . . . | 1447 |
| 41.14.5 | DWT sleep count register (DWT_SLP CNTR) . . . . . | 1447 |
| 41.14.6 | DWT LSU count register (DWT_LSUCNTR) . . . . . | 1448 |
| 41.14.7 | DWT fold count register (DWT_FOLDCNTR) . . . . . | 1448 |
| 41.14.8 | DWT program counter sample register (DWT_PCSR) . . . . . | 1448 |
| 41.14.9 | DWT comparator register x (DWT_COMPxR) . . . . . | 1449 |
| 41.14.10 | DWT mask register x (DWT_MASKxR) . . . . . | 1449 |
| 41.14.11 | DWT function register x (DWT_FUNCTxR) . . . . . | 1449 |
| 41.14.12 | DWT CoreSight peripheral identity register 4 (DWT_PIDR4) . . . . . | 1450 |
| 41.14.13 | DWT CoreSight peripheral identity register 0 (DWT_PIDR0) . . . . . | 1451 |
| 41.14.14 | DWT CoreSight peripheral identity register 1 (DWT_PIDR1) . . . . . | 1451 |
| 41.14.15 | DWT CoreSight peripheral identity register 2 (DWT_PIDR2) . . . . . | 1452 |
| 41.14.16 | DWT CoreSight peripheral identity register 3 (DWT_PIDR3) . . . . . | 1452 |
| 41.14.17 | DWT CoreSight component identity register 0 (DWT_CIDR0) . . . . . | 1453 |
| 41.14.18 | DWT CoreSight peripheral identity register 1 (DWT_CIDR1) . . . . . | 1453 |
| 41.14.19 | DWT CoreSight component identity register 2 (DWT_CIDR2) . . . . . | 1453 |
| 41.14.20 | DWT CoreSight component identity register 3 (DWT_CIDR3) . . . . . | 1454 |
| 41.14.21 | CPU1 DWT register map and reset values . . . . . | 1455 |
| 41.15 | CPU1 instrumentation trace macrocell (ITM) . . . . . | 1457 |
| 41.15.1 | ITM stimulus register x (ITM_STIMRx) . . . . . | 1457 |
| 41.15.2 | ITM trace enable register (ITM_TER) . . . . . | 1457 |
| 41.15.3 | ITM trace privilege register (ITM_TPR) . . . . . | 1458 |
| 41.15.4 | ITM trace control register (ITM_TCR) . . . . . | 1458 |
| 41.15.5 | ITM CoreSight peripheral identity register 4 (ITM_PIDR4) . . . . . | 1459 |
| 41.15.6 | ITM CoreSight peripheral identity register 0 (ITM_PIDR0) . . . . . | 1460 |
| 41.15.7 | ITM CoreSight peripheral identity register 1 (ITM_PIDR1) . . . . . | 1460 |
| 41.15.8 | ITM CoreSight peripheral identity register 2 (ITM_PIDR2) . . . . . | 1461 |
| 41.15.9 | ITM CoreSight peripheral identity register 3 (ITM_PIDR3) . . . . . | 1461 |
| 41.15.10 | ITM CoreSight component identity register 0 (ITM_CIDR0) . . . . . | 1462 |
| 41.15.11 | ITM CoreSight peripheral identity register 1 (ITM_CIDR1) . . . . . | 1462 |
| 41.15.12 | ITM CoreSight component identity register 2 (ITM_CIDR2) . . . . . | 1462 |
| 41.15.13 | ITM CoreSight component identity register 3 (ITM_CIDR3) . . . . . | 1463 |
| 41.15.14 | ITM register map and reset values . . . . . | 1464 |
| 41.16 | CPU1 breakpoint unit (FPB) . . . . . | 1465 |
| 41.16.1 | FPB control register (FPB_CTRLR) . . . . . | 1465 |
| 41.16.2 | FPB remap register (FPB_REMAPR) . . . . . | 1465 |
| 41.16.3 | FPB comparator registers (FPB_COMPxR) . . . . . | 1466 |
| 41.16.4 | FPB CoreSight peripheral identity register 4 (FPB_PIDR4) . . . . . | 1466 |
| 41.16.5 | FPB CoreSight peripheral identity register 0 (FPB_PIDR0) . . . . . | 1467 |
| 41.16.6 | FPB CoreSight peripheral identity register 1 (FPB_PIDR1) . . . . . | 1467 |
| 41.16.7 | FPB CoreSight peripheral identity register 2 (FPB_PIDR2) . . . . . | 1468 |
| 41.16.8 | FPB CoreSight peripheral identity register 3 (FPB_PIDR3) . . . . . | 1468 |
| 41.16.9 | FPB CoreSight component identity register 0 (FPB_CIDR0) . . . . . | 1469 |
| 41.16.10 | FPB CoreSight peripheral identity register 1 (FPB_CIDR1) . . . . . | 1469 |
| 41.16.11 | FPB CoreSight component identity register 2 (FPB_CIDR2) . . . . . | 1469 |
| 41.16.12 | FPB CoreSight component identity register 3 (FPB_CIDR3) . . . . . | 1470 |
| 41.16.13 | FPB register map and reset values . . . . . | 1471 |
| 41.17 | CPU1 Embedded trace macrocell (ETM™), only available on STM32WB55xx . . . . . | 1472 |
| 41.17.1 | ETM control register (ETM_CR) . . . . . | 1472 |
| 41.17.2 | ETM configuration code register (ETM_CCR) . . . . . | 1473 |
| 41.17.3 | ETM trigger register (ETM_TRIGGER) . . . . . | 1474 |
| 41.17.4 | ETM status register (ETM_SR) . . . . . | 1475 |
| 41.17.5 | ETM status register (ETM_SCR) . . . . . | 1475 |
| 41.17.6 | ETM trace enable event register (ETM_TEEVR) . . . . . | 1476 |
| 41.17.7 | ETM trace enable control 1 register (ETM_TECR1) . . . . . | 1477 |
| 41.17.8 | ETM FIFOFULL level register (ETM_FFLR) . . . . . | 1477 |
| 41.17.9 | ETM counter reload value 1 register (ETM_CNTRLDVR1) . . . . . | 1478 |
| 41.17.10 | ETM synchronization frequency register (ETM_SYNCFR) . . . . . | 1478 |
| 41.17.11 | ETM ID register (ETM_IDR) . . . . . | 1479 |
| 41.17.12 | ETM configuration code extension register (ETM_CCER) . . . . . | 1479 |
| 41.17.13 | ETM trace enable start/stop EmbeddedICE control register (ETM_TESSEICR) . . . . . | 1480 |
| 41.17.14 | ETM timestamp event register (ETM_TSEVR) . . . . . | 1481 |
| 41.17.15 | ETM trace ID register (ETM_TRACEIDR) . . . . . | 1482 |
| 41.17.16 | ETM ID register 2(ETM_IDR2) . . . . . | 1482 |
| 41.17.17 | ETM device power down status register 2(ETM_PDSR) . . . . . | 1482 |
| 41.17.18 | ETM claim tag set register (ETM_CLAIMSETR) . . . . . | 1483 |
| 41.17.19 | ETM claim tag clear register (ETM_CLAIMCLR) . . . . . | 1483 |
| 41.17.20 | ETM lock access register (ETM_LAR) . . . . . | 1484 |
| 41.17.21 | ETM lock status register (ETM_LSR) . . . . . | 1484 |
| 41.17.22 ETM authentication status register (ETM_AUTHSTATR) . . . . . | 1485 |
| 41.17.23 ETM CoreSight device identity register (ETM_DEVTYPE) . . . . . | 1485 |
| 41.17.24 ETM CoreSight peripheral identity register 4 (ETM_PIDR4) . . . . . | 1486 |
| 41.17.25 ETM CoreSight peripheral identity register 0 (ETM_PIDR0) . . . . . | 1486 |
| 41.17.26 ETM CoreSight peripheral identity register 1 (ETM_PIDR1) . . . . . | 1486 |
| 41.17.27 ETM CoreSight peripheral identity register 2 (ETM_PIDR2) . . . . . | 1487 |
| 41.17.28 ETM CoreSight peripheral identity register 3 (ETM_PIDR3) . . . . . | 1487 |
| 41.17.29 ETM CoreSight component identity register 0 (ETM_CIDR0) . . . . . | 1488 |
| 41.17.30 ETM CoreSight peripheral identity register 1 (ETM_CIDR1) . . . . . | 1488 |
| 41.17.31 ETM CoreSight component identity register 2 (ETM_CIDR2) . . . . . | 1489 |
| 41.17.32 ETM CoreSight component identity register 3 (ETM_CIDR3) . . . . . | 1489 |
| 41.17.33 ETM register map and reset values . . . . . | 1490 |
| 41.18 CPU1 trace port interface unit (TPIU) . . . . . | 1493 |
| 41.18.1 TPIU supported port size register (TPIU_SSPSR) . . . . . | 1493 |
| 41.18.2 TPIU current port size register (TPIU_CSPSR) . . . . . | 1494 |
| 41.18.3 TPIU asynchronous clock prescaler register (TPIU_ACPR) . . . . . | 1494 |
| 41.18.4 TPIU selected pin protocol register (TPIU_SPPR) . . . . . | 1494 |
| 41.18.5 TPIU formatter and flush status register (TPIU_FFSR) . . . . . | 1495 |
| 41.18.6 TPIU formatter and flush control register (TPIU_FFCR) . . . . . | 1495 |
| 41.18.7 TPIU formatter synchronization counter register (TPIU_FSCR) . . . . . | 1496 |
| 41.18.8 TPIU claim tag set register (TPIU_CLAIMSETR) . . . . . | 1496 |
| 41.18.9 TPIU claim tag clear register (TPIU_CLAIMCLR) . . . . . | 1497 |
| 41.18.10 TPIU device configuration register (TPIU_DEVIDR) . . . . . | 1497 |
| 41.18.11 TPIU device type identifier register (TPIU_DEVTYPE) . . . . . | 1498 |
| 41.18.12 TPIU CoreSight peripheral identity register 4 (TPIU_PIDR4) . . . . . | 1498 |
| 41.18.13 TPIU CoreSight peripheral identity register 0 (TPIU_PIDR0) . . . . . | 1499 |
| 41.18.14 TPIU CoreSight peripheral identity register 1 (TPIU_PIDR1) . . . . . | 1499 |
| 41.18.15 TPIU CoreSight peripheral identity register 2 (TPIU_PIDR2) . . . . . | 1500 |
| 41.18.16 TPIU CoreSight peripheral identity register 3 (TPIU_PIDR3) . . . . . | 1500 |
| 41.18.17 TPIU CoreSight component identity register 0 (TPIU_CIDR0) . . . . . | 1501 |
| 41.18.18 TPIU CoreSight peripheral identity register 1 (TPIU_CIDR1) . . . . . | 1501 |
| 41.18.19 TPIU CoreSight component identity register 2 (TPIU_CIDR2) . . . . . | 1501 |
| 41.18.20 TPIU CoreSight component identity register 3 (TPIU_CIDR3) . . . . . | 1502 |
| 41.18.21 CPU1 TPIU register map and reset values . . . . . | 1503 |
| 41.19 CPU1 cross trigger interface (CTI) . . . . . | 1505 |
| 41.20 References . . . . . | 1505 |
42 Device electronic signature . . . . . 1506
42.1 Unique device ID register (96 bits) . . . . . 1506
42.2 Memory size data register . . . . . 1507
42.2.1 Flash size data register . . . . . 1507
42.3 Package data register . . . . . 1507
42.4 Part number codification register . . . . . 1508
43 Important security notice . . . . . 1509
44 Revision history . . . . . 1510
List of tables
| Table 1. | Memory map and peripheral register boundary addresses . . . . . | 68 |
| Table 2. | Boot modes. . . . . | 73 |
| Table 3. | Flash memory - Single bank organization . . . . . | 77 |
| Table 4. | Number of wait states vs, Flash memory clock (HCLK4) frequency. . . . . | 79 |
| Table 5. | Page erase overview . . . . . | 84 |
| Table 6. | Mass erase overview . . . . . | 85 |
| Table 7. | Errors in page-based row programming . . . . . | 90 |
| Table 8. | Option bytes format . . . . . | 91 |
| Table 9. | Option bytes organization. . . . . | 91 |
| Table 10. | Option loading control. . . . . | 100 |
| Table 11. | UID64 organization. . . . . | 101 |
| Table 12. | Flash memory read protection status . . . . . | 102 |
| Table 13. | RDP regression from Level 1 to Level 0 and memory erase . . . . . | 104 |
| Table 14. | Access status vs. protection level and execution modes . . . . . | 105 |
| Table 17. | Flash memory interrupt requests . . . . . | 110 |
| Table 18. | Flash interface register map and reset values . . . . . | 129 |
| Table 19. | Supply configuration control . . . . . | 136 |
| Table 20. | PVM features . . . . . | 143 |
| Table 21. | Sub-system low power wake-up sources . . . . . | 147 |
| Table 22. | Low-power mode summary . . . . . | 149 |
| Table 23. | Functionalities depending on system operating mode . . . . . | 150 |
| Table 24. | Low-power run . . . . . | 153 |
| Table 25. | CPU CSTOP wake-up vs. system operating mode . . . . . | 154 |
| Table 26. | Sleep mode. . . . . | 155 |
| Table 27. | Low-power sleep. . . . . | 156 |
| Table 28. | Stop0 mode . . . . . | 158 |
| Table 29. | Stop1 mode . . . . . | 159 |
| Table 30. | Stop2 mode . . . . . | 162 |
| Table 31. | Standby mode. . . . . | 163 |
| Table 32. | Shutdown mode . . . . . | 165 |
| Table 33. | PWR register map and reset values. . . . . | 187 |
| Table 34. | Maximum clock source frequency . . . . . | 201 |
| Table 35. | SMPS step-down converter clock source selection and division . . . . . | 203 |
| Table 36. | Peripheral clock enable . . . . . | 207 |
| Table 37. | Single core Low power debug configurations. . . . . | 208 |
| Table 38. | RCC register map and reset values . . . . . | 272 |
| Table 39. | CRS features . . . . . | 278 |
| Table 40. | CRS internal input/output signals . . . . . | 279 |
| Table 41. | CRS interconnection. . . . . | 280 |
| Table 42. | Effect of low-power modes on CRS . . . . . | 283 |
| Table 43. | Interrupt control bits . . . . . | 283 |
| Table 44. | CRS register map and reset values . . . . . | 288 |
| Table 45. | HSEM internal input/output signals. . . . . | 291 |
| Table 46. | Authorized AHB bus master IDs . . . . . | 296 |
| Table 47. | HSEM register map and reset values. . . . . | 302 |
| Table 48. | IPCC interface signals . . . . . | 305 |
| Table 49. | Bits used for the communication. . . . . | 306 |
| Table 50. | IPCC register map and reset values. . . . . | 317 |
| Table 51. | GPIO implementation . . . . . | 318 |
| Table 52. | Port bit configuration table . . . . . | 320 |
| Table 53. | GPIO register map and reset values . . . . . | 335 |
| Table 54. | SYSCFG register map and reset values . . . . . | 352 |
| Table 55. | Interconnect matrix implementation . . . . . | 354 |
| Table 56. | Peripherals interconnect matrix . . . . . | 354 |
| Table 57. | DMA1 and DMA2 implementation . . . . . | 361 |
| Table 58. | DMA internal input/output signals . . . . . | 363 |
| Table 59. | Programmable data width and endian behavior (when PINC = MINC = 1) . . . . . | 368 |
| Table 60. | DMA interrupt requests . . . . . | 370 |
| Table 61. | DMA register map and reset values . . . . . | 378 |
| Table 62. | DMAMUX implementation . . . . . | 382 |
| Table 63. | DMAMUX instantiation . . . . . | 382 |
| Table 64. | DMAMUX: assignment of multiplexer inputs to resources . . . . . | 383 |
| Table 65. | DMAMUX: assignment of trigger inputs to resources . . . . . | 383 |
| Table 66. | DMAMUX: assignment of synchronization inputs to resources . . . . . | 384 |
| Table 67. | DMAMUX signals . . . . . | 386 |
| Table 68. | DMAMUX interrupts . . . . . | 390 |
| Table 69. | DMAMUX register map and reset values . . . . . | 395 |
| Table 70. | DMAMUX register map and reset values . . . . . | 396 |
| Table 71. | NVIC implementation . . . . . | 398 |
| Table 72. | CPU1 vector table . . . . . | 400 |
| Table 73. | CPU2 vector table . . . . . | 403 |
| Table 74. | Wake-up interrupt table . . . . . | 405 |
| Table 75. | EXTI implementation . . . . . | 407 |
| Table 76. | EXTI pin overview . . . . . | 408 |
| Table 77. | EVG pin overview . . . . . | 409 |
| Table 78. | EXTI event input configurations and register control . . . . . | 410 |
| Table 79. | Masking functionality . . . . . | 413 |
| Table 80. | EXTI register map sections . . . . . | 414 |
| Table 81. | EXTI register map and reset values . . . . . | 424 |
| Table 82. | CRC internal input/output signals . . . . . | 427 |
| Table 83. | CRC register map and reset values . . . . . | 432 |
| Table 84. | QUADSPI pins . . . . . | 434 |
| Table 85. | QUADSPI interrupt requests . . . . . | 446 |
| Table 86. | QUADSPI register map and reset values . . . . . | 457 |
| Table 87. | ADC features . . . . . | 460 |
| Table 88. | ADC internal input/output signals . . . . . | 462 |
| Table 89. | ADC input/output pins . . . . . | 462 |
| Table 90. | Configuring the trigger polarity for regular external triggers . . . . . | 478 |
| Table 91. | Configuring the trigger polarity for injected external triggers . . . . . | 478 |
| Table 92. | ADC1 - External triggers for regular channels . . . . . | 479 |
| Table 93. | ADC1 - External trigger for injected channels . . . . . | 479 |
| Table 94. | TSAR timings depending on resolution . . . . . | 491 |
| Table 95. | Offset computation versus data resolution . . . . . | 494 |
| Table 96. | Analog watchdog channel selection . . . . . | 504 |
| Table 97. | Analog watchdog 1 comparison . . . . . | 505 |
| Table 98. | Analog watchdog 2 and 3 comparison . . . . . | 505 |
| Table 99. | Maximum output results versus N and M (gray cells indicate truncation) . . . . . | 509 |
| Table 100. | Effect of low-power modes on the ADC . . . . . | 517 |
| Table 101. | ADC interrupts . . . . . | 518 |
| Table 102. | ADC register map and reset values . . . . . | 547 |
| Table 103. | ADC register map and reset values (master and slave ADC common registers) offset = 0x300 . . . . . | 549 |
| Table 104. | VREFBUF implementation . . . . . | 550 |
| Table 105. | VREF buffer modes . . . . . | 550 |
| Table 106. | VREFBUF trimming data . . . . . | 551 |
| Table 107. | VREFBUF register map and reset values. . . . . | 553 |
| Table 108. | COMP1 input plus assignment . . . . . | 555 |
| Table 109. | COMP1 input minus assignment . . . . . | 556 |
| Table 110. | COMP2 input plus assignment . . . . . | 556 |
| Table 111. | COMP2 input minus assignment . . . . . | 556 |
| Table 112. | Comparator behavior in the low power modes . . . . . | 560 |
| Table 113. | Interrupt control bits . . . . . | 560 |
| Table 114. | COMP register map and reset values. . . . . | 566 |
| Table 115. | Example of frame rate calculation . . . . . | 570 |
| Table 116. | Blink frequency . . . . . | 578 |
| Table 117. | Remapping capability . . . . . | 582 |
| Table 118. | LCD interrupt requests . . . . . | 588 |
| Table 119. | LCD register map and reset values . . . . . | 595 |
| Table 120. | Acquisition sequence summary . . . . . | 601 |
| Table 121. | Spread spectrum deviation versus AHB clock frequency . . . . . | 603 |
| Table 122. | I/O state depending on its mode and IODEF bit value . . . . . | 604 |
| Table 123. | Effect of low-power modes on TSC . . . . . | 606 |
| Table 124. | Interrupt control bits . . . . . | 606 |
| Table 125. | TSC register map and reset values . . . . . | 613 |
| Table 126. | RNG internal input/output signals . . . . . | 617 |
| Table 127. | RNG interrupt requests . . . . . | 623 |
| Table 128. | RNG configurations . . . . . | 624 |
| Table 129. | RNG register map and reset map. . . . . | 627 |
| Table 130. | AES internal input/output signals . . . . . | 629 |
| Table 131. | CTR mode initialization vector definition. . . . . | 646 |
| Table 132. | GCM last block definition . . . . . | 648 |
| Table 133. | Initialization of AES_IVRx registers in GCM mode . . . . . | 649 |
| Table 134. | Initialization of AES_IVRx registers in CCM mode . . . . . | 656 |
| Table 135. | Key endianness in AES_KEYRx registers (128- or 256-bit key length) . . . . . | 661 |
| Table 136. | AES interrupt requests . . . . . | 664 |
| Table 137. | Processing latency for ECB, CBC and CTR. . . . . | 664 |
| Table 138. | Processing latency for GCM and CCM (in clock cycles). . . . . | 665 |
| Table 139. | AES register map and reset values . . . . . | 675 |
| Table 140. | Internal input/output signals . . . . . | 678 |
| Table 141. | PKA integer arithmetic functions list . . . . . | 679 |
| Table 142. | PKA prime field (Fp) elliptic curve functions list . . . . . | 679 |
| Table 143. | Montgomery parameter computation . . . . . | 684 |
| Table 144. | Modular addition . . . . . | 685 |
| Table 145. | Modular subtraction . . . . . | 685 |
| Table 146. | Montgomery multiplication . . . . . | 686 |
| Table 147. | Modular exponentiation (normal mode) . . . . . | 687 |
| Table 148. | Modular exponentiation (fast mode) . . . . . | 687 |
| Table 149. | Modular inversion . . . . . | 687 |
| Table 150. | Modular reduction . . . . . | 688 |
| Table 151. | Arithmetic addition . . . . . | 688 |
| Table 152. | Arithmetic subtraction . . . . . | 688 |
| Table 153. | Arithmetic multiplication . . . . . | 689 |
| Table 154. | Arithmetic comparison . . . . . | 689 |
| Table 155. | CRT exponentiation . . . . . | 690 |
| Table 156. | Point on elliptic curve Fp check . . . . . | 691 |
| Table 157. | ECC Fp scalar multiplication. . . . . | 691 |
| Table 158. | ECC Fp scalar multiplication (Fast Mode) . . . . . | 692 |
| Table 159. | ECDSA sign - Inputs . . . . . | 693 |
| Table 160. | ECDSA sign - Outputs . . . . . | 693 |
| Table 161. | Extended ECDSA sign (extra outputs) . . . . . | 694 |
| Table 162. | ECDSA verification (inputs) . . . . . | 694 |
| Table 163. | ECDSA verification (outputs) . . . . . | 694 |
| Table 164. | Family of supported curves for ECC operations . . . . . | 695 |
| Table 165. | Modular exponentiation computation times . . . . . | 697 |
| Table 166. | ECC scalar multiplication computation times . . . . . | 697 |
| Table 167. | ECDSA signature average computation times . . . . . | 697 |
| Table 168. | ECDSA verification average computation times . . . . . | 698 |
| Table 169. | Point on elliptic curve Fp check average computation times . . . . . | 698 |
| Table 170. | Montgomery parameters average computation times. . . . . | 698 |
| Table 171. | PKA interrupt requests . . . . . | 698 |
| Table 172. | PKA register map and reset values . . . . . | 702 |
| Table 173. | Behavior of timer outputs versus BRK/BRK2 inputs. . . . . | 745 |
| Table 174. | Break protection disarming conditions . . . . . | 747 |
| Table 175. | Counting direction versus encoder signals. . . . . | 753 |
| Table 176. | TIM1 internal trigger connection . . . . . | 770 |
| Table 177. | Output control bits for complementary OCx and OCxN channels with break feature. . . . . | 784 |
| Table 178. | TIM1 register map and reset values . . . . . | 801 |
| Table 179. | Counting direction versus encoder signals. . . . . | 837 |
| Table 180. | TIM2 internal trigger connection . . . . . | 855 |
| Table 181. | Output control bit for standard OCx channels. . . . . | 866 |
| Table 182. | TIM2 register map and reset values . . . . . | 873 |
| Table 183. | Break protection disarming conditions . . . . . | 898 |
| Table 184. | Output control bits for complementary OCx and OCxN channels with break feature (TIM16/17) . . . . . | 915 |
| Table 185. | TIM16/TIM17 register map and reset values . . . . . | 926 |
| Table 186. | LPTIM features . . . . . | 929 |
| Table 187. | LPTIM implementation . . . . . | 929 |
| Table 188. | LPTIM1 external trigger connection . . . . . | 930 |
| Table 189. | LPTIM2 external trigger connection . . . . . | 931 |
| Table 190. | Prescaler division ratios . . . . . | 932 |
| Table 191. | Encoder counting scenarios . . . . . | 939 |
| Table 192. | Effect of low-power modes on the LPTIM. . . . . | 940 |
| Table 193. | Interrupt events. . . . . | 941 |
| Table 194. | LPTIM register map and reset values. . . . . | 952 |
| Table 195. | IWDG register map and reset values . . . . . | 962 |
| Table 196. | WWDG register map and reset values . . . . . | 968 |
| Table 197. | RTC implementation. . . . . | 970 |
| Table 198. | Effect of low-power modes on RTC . . . . . | 984 |
| Table 199. | Interrupt control bits . . . . . | 984 |
| Table 200. | RTC register map and reset values . . . . . | 1009 |
| Table 201. | I2C implementation. . . . . | 1012 |
| Table 202. | I2C input/output pins. . . . . | 1013 |
| Table 203. | I2C internal input/output signals . . . . . | 1014 |
| Table 204. | Comparison of analog and digital filters . . . . . | 1016 |
| Table 205. | I 2 C-bus and SMBus specification data setup and hold times . . . . . | 1018 |
| Table 206. | I 2 C configuration. . . . . | 1022 |
| Table 207. | I 2 C-bus and SMBus specification clock timings . . . . . | 1033 |
| Table 208. | Timing settings for f I2CCLK of 8 MHz. . . . . | 1043 |
| Table 209. | Timing settings for f I2CCLK of 16 MHz. . . . . | 1043 |
| Table 210. | SMBus timeout specifications . . . . . | 1045 |
| Table 211. | SMBus with PEC configuration . . . . . | 1047 |
| Table 212. | TIMEOUTA[11:0] for maximum t TIMEOUT of 25 ms. . . . . | 1048 |
| Table 213. | TIMEOUTB[11:0] for maximum t LOW:SEXT and t LOW:MEXT of 8 ms . . . . . | 1048 |
| Table 214. | TIMEOUTA[11:0] for maximum t IDLE of 50 µs . . . . . | 1048 |
| Table 215. | Effect of low-power modes to I 2 C. . . . . | 1058 |
| Table 216. | I 2 C interrupt requests . . . . . | 1058 |
| Table 217. | I 2 C register map and reset values . . . . . | 1073 |
| Table 218. | USART / LPUART features . . . . . | 1076 |
| Table 219. | USART/UART input/output pins . . . . . | 1079 |
| Table 220. | USART internal input/output signals . . . . . | 1079 |
| Table 221. | Noise detection from sampled data . . . . . | 1091 |
| Table 222. | Tolerance of the USART receiver when BRR [3:0] = 0000. . . . . | 1094 |
| Table 223. | Tolerance of the USART receiver when BRR[3:0] is different from 0000. . . . . | 1095 |
| Table 224. | USART frame formats . . . . . | 1100 |
| Table 225. | Effect of low-power modes on the USART . . . . . | 1123 |
| Table 226. | USART interrupt requests. . . . . | 1124 |
| Table 227. | USART register map and reset values . . . . . | 1158 |
| Table 228. | USART / LPUART features . . . . . | 1162 |
| Table 229. | LPUART input/output pins . . . . . | 1164 |
| Table 230. | LPUART internal input/output signals. . . . . | 1164 |
| Table 231. | Error calculation for programmed baud rates at lpuart_ker_ck_pres = 32.768 kHz. . . . . | 1174 |
| Table 232. | Error calculation for programmed baud rates at fCK = 100 MHz . . . . . | 1175 |
| Table 233. | Tolerance of the LPUART receiver. . . . . | 1176 |
| Table 235. | Effect of low-power modes on the LPUART . . . . . | 1187 |
| Table 236. | LPUART interrupt requests. . . . . | 1188 |
| Table 237. | LPUART register map and reset values . . . . . | 1211 |
| Table 238. | SPI implementation. . . . . | 1214 |
| Table 239. | SPI interrupt requests . . . . . | 1238 |
| Table 240. | SPI register map and reset values . . . . . | 1247 |
| Table 241. | STM32WB55xx SAI features . . . . . | 1249 |
| Table 242. | SAI internal input/output signals . . . . . | 1251 |
| Table 243. | SAI input/output pins. . . . . | 1251 |
| Table 244. | MCLK_x activation conditions. . . . . | 1259 |
| Table 245. | Clock generator programming examples . . . . . | 1262 |
| Table 246. | SAI_A configuration for TDM mode . . . . . | 1269 |
| Table 247. | TDM frame configuration examples . . . . . | 1271 |
| Table 248. | SOPD pattern . . . . . | 1274 |
| Table 249. | Parity bit calculation . . . . . | 1274 |
| Table 250. | Audio sampling frequency versus symbol rates . . . . . | 1275 |
| Table 251. | SAI interrupt sources . . . . . | 1284 |
| Table 252. | SAI register map and reset values . . . . . | 1312 |
| Table 253. | USB implementation . . . . . | 1314 |
| Table 254. | Double-buffering buffer flag definition. . . . . | 1324 |
| Table 255. | Bulk double-buffering memory buffers usage . . . . . | 1324 |
| Table 256. | Isochronous memory buffers usage . . . . . | 1326 |
| Table 257. | Resume event detection . . . . . | 1327 |
| Table 258. | Reception status encoding . . . . . | 1340 |
| Table 259. | Endpoint type encoding . . . . . | 1340 |
| Table 260. | Endpoint kind meaning . . . . . | 1340 |
| Table 261. | Transmission status encoding . . . . . | 1341 |
| Table 262. | Definition of allocated buffer memory . . . . . | 1344 |
| Table 263. | USB register map and reset values . . . . . | 1345 |
| Table 264. | JTAG/Serial-wire debug port pins . . . . . | 1349 |
| Table 265. | Trace port pins . . . . . | 1350 |
| Table 266. | Single Wire Trace port pins . . . . . | 1350 |
| Table 267. | Trigger pins . . . . . | 1350 |
| Table 268. | JTAG-DP data registers . . . . . | 1353 |
| Table 269. | Packet request . . . . . | 1354 |
| Table 270. | ACK response . . . . . | 1355 |
| Table 271. | Data transfer . . . . . | 1355 |
| Table 272. | Debug port register map and reset values . . . . . | 1363 |
| Table 273. | Access port register map and reset values . . . . . | 1371 |
| Table 274. | CPU2 CTI inputs . . . . . | 1372 |
| Table 275. | CPU2 CTI outputs . . . . . | 1373 |
| Table 276. | CPU1 CTI inputs . . . . . | 1373 |
| Table 277. | CPU1 CTI outputs . . . . . | 1373 |
| Table 278. | CTI register map and reset values . . . . . | 1389 |
| Table 279. | DBGMCU register map and reset values . . . . . | 1399 |
| Table 280. | CPU2 processor ROM table . . . . . | 1401 |
| Table 281. | CPU2 ROM table . . . . . | 1401 |
| Table 282. | CPU2 processor ROM table register map and reset values . . . . . | 1408 |
| Table 283. | CPU2 ROM table register map and reset values . . . . . | 1414 |
| Table 284. | CPU2 DWT register map and reset values . . . . . | 1426 |
| Table 285. | CPU2 BPU register map and reset values . . . . . | 1435 |
| Table 286. | CPU1 ROM table . . . . . | 1436 |
| Table 287. | CPU1 ROM table register map and reset values . . . . . | 1443 |
| Table 288. | CPU1 DWT register map and reset values . . . . . | 1455 |
| Table 289. | CPU1 ITM register map and reset values . . . . . | 1464 |
| Table 290. | CPU1 FPB register map and reset values . . . . . | 1471 |
| Table 291. | CPU1 ETM register map and reset values . . . . . | 1490 |
| Table 292. | CPU1 TPIU register map and reset values . . . . . | 1503 |
| Table 293. | Document revision history . . . . . | 1510 |
List of figures
Figure 1. System architecture . . . . . 64
Figure 2. Memory map . . . . . 67
Figure 3. Sequential 16-bit instructions execution . . . . . 81
Figure 4. Changing the Read protection (RDP) level. . . . . 105
Figure 5. Radio system block diagram. . . . . 132
Figure 6. Power supply overview . . . . . 135
Figure 7. Supply configurations . . . . . 135
Figure 8. Brown-out reset waveform . . . . . 142
Figure 9. PVD thresholds . . . . . 143
Figure 10. CPU2 boot options . . . . . 145
Figure 11. Low-power modes possible transitions. . . . . 148
Figure 12. Real-time radio activity flags. . . . . 166
Figure 13. Simplified diagram of the reset circuit. . . . . 190
Figure 14. Clock tree . . . . . 194
Figure 15. HSE clock sources . . . . . 195
Figure 16. LSE clock sources . . . . . 199
Figure 17. Frequency measurement with TIM16 in capture mode. . . . . 205
Figure 18. Frequency measurement with TIM17 in capture mode. . . . . 205
Figure 19. CRS block diagram. . . . . 279
Figure 20. CRS counter behavior . . . . . 281
Figure 21. HSEM block diagram . . . . . 291
Figure 22. Procedure state diagram . . . . . 292
Figure 23. Interrupt state diagram . . . . . 295
Figure 24. IPCC block diagram . . . . . 305
Figure 25. IPCC Simplex channel mode transfer timing . . . . . 306
Figure 26. IPCC Simplex - Send procedure state diagram . . . . . 307
Figure 27. IPCC Simplex - Receive procedure state diagram . . . . . 308
Figure 28. IPCC Half-duplex channel mode transfer timing. . . . . 309
Figure 29. IPCC Half-duplex - Send procedure state diagram . . . . . 309
Figure 30. IPCC Half-duplex - Receive procedure state diagram . . . . . 310
Figure 31. Three-volt or five-volt tolerant GPIO structure (TT or FT). . . . . 319
Figure 32. Input floating/pull up/pull down configurations . . . . . 324
Figure 33. Output configuration . . . . . 324
Figure 34. Alternate function configuration . . . . . 325
Figure 35. High impedance-analog configuration . . . . . 326
Figure 36. DMA block diagram . . . . . 362
Figure 37. DMAMUX block diagram . . . . . 385
Figure 38. Synchronization mode of the DMAMUX request line multiplexer channel . . . . . 388
Figure 39. Event generation of the DMA request line multiplexer channel . . . . . 388
Figure 40. Interrupt block diagram. . . . . 399
Figure 41. EXTI block diagram . . . . . 408
Figure 42. Configurable event trigger logic CPU wakeup . . . . . 411
Figure 43. Direct event trigger logic CPU wakeup . . . . . 412
Figure 44. CRC calculation unit block diagram . . . . . 427
Figure 45. QUADSPI block diagram . . . . . 433
Figure 46. Example of read command in quad-SPI mode. . . . . 434
Figure 47. Example of a DDR command in quad-SPI mode . . . . . 438
Figure 48. NCS when CKMODE = 0 (T = CLK period) . . . . . 445
| Figure 49. | NCS when CKMODE = 1 in SDR mode (T = CLK period) . . . . . | 445 |
| Figure 50. | NCS when CKMODE = 1 in DDR mode (T = CLK period) . . . . . | 445 |
| Figure 51. | NCS when CKMODE = 1 with an abort (T = CLK period). . . . . | 446 |
| Figure 52. | ADC block diagram . . . . . | 461 |
| Figure 53. | ADC clock scheme . . . . . | 464 |
| Figure 54. | ADC1 connectivity . . . . . | 465 |
| Figure 55. | ADC calibration. . . . . | 468 |
| Figure 56. | Updating the ADC calibration factor . . . . . | 469 |
| Figure 57. | Mixing single-ended and differential channels . . . . . | 470 |
| Figure 58. | Enabling / disabling the ADC . . . . . | 471 |
| Figure 59. | Analog-to-digital conversion time . . . . . | 476 |
| Figure 60. | Stopping ongoing regular conversions . . . . . | 477 |
| Figure 61. | Stopping ongoing regular and injected conversions . . . . . | 477 |
| Figure 62. | Injected conversion latency . . . . . | 481 |
| Figure 63. | Example of ADC_JSQR queue of context (sequence change) . . . . . | 484 |
| Figure 64. | Example of ADC_JSQR queue of context (trigger change) . . . . . | 484 |
| Figure 65. | Example of ADC_JSQR queue of context with overflow before conversion. . . . . | 485 |
| Figure 66. | Example of ADC_JSQR queue of context with overflow during conversion . . . . . | 485 |
| Figure 67. | Example of ADC_JSQR queue of context with empty queue (case JQM = 0). . . . . | 486 |
| Figure 68. | Example of ADC_JSQR queue of context with empty queue (case JQM = 1). . . . . | 487 |
| Figure 69. | Flushing ADC_JSQR queue of context by setting JADSTP = 1 (JQM = 0) Case when JADSTP occurs during an ongoing conversion . . . . . | 487 |
| Figure 70. | Flushing ADC_JSQR queue of context by setting JADSTP = 1 (JQM = 0) Case when JADSTP occurs during an ongoing conversion and a new trigger occurs. . . . . | 488 |
| Figure 71. | Flushing ADC_JSQR queue of context by setting JADSTP = 1 (JQM = 0) Case when JADSTP occurs outside an ongoing conversion . . . . . | 488 |
| Figure 72. | Flushing ADC_JSQR queue of context by setting JADSTP = 1 (JQM = 1) . . . . . | 489 |
| Figure 73. | Flushing ADC_JSQR queue of context by setting ADDIS = 1 (JQM = 0). . . . . | 489 |
| Figure 74. | Flushing ADC_JSQR queue of context by setting ADDIS = 1 (JQM = 1). . . . . | 490 |
| Figure 75. | Single conversions of a sequence, software trigger . . . . . | 492 |
| Figure 76. | Continuous conversion of a sequence, software trigger. . . . . | 492 |
| Figure 77. | Single conversions of a sequence, hardware trigger . . . . . | 493 |
| Figure 78. | Continuous conversions of a sequence, hardware trigger . . . . . | 493 |
| Figure 79. | Right alignment (offset disabled, unsigned value) . . . . . | 495 |
| Figure 80. | Right alignment (offset enabled, signed value). . . . . | 496 |
| Figure 81. | Left alignment (offset disabled, unsigned value) . . . . . | 496 |
| Figure 82. | Left alignment (offset enabled, signed value). . . . . | 497 |
| Figure 83. | Example of overrun (OVR) . . . . . | 498 |
| Figure 84. | AUTODLY = 1, regular conversion in continuous mode, software trigger . . . . . | 501 |
| Figure 85. | AUTODLY = 1, regular HW conversions interrupted by injected conversions (DISCEN = 0; JDISCEN = 0) . . . . . | 501 |
| Figure 86. | AUTODLY = 1, regular HW conversions interrupted by injected conversions . . . . . (DISCEN = 1, JDISCEN = 1) . . . . . | 502 |
| Figure 87. | AUTODLY = 1, regular continuous conversions interrupted by injected conversions . . . . . | 503 |
| Figure 88. | AUTODLY = 1 in auto- injected mode (JAUTO = 1). . . . . | 503 |
| Figure 89. | Analog watchdog guarded area . . . . . | 504 |
| Figure 90. | ADC y _AWD x _OUT signal generation (on all regular channels). . . . . | 506 |
| Figure 91. | ADC y _AWD x _OUT signal generation (AWD x flag not cleared by software) . . . . . | 507 |
| Figure 92. | ADC y _AWD x _OUT signal generation (on a single regular channel) . . . . . | 507 |
| Figure 93. | ADC y _AWD x _OUT signal generation (on all injected channels) . . . . . | 507 |
| Figure 94. | 20-bit to 16-bit result truncation . . . . . | 508 |
| Figure 95. | Numerical example with 5-bit shift and rounding . . . . . | 508 |
| Figure 96. | Triggered regular oversampling mode (TROVS bit = 1) . . . . . | 510 |
| Figure 97. | Regular oversampling modes (4x ratio) . . . . . | 511 |
| Figure 98. | Regular and injected oversampling modes used simultaneously . . . . . | 512 |
| Figure 99. | Triggered regular oversampling with injection . . . . . | 512 |
| Figure 100. | Oversampling in auto-injected mode . . . . . | 513 |
| Figure 101. | Temperature sensor channel block diagram . . . . . | 514 |
| Figure 102. | VBAT channel block diagram . . . . . | 515 |
| Figure 103. | VREFINT channel block diagram . . . . . | 516 |
| Figure 104. | Comparator block diagram . . . . . | 555 |
| Figure 105. | Window mode . . . . . | 558 |
| Figure 106. | Comparator hysteresis . . . . . | 558 |
| Figure 107. | Comparator output blanking . . . . . | 559 |
| Figure 108. | LCD controller block diagram . . . . . | 569 |
| Figure 109. | 1/3 bias, 1/4 duty . . . . . | 571 |
| Figure 110. | Static duty case 1 . . . . . | 572 |
| Figure 111. | Static duty case 2 . . . . . | 573 |
| Figure 112. | 1/2 duty, 1/2 bias . . . . . | 574 |
| Figure 113. | 1/3 duty, 1/3 bias . . . . . | 575 |
| Figure 114. | 1/4 duty, 1/3 bias . . . . . | 576 |
| Figure 115. | 1/8 duty, 1/4 bias . . . . . | 577 |
| Figure 116. | LCD voltage control . . . . . | 580 |
| Figure 117. | Dead time . . . . . | 581 |
| Figure 118. | SEG/COM mux feature example . . . . . | 586 |
| Figure 119. | Flowchart example . . . . . | 587 |
| Figure 120. | TSC block diagram . . . . . | 599 |
| Figure 121. | Surface charge transfer analog I/O group structure . . . . . | 600 |
| Figure 122. | Sampling capacitor voltage variation . . . . . | 601 |
| Figure 123. | Charge transfer acquisition sequence . . . . . | 602 |
| Figure 124. | Spread spectrum variation principle . . . . . | 603 |
| Figure 125. | RNG block diagram . . . . . | 617 |
| Figure 126. | Entropy source model . . . . . | 618 |
| Figure 127. | RNG initialization overview . . . . . | 620 |
| Figure 128. | AES block diagram . . . . . | 629 |
| Figure 129. | ECB encryption and decryption principle . . . . . | 631 |
| Figure 130. | CBC encryption and decryption principle . . . . . | 632 |
| Figure 131. | CTR encryption and decryption principle . . . . . | 633 |
| Figure 132. | GCM encryption and authentication principle . . . . . | 634 |
| Figure 133. | GMAC authentication principle . . . . . | 634 |
| Figure 134. | CCM encryption and authentication principle . . . . . | 635 |
| Figure 135. | Encryption key derivation for ECB/CBC decryption (Mode 2). . . . . | 638 |
| Figure 136. | Example of suspend mode management . . . . . | 639 |
| Figure 137. | ECB encryption . . . . . | 640 |
| Figure 138. | ECB decryption . . . . . | 640 |
| Figure 139. | CBC encryption . . . . . | 641 |
| Figure 140. | CBC decryption . . . . . | 641 |
| Figure 141. | ECB/CBC encryption (Mode 1) . . . . . | 642 |
| Figure 142. | ECB/CBC decryption (Mode 3) . . . . . | 643 |
| Figure 143. | Message construction in CTR mode . . . . . | 645 |
| Figure 144. | CTR encryption . . . . . | 646 |
| Figure 145. | CTR decryption . . . . . | 646 |
| Figure 146. | Message construction in GCM . . . . . | 648 |
| Figure 147. GCM authenticated encryption . . . . . | 649 |
| Figure 148. Message construction in GMAC mode . . . . . | 653 |
| Figure 149. GMAC authentication mode . . . . . | 653 |
| Figure 150. Message construction in CCM mode . . . . . | 654 |
| Figure 151. CCM mode authenticated encryption . . . . . | 656 |
| Figure 152. 128-bit block construction with respect to data swap . . . . . | 660 |
| Figure 153. DMA transfer of a 128-bit data block during input phase . . . . . | 662 |
| Figure 154. DMA transfer of a 128-bit data block during output phase . . . . . | 663 |
| Figure 155. PKA block diagram . . . . . | 678 |
| Figure 156. Advanced-control timer block diagram . . . . . | 705 |
| Figure 157. Counter timing diagram with prescaler division change from 1 to 2 . . . . . | 707 |
| Figure 158. Counter timing diagram with prescaler division change from 1 to 4 . . . . . | 707 |
| Figure 159. Counter timing diagram, internal clock divided by 1 . . . . . | 709 |
| Figure 160. Counter timing diagram, internal clock divided by 2 . . . . . | 709 |
| Figure 161. Counter timing diagram, internal clock divided by 4 . . . . . | 710 |
| Figure 162. Counter timing diagram, internal clock divided by N . . . . . | 710 |
| Figure 163. Counter timing diagram, update event when ARPE=0 (TIMx_ARR not preloaded) . . . . . | 711 |
| Figure 164. Counter timing diagram, update event when ARPE=1 (TIMx_ARR preloaded) . . . . . | 711 |
| Figure 165. Counter timing diagram, internal clock divided by 1 . . . . . | 713 |
| Figure 166. Counter timing diagram, internal clock divided by 2 . . . . . | 713 |
| Figure 167. Counter timing diagram, internal clock divided by 4 . . . . . | 714 |
| Figure 168. Counter timing diagram, internal clock divided by N . . . . . | 714 |
| Figure 169. Counter timing diagram, update event when repetition counter is not used . . . . . | 715 |
| Figure 170. Counter timing diagram, internal clock divided by 1, TIMx_ARR = 0x6 . . . . . | 716 |
| Figure 171. Counter timing diagram, internal clock divided by 2 . . . . . | 717 |
| Figure 172. Counter timing diagram, internal clock divided by 4, TIMx_ARR=0x36 . . . . . | 717 |
| Figure 173. Counter timing diagram, internal clock divided by N . . . . . | 718 |
| Figure 174. Counter timing diagram, update event with ARPE=1 (counter underflow) . . . . . | 718 |
| Figure 175. Counter timing diagram, Update event with ARPE=1 (counter overflow) . . . . . | 719 |
| Figure 176. Update rate examples depending on mode and TIMx_RCR register settings . . . . . | 720 |
| Figure 177. External trigger input block . . . . . | 721 |
| Figure 178. TIM1 ETR input circuitry . . . . . | 721 |
| Figure 179. Control circuit in normal mode, internal clock divided by 1 . . . . . | 722 |
| Figure 180. TI2 external clock connection example . . . . . | 723 |
| Figure 181. Control circuit in external clock mode 1 . . . . . | 724 |
| Figure 182. External trigger input block . . . . . | 724 |
| Figure 183. Control circuit in external clock mode 2 . . . . . | 725 |
| Figure 184. Capture/compare channel (example: channel 1 input stage) . . . . . | 726 |
| Figure 185. Capture/compare channel 1 main circuit . . . . . | 726 |
| Figure 186. Output stage of capture/compare channel (channel 1, idem ch. 2 and 3) . . . . . | 727 |
| Figure 187. Output stage of capture/compare channel (channel 4) . . . . . | 727 |
| Figure 188. Output stage of capture/compare channel (channel 5, idem ch. 6) . . . . . | 728 |
| Figure 189. PWM input mode timing . . . . . | 730 |
| Figure 190. Output compare mode, toggle on OC1 . . . . . | 732 |
| Figure 191. Edge-aligned PWM waveforms (ARR=8) . . . . . | 733 |
| Figure 192. Center-aligned PWM waveforms (ARR=8) . . . . . | 734 |
| Figure 193. Generation of 2 phase-shifted PWM signals with 50% duty cycle . . . . . | 736 |
| Figure 194. Combined PWM mode on channel 1 and 3 . . . . . | 737 |
| Figure 195. 3-phase combined PWM signals with multiple trigger pulses per period . . . . . | 738 |
| Figure 196. Complementary output with dead-time insertion . . . . . | 739 |
| Figure 197. Dead-time waveforms with delay greater than the negative pulse . . . . . | 739 |
| Figure 198. Dead-time waveforms with delay greater than the positive pulse . . . . . | 740 |
| Figure 199. Break and Break2 circuitry overview . . . . . | 742 |
| Figure 200. Various output behavior in response to a break event on BRK (OSSI = 1) . . . . . | 744 |
| Figure 201. PWM output state following BRK and BRK2 pins assertion (OSSI=1) . . . . . | 745 |
| Figure 202. PWM output state following BRK assertion (OSSI=0) . . . . . | 746 |
| Figure 203. Output redirection (BRK2 request not represented) . . . . . | 747 |
| Figure 204. Clearing TIMx OCxREF . . . . . | 748 |
| Figure 205. 6-step generation, COM example (OSSR=1) . . . . . | 749 |
| Figure 206. Example of one pulse mode. . . . . | 750 |
| Figure 207. Retriggerable one pulse mode . . . . . | 752 |
| Figure 208. Example of counter operation in encoder interface mode. . . . . | 753 |
| Figure 209. Example of encoder interface mode with TI1FP1 polarity inverted. . . . . | 754 |
| Figure 210. Measuring time interval between edges on 3 signals . . . . . | 755 |
| Figure 211. Example of Hall sensor interface . . . . . | 757 |
| Figure 212. Control circuit in reset mode . . . . . | 758 |
| Figure 213. Control circuit in Gated mode . . . . . | 759 |
| Figure 214. Control circuit in trigger mode . . . . . | 760 |
| Figure 215. Control circuit in external clock mode 2 + trigger mode . . . . . | 761 |
| Figure 216. General-purpose timer block diagram . . . . . | 805 |
| Figure 217. Counter timing diagram with prescaler division change from 1 to 2 . . . . . | 807 |
| Figure 218. Counter timing diagram with prescaler division change from 1 to 4 . . . . . | 807 |
| Figure 219. Counter timing diagram, internal clock divided by 1 . . . . . | 808 |
| Figure 220. Counter timing diagram, internal clock divided by 2 . . . . . | 809 |
| Figure 221. Counter timing diagram, internal clock divided by 4 . . . . . | 809 |
| Figure 222. Counter timing diagram, internal clock divided by N . . . . . | 810 |
| Figure 223. Counter timing diagram, Update event when ARPE=0 (TIMx_ARR not preloaded). . . . . | 810 |
| Figure 224. Counter timing diagram, Update event when ARPE=1 (TIMx_ARR preloaded). . . . . | 811 |
| Figure 225. Counter timing diagram, internal clock divided by 1 . . . . . | 812 |
| Figure 226. Counter timing diagram, internal clock divided by 2 . . . . . | 812 |
| Figure 227. Counter timing diagram, internal clock divided by 4 . . . . . | 813 |
| Figure 228. Counter timing diagram, internal clock divided by N . . . . . | 813 |
| Figure 229. Counter timing diagram, Update event . . . . . | 814 |
| Figure 230. Counter timing diagram, internal clock divided by 1, TIMx_ARR=0x6 . . . . . | 815 |
| Figure 231. Counter timing diagram, internal clock divided by 2 . . . . . | 816 |
| Figure 232. Counter timing diagram, internal clock divided by 4, TIMx_ARR=0x36 . . . . . | 816 |
| Figure 233. Counter timing diagram, internal clock divided by N . . . . . | 817 |
| Figure 234. Counter timing diagram, Update event with ARPE=1 (counter underflow). . . . . | 817 |
| Figure 235. Counter timing diagram, Update event with ARPE=1 (counter overflow). . . . . | 818 |
| Figure 236. Control circuit in normal mode, internal clock divided by 1 . . . . . | 819 |
| Figure 237. TI2 external clock connection example. . . . . | 819 |
| Figure 238. Control circuit in external clock mode 1 . . . . . | 820 |
| Figure 239. External trigger input block . . . . . | 821 |
| Figure 240. Control circuit in external clock mode 2 . . . . . | 822 |
| Figure 241. Capture/Compare channel (example: channel 1 input stage) . . . . . | 822 |
| Figure 242. Capture/Compare channel 1 main circuit . . . . . | 823 |
| Figure 243. Output stage of Capture/Compare channel (channel 1). . . . . | 823 |
| Figure 244. PWM input mode timing . . . . . | 825 |
| Figure 245. Output compare mode, toggle on OC1 . . . . . | 827 |
| Figure 246. Edge-aligned PWM waveforms (ARR=8) . . . . . | 828 |
| Figure 247. Center-aligned PWM waveforms (ARR=8). . . . . | 830 |
| Figure 248. Generation of 2 phase-shifted PWM signals with 50% duty cycle . . . . . | 831 |
| Figure 249. Combined PWM mode on channels 1 and 3 . . . . . | 832 |
| Figure 250. Clearing TIMx OCxREF . . . . . | 833 |
| Figure 251. Example of one-pulse mode. . . . . | 834 |
| Figure 252. Retriggerable one-pulse mode . . . . . | 836 |
| Figure 253. Example of counter operation in encoder interface mode . . . . . | 837 |
| Figure 254. Example of encoder interface mode with TI1FP1 polarity inverted . . . . . | 838 |
| Figure 255. Control circuit in reset mode . . . . . | 839 |
| Figure 256. Control circuit in gated mode . . . . . | 840 |
| Figure 257. Control circuit in trigger mode . . . . . | 841 |
| Figure 258. Control circuit in external clock mode 2 + trigger mode . . . . . | 842 |
| Figure 259. Master/Slave timer example . . . . . | 843 |
| Figure 260. Master/slave connection example with 1 channel only timers . . . . . | 843 |
| Figure 261. Gating TIM2 with OC1REF of TIM1 . . . . . | 844 |
| Figure 262. Gating TIM2 with Enable of TIM1 . . . . . | 845 |
| Figure 263. Triggering TIM2 with update of TIM1 . . . . . | 846 |
| Figure 264. Triggering TIM2 with Enable of TIM1 . . . . . | 846 |
| Figure 265. TIM16/TIM17 block diagram . . . . . | 877 |
| Figure 266. Counter timing diagram with prescaler division change from 1 to 2 . . . . . | 879 |
| Figure 267. Counter timing diagram with prescaler division change from 1 to 4 . . . . . | 879 |
| Figure 268. Counter timing diagram, internal clock divided by 1 . . . . . | 881 |
| Figure 269. Counter timing diagram, internal clock divided by 2 . . . . . | 881 |
| Figure 270. Counter timing diagram, internal clock divided by 4 . . . . . | 882 |
| Figure 271. Counter timing diagram, internal clock divided by N . . . . . | 882 |
| Figure 272. Counter timing diagram, update event when ARPE=0 (TIMx_ARR not preloaded). . . . . | 883 |
| Figure 273. Counter timing diagram, update event when ARPE=1 (TIMx_ARR preloaded). . . . . | 883 |
| Figure 274. Update rate examples depending on mode and TIMx_RCR register settings . . . . . | 885 |
| Figure 275. Control circuit in normal mode, internal clock divided by 1 . . . . . | 886 |
| Figure 276. TI2 external clock connection example. . . . . | 886 |
| Figure 277. Control circuit in external clock mode 1 . . . . . | 887 |
| Figure 278. Capture/compare channel (example: channel 1 input stage) . . . . . | 888 |
| Figure 279. Capture/compare channel 1 main circuit . . . . . | 888 |
| Figure 280. Output stage of capture/compare channel (channel 1). . . . . | 889 |
| Figure 281. Output compare mode, toggle on OC1 . . . . . | 892 |
| Figure 282. Edge-aligned PWM waveforms (ARR=8) . . . . . | 893 |
| Figure 283. Complementary output with dead-time insertion. . . . . | 894 |
| Figure 284. Dead-time waveforms with delay greater than the negative pulse. . . . . | 894 |
| Figure 285. Dead-time waveforms with delay greater than the positive pulse. . . . . | 895 |
| Figure 286. Output behavior in response to a break . . . . . | 897 |
| Figure 287. Output redirection . . . . . | 899 |
| Figure 288. 6-step generation, COM example (OSSR=1) . . . . . | 900 |
| Figure 289. Example of one pulse mode . . . . . | 901 |
| Figure 290. Low-power timer block diagram . . . . . | 930 |
| Figure 291. Glitch filter timing diagram . . . . . | 932 |
| Figure 292. LPTIM output waveform, single counting mode configuration . . . . . | 934 |
| Figure 293. LPTIM output waveform, Single counting mode configuration and Set-once mode activated (WAVE bit is set). . . . . | 934 |
| Figure 294. LPTIM output waveform, Continuous counting mode configuration . . . . . | 935 |
| Figure 295. Waveform generation . . . . . | 936 |
| Figure 296. Encoder mode counting sequence . . . . . | 940 |
| Figure 297. IRTIM internal hardware connections with TIM16 and TIM17 . . . . . | 953 |
| Figure 298. Independent watchdog block diagram . . . . . | 954 |
| Figure 299. Watchdog block diagram . . . . . | 964 |
| Figure 300. Window watchdog timing diagram . . . . . | 965 |
| Figure 301. RTC block diagram . . . . . | 971 |
| Figure 302. Block diagram . . . . . | 1013 |
| Figure 303. I 2 C-bus protocol . . . . . | 1015 |
| Figure 304. Setup and hold timings . . . . . | 1017 |
| Figure 305. I2C initialization flow . . . . . | 1019 |
| Figure 306. Data reception . . . . . | 1020 |
| Figure 307. Data transmission . . . . . | 1021 |
| Figure 308. Target initialization flow . . . . . | 1024 |
| Figure 309. Transfer sequence flow for I2C target transmitter, NOSTRETCH = 0 . . . . . | 1026 |
| Figure 310. Transfer sequence flow for I2C target transmitter, NOSTRETCH = 1 . . . . . | 1027 |
| Figure 311. Transfer bus diagrams for I2C target transmitter (mandatory events only) . . . . . | 1028 |
| Figure 312. Transfer sequence flow for I2C target receiver, NOSTRETCH = 0 . . . . . | 1029 |
| Figure 313. Transfer sequence flow for I2C target receiver, NOSTRETCH = 1 . . . . . | 1030 |
| Figure 314. Transfer bus diagrams for I2C target receiver (mandatory events only) . . . . . | 1030 |
| Figure 315. Controller clock generation . . . . . | 1032 |
| Figure 316. Controller initialization flow . . . . . | 1034 |
| Figure 317. 10-bit address read access with HEAD10R = 0 . . . . . | 1034 |
| Figure 318. 10-bit address read access with HEAD10R = 1 . . . . . | 1035 |
| Figure 319. Transfer sequence flow for I2C controller transmitter, N ≤ 255 bytes. . . . . | 1036 |
| Figure 320. Transfer sequence flow for I2C controller transmitter, N > 255 bytes. . . . . | 1037 |
| Figure 321. Transfer bus diagrams for I2C controller transmitter (mandatory events only) . . . . . | 1038 |
| Figure 322. Transfer sequence flow for I2C controller receiver, N ≤ 255 bytes . . . . . | 1040 |
| Figure 323. Transfer sequence flow for I2C controller receiver, N > 255 bytes. . . . . | 1041 |
| Figure 324. Transfer bus diagrams for I2C controller receiver (mandatory events only) . . . . . | 1042 |
| Figure 325. Timeout intervals for t LOW:SEXT , t LOW:MEXT . . . . . | 1046 |
| Figure 326. Transfer sequence flow for SMBus target transmitter N bytes + PEC . . . . . | 1049 |
| Figure 327. Transfer bus diagram for SMBus target transmitter (SBC = 1). . . . . | 1050 |
| Figure 328. Transfer sequence flow for SMBus target receiver N bytes + PEC . . . . . | 1051 |
| Figure 329. Bus transfer diagrams for SMBus target receiver (SBC = 1) . . . . . | 1052 |
| Figure 330. Bus transfer diagrams for SMBus controller transmitter . . . . . | 1053 |
| Figure 331. Bus transfer diagrams for SMBus controller receiver . . . . . | 1055 |
| Figure 332. USART block diagram . . . . . | 1077 |
| Figure 333. Word length programming . . . . . | 1080 |
| Figure 334. Configurable stop bits . . . . . | 1082 |
| Figure 335. TC/TXE behavior when transmitting . . . . . | 1085 |
| Figure 336. Start bit detection when oversampling by 16 or 8. . . . . | 1086 |
| Figure 337. usart_ker_ck clock divider block diagram . . . . . | 1089 |
| Figure 338. Data sampling when oversampling by 16. . . . . | 1090 |
| Figure 339. Data sampling when oversampling by 8. . . . . | 1091 |
| Figure 340. Mute mode using Idle line detection . . . . . | 1098 |
| Figure 341. Mute mode using address mark detection . . . . . | 1099 |
| Figure 342. Break detection in LIN mode (11-bit break length - LBDL bit is set). . . . . | 1102 |
| Figure 343. Break detection in LIN mode vs. Framing error detection. . . . . | 1103 |
| Figure 344. USART example of synchronous master transmission. . . . . | 1104 |
| Figure 345. USART data clock timing diagram in synchronous master mode (M bits = 00) . . . . . | 1104 |
| Figure 346. USART data clock timing diagram in synchronous master mode (M bits = 01) . . . . . | 1105 |
| Figure 347. USART data clock timing diagram in synchronous slave mode (M bits = 00) . . . . . | 1106 |
| Figure 348. ISO 7816-3 asynchronous protocol . . . . . | 1108 |
| Figure 349. Parity error detection using the 1.5 stop bits . . . . . | 1110 |
| Figure 350. IrDA SIR ENDEC block diagram. . . . . | 1114 |
| Figure 351. IrDA data modulation (3/16) - normal mode . . . . . | 1114 |
| Figure 352. Transmission using DMA . . . . . | 1116 |
| Figure 353. Reception using DMA . . . . . | 1117 |
| Figure 354. Hardware flow control between 2 USARTs . . . . . | 1117 |
| Figure 355. RS232 RTS flow control . . . . . | 1118 |
| Figure 356. RS232 CTS flow control . . . . . | 1119 |
| Figure 357. Wake-up event verified (wake-up event = address match, FIFO disabled) . . . . . | 1122 |
| Figure 358. Wake-up event not verified (wake-up event = address match, FIFO disabled) . . . . . | 1122 |
| Figure 359. LPUART block diagram . . . . . | 1163 |
| Figure 360. LPUART word length programming . . . . . | 1166 |
| Figure 361. Configurable stop bits . . . . . | 1168 |
| Figure 362. TC/TXE behavior when transmitting . . . . . | 1170 |
| Figure 363. lpuart_ker_ck clock divider block diagram . . . . . | 1173 |
| Figure 364. Mute mode using Idle line detection . . . . . | 1177 |
| Figure 365. Mute mode using address mark detection . . . . . | 1178 |
| Figure 366. Transmission using DMA . . . . . | 1180 |
| Figure 367. Reception using DMA . . . . . | 1181 |
| Figure 368. Hardware flow control between 2 LPUARTs . . . . . | 1182 |
| Figure 369. RS232 RTS flow control . . . . . | 1182 |
| Figure 370. RS232 CTS flow control . . . . . | 1183 |
| Figure 371. Wake-up event verified (wake-up event = address match, FIFO disabled) . . . . . | 1186 |
| Figure 372. Wake-up event not verified (wake-up event = address match, FIFO disabled) . . . . . | 1186 |
| Figure 373. SPI block diagram. . . . . | 1214 |
| Figure 374. Full-duplex single master/ single slave application. . . . . | 1215 |
| Figure 375. Half-duplex single master/ single slave application . . . . . | 1216 |
| Figure 376. Simplex single master/single slave application (master in transmit-only/ slave in receive-only mode) . . . . . | 1217 |
| Figure 377. Master and three independent slaves. . . . . | 1218 |
| Figure 378. Multimaster application . . . . . | 1219 |
| Figure 379. Hardware/software slave select management . . . . . | 1220 |
| Figure 380. Data clock timing diagram . . . . . | 1221 |
| Figure 381. Data alignment when data length is not equal to 8-bit or 16-bit . . . . . | 1222 |
| Figure 382. Packing data in FIFO for transmission and reception. . . . . | 1226 |
| Figure 383. Master full-duplex communication . . . . . | 1229 |
| Figure 384. Slave full-duplex communication . . . . . | 1230 |
| Figure 385. Master full-duplex communication with CRC . . . . . | 1231 |
| Figure 386. Master full-duplex communication in packed mode . . . . . | 1232 |
| Figure 387. NSSP pulse generation in Motorola SPI master mode. . . . . | 1235 |
| Figure 388. TI mode transfer . . . . . | 1236 |
| Figure 389. SAI functional block diagram . . . . . | 1250 |
| Figure 390. Audio frame . . . . . | 1253 |
| Figure 391. FS role is start of frame + channel side identification (FSDEF = TRIS = 1) . . . . . | 1256 |
| Figure 392. FS role is start of frame (FSDEF = 0) . . . . . | 1257 |
| Figure 393. Slot size configuration with FBOFF = 0 in SAI_xSLOTR . . . . . | 1258 |
| Figure 394. First bit offset . . . . . | 1258 |
| Figure 395. Audio block clock generator overview . . . . . | 1260 |
| Figure 396. PDM typical connection and timing . . . . . | 1264 |
| Figure 397. Detailed PDM interface block diagram . . . . . | 1265 |
| Figure 398. Start-up sequence . . . . . | 1266 |
| Figure 399. SAI_ADR format in TDM mode, 32-bit slot width . . . . . | 1267 |
| Figure 400. SAI_ADR format in TDM mode, 16-bit slot width . . . . . | 1268 |
| Figure 401. SAI_ADR format in TDM mode, 8-bit slot width . . . . . | 1269 |
| Figure 402. AC'97 audio frame . . . . . | 1272 |
| Figure 403. SPDIF format . . . . . | 1273 |
| Figure 404. SAI_xDR register ordering . . . . . | 1274 |
| Figure 405. Data companding hardware in an audio block in the SAI . . . . . | 1277 |
| Figure 406. Tristate strategy on SD output line on an inactive slot . . . . . | 1279 |
| Figure 407. Tristate on output data line in a protocol like I2S . . . . . | 1280 |
| Figure 408. Overrun detection error . . . . . | 1281 |
| Figure 409. FIFO underrun event . . . . . | 1281 |
| Figure 410. USB peripheral block diagram . . . . . | 1315 |
| Figure 411. Packet buffer areas with examples of buffer description table locations . . . . . | 1319 |
| Figure 412. Block diagram of debug support infrastructure . . . . . | 1349 |
| Figure 413. JTAG TAP state machine . . . . . | 1352 |
| Figure 414. Debug and access port connections . . . . . | 1364 |
| Figure 415. Debugger connection to debug components . . . . . | 1366 |
| Figure 416. Embedded cross trigger . . . . . | 1372 |
| Figure 417. Mapping trigger inputs to outputs . . . . . | 1374 |
| Figure 418. Cross trigger configuration example . . . . . | 1375 |
| Figure 419. CPU2 CoreSight™ topology . . . . . | 1402 |
| Figure 420. CPU1 CoreSight™ topology . . . . . | 1437 |
| Figure 421. Trace port interface unit (TPIU) . . . . . | 1493 |
Chapters
- 1. Documentation conventions
- 2. System and memory overview
- 3. Embedded flash memory (FLASH)
- 4. Radio system
- 5. Power control (PWR)
- 6. Reset and clock control (RCC)
- 7. Clock recovery system (CRS)
- 8. Hardware semaphore (HSEM)
- 9. Inter-processor communication controller (IPCC)
- 10. General-purpose I/Os (GPIO)
- 11. System configuration controller (SYSCFG)
- 12. Peripherals interconnect matrix
- 13. Direct memory access controller (DMA)
- 14. DMA request multiplexer (DMAMUX)
- 15. Nested vectored interrupt controller (NVIC)
- 16. Extended interrupt and event controller (EXTI)
- 17. Cyclic redundancy check calculation unit (CRC)
- 18. Quad-SPI interface (QUADSPI)
- 19. Analog-to-digital converter (ADC)
- 20. Voltage reference buffer (VREFBUF)
- 21. Comparator (COMP)
- 22. Liquid crystal display controller (LCD)
- 23. Touch sensing controller (TSC)
- 24. True random number generator (RNG)
- 25. AES hardware accelerator (AES)
- 26. Public key accelerator (PKA)
- 27. Advanced-control timer (TIM1)
- 28. General-purpose timer (TIM2)
- 29. General-purpose timers (TIM16/TIM17)
- 30. Low-power timer (LPTIM)
- 31. Infrared interface (IRTIM)
- 32. Independent watchdog (IWDG)
- 33. System window watchdog (WWDG)
- 34. Real-time clock (RTC)
- 35. Inter-integrated circuit interface (I2C)
- 36. Universal synchronous/asynchronous receiver transmitter (USART/UART)
- 37. Low-power universal asynchronous receiver transmitter (LPUART)
- 38. Serial peripheral interface (SPI)
- 39. Serial audio interface (SAI)
- 40. Universal serial bus full-speed device interface (USB)
- 41. Debug support (DBG)
- 42. Device electronic signature
- 43. Important security notice
- 44. Revision history
- Index