RM0487-STM32U3
This reference manual complements the datasheets of the STM32U3 series microcontrollers, providing information required for application and in particular for software development. It pertains to the superset of feature sets available on STM32U3 series microcontrollers.
For feature set, ordering information, and mechanical and electrical characteristics of a particular STM32U3 series device, refer to its corresponding datasheet.
For information on the Arm ® Cortex-M33 core, refer to the Cortex-M33 technical reference manual .
The STM32U3 series microcontrollers include ST state-of-the-art patented technology.
Related documents
- • Cortex-M33 Technical Reference Manual , available from: http://infocenter.arm.com
- • PM0264 programming manual for Cortex-M33 core (a)
- • STM32U3 series datasheets (a)
- • STM32U3 series errata sheets (a)
- • AN2606 application note on booting STM32 MCUs (a)
a. Available on STMicroelectronics website www.st.com
Contents
- 1 Documentation conventions . . . . . 98
- 1.1 General information . . . . . 98
- 1.2 List of abbreviations for registers . . . . . 98
- 1.3 Register reset value . . . . . 99
- 1.4 Glossary . . . . . 99
- 1.5 Availability of peripherals . . . . . 99
- 2 Memory and bus architecture . . . . . 100
- 2.1 System architecture . . . . . 100
- 2.1.1 Fast C-bus . . . . . 101
- 2.1.2 Slow C-bus . . . . . 101
- 2.1.3 S-bus . . . . . 101
- 2.1.4 GPDMA-bus . . . . . 102
- 2.1.5 SDMMC1 controller DMA bus . . . . . 102
- 2.1.6 Bus matrix . . . . . 102
- 2.1.7 AHB/APB bridges . . . . . 102
- 2.2 Arm TrustZone security architecture . . . . . 102
- 2.2.1 Default Arm TrustZone security state . . . . . 103
- 2.2.2 Arm TrustZone peripheral classification . . . . . 104
- 2.3 Memory organization . . . . . 108
- 2.3.1 Introduction . . . . . 108
- 2.3.2 Memory map and register boundary addresses . . . . . 109
- 2.3.3 Embedded SRAMs . . . . . 116
- 2.3.4 Flash memory overview . . . . . 116
- 2.1 System architecture . . . . . 100
- 3 System security . . . . . 117
- 3.1 Key security features . . . . . 117
- 3.2 Secure install . . . . . 118
- 3.3 Secure boot . . . . . 118
- 3.3.1 Unique boot entry and BOOT_LOCK . . . . . 119
- 3.3.2 Immutable root of trust in system flash memory . . . . . 119
- 3.4 Secure update . . . . . 119
- 3.5 Resource isolation using TrustZone . . . . . 120
- 3.5.1 TrustZone security architecture . . . . . 120
- 3.5.2 Armv8-M security extension of Cortex-M33 . . . . . 121
- 3.5.3 Memory and peripheral allocation using IDAU/SAU . . . . . 121
- 3.5.4 Memory and peripheral allocation using GTZC . . . . . 123
- 3.5.5 Managing security in TrustZone-aware peripherals . . . . . 127
- 3.5.6 Activating TrustZone security . . . . . 133
- 3.5.7 Deactivating TrustZone security . . . . . 134
- 3.6 Other resource isolations . . . . . 134
- 3.6.1 Temporal isolation using secure hide protection (HDP) . . . . . 134
- 3.6.2 Resource isolation using Cortex privileged mode . . . . . 135
- 3.7 Secure execution . . . . . 139
- 3.7.1 Memory protection unit (MPU) . . . . . 139
- 3.7.2 Embedded flash memory write protection . . . . . 139
- 3.7.3 Tamper detection and response . . . . . 140
- 3.8 Secure storage . . . . . 141
- 3.8.1 Hardware secret key management . . . . . 142
- 3.8.2 Unique ID . . . . . 143
- 3.9 Cryptographic engines . . . . . 143
- 3.9.1 Cryptographic engines features . . . . . 143
- 3.9.2 Secure AES co-processor (SAES) . . . . . 144
- 3.10 Product life-cycle . . . . . 145
- 3.10.1 Life-cycle management with readout protection (RDP) . . . . . 146
- 3.10.2 Recommended option-byte settings . . . . . 148
- 3.11 Access controlled debug . . . . . 149
- 3.11.1 Debug protection with readout protection (RDP) . . . . . 149
- 3.12 Software intellectual property protection and collaborative development 149
- 3.12.1 Software intellectual property protection with RDP . . . . . 150
- 3.12.2 Other software intellectual property protections . . . . . 151
- 4 Boot modes . . . . . 152
- 4.1 Embedded bootloader . . . . . 154
- 4.2 Embedded root security services (RSS) . . . . . 154
- 5 Global TrustZone controller (GTZC) . . . . . 155
- 5.0.1 GTZC introduction . . . . . 155
- 5.0.2 GTZC main features . . . . . 155
- 5.0.3 GTZC implementation . . . . . 157
- 5.1 GTZC functional description . . . . . 159
- 5.1.1 GTZC block diagram . . . . . 159
- 5.1.2 Illegal access definition . . . . . 160
- 5.1.3 TrustZone security controller (TZSC) . . . . . 161
- 5.1.4 Memory protection controller - block based (MPCBB) . . . . . 161
- 5.1.5 TrustZone illegal access controller (TZIC) . . . . . 161
- 5.1.6 Power-on/reset state . . . . . 162
- 5.1.7 GTZC interrupts . . . . . 162
- 5.2 GTZC1 TZSC registers . . . . . 162
- 5.2.1 GTZC1 TZSC control register (GTZC1_TZSC_CR) . . . . . 162
- 5.2.2 GTZC1 TZSC secure configuration register 1
(GTZC1_TZSC_SECCFGR1) . . . . . 163 - 5.2.3 GTZC1 TZSC secure configuration register 2
(GTZC1_TZSC_SECCFGR2) . . . . . 166 - 5.2.4 GTZC1 TZSC secure configuration register 3
(GTZC1_TZSC_SECCFGR3) . . . . . 168 - 5.2.5 GTZC1 TZSC privilege configuration register 1
(GTZC1_TZSC_PRIVCFGR1) . . . . . 170 - 5.2.6 GTZC1 TZSC privilege configuration register 2
(GTZC1_TZSC_PRIVCFGR2) . . . . . 172 - 5.2.7 GTZC1 TZSC privilege configuration register 3
(GTZC1_TZSC_PRIVCFGR3) . . . . . 174 - 5.2.8 GTZC1 TZSC register map . . . . . 176
- 5.3 GTZC1 TZIC registers . . . . . 177
- 5.3.1 GTZC1 TZIC interrupt enable register 1 (GTZC1_TZIC_IER1) . . . . . 177
- 5.3.2 GTZC1 TZIC interrupt enable register 2 (GTZC1_TZIC_IER2) . . . . . 179
- 5.3.3 GTZC1 TZIC interrupt enable register 3 (GTZC1_TZIC_IER3) . . . . . 181
- 5.3.4 GTZC1 TZIC interrupt enable register 4 (GTZC1_TZIC_IER4) . . . . . 183
- 5.3.5 GTZC1 TZIC status register 1 (GTZC1_TZIC_SR1) . . . . . 185
- 5.3.6 GTZC1 TZIC status register 2 (GTZC1_TZIC_SR2) . . . . . 187
- 5.3.7 GTZC1 TZIC status register 3 (GTZC1_TZIC_SR3) . . . . . 189
- 5.3.8 GTZC1 TZIC status register 4 (GTZC1_TZIC_SR4) . . . . . 191
- 5.3.9 GTZC1 TZIC flag clear register 1 (GTZC1_TZIC_FCR1) . . . . . 193
- 5.3.10 GTZC1 TZIC flag clear register 2 (GTZC1_TZIC_FCR2) . . . . . 195
- 5.3.11 GTZC1 TZIC flag clear register 3 (GTZC1_TZIC_FCR3) . . . . . 197
- 5.3.12 GTZC1 TZIC flag clear register 4 (GTZC1_TZIC_FCR4) . . . . . 199
- 5.3.13 GTZC1 TZIC register map . . . . . 200
| 5.4 | GTZC1 MPCBB1 registers . . . . . | 202 |
| 5.4.1 | GTZC1 SRAM1 MPCBB control register (GTZC1_MPCBB1_CR) . . . | 202 |
| 5.4.2 | GTZC1 SRAM1 MPCBB configuration lock register 1 (GTZC1_MPCBB1_CFGLOCKR1) . . . . . | 203 |
| 5.4.3 | GTZC1 SRAM1 MPCBB security configuration for super-block x register (GTZC1_MPCBB1_SECCFGGRx) . . . . . | 203 |
| 5.4.4 | GTZC1 SRAM1 MPCBB privileged configuration for super-block x register (GTZC1_MPCBB1_PRIVCFGGRx) . . . . . | 204 |
| 5.4.5 | GTZC1 MPCBB1 register map . . . . . | 204 |
| 5.5 | GTZC1 MPCBB2 registers . . . . . | 205 |
| 5.5.1 | GTZC1 SRAM2 MPCBB control register (GTZC1_MPCBB2_CR) . . . | 205 |
| 5.5.2 | GTZC1 SRAM2 MPCBB configuration lock register 1 (GTZC1_MPCBB2_CFGLOCKR1) . . . . . | 206 |
| 5.5.3 | GTZC1 SRAM2 MPCBB security configuration for super-block x register (GTZC1_MPCBB2_SECCFGGRx) . . . . . | 206 |
| 5.5.4 | GTZC1 SRAM2 MPCBB privileged configuration for super-block x register (GTZC1_MPCBB2_PRIVCFGGRx) . . . . . | 207 |
| 5.5.5 | GTZC1 MPCBB2 register map . . . . . | 207 |
| 5.6 | GTZC1 MPCBB3 registers . . . . . | 208 |
| 5.6.1 | GTZC1 SRAM3 MPCBB control register (GTZC1_MPCBB3_CR) . . . | 208 |
| 5.6.2 | GTZC1 SRAM3 MPCBB configuration lock register 1 (GTZC1_MPCBB3_CFGLOCKR1) . . . . . | 209 |
| 5.6.3 | GTZC1 SRAM3 MPCBB security configuration for super-block x register (GTZC1_MPCBB3_SECCFGGRx) . . . . . | 209 |
| 5.6.4 | GTZC1 SRAM3 MPCBB privileged configuration for super-block x register (GTZC1_MPCBB3_PRIVCFGGRx) . . . . . | 210 |
| 5.6.5 | GTZC1 MPCBB3 register map . . . . . | 210 |
| 5.7 | GTZC1 MPCBB4 registers . . . . . | 211 |
| 5.7.1 | GTZC1 SRAM4 MPCBB control register (GTZC1_MPCBB4_CR) . . . | 211 |
| 5.7.2 | GTZC1 SRAM4 MPCBB configuration lock register 1 (GTZC1_MPCBB4_CFGLOCKR1) . . . . . | 212 |
| 5.7.3 | GTZC1 SRAM4 MPCBB security configuration for super-block x register (GTZC1_MPCBB4_SECCFGGRx) . . . . . | 212 |
| 5.7.4 | GTZC1 SRAM4 MPCBB privileged configuration for super-block x register (GTZC1_MPCBB4_PRIVCFGGRx) . . . . . | 213 |
| 5.7.5 | GTZC1 MPCBB4 register map . . . . . | 213 |
| 6 | RAM configuration controller (RAMCFG) . . . . . | 214 |
| 6.1 | RAMCFG introduction . . . . . | 214 |
| 6.2 | RAMCFG main features . . . . . | 214 |
| 6.3 | RAMCFG functional description . . . . . | 214 |
| 6.3.1 | Internal SRAMs features . . . . . | 214 |
| 6.3.2 | Parity error detection (SRAM2/3) . . . . . | 215 |
| 6.3.3 | Write protection (SRAM2) . . . . . | 215 |
| 6.3.4 | Software erase . . . . . | 216 |
| 6.4 | RAMCFG in low-power modes . . . . . | 216 |
| 6.5 | RAMCFG interrupts . . . . . | 216 |
| 6.6 | RAMCFG registers . . . . . | 217 |
| 6.6.1 | RAMCFG memory x control register (RAMCFG_MxCR) . . . . . | 217 |
| 6.6.2 | RAMCFG memory x interrupt enable register (RAMCFG_MxIER) . . . . . | 218 |
| 6.6.3 | RAMCFG memory x interrupt status register (RAMCFG_MxISR) . . . . . | 218 |
| 6.6.4 | RAMCFG memory x parity error address register (RAMCFG_MxPEAR) . . . . . | 219 |
| 6.6.5 | RAMCFG memory x interrupt clear register (RAMCFG_MxICR) . . . . . | 219 |
| 6.6.6 | RAMCFG memory 2 write protection register 1 (RAMCFG_M2WPR1) . . . . . | 219 |
| 6.6.7 | RAMCFG memory 2 write protection register 2 (RAMCFG_M2WPR2) . . . . . | 220 |
| 6.6.8 | RAMCFG memory x parity key register (RAMCFG_MxPARKEYR) . . . . . | 220 |
| 6.6.9 | RAMCFG memory x erase key register (RAMCFG_MxERKEYR) . . . . . | 221 |
| 6.6.10 | RAMCFG register map . . . . . | 221 |
| 7 | Embedded flash memory (FLASH) . . . . . | 223 |
| 7.1 | FLASH introduction . . . . . | 223 |
| 7.2 | FLASH main features . . . . . | 223 |
| 7.3 | FLASH functional description . . . . . | 224 |
| 7.3.1 | Flash memory organization . . . . . | 224 |
| 7.3.2 | Error code correction (ECC) . . . . . | 226 |
| 7.3.3 | Read access latency . . . . . | 227 |
| 7.3.4 | Bank power-down mode . . . . . | 229 |
| 7.3.5 | Flash memory program and erase operations . . . . . | 229 |
| 7.3.6 | Flash main memory erase sequences . . . . . | 231 |
| 7.3.7 | Flash memory programming sequences . . . . . | 232 |
| 7.3.8 | Flash memory errors flags . . . . . | 234 |
| 7.3.9 | Read-while-write (RWW) . . . . . | 236 |
| 7.3.10 | Power-down during flash programming or erase operation . . . . . | 236 |
| 7.3.11 | Reset during flash programming or erase operation . . . . . | 236 |
| 7.4 | FLASH option bytes . . . . . | 237 |
| 7.4.1 | Option-byte description . . . . . | 237 |
| 7.4.2 | Option-byte programming . . . . . | 239 |
| 7.5 | FLASH TrustZone security and privilege protections . . . . . | 241 |
| 7.5.1 | TrustZone security protection . . . . . | 241 |
| 7.5.2 | Watermark-based secure flash memory area protection . . . . . | 242 |
| 7.5.3 | Secure hide protection (HDP) . . . . . | 242 |
| 7.5.4 | Secure hide protection extension (HDP extension) . . . . . | 244 |
| 7.5.5 | Block-based secure flash memory area protection . . . . . | 246 |
| 7.5.6 | Flash security attribute state . . . . . | 247 |
| 7.5.7 | Block-based privileged flash memory area protection . . . . . | 247 |
| 7.5.8 | Flash memory register privileged and unprivileged modes . . . . . | 248 |
| 7.5.9 | Flash memory bank attributes in case of bank swap . . . . . | 248 |
| 7.6 | FLASH memory protection . . . . . | 250 |
| 7.6.1 | Write protection (WRP) . . . . . | 250 |
| 7.6.2 | Readout protection (RDP) . . . . . | 251 |
| 7.7 | System memory . . . . . | 260 |
| 7.7.1 | RSS user functions . . . . . | 260 |
| 7.8 | Summary of flash memory and flash memory registers access control . . . . . | 262 |
| 7.9 | FLASH interrupts . . . . . | 266 |
| 7.10 | FLASH registers . . . . . | 266 |
| 7.10.1 | FLASH access control register (FLASH_ACR) . . . . . | 266 |
| 7.10.2 | FLASH nonsecure key register (FLASH_KEYR) . . . . . | 268 |
| 7.10.3 | FLASH secure key register (FLASH_SKEYR) . . . . . | 268 |
| 7.10.4 | FLASH option key register (FLASH_OPTKEYR) . . . . . | 269 |
| 7.10.5 | FLASH bank 1 power-down key register (FLASH_PDKEY1R) . . . . . | 269 |
| 7.10.6 | FLASH bank 2 power-down key register (FLASH_PDKEY2R) . . . . . | 270 |
| 7.10.7 | FLASH nonsecure status register (FLASH_SR) . . . . . | 270 |
| 7.10.8 | FLASH secure status register (FLASH_SSR) . . . . . | 272 |
| 7.10.9 | FLASH nonsecure control register (FLASH_CR) . . . . . | 273 |
| 7.10.10 | FLASH secure control register (FLASH_SCR) . . . . . | 275 |
| 7.10.11 | FLASH ECC register (FLASH_ECCCORR) . . . . . | 277 |
| 7.10.12 | FLASH ECC detection register (FLASH_ECCDETR) . . . . . | 278 |
| 7.10.13 | FLASH operation status register (FLASH_OPSR) . . . . . | 279 |
| 7.10.14 | FLASH option register (FLASH_OPTR) . . . . . | 280 |
| 7.10.15 | FLASH option register [alternate] (FLASH_OPTR) . . . . . | 282 |
7.10.16 FLASH nonsecure boot address 0 register (FLASH_BOOT0R) . . . . . 285
7.10.17 FLASH nonsecure boot address 1 register (FLASH_BOOT1R) . . . . . 286
7.10.18 FLASH secure boot address 0 register (FLASH_SBOOT0R) . . . . . 287
7.10.19 FLASH secure watermark1 register 1 (FLASH_SECWM1R1) . . . . . 288
7.10.20 FLASH secure watermark1 register 2 (FLASH_SECWM1R2) . . . . . 289
7.10.21 FLASH WRP1 area A address register (FLASH_WRP1AR) . . . . . 289
7.10.22 FLASH WRP1 area B address register (FLASH_WRP1BR) . . . . . 290
7.10.23 FLASH secure watermark2 register 1 (FLASH_SECWM2R1) . . . . . 291
7.10.24 FLASH secure watermark2 register 2 (FLASH_SECWM2R2) . . . . . 292
7.10.25 FLASH WRP2 area A address register (FLASH_WRP2AR) . . . . . 293
7.10.26 FLASH WRP2 area B address register (FLASH_WRP2BR) . . . . . 294
7.10.27 FLASH secure block based bank 1 register x (FLASH_SECB1Rx) . . . . . 295
7.10.28 FLASH secure block based bank 2 register x (FLASH_SECB2Rx) . . . . . 295
7.10.29 FLASH secure HDP control register (FLASH_SECHDPCR) . . . . . 296
7.10.30 FLASH privilege configuration register (FLASH_PRIVCFGR) . . . . . 297
7.10.31 FLASH HDP extension register (FLASH_SECHDPEXTR) . . . . . 298
7.10.32 FLASH privilege block based bank 1 register x (FLASH_PRIVBB1Rx) . . . . . 298
7.10.33 FLASH privilege block based bank 2 register x (FLASH_PRIVBB2Rx) . . . . . 300
7.10.34 FLASH OEM1 key register 1 (FLASH_OEM1KEYR1) . . . . . 300
7.10.35 FLASH OEM1 key register 2 (FLASH_OEM1KEYR2) . . . . . 301
7.10.36 FLASH OEM1 key register 3 (FLASH_OEM1KEYR3) . . . . . 301
7.10.37 FLASH OEM1 key register 4 (FLASH_OEM1KEYR4) . . . . . 302
7.10.38 FLASH OEM2 key register 1 (FLASH_OEM2KEYR1) . . . . . 302
7.10.39 FLASH OEM2 key register 2 (FLASH_OEM2KEYR2) . . . . . 303
7.10.40 FLASH OEM2 key register 3 (FLASH_OEM2KEYR3) . . . . . 303
7.10.41 FLASH OEM2 key register 4 (FLASH_OEM2KEYR4) . . . . . 304
7.10.42 FLASH OEM key status register (FLASH_OEMKEYSR) . . . . . 304
7.10.43 FLASH register map . . . . . 305
8 Instruction cache (ICACHE) . . . . . 309
8.1 ICACHE introduction . . . . . 309
8.2 ICACHE main features . . . . . 309
8.3 ICACHE implementation . . . . . 310
8.4 ICACHE functional description . . . . . 310
| 8.4.1 | ICACHE block diagram . . . . . | 311 |
| 8.4.2 | ICACHE reset and clocks . . . . . | 311 |
| 8.4.3 | ICACHE TAG memory . . . . . | 312 |
| 8.4.4 | Direct-mapped ICACHE (1-way cache) . . . . . | 313 |
| 8.4.5 | ICACHE enable . . . . . | 314 |
| 8.4.6 | Cacheable and noncacheable traffic . . . . . | 314 |
| 8.4.7 | Address remapping . . . . . | 315 |
| 8.4.8 | Cacheable accesses . . . . . | 317 |
| 8.4.9 | Dual-master cache . . . . . | 318 |
| 8.4.10 | ICACHE security . . . . . | 318 |
| 8.4.11 | ICACHE maintenance . . . . . | 318 |
| 8.4.12 | ICACHE performance monitoring . . . . . | 319 |
| 8.4.13 | ICACHE boot . . . . . | 319 |
| 8.5 | ICACHE low-power modes . . . . . | 319 |
| 8.6 | ICACHE error management and interrupts . . . . . | 320 |
| 8.7 | ICACHE registers . . . . . | 320 |
| 8.7.1 | ICACHE control register (ICACHE_CR) . . . . . | 320 |
| 8.7.2 | ICACHE status register (ICACHE_SR) . . . . . | 321 |
| 8.7.3 | ICACHE interrupt enable register (ICACHE_IER) . . . . . | 322 |
| 8.7.4 | ICACHE flag clear register (ICACHE_FCR) . . . . . | 322 |
| 8.7.5 | ICACHE hit monitor register (ICACHE_HMONR) . . . . . | 323 |
| 8.7.6 | ICACHE miss monitor register (ICACHE_MMONR) . . . . . | 323 |
| 8.7.7 | ICACHE region x configuration register (ICACHE_CRRx) . . . . . | 323 |
| 8.7.8 | ICACHE register map . . . . . | 324 |
| 9 | Power control (PWR) . . . . . | 326 |
| 9.1 | PWR introduction . . . . . | 326 |
| 9.2 | PWR main features . . . . . | 326 |
| 9.3 | PWR functional description . . . . . | 326 |
| 9.3.1 | PWR pins and internal signals . . . . . | 326 |
| 9.3.2 | PWR power supplies and supply domains . . . . . | 328 |
| 9.3.3 | PWR system supply voltage regulation . . . . . | 332 |
| 9.3.4 | PWR power supply supervision . . . . . | 334 |
| 9.3.5 | PWR power management . . . . . | 337 |
| 9.3.6 | PWR security and privileged protection . . . . . | 360 |
| 9.4 | PWR interrupts . . . . . | 362 |
| 9.5 | PWR registers . . . . . | 363 |
| 9.5.1 | PWR control register 1 (PWR_CR1) . . . . . | 363 |
| 9.5.2 | PWR control register 2 (PWR_CR2) . . . . . | 365 |
| 9.5.3 | PWR control register 3 (PWR_CR3) . . . . . | 367 |
| 9.5.4 | PWR voltage scaling register (PWR_VOSR) . . . . . | 368 |
| 9.5.5 | PWR supply voltage monitoring control register (PWR_SVMCR) . . . . . | 369 |
| 9.5.6 | PWR wake-up control register 1 (PWR_WUCR1) . . . . . | 371 |
| 9.5.7 | PWR wake-up control register 2 (PWR_WUCR2) . . . . . | 371 |
| 9.5.8 | PWR wake-up control register 3 (PWR_WUCR3) . . . . . | 372 |
| 9.5.9 | PWR backup domain control register (PWR_BDCR) . . . . . | 373 |
| 9.5.10 | PWR disable backup domain register (PWR_DBPR) . . . . . | 373 |
| 9.5.11 | PWR security configuration register (PWR_SECCFGR) . . . . . | 374 |
| 9.5.12 | PWR privilege control register (PWR_PRIVCFGR) . . . . . | 375 |
| 9.5.13 | PWR status register (PWR_SR) . . . . . | 375 |
| 9.5.14 | PWR supply voltage monitoring status register (PWR_SVMSR) . . . . . | 376 |
| 9.5.15 | PWR wake-up status register (PWR_WUSR) . . . . . | 377 |
| 9.5.16 | PWR wake-up status clear register (PWR_WUSCR) . . . . . | 377 |
| 9.5.17 | PWR apply pull configuration register (PWR_APCR) . . . . . | 378 |
| 9.5.18 | PWR port A pull-up control register (PWR_PUCRA) . . . . . | 378 |
| 9.5.19 | PWR port A pull-down control register (PWR_PDCRA) . . . . . | 379 |
| 9.5.20 | PWR port B pull-up control register (PWR_PUCRB) . . . . . | 380 |
| 9.5.21 | PWR port B pull-down control register (PWR_PDCRB) . . . . . | 380 |
| 9.5.22 | PWR port C pull-up control register (PWR_PUCRC) . . . . . | 381 |
| 9.5.23 | PWR port C pull-down control register (PWR_PDCRC) . . . . . | 382 |
| 9.5.24 | PWR port D pull-up control register (PWR_PUCRD) . . . . . | 382 |
| 9.5.25 | PWR port D pull-down control register (PWR_PDCRD) . . . . . | 383 |
| 9.5.26 | PWR port E pull-up control register (PWR_PUCRE) . . . . . | 384 |
| 9.5.27 | PWR port E pull-down control register (PWR_PDCRE) . . . . . | 384 |
| 9.5.28 | PWR port F pull-up control register (PWR_PUCRF) . . . . . | 385 |
| 9.5.29 | PWR port F pull-down control register (PWR_PDCRF) . . . . . | 386 |
| 9.5.30 | PWR port G pull-up control register (PWR_PUCRG) . . . . . | 386 |
| 9.5.31 | PWR port G pull-down control register (PWR_PDCRG) . . . . . | 387 |
| 9.5.32 | PWR port H pull-up control register (PWR_PUCRH) . . . . . | 388 |
| 9.5.33 | PWR port H pull-down control register (PWR_PDCRH) . . . . . | 388 |
| 9.5.34 | PWR I3C pull-up control register 1 (PWR_I3CPUCR1) . . . . . | 389 |
| 9.5.35 | PWR I3C pull-up control register 2 (PWR_I3CPUCR2) . . . . . | 390 |
| 9.5.36 | PWR register map . . . . . | 391 |
| 10 | Reset and clock control (RCC) . . . . . | 394 |
| 10.1 | RCC introduction . . . . . | 394 |
| 10.2 | RCC functional description . . . . . | 394 |
| 10.2.1 | RCC pins and internal signals . . . . . | 394 |
| 10.2.2 | RCC reset functional description . . . . . | 394 |
| 10.2.3 | RCC clock functional description . . . . . | 396 |
| 10.2.4 | RCC security and privilege functional description . . . . . | 411 |
| 10.3 | RCC in low-power modes . . . . . | 414 |
| 10.4 | RCC interrupts . . . . . | 415 |
| 10.5 | RCC registers . . . . . | 417 |
| 10.5.1 | RCC clock control register (RCC_CR) . . . . . | 417 |
| 10.5.2 | RCC internal clock source calibration register 1 (RCC_ICSCR1) . . . . . | 420 |
| 10.5.3 | RCC internal clock source calibration register 2 (RCC_ICSCR2) . . . . . | 423 |
| 10.5.4 | RCC internal clock source calibration register 3 (RCC_ICSCR3) . . . . . | 424 |
| 10.5.5 | RCC clock recovery RC register (RCC_CRRRCR) . . . . . | 424 |
| 10.5.6 | RCC clock configuration register 1 (RCC_CFGR1) . . . . . | 425 |
| 10.5.7 | RCC clock configuration register 2 (RCC_CFGR2) . . . . . | 427 |
| 10.5.8 | RCC clock configuration register 3 (RCC_CFGR3) . . . . . | 428 |
| 10.5.9 | RCC clock configuration register 4 (RCC_CFGR4) . . . . . | 429 |
| 10.5.10 | RCC clock interrupt enable register (RCC_CIER) . . . . . | 430 |
| 10.5.11 | RCC clock interrupt flag register (RCC_CIFR) . . . . . | 431 |
| 10.5.12 | RCC clock interrupt clear register (RCC_CICR) . . . . . | 433 |
| 10.5.13 | RCC AHB1 peripheral reset register 1 (RCC_AHB1RSTR1) . . . . . | 434 |
| 10.5.14 | RCC AHB2 peripheral reset register 1 (RCC_AHB2RSTR1) . . . . . | 435 |
| 10.5.15 | RCC AHB2 peripheral reset register 2 (RCC_AHB2RSTR2) . . . . . | 436 |
| 10.5.16 | RCC APB1 peripheral reset register 1 (RCC_APB1RSTR1) . . . . . | 437 |
| 10.5.17 | RCC APB1 peripheral reset register 2 (RCC_APB1RSTR2) . . . . . | 438 |
| 10.5.18 | RCC APB2 peripheral reset register (RCC_APB2RSTR) . . . . . | 439 |
| 10.5.19 | RCC APB3 peripheral reset register (RCC_APB3RSTR) . . . . . | 440 |
| 10.5.20 | RCC AHB1 peripheral clock enable register 1 (RCC_AHB1ENR1) . . . . . | 441 |
| 10.5.21 | RCC AHB2 peripheral clock enable register 1 (RCC_AHB2ENR1) . . . . . | 442 |
| 10.5.22 | RCC AHB2 peripheral clock enable register 2 (RCC_AHB2ENR2) . . . . . | 444 |
| 10.5.23 | RCC AHB1 peripheral clock enable register 2 (RCC_AHB1ENR2) . . . . . | 444 |
| 10.5.24 | RCC APB1 peripheral clock enable register 1 (RCC_APB1ENR1) . . . . . | 445 |
| 10.5.25 | RCC APB1 peripheral clock enable register 2 (RCC_APB1ENR2) . . . . . | 447 |
| 10.5.26 | RCC APB2 peripheral clock enable register (RCC_APB2ENR) . . . . . | 447 |
10.5.27 RCC APB3 peripheral clock enable register (RCC_APB3ENR) . . . . 449
10.5.28 RCC AHB1 peripheral clock enable in Sleep mode register
(RCC_AHB1SLPENR1) . . . . . 450
10.5.29 RCC AHB2 peripheral clock enable in Sleep mode register 1
(RCC_AHB2SLPENR1) . . . . . 451
10.5.30 RCC AHB2 peripheral clock enable in Sleep mode register 2
(RCC_AHB2SLPENR2) . . . . . 453
10.5.31 RCC AHB1 peripheral clock enable in Sleep mode register 2
(RCC_AHB1SLPENR2) . . . . . 453
10.5.32 RCC APB1 peripheral clock enable in Sleep mode register 1
(RCC_APB1SLPENR1) . . . . . 454
10.5.33 RCC APB1 peripheral clock enable in Sleep mode register 2
(RCC_APB1SLPENR2) . . . . . 456
10.5.34 RCC APB2 peripheral clock enable in Sleep mode register
(RCC_APB2SLPENR) . . . . . 457
10.5.35 RCC APB3 peripheral clock enable in Sleep mode register
(RCC_APB3SLPENR) . . . . . 458
10.5.36 RCC AHB1 peripheral clock enable in Stop mode register
(RCC_AHB1STPENR1) . . . . . 459
10.5.37 RCC AHB2 peripheral clock enable in Stop mode register 1
(RCC_AHB2STPENR1) . . . . . 460
10.5.38 RCC APB1 peripheral clock enable in Stop mode register 1
(RCC_APB1STPENR1) . . . . . 461
10.5.39 RCC APB1 peripheral clock enable in Stop mode register 2
(RCC_APB1STPENR2) . . . . . 463
10.5.40 RCC APB2 peripheral clock enable in Stop mode register
(RCC_APB2STPENR) . . . . . 464
10.5.41 RCC APB3 peripheral clock enable in Stop mode register
(RCC_APB3STPENR) . . . . . 465
10.5.42 RCC peripheral independent clock configuration register 1
(RCC_CCIPR1) . . . . . 466
10.5.43 RCC peripheral independent clock configuration register 2
(RCC_CCIPR2) . . . . . 468
10.5.44 RCC peripheral independent clock configuration register 3
(RCC_CCIPR3) . . . . . 470
10.5.45 RCC backup domain control register (RCC_BDCR) . . . . . 471
10.5.46 RCC control/status register (RCC_CSR) . . . . . 474
10.5.47 RCC secure configuration register (RCC_SECCFGR) . . . . . 476
10.5.48 RCC privilege configuration register (RCC_PRIVCFGR) . . . . . 477
10.5.49 RCC register map . . . . . 478
11 Clock recovery system (CRS) . . . . . 484

| 11.1 | CRS introduction . . . . . | 484 |
| 11.2 | CRS main features . . . . . | 484 |
| 11.3 | CRS implementation . . . . . | 484 |
| 11.4 | CRS functional description . . . . . | 485 |
| 11.4.1 | CRS block diagram . . . . . | 485 |
| 11.4.2 | CRS internal signals . . . . . | 485 |
| 11.4.3 | Synchronization input . . . . . | 486 |
| 11.4.4 | Frequency error measurement . . . . . | 486 |
| 11.4.5 | Frequency error evaluation and automatic trimming . . . . . | 487 |
| 11.4.6 | CRS initialization and configuration . . . . . | 488 |
| 11.5 | CRS in low-power modes . . . . . | 489 |
| 11.6 | CRS interrupts . . . . . | 489 |
| 11.7 | CRS registers . . . . . | 489 |
| 11.7.1 | CRS control register (CRS_CR) . . . . . | 489 |
| 11.7.2 | CRS configuration register (CRS_CFGR) . . . . . | 491 |
| 11.7.3 | CRS interrupt and status register (CRS_ISR) . . . . . | 492 |
| 11.7.4 | CRS interrupt flag clear register (CRS_ICR) . . . . . | 494 |
| 11.7.5 | CRS register map . . . . . | 494 |
| 12 | General-purpose I/Os (GPIO) . . . . . | 496 |
| 12.1 | Introduction . . . . . | 496 |
| 12.2 | GPIO main features . . . . . | 496 |
| 12.3 | GPIO functional description . . . . . | 496 |
| 12.3.1 | General-purpose I/O (GPIO) . . . . . | 498 |
| 12.3.2 | I/O pin alternate function multiplexer and mapping . . . . . | 499 |
| 12.3.3 | I/O port control registers . . . . . | 499 |
| 12.3.4 | I/O port state in low-power modes . . . . . | 500 |
| 12.3.5 | I/O port data registers . . . . . | 500 |
| 12.3.6 | I/O data bitwise handling . . . . . | 500 |
| 12.3.7 | GPIO locking mechanism . . . . . | 500 |
| 12.3.8 | I/O alternate function input/output . . . . . | 501 |
| 12.3.9 | Input configuration . . . . . | 501 |
| 12.3.10 | Output configuration . . . . . | 502 |
| 12.3.11 | Alternate function configuration . . . . . | 502 |
| 12.3.12 | Analog configuration . . . . . | 503 |
| 12.3.13 | Using HSE or LSE oscillator pins as GPIOs . . . . . | 503 |
| 12.3.14 | Using the GPIO pins in the RTC supply domain . . . . . | 504 |
| 12.3.15 | Using BOOT0 pin as GPIO . . . . . | 504 |
| 12.3.16 | TrustZone security . . . . . | 504 |
| 12.3.17 | Privileged and unprivileged modes . . . . . | 505 |
| 12.3.18 | High-speed low-voltage mode (HSLV) . . . . . | 505 |
| 12.3.19 | I/O compensation cell . . . . . | 506 |
| 12.4 | GPIO in low-power modes . . . . . | 506 |
| 12.5 | GPIO interrupts . . . . . | 506 |
| 12.6 | GPIO registers . . . . . | 507 |
| 12.6.1 | GPIO port mode register (GPIOx_MODER) (x = A to H) . . . . . | 507 |
| 12.6.2 | GPIO port output type register (GPIOx_OTYPER) (x = A to H) . . . . . | 507 |
| 12.6.3 | GPIO port output speed register (GPIOx_OSPEEDR) (x = A to H) . . . . . | 508 |
| 12.6.4 | GPIO port pull-up/pull-down register (GPIOx_PUPDR) (x = A to H) . . . . . | 509 |
| 12.6.5 | GPIO port input data register (GPIOx_IDR) (x = A to H) . . . . . | 509 |
| 12.6.6 | GPIO port output data register (GPIOx_ODR) (x = A to H) . . . . . | 510 |
| 12.6.7 | GPIO port bit set/reset register (GPIOx_BRR) (x = A to H) . . . . . | 510 |
| 12.6.8 | GPIO port configuration lock register (GPIOx_LCKR) (x = A to H) . . . . . | 511 |
| 12.6.9 | GPIO alternate function low register (GPIOx_AFRL) (x = A to H) . . . . . | 512 |
| 12.6.10 | GPIO alternate function high register (GPIOx_AFRH) (x = A to H) . . . . . | 513 |
| 12.6.11 | GPIO port bit reset register (GPIOx_BRR) (x = A to H) . . . . . | 514 |
| 12.6.12 | GPIO high-speed low-voltage register (GPIOx_HSLVR) (x = A to H) . . . . . | 515 |
| 12.6.13 | GPIO secure configuration register (GPIOx_SECCFGR) (x = A to H) . . . . . | 515 |
| 12.6.14 | GPIO register map . . . . . | 516 |
| 13 | System configuration controller (SYSCFG) . . . . . | 518 |
| 13.1 | SYSCFG main features . . . . . | 518 |
| 13.2 | SYSCFG functional description . . . . . | 518 |
| 13.2.1 | I/O compensation cell management . . . . . | 518 |
| 13.2.2 | SYSCFG TrustZone security and privilege . . . . . | 519 |
| 13.2.3 | GPIO analog switches supply selection . . . . . | 520 |
| 13.3 | SYSCFG registers . . . . . | 521 |
| 13.3.1 | SYSCFG secure configuration register (SYSCFG_SECCFGR) . . . . . | 521 |
| 13.3.2 | SYSCFG configuration register 1 (SYSCFG_CFGR1) . . . . . | 522 |
| 13.3.3 | SYSCFG FPU interrupt mask register (SYSCFG_FPUIMR) . . . . . | 524 |
| 13.3.4 | SYSCFG CPU nonsecure lock register (SYSCFG_CNSLCKR) . . . . . | 525 |
| 13.3.5 | SYSCFG CPU secure lock register (SYSCFG_CSLCKR) . . . . . | 525 |
| 13.3.6 | SYSCFG configuration register 2 (SYSCFG_CFGR2) . . . . . | 526 |
| 13.3.7 | SYSCFG compensation cell control/status register (SYSCFG_CCCSR) . . . . . | 527 |
| 13.3.8 | SYSCFG compensation cell value register (SYSCFG_CCVR) . . . . . | 529 |
| 13.3.9 | SYSCFG compensation cell code register (SYSCFG_CCCR) . . . . . | 530 |
| 13.3.10 | SYSCFG RSS command register (SYSCFG_RSSCMDR) . . . . . | 531 |
| 13.3.11 | SYSCFG register map . . . . . | 531 |
| 14 | Peripheral interconnect matrix . . . . . | 533 |
| 14.1 | Interconnect matrix introduction . . . . . | 533 |
| 14.2 | Connection summary . . . . . | 533 |
| 14.3 | Interconnection details . . . . . | 536 |
| 14.3.1 | Master to slave interconnection for timers . . . . . | 536 |
| 14.3.2 | Triggers to ADCs . . . . . | 536 |
| 14.3.3 | ADC analog watchdogs as triggers to timers . . . . . | 537 |
| 14.3.4 | Triggers to DAC . . . . . | 538 |
| 14.3.5 | Triggers to ADF1 . . . . . | 538 |
| 14.3.6 | Data input to ADF1 . . . . . | 538 |
| 14.3.7 | Clock sources to timers . . . . . | 539 |
| 14.3.8 | Triggers to low-power timers . . . . . | 540 |
| 14.3.9 | Blanking sources to comparators . . . . . | 540 |
| 14.3.10 | RTC wake-up as inputs to timers . . . . . | 541 |
| 14.3.11 | USB SOF as trigger to timers . . . . . | 541 |
| 14.3.12 | Comparators as inputs, trigger or break signals to timers . . . . . | 541 |
| 14.3.13 | System errors as break signals to timers . . . . . | 542 |
| 14.3.14 | Timers generating IRTIM signal . . . . . | 543 |
| 14.3.15 | Triggers for communication peripherals . . . . . | 543 |
| 14.3.16 | Triggers to GPDMA . . . . . | 544 |
| 14.3.17 | Internal analog signals to analog peripherals . . . . . | 545 |
| 14.3.18 | Clock source for the DAC sample and hold mode . . . . . | 545 |
| 14.3.19 | Internal tamper sources . . . . . | 546 |
| 14.3.20 | Output from tamper to RTC . . . . . | 546 |
| 14.3.21 | Encryption keys to AES/SAES . . . . . | 546 |
| 14.3.22 | I3C IBI acknowledge to timers from I3C1/2 to TIM12/15/16/17 and LPTIM1/2/3 . . . . . | 547 |
| 14.3.23 | Triggers to HSP1 . . . . . | 547 |
| 15 | General purpose direct memory access controller (GPDMA) . . . . . | 548 |
| 15.1 | GPDMA introduction . . . . . | 548 |
| 15.2 | GPDMA main features . . . . . | 548 |
| 15.3 | GPDMA implementation . . . . . | 549 |
| 15.3.1 | GPDMA channels . . . . . | 549 |
| 15.3.2 | GPDMA in low-power modes . . . . . | 550 |
| 15.3.3 | GPDMA requests . . . . . | 550 |
| 15.3.4 | GPDMA block requests . . . . . | 554 |
| 15.3.5 | GPDMA channels with peripheral early termination . . . . . | 554 |
| 15.3.6 | GPDMA triggers . . . . . | 554 |
| 15.4 | GPDMA functional description . . . . . | 557 |
| 15.4.1 | GPDMA block diagram . . . . . | 557 |
| 15.4.2 | GPDMA channel state and direct programming without any linked-list . . . . . | 557 |
| 15.4.3 | GPDMA channel suspend and resume . . . . . | 558 |
| 15.4.4 | GPDMA channel abort and restart . . . . . | 559 |
| 15.4.5 | GPDMA linked-list data structure . . . . . | 560 |
| 15.4.6 | Linked-list item transfer execution . . . . . | 563 |
| 15.4.7 | GPDMA channel state and linked-list programming in run-to-completion mode . . . . . | 563 |
| 15.4.8 | GPDMA channel state and linked-list programming in link step mode . . . . . | 567 |
| 15.4.9 | GPDMA channel state and linked-list programming . . . . . | 574 |
| 15.4.10 | GPDMA FIFO-based transfers . . . . . | 576 |
| 15.4.11 | GPDMA transfer request and arbitration . . . . . | 583 |
| 15.4.12 | GPDMA triggered transfer . . . . . | 587 |
| 15.4.13 | GPDMA circular buffering with linked-list programming . . . . . | 588 |
| 15.4.14 | GPDMA transfer in peripheral flow-control mode . . . . . | 590 |
| 15.4.15 | GPDMA secure/nonsecure channel . . . . . | 591 |
| 15.4.16 | GPDMA privileged/unprivileged channel . . . . . | 592 |
| 15.4.17 | GPDMA error management . . . . . | 592 |
| 15.5 | GPDMA in debug mode . . . . . | 594 |
| 15.6 | GPDMA in low-power modes . . . . . | 594 |
| 15.7 | GPDMA interrupts . . . . . | 595 |
| 15.8 | GPDMA registers . . . . . | 596 |
| 15.8.1 | GPDMA secure configuration register (GPDMA_SECCFGR) . . . . . | 596 |
| 15.8.2 | GPDMA privileged configuration register (GPDMA_PRIVCFGR) . . . . | 597 |
| 15.8.3 | GPDMA configuration lock register (GPDMA_RCFGLOCKR) . . . . . | 597 |
| 15.8.4 | GPDMA nonsecure masked interrupt status register (GPDMA_MISR) . . . . . | 598 |
| 15.8.5 | GPDMA secure masked interrupt status register (GPDMA_SMISR) . . | 599 |
| 15.8.6 | GPDMA channel x linked-list base address register (GPDMA_CxLBAR) . . . . . | 599 |
| 15.8.7 | GPDMA channel x flag clear register (GPDMA_CxFCR) . . . . . | 600 |
| 15.8.8 | GPDMA channel x status register (GPDMA_CxSR) . . . . . | 601 |
| 15.8.9 | GPDMA channel x control register (GPDMA_CxCR) . . . . . | 602 |
| 15.8.10 | GPDMA channel x transfer register 1 (GPDMA_CxTR1) . . . . . | 604 |
| 15.8.11 | GPDMA channel x transfer register 2 (GPDMA_CxTR2) . . . . . | 608 |
| 15.8.12 | GPDMA channel x block register 1 (GPDMA_CxBR1) . . . . . | 612 |
| 15.8.13 | GPDMA channel x alternate block register 1 (GPDMA_CxBR1) . . . . | 613 |
| 15.8.14 | GPDMA channel x source address register (GPDMA_CxSAR) . . . . . | 616 |
| 15.8.15 | GPDMA channel x destination address register (GPDMA_CxDAR) . . | 617 |
| 15.8.16 | GPDMA channel x transfer register 3 (GPDMA_CxTR3) . . . . . | 618 |
| 15.8.17 | GPDMA channel x block register 2 (GPDMA_CxBR2) . . . . . | 619 |
| 15.8.18 | GPDMA channel x linked-list address register (GPDMA_CxLLR) . . . . | 620 |
| 15.8.19 | GPDMA channel x alternate linked-list address register (GPDMA_CxLLR) . . . . . | 622 |
| 15.8.20 | GPDMA register map . . . . . | 623 |
| 16 | Nested vectored interrupt controller (NVIC) . . . . . | 626 |
| 16.1 | NVIC main features . . . . . | 626 |
| 16.2 | SysTick calibration value register . . . . . | 626 |
| 16.3 | Interrupt and exception vectors . . . . . | 627 |
| 17 | Extended interrupts and event controller (EXTI) . . . . . | 633 |
| 17.1 | EXTI introduction . . . . . | 633 |
| 17.2 | EXTI main features . . . . . | 633 |
| 17.3 | EXTI functional description . . . . . | 633 |
| 17.3.1 | EXTI block diagram . . . . . | 633 |
| 17.3.2 | Event features control . . . . . | 635 |
| 17.3.3 | EXTI configurable event input wake-up . . . . . | 636 |
| 17.3.4 | EXTI mux selection . . . . . | 637 |
| 17.3.5 | EXTI functional behavior . . . . . | 637 |
| 17.3.6 | EXTI event protection ..... | 638 |
| 17.4 | EXTI registers ..... | 639 |
| 17.4.1 | EXTI rising trigger selection register (EXTI_RTSR1) ..... | 639 |
| 17.4.2 | EXTI falling trigger selection register (EXTI_FTSR1) ..... | 640 |
| 17.4.3 | EXTI software interrupt event register (EXTI_SWIER1) ..... | 640 |
| 17.4.4 | EXTI rising edge pending register (EXTI_RPR1) ..... | 641 |
| 17.4.5 | EXTI falling edge pending register (EXTI_FPR1) ..... | 642 |
| 17.4.6 | EXTI security configuration register (EXTI_SECCFGR1) ..... | 642 |
| 17.4.7 | EXTI privilege configuration register (EXTI_PRIVCFGR1) ..... | 643 |
| 17.4.8 | EXTI external interrupt selection register (EXTI_EXTICRx) ..... | 643 |
| 17.4.9 | EXTI lock register (EXTI_LOCKR) ..... | 646 |
| 17.4.10 | EXTI CPU wake-up with interrupt mask register (EXTI_IMR1) ..... | 646 |
| 17.4.11 | EXTI CPU wake-up with event mask register (EXTI_EM1R1) ..... | 647 |
| 17.4.12 | EXTI register map ..... | 647 |
| 18 | Cyclic redundancy check calculation unit (CRC) ..... | 649 |
| 18.1 | CRC introduction ..... | 649 |
| 18.2 | CRC main features ..... | 649 |
| 18.3 | CRC functional description ..... | 650 |
| 18.3.1 | CRC block diagram ..... | 650 |
| 18.3.2 | CRC internal signals ..... | 650 |
| 18.3.3 | CRC operation ..... | 650 |
| 18.4 | CRC registers ..... | 652 |
| 18.4.1 | CRC data register (CRC_DR) ..... | 652 |
| 18.4.2 | CRC independent data register (CRC_IDR) ..... | 652 |
| 18.4.3 | CRC control register (CRC_CR) ..... | 653 |
| 18.4.4 | CRC initial value (CRC_INIT) ..... | 654 |
| 18.4.5 | CRC polynomial (CRC_POL) ..... | 654 |
| 18.4.6 | CRC register map ..... | 655 |
| 19 | Hardware signal processor (HSP) ..... | 656 |
| 19.1 | HSP introduction ..... | 656 |
| 19.2 | HSP main features ..... | 658 |
| 19.3 | HSP implementation ..... | 659 |
| 19.4 | HSP functional description ..... | 660 |
| 19.4.1 | HSP block diagram ..... | 660 |
| 19.4.2 | HSP pins and internal signals . . . . . | 660 |
| 19.4.3 | Floating-point format . . . . . | 663 |
| 19.4.4 | Memory management . . . . . | 664 |
| 19.4.5 | HSP boot . . . . . | 667 |
| 19.4.6 | Message box (MSGB) . . . . . | 671 |
| 19.4.7 | Direct command interface (DCMD) . . . . . | 673 |
| 19.4.8 | STREAM interface . . . . . | 677 |
| 19.4.9 | Trigger input interface (TRGITF) . . . . . | 681 |
| 19.4.10 | Software events generator (SEG) . . . . . | 684 |
| 19.4.11 | Event controller (EVTC) . . . . . | 687 |
| 19.4.12 | HSP interrupt controller (HITC) . . . . . | 695 |
| 19.4.13 | HSP reset and clocking . . . . . | 703 |
| 19.4.14 | Task comparator unit (TCU) . . . . . | 705 |
| 19.4.15 | Trigger outputs (TRGO) . . . . . | 707 |
| 19.4.16 | Time-stamp capture (TSC) . . . . . | 708 |
| 19.4.17 | BRAM conflict counter . . . . . | 715 |
| 19.4.18 | Snoop function (SNOOP) . . . . . | 715 |
| 19.4.19 | Break interface (BKITF) . . . . . | 716 |
| 19.5 | Debug . . . . . | 719 |
| 19.5.1 | Register protection . . . . . | 721 |
| 19.6 | HSP firmware description . . . . . | 723 |
| 19.6.1 | Processing list mapping . . . . . | 723 |
| 19.6.2 | Sending commands to the HSP . . . . . | 724 |
| 19.6.3 | Recording processing lists . . . . . | 727 |
| 19.6.4 | Executing direct commands (accelerator mode) . . . . . | 728 |
| 19.6.5 | Data buffer handling . . . . . | 730 |
| 19.6.6 | Performance monitoring . . . . . | 730 |
| 19.6.7 | Processing functions summary . . . . . | 730 |
| 19.7 | HSP registers . . . . . | 736 |
| 19.7.1 | HSP control register (HSP_CR) . . . . . | 736 |
| 19.7.2 | HSP CPU-to-HSP semaphore register (HSP_C2HSEMR) . . . . . | 738 |
| 19.7.3 | HSP CPU-to-HSP message data register (HSP_C2HMSGDR) . . . . . | 738 |
| 19.7.4 | HSP HSP-to-CPU semaphore register (HSP_H2CSEMR) . . . . . | 739 |
| 19.7.5 | HSP HSP-to-CPU message data register (HSP_H2CMSGDR) . . . . . | 739 |
| 19.7.6 | HSP DCMD command status register (HSP_DCMDDSR) . . . . . | 740 |
| 19.7.7 | HSP DCMD pointer status register (HSP_DCMDPTSR) . . . . . | 740 |
| 19.7.8 | HSP DCMD command ID register (HSP_DCMDIDR) . . . . . | 741 |
| 19.7.9 | HSP DCMD address pointer register x (HSP_DCMDPTRx) . . . . . | 742 |
| 19.7.10 | HSP event enable register (HSP_EVTENR) . . . . . | 742 |
| 19.7.11 | HSP event synchronization enable register (HSP_ESYNCENR) . . . . . | 743 |
| 19.7.12 | HSP event synchronization source register 0 (HSP_ESYNC0SRCR) . . . . . | 743 |
| 19.7.13 | HSP event synchronization source register 1 (HSP_ESYNC1SRCR) . . . . . | 745 |
| 19.7.14 | HSP event synchronization source register 2 (HSP_ESYNC2SRCR) . . . . . | 747 |
| 19.7.15 | HSP pending event level register (HSP_PEVTLR) . . . . . | 749 |
| 19.7.16 | HSP interface enable register (HSP_ITFENR) . . . . . | 749 |
| 19.7.17 | HSP event source register 0 (HSP_EVTSRC0R) . . . . . | 751 |
| 19.7.18 | HSP event source register 1 (HSP_EVTSRC1R) . . . . . | 753 |
| 19.7.19 | HSP event source register 2 (HSP_EVTSRC2R) . . . . . | 756 |
| 19.7.20 | HSP BUFF configuration register (HSP_BUFFCFGR) . . . . . | 758 |
| 19.7.21 | HSP BUFFx data register x (HSP_BUFFxDR) . . . . . | 759 |
| 19.7.22 | HSP TRGIN configuration register (HSP_TRGINCFGR) . . . . . | 759 |
| 19.7.23 | HSP TRGO configuration register (HSP_TRGOCFGR) . . . . . | 760 |
| 19.7.24 | HSP TRGIN input selection register 0 (HSP_TRGINSEL0) . . . . . | 760 |
| 19.7.25 | HSP TRGIN input selection register 1 (HSP_TRGINSEL1) . . . . . | 761 |
| 19.7.26 | HSP TRGIN input selection register 2 (HSP_TRGINSEL2) . . . . . | 762 |
| 19.7.27 | HSP CPU shared event generator register (HSP_CSEGR) . . . . . | 763 |
| 19.7.28 | HSP CPU dedicated event generation register (HSP_CDEGR) . . . . . | 764 |
| 19.7.29 | HSP task comparator unit register (HSP_TCUCFGR) . . . . . | 764 |
| 19.7.30 | HSP task overlap control register (HSP_TOVLPCTR) . . . . . | 766 |
| 19.7.31 | HSP SNOOP register (HSP_SNPR) . . . . . | 766 |
| 19.7.32 | HSP conflict counter register (HSP_CCNTR) . . . . . | 767 |
| 19.7.33 | HSP data capture register (HSP_CAPDR) . . . . . | 768 |
| 19.7.34 | HSP data capture register [alternate] (HSP_CAPDR) . . . . . | 768 |
| 19.7.35 | HSP capture control register (HSP_CAPCR) . . . . . | 769 |
| 19.7.36 | HSP break output configuration register x (HSP_BKOxCFGR) . . . . . | 770 |
| 19.7.37 | HSP break input configuration register (HSP_BKICFGR) . . . . . | 771 |
| 19.7.38 | HSP SPE interrupt enable register (HSP_SPE_IER) . . . . . | 773 |
| 19.7.39 | HSP SPE interrupt status register (HSP_SPE_ISR) . . . . . | 773 |
| 19.7.40 | HSP error interrupt enable register (HSP_ERR_IER) . . . . . | 774 |
| 19.7.41 | HSP events interrupt enable register (HSP_EVT_IER) . . . . . | 776 |
| 19.7.42 | HSP processing event interrupt enable register (HSP_PFCTEVT_IER) . . . . . | 777 |
| 19.7.43 | HSP error interrupt status register (HSP_ERR_ISR) . . . . . | 778 |
| 19.7.44 | HSP events interrupt status register (HSP_EVT_ISR) . . . . . | 779 |
| 19.7.45 | HSP processing event interrupt status register (HSP_PFCTEVT_ISR) . . . . . | 781 |
| 19.7.46 | HSP error interrupt clear register (HSP_ERR_ICR) . . . . . | 781 |
| 19.7.47 | HSP events interrupt clear register (HSP_EVT_ICR) . . . . . | 783 |
| 19.7.48 | HSP processing event interrupt clear register (HSP_PFCTEVT_ICR) . . . . . | 784 |
| 19.7.49 | HSP error information register (HSP_ERRINFR) . . . . . | 784 |
| 19.7.50 | HSP firmware error register (HSP_FWERR) . . . . . | 786 |
| 19.7.51 | HSP parameter register x (HSP_PARAMRx) . . . . . | 786 |
| 19.7.52 | HSP firmware versions register (HSP_FWVERR) . . . . . | 787 |
| 19.7.53 | HSP SPE version register (HSP_SPEVERR) . . . . . | 787 |
| 19.7.54 | HSP register map . . . . . | 788 |
| 20 | Extended-SPI interface (OCTOSPI) . . . . . | 794 |
| 20.1 | OCTOSPI introduction . . . . . | 794 |
| 20.2 | OCTOSPI main features . . . . . | 794 |
| 20.3 | OCTOSPI implementation . . . . . | 795 |
| 20.4 | OCTOSPI functional description . . . . . | 796 |
| 20.4.1 | OCTOSPI block diagram . . . . . | 796 |
| 20.4.2 | OCTOSPI pins and internal signals . . . . . | 797 |
| 20.4.3 | OCTOSPI interface to memory modes . . . . . | 798 |
| 20.4.4 | OCTOSPI regular-command protocol . . . . . | 798 |
| 20.4.5 | OCTOSPI regular-command protocol signal interface . . . . . | 802 |
| 20.4.6 | HyperBus protocol . . . . . | 805 |
| 20.4.7 | Specific features . . . . . | 809 |
| 20.4.8 | OCTOSPI operating mode introduction . . . . . | 810 |
| 20.4.9 | OCTOSPI indirect mode . . . . . | 810 |
| 20.4.10 | OCTOSPI automatic status-polling mode . . . . . | 812 |
| 20.4.11 | OCTOSPI memory-mapped mode . . . . . | 813 |
| 20.4.12 | OCTOSPI configuration introduction . . . . . | 814 |
| 20.4.13 | OCTOSPI system configuration . . . . . | 814 |
| 20.4.14 | OCTOSPI device configuration . . . . . | 815 |
| 20.4.15 | OCTOSPI regular-command mode configuration . . . . . | 817 |
| 20.4.16 | OCTOSPI HyperBus protocol configuration . . . . . | 820 |
| 20.4.17 | OCTOSPI error management . . . . . | 821 |
| 20.4.18 | OCTOSPI BUSY and ABORT . . . . . | 821 |
| 20.4.19 | OCTOSPI reconfiguration or deactivation . . . . . | 822 |
| 20.4.20 | NCS behavior . . . . . | 822 |
| 20.5 | Address alignment and data number . . . . . | 823 |
| 20.6 | OCTOSPI interrupts . . . . . | 824 |
| 20.7 | OCTOSPI registers . . . . . | 825 |
| 20.7.1 | OCTOSPI control register (OCTOSPI_CR) . . . . . | 825 |
| 20.7.2 | OCTOSPI device configuration register 1 (OCTOSPI_DCR1) . . . . . | 828 |
| 20.7.3 | OCTOSPI device configuration register 2 (OCTOSPI_DCR2) . . . . . | 830 |
| 20.7.4 | OCTOSPI device configuration register 3 (OCTOSPI_DCR3) . . . . . | 831 |
| 20.7.5 | OCTOSPI device configuration register 4 (OCTOSPI_DCR4) . . . . . | 831 |
| 20.7.6 | OCTOSPI status register (OCTOSPI_SR) . . . . . | 832 |
| 20.7.7 | OCTOSPI flag clear register (OCTOSPI_FCR) . . . . . | 833 |
| 20.7.8 | OCTOSPI data length register (OCTOSPI_DLR) . . . . . | 834 |
| 20.7.9 | OCTOSPI address register (OCTOSPI_AR) . . . . . | 834 |
| 20.7.10 | OCTOSPI data register (OCTOSPI_DR) . . . . . | 835 |
| 20.7.11 | OCTOSPI polling status mask register (OCTOSPI_PSMKR) . . . . . | 835 |
| 20.7.12 | OCTOSPI polling status match register (OCTOSPI_PSMAR) . . . . . | 836 |
| 20.7.13 | OCTOSPI polling interval register (OCTOSPI_PIR) . . . . . | 836 |
| 20.7.14 | OCTOSPI communication configuration register (OCTOSPI_CCR) . . . . . | 836 |
| 20.7.15 | OCTOSPI timing configuration register (OCTOSPI_TCR) . . . . . | 839 |
| 20.7.16 | OCTOSPI instruction register (OCTOSPI_IR) . . . . . | 839 |
| 20.7.17 | OCTOSPI alternate bytes register (OCTOSPI_ABR) . . . . . | 840 |
| 20.7.18 | OCTOSPI low-power timeout register (OCTOSPI_LPTR) . . . . . | 840 |
| 20.7.19 | OCTOSPI wrap communication configuration register (OCTOSPI_WPCCR) . . . . . | 841 |
| 20.7.20 | OCTOSPI wrap timing configuration register (OCTOSPI_WPTCR) . . . . . | 843 |
| 20.7.21 | OCTOSPI wrap instruction register (OCTOSPI_WPIR) . . . . . | 843 |
| 20.7.22 | OCTOSPI wrap alternate bytes register (OCTOSPI_WPABR) . . . . . | 844 |
| 20.7.23 | OCTOSPI write communication configuration register (OCTOSPI_WCCR) . . . . . | 844 |
| 20.7.24 | OCTOSPI write timing configuration register (OCTOSPI_WTCR) . . . . . | 846 |
| 20.7.25 | OCTOSPI write instruction register (OCTOSPI_WIR) . . . . . | 847 |
| 20.7.26 | OCTOSPI write alternate bytes register (OCTOSPI_WABR) . . . . . | 847 |
| 20.7.27 | OCTOSPI HyperBus latency configuration register (OCTOSPI_HLCR) . . . . . | 848 |
| 20.7.28 | OCTOSPI register map . . . . . | 848 |
| 21 | Secure digital input/output MultiMediaCard interface (SDMMC) . . . | 852 |
| 21.1 | SDMMC main features . . . . . | 852 |
| 21.2 | SDMMC implementation . . . . . | 852 |
| 21.3 | SDMMC bus topology . . . . . | 853 |
| 21.4 | SDMMC operation modes . . . . . | 855 |
| 21.5 | SDMMC functional description . . . . . | 856 |
| 21.5.1 | SDMMC block diagram . . . . . | 856 |
| 21.5.2 | SDMMC pins and internal signals . . . . . | 856 |
| 21.5.3 | General description . . . . . | 857 |
| 21.5.4 | SDMMC adapter . . . . . | 859 |
| 21.5.5 | SDMMC AHB slave interface . . . . . | 881 |
| 21.5.6 | SDMMC AHB master interface . . . . . | 882 |
| 21.5.7 | AHB and SDMMC_CK clock relation . . . . . | 885 |
| 21.6 | Card functional description . . . . . | 885 |
| 21.6.1 | SD I/O mode . . . . . | 885 |
| 21.6.2 | CMD12 send timing . . . . . | 893 |
| 21.6.3 | Sleep (CMD5) . . . . . | 897 |
| 21.6.4 | Interrupt mode (Wait-IRQ) . . . . . | 898 |
| 21.6.5 | Boot operation . . . . . | 899 |
| 21.6.6 | Response R1b handling . . . . . | 902 |
| 21.6.7 | Reset and card cycle power . . . . . | 903 |
| 21.7 | Hardware flow control . . . . . | 904 |
| 21.8 | Ultra-high-speed phase I (UHS-I) voltage switch . . . . . | 904 |
| 21.9 | SDMMC interrupts . . . . . | 908 |
| 21.10 | SDMMC registers . . . . . | 909 |
| 21.10.1 | SDMMC power control register (SDMMC_POWER) . . . . . | 909 |
| 21.10.2 | SDMMC clock control register (SDMMC_CLKCR) . . . . . | 910 |
| 21.10.3 | SDMMC argument register (SDMMC_ARGR) . . . . . | 912 |
| 21.10.4 | SDMMC command register (SDMMC_CMDR) . . . . . | 912 |
| 21.10.5 | SDMMC command response register (SDMMC_RESPCMDR) . . . . . | 914 |
| 21.10.6 | SDMMC response x register (SDMMC_RESPxR) . . . . . | 915 |
| 21.10.7 | SDMMC data timer register (SDMMC_DTIMER) . . . . . | 915 |
| 21.10.8 | SDMMC data length register (SDMMC_DLENR) . . . . . | 916 |
| 21.10.9 | SDMMC data control register (SDMMC_DCTRL) . . . . . | 917 |
| 21.10.10 | SDMMC data counter register (SDMMC_DCNTR) . . . . . | 918 |
| 21.10.11 | SDMMC status register (SDMMC_STAR) . . . . . | 919 |
| 21.10.12 | SDMMC interrupt clear register (SDMMC_ICR) . . . . . | 922 |
| 21.10.13 | SDMMC mask register (SDMMC_MASKR) . . . . . | 924 |
21.10.14 SDMMC acknowledgment timer register (SDMMC_ACKTIMER) . . . 927
21.10.15 SDMMC DMA control register (SDMMC_IDMACTLRLR) . . . . . 927
21.10.16 SDMMC IDMA buffer size register (SDMMC_IDMABSIZER) . . . . . 928
21.10.17 SDMMC IDMA buffer base address register
(SDMMC_IDMABASER) . . . . . 929
21.10.18 SDMMC IDMA linked list address register (SDMMC_IDMALAR) . . . 929
21.10.19 SDMMC IDMA linked list memory base register
(SDMMC_IDMABAR) . . . . . 930
21.10.20 SDMMC data FIFO registers x (SDMMC_FIFORx) . . . . . 931
21.10.21 SDMMC register map . . . . . 931
22 Delay block (DLYB) . . . . . 934
22.1 DLYB introduction . . . . . 934
22.2 DLYB main features . . . . . 934
22.3 DLYB implementation . . . . . 934
22.4 DLYB functional description . . . . . 934
22.4.1 DLYB diagram . . . . . 934
22.4.2 DLYB pins and internal signals . . . . . 935
22.4.3 General description . . . . . 935
22.4.4 Delay line length configuration procedure . . . . . 936
22.4.5 Output clock phase configuration procedure . . . . . 937
22.5 DLYB registers . . . . . 937
22.5.1 DLYB control register (DLYB_CR) . . . . . 937
22.5.2 DLYB configuration register (DLYB_CFGR) . . . . . 938
22.5.3 DLYB register map . . . . . 939
23 Analog-to-digital converters (ADC) . . . . . 940
23.1 ADC introduction . . . . . 940
23.2 ADC main features . . . . . 940
23.3 ADC implementation . . . . . 942
23.4 ADC functional description . . . . . 943
23.4.1 ADC block diagram . . . . . 943
23.4.2 ADC pins and internal signals . . . . . 944
23.4.3 ADC clocks . . . . . 947
23.4.4 ADC connectivity . . . . . 948
23.4.5 Slave AHB interface . . . . . 950
| 23.4.6 | ADC Deep-power-down mode (DEEPPWD) and ADC voltage regulator (ADVREGEN) . . . . . | 950 |
| 23.4.7 | Calibration (ADCAL) . . . . . | 950 |
| 23.4.8 | ADC on-off control (ADEN, ADDIS, ADRDY) . . . . . | 952 |
| 23.4.9 | Constraints when writing the ADC control bits . . . . . | 953 |
| 23.4.10 | Channel selection (ADC_SQRY, ADC_JSQR) . . . . . | 954 |
| 23.4.11 | Channel preselection register (ADC_PCSEL) . . . . . | 955 |
| 23.4.12 | Channel-wise programmable sampling time (SMPR1, SMPR2) . . . . . | 955 |
| 23.4.13 | Single conversion mode . . . . . | 957 |
| 23.4.14 | Continuous conversion mode (CONT = 1) . . . . . | 958 |
| 23.4.15 | Discontinuous mode (DISCEN, DISCNUM, JDISCEN) . . . . . | 958 |
| 23.4.16 | Starting conversions (ADSTART, JADSTART) . . . . . | 960 |
| 23.4.17 | Timing . . . . . | 961 |
| 23.4.18 | Stopping an ongoing conversion (ADSTP, JADSTP) . . . . . | 961 |
| 23.4.19 | Conversion on external trigger and trigger polarity (EXTSEL, EXTEN, JEXTSEL, JEXTEN) . . . . . | 963 |
| 23.4.20 | Injected channel management . . . . . | 964 |
| 23.4.21 | Queue of context for injected conversions . . . . . | 965 |
| 23.4.22 | Programmable resolution (RES) - fast conversion mode . . . . . | 973 |
| 23.4.23 | End of conversion and end of sampling phase (EOC, JEOC, EOSMP) . . . . . | 974 |
| 23.4.24 | End of conversion sequence (EOS, JEOS) . . . . . | 974 |
| 23.4.25 | Timing diagram examples (single/continuous modes, hardware/software triggers) . . . . . | 975 |
| 23.4.26 | Data management . . . . . | 977 |
| 23.4.27 | Managing conversions using the ADF . . . . . | 985 |
| 23.4.28 | Dynamic low-power features . . . . . | 986 |
| 23.4.29 | Analog window watchdog (AWD1EN, JAWD1EN, AWD1SGL, AWD1CH, AWDCH of ADC_AWD2CR and ADC_AWD3CR, HTR, LTR, AWDFILT) . . . . . | 989 |
| 23.4.30 | Oversampler . . . . . | 994 |
| 23.4.31 | Dual ADC modes . . . . . | 1000 |
| 23.4.32 | Temperature sensor . . . . . | 1016 |
| 23.4.33 | VBAT supply monitoring . . . . . | 1018 |
| 23.4.34 | Monitoring the internal voltage reference . . . . . | 1019 |
| 23.4.35 | Monitoring the DAC output voltage . . . . . | 1020 |
| 23.4.36 | Monitoring the supply voltage . . . . . | 1020 |
| 23.5 | ADC in low-power modes . . . . . | 1021 |
| 23.6 | ADC interrupts . . . . . | 1021 |
| 23.7 | ADC registers (for each ADC) . . . . . | 1022 |
| 23.7.1 | ADC interrupt and status register (ADC_ISR) . . . . . | 1022 |
| 23.7.2 | ADC interrupt enable register (ADC_IER) . . . . . | 1025 |
| 23.7.3 | ADC control register (ADC_CR) . . . . . | 1027 |
| 23.7.4 | ADC configuration register (ADC_CFGR1) . . . . . | 1030 |
| 23.7.5 | ADC configuration register 2 (ADC_CFGR2) . . . . . | 1033 |
| 23.7.6 | ADC sample time register 1 (ADC_SMPR1) . . . . . | 1036 |
| 23.7.7 | ADC sample time register 2 (ADC_SMPR2) . . . . . | 1037 |
| 23.7.8 | ADC channel preselection register (ADC_PCSEL) . . . . . | 1038 |
| 23.7.9 | ADC regular sequence register 1 (ADC_SQR1) . . . . . | 1038 |
| 23.7.10 | ADC regular sequence register 2 (ADC_SQR2) . . . . . | 1039 |
| 23.7.11 | ADC regular sequence register 3 (ADC_SQR3) . . . . . | 1040 |
| 23.7.12 | ADC regular sequence register 4 (ADC_SQR4) . . . . . | 1041 |
| 23.7.13 | ADC regular data register (ADC_DR) . . . . . | 1042 |
| 23.7.14 | ADC injected sequence register (ADC_JSQR) . . . . . | 1042 |
| 23.7.15 | ADC offset y configuration register (ADC_OFCFG Ry) . . . . . | 1044 |
| 23.7.16 | ADC offset y register (ADC_OF Ry) . . . . . | 1045 |
| 23.7.17 | ADC gain compensation register (ADC_GCOMP) . . . . . | 1046 |
| 23.7.18 | ADC injected channel y data register (ADC_JDRy) . . . . . | 1047 |
| 23.7.19 | ADC analog watchdog 2 configuration register (ADC_AWD2CR) . . . . . | 1047 |
| 23.7.20 | ADC analog watchdog 3 configuration register (ADC_AWD3CR) . . . . . | 1048 |
| 23.7.21 | ADC analog watchdog 1 lower threshold register (ADC_AWD1LTR) . . . . . | 1048 |
| 23.7.22 | ADC analog watchdog 1 higher threshold register (ADC_AWD1HTR) . . . . . | 1049 |
| 23.7.23 | ADC analog watchdog 2 lower threshold register (ADC_AWD2LTR) . . . . . | 1049 |
| 23.7.24 | ADC analog watchdog 2 higher threshold register (ADC_AWD2HTR) . . . . . | 1050 |
| 23.7.25 | ADC analog watchdog 3 lower threshold register (ADC_AWD3LTR) . . . . . | 1050 |
| 23.7.26 | ADC analog watchdog 3 higher threshold register (ADC_AWD3HTR) . . . . . | 1050 |
| 23.7.27 | ADC calibration factors (ADC_CALFACT) . . . . . | 1051 |
| 23.7.28 | ADC option register (ADC_OR) . . . . . | 1052 |
| 23.8 | ADC common registers . . . . . | 1052 |
| 23.8.1 | ADC common status register (ADCC_CSR) . . . . . | 1052 |
| 23.8.2 | ADC common control register (ADCC_CCR) . . . . . | 1054 |
| 23.8.3 | ADC common regular data register for dual mode (ADCC_CDR) . . . . . | 1055 |
| 23.8.4 | ADC common regular data register for dual mode (ADCC_CDR2) . . . . . | 1056 |
| 23.9 | ADC register map . . . . . | 1056 |
| 24 | Digital-to-analog converter (DAC) . . . . . | 1061 |
| 24.1 | DAC introduction . . . . . | 1061 |
| 24.2 | DAC main features . . . . . | 1061 |
| 24.3 | DAC implementation . . . . . | 1062 |
| 24.4 | DAC functional description . . . . . | 1063 |
| 24.4.1 | DAC block diagram . . . . . | 1063 |
| 24.4.2 | DAC pins and internal signals . . . . . | 1064 |
| 24.4.3 | DAC clocks . . . . . | 1065 |
| 24.4.4 | DAC channel enable . . . . . | 1065 |
| 24.4.5 | DAC data format . . . . . | 1066 |
| 24.4.6 | DAC conversion . . . . . | 1067 |
| 24.4.7 | DAC output voltage . . . . . | 1068 |
| 24.4.8 | DAC trigger selection . . . . . | 1069 |
| 24.4.9 | DMA requests . . . . . | 1069 |
| 24.4.10 | Noise generation . . . . . | 1070 |
| 24.4.11 | Triangle-wave generation . . . . . | 1071 |
| 24.4.12 | DAC channel modes . . . . . | 1072 |
| 24.4.13 | DAC channel buffer calibration . . . . . | 1075 |
| 24.4.14 | DAC channel conversion modes . . . . . | 1076 |
| 24.4.15 | Dual DAC channel conversion modes (if dual channels are available) . . . . . | 1077 |
| 24.4.16 | DAC autonomous mode . . . . . | 1081 |
| 24.5 | DAC in low-power modes . . . . . | 1082 |
| 24.6 | DAC interrupts . . . . . | 1082 |
| 24.7 | DAC registers . . . . . | 1083 |
| 24.7.1 | DAC control register (DAC_CR) . . . . . | 1083 |
| 24.7.2 | DAC software trigger register (DAC_SWTRGR) . . . . . | 1086 |
| 24.7.3 | DAC channel1 12-bit right-aligned data holding register (DAC_DHR12R1) . . . . . | 1087 |
| 24.7.4 | DAC channel1 12-bit left aligned data holding register (DAC_DHR12L1) . . . . . | 1088 |
| 24.7.5 | DAC channel1 8-bit right aligned data holding register (DAC_DHR8R1) . . . . . | 1088 |
| 24.7.6 | DAC channel2 12-bit right aligned data holding register (DAC_DHR12R2) . . . . . | 1089 |
| 24.7.7 | DAC channel2 12-bit left aligned data holding register (DAC_DHR12L2) . . . . . | 1089 |
| 24.7.8 | DAC channel2 8-bit right-aligned data holding register (DAC_DHR8R2) . . . . . | 1090 |
| 24.7.9 | Dual DAC 12-bit right-aligned data holding register (DAC_DHR12RD) . . . . . | 1090 |
| 24.7.10 | Dual DAC 12-bit left aligned data holding register (DAC_DHR12LD) . . . . . | 1091 |
| 24.7.11 | Dual DAC 8-bit right aligned data holding register (DAC_DHR8RD) . . . . . | 1091 |
| 24.7.12 | DAC channel1 data output register (DAC_DOR1) . . . . . | 1092 |
| 24.7.13 | DAC channel2 data output register (DAC_DOR2) . . . . . | 1092 |
| 24.7.14 | DAC status register (DAC_SR) . . . . . | 1093 |
| 24.7.15 | DAC calibration control register (DAC_CCR) . . . . . | 1094 |
| 24.7.16 | DAC mode control register (DAC_MCR) . . . . . | 1095 |
| 24.7.17 | DAC channel1 sample and hold sample time register (DAC_SHSR1) . . . . . | 1096 |
| 24.7.18 | DAC channel2 sample and hold sample time register (DAC_SHSR2) . . . . . | 1097 |
| 24.7.19 | DAC sample and hold time register (DAC_SHHR) . . . . . | 1097 |
| 24.7.20 | DAC sample and hold refresh time register (DAC_SHRR) . . . . . | 1098 |
| 24.7.21 | DAC autonomous mode control register (DAC_AUTOCR) . . . . . | 1099 |
| 24.7.22 | DAC register map . . . . . | 1099 |
| 25 | Voltage reference buffer (VREFBUF) . . . . . | 1102 |
| 25.1 | VREFBUF introduction . . . . . | 1102 |
| 25.2 | VREFBUF implementation . . . . . | 1102 |
| 25.3 | VREFBUF functional description . . . . . | 1102 |
| 25.4 | VREFBUF trimming . . . . . | 1103 |
| 25.5 | VREFBUF registers . . . . . | 1104 |
| 25.5.1 | VREFBUF control and status register (VREFBUF_CSR) . . . . . | 1104 |
| 25.5.2 | VREFBUF calibration control register (VREFBUF_CCR) . . . . . | 1105 |
| 25.5.3 | VREFBUF register map . . . . . | 1105 |
| 26 | Comparator (COMP) . . . . . | 1106 |
| 26.1 | Introduction . . . . . | 1106 |
| 26.2 | COMP main features . . . . . | 1106 |
| 26.3 | COMP functional description . . . . . | 1107 |
| 26.3.1 | COMP block diagram . . . . . | 1107 |
| 26.3.2 | COMP pins and internal signals . . . . . | 1107 |
| 26.3.3 | Comparator LOCK mechanism . . . . . | 1109 |
| 26.3.4 | Window comparator . . . . . | 1109 |
| 26.3.5 | Hysteresis . . . . . | 1110 |
| 26.3.6 | Comparator output-blanking function . . . . . | 1110 |
| 26.3.7 | COMP power and speed modes . . . . . | 1111 |
| 26.3.8 | Scaler function . . . . . | 1111 |
| 26.4 | COMP in low-power modes . . . . . | 1112 |
| 26.5 | COMP interrupts . . . . . | 1112 |
| 26.6 | COMP registers . . . . . | 1113 |
| 26.6.1 | COMP1 control and status register (COMP1_CSR) . . . . . | 1113 |
| 26.6.2 | COMP2 control and status register (COMP2_CSR) . . . . . | 1115 |
| 26.6.3 | COMP register map . . . . . | 1116 |
| 27 | Operational amplifier (OPAMP) . . . . . | 1117 |
| 27.1 | OPAMP introduction . . . . . | 1117 |
| 27.2 | OPAMP main features . . . . . | 1117 |
| 27.3 | OPAMP functional description . . . . . | 1117 |
| 27.3.1 | OPAMP reset and clocks . . . . . | 1117 |
| 27.3.2 | Initial configuration . . . . . | 1118 |
| 27.3.3 | Signal routing . . . . . | 1118 |
| 27.3.4 | OPAMP modes . . . . . | 1119 |
| 27.3.5 | Calibration . . . . . | 1122 |
| 27.4 | OPAMP low-power modes . . . . . | 1124 |
| 27.5 | OPAMP registers . . . . . | 1124 |
| 27.5.1 | OPAMP1 control/status register (OPAMP1_CSR) . . . . . | 1124 |
| 27.5.2 | OPAMP1 offset trimming register in normal mode (OPAMP1_OTR) . . . . . | 1126 |
| 27.5.3 | OPAMP1 offset trimming register in low-power mode (OPAMP1_LPOTR) . . . . . | 1126 |
| 27.5.4 | OPAMP2 control/status register (OPAMP2_CSR) . . . . . | 1127 |
| 27.5.5 | OPAMP2 offset trimming register in normal mode (OPAMP2_OTR) . . . . . | 1128 |
| 27.5.6 | OPAMP2 offset trimming register in low-power mode (OPAMP2_LPOTR) . . . . . | 1128 |
| 27.5.7 | OPAMP register map . . . . . | 1129 |
| 28 | Audio digital filter (ADF) . . . . . | 1130 |
| 28.1 | ADF introduction . . . . . | 1130 |
| 28.2 | ADF main features . . . . . | 1130 |
| 28.3 | ADF implementation . . . . . | 1131 |
| 28.4 | ADF functional description . . . . . | 1132 |
| 28.4.1 | ADF block diagram . . . . . | 1132 |
| 28.4.2 | ADF pins and internal signals . . . . . | 1132 |
| 28.4.3 | Serial input interface (SITF) . . . . . | 1133 |
| 28.4.4 | ADC slave interface (ADCITF) . . . . . | 1138 |
| 28.4.5 | Clock generator (CKGEN) . . . . . | 1139 |
| 28.4.6 | Bitstream matrix (BSMX) . . . . . | 1141 |
| 28.4.7 | Digital filter processing (DFLT) . . . . . | 1142 |
| 28.4.8 | Digital filter acquisition modes . . . . . | 1151 |
| 28.4.9 | Start-up sequence examples . . . . . | 1159 |
| 28.4.10 | Sound activity detection (SAD) . . . . . | 1160 |
| 28.4.11 | Data transfer to memory . . . . . | 1168 |
| 28.4.12 | Autonomous mode . . . . . | 1171 |
| 28.4.13 | Register protection . . . . . | 1171 |
| 28.5 | ADF low-power modes . . . . . | 1172 |
| 28.6 | ADF interrupts . . . . . | 1172 |
| 28.7 | ADF application information . . . . . | 1174 |
| 28.7.1 | ADF configuration examples for audio capture . . . . . | 1174 |
| 28.7.2 | Programming examples . . . . . | 1175 |
| 28.7.3 | Connection examples . . . . . | 1177 |
| 28.7.4 | Global frequency response . . . . . | 1178 |
| 28.7.5 | Total ADF gain . . . . . | 1179 |
| 28.7.6 | How to compute SAD thresholds . . . . . | 1182 |
| 28.8 | ADF registers . . . . . | 1186 |
| 28.8.1 | ADF global control register (ADF_GCR) . . . . . | 1186 |
| 28.8.2 | ADF clock generator control register (ADF_CKGCR) . . . . . | 1186 |
| 28.8.3 | ADF trigger input selection register (ADF_TRGISEL) . . . . . | 1188 |
| 28.8.4 | ADF serial interface control register 0 (ADF_SITF0CR) . . . . . | 1189 |
| 28.8.5 | ADF bitstream matrix control register 0 (ADF_BSMX0CR) . . . . . | 1190 |
| 28.8.6 | ADF digital filter control register 0 (ADF_DFLT0CR) . . . . . | 1191 |
| 28.8.7 | ADF digital filter configuration register 0 (ADF_DFLT0CICR) . . . . . | 1193 |
| 28.8.8 | ADF reshape filter configuration register 0 (ADF_DFLT0RSFR) . . . . . | 1194 |
| 28.8.9 | ADF delay control register 0 (ADF_DLY0CR) . . . . . | 1195 |
| 28.8.10 | ADF DFLT0 interrupt enable register (ADF_DFLT0IER) . . . . . | 1196 |
| 28.8.11 | ADF DFLT0 interrupt status register 0 (ADF_DFLT0ISR) . . . . . | 1197 |
| 28.8.12 | ADF SAD control register (ADF_SADCR) . . . . . | 1198 |
| 28.8.13 | ADF SAD configuration register (ADF_SADCFGR) . . . . . | 1200 |
| 28.8.14 | ADF SAD sound level register (ADF_SADSDLVR) . . . . . | 1201 |
| 28.8.15 | ADF SAD ambient noise level register (ADF_SADANLVR) . . . . . | 1202 |
| 28.8.16 | ADF digital filter data register 0 (ADF_DFLT0DR) . . . . . | 1202 |
| 28.8.17 | ADF register map . . . . . | 1202 |
| 29 | Liquid crystal display controller (LCD) . . . . . | 1205 |
| 29.1 | LCD introduction . . . . . | 1205 |
| 29.2 | LCD main features . . . . . | 1205 |
| 29.3 | LCD functional description . . . . . | 1207 |
| 29.3.1 | General description . . . . . | 1207 |
| 29.3.2 | Frequency generator . . . . . | 1208 |
| 29.3.3 | Common driver . . . . . | 1209 |
| 29.3.4 | Segment driver . . . . . | 1212 |
| 29.3.5 | Voltage generator and contrast control . . . . . | 1216 |
| 29.3.6 | Double-buffer memory . . . . . | 1219 |
| 29.3.7 | COM and SEG multiplexing . . . . . | 1219 |
| 29.3.8 | Flowchart . . . . . | 1225 |
| 29.4 | LCD low-power modes . . . . . | 1226 |
| 29.5 | LCD interrupts . . . . . | 1226 |
| 29.6 | LCD registers . . . . . | 1227 |
| 29.6.1 | LCD control register (LCD_CR) . . . . . | 1227 |
| 29.6.2 | LCD frame control register (LCD_FCR) . . . . . | 1228 |
| 29.6.3 | LCD status register (LCD_SR) . . . . . | 1230 |
| 29.6.4 | LCD clear register (LCD_CLR) . . . . . | 1231 |
| 29.6.5 | LCD display memory (LCD_RAMx) . . . . . | 1232 |
| 29.6.6 | LCD display memory (LCD_RAMx) . . . . . | 1232 |
| 29.6.7 | LCD display memory (LCD_RAMx) . . . . . | 1233 |
| 29.6.8 | LCD register map . . . . . | 1233 |
| 30 | Touch sensing controller (TSC) . . . . . | 1236 |
| 30.1 | TSC introduction . . . . . | 1236 |
| 30.2 | TSC main features . . . . . | 1236 |
| 30.3 | TSC implementation . . . . . | 1237 |
| 30.4 | TSC functional description . . . . . | 1237 |
| 30.4.1 | TSC block diagram . . . . . | 1237 |
| 30.4.2 | Surface charge transfer acquisition overview . . . . . | 1238 |
| 30.4.3 | Reset and clocks . . . . . | 1240 |
| 30.4.4 | Charge transfer acquisition sequence . . . . . | 1240 |
| 30.4.5 | Spread spectrum feature . . . . . | 1241 |
| 30.4.6 | Max count error . . . . . | 1242 |
| 30.4.7 | Sampling capacitor I/O and channel I/O mode selection . . . . . | 1242 |
| 30.4.8 | Acquisition mode . . . . . | 1243 |
| 30.4.9 | I/O hysteresis and analog switch control . . . . . | 1244 |
| 30.5 | TSC low-power modes . . . . . | 1244 |
| 30.5.1 | Comparator usage overview . . . . . | 1244 |
| 30.6 | TSC interrupts . . . . . | 1247 |
| 30.7 | TSC registers . . . . . | 1247 |
| 30.7.1 | TSC control register (TSC_CR) . . . . . | 1247 |
| 30.7.2 | TSC interrupt enable register (TSC_IER) . . . . . | 1250 |
| 30.7.3 | TSC interrupt clear register (TSC_ICR) . . . . . | 1250 |
| 30.7.4 | TSC interrupt status register (TSC_ISR) . . . . . | 1251 |
| 30.7.5 | TSC I/O hysteresis control register (TSC_IOHCR) . . . . . | 1251 |
| 30.7.6 | TSC I/O analog switch control register (TSC_IOASCR) . . . . . | 1252 |
| 30.7.7 | TSC I/O sampling control register (TSC_IOSCR) . . . . . | 1252 |
| 30.7.8 | TSC I/O channel control register (TSC_IOCCR) . . . . . | 1253 |
| 30.7.9 | TSC I/O group control status register (TSC_IOGCSR) . . . . . | 1253 |
| 30.7.10 | TSC I/O group x counter register (TSC_IOGxCR) . . . . . | 1254 |
| 30.7.11 | TSC register map . . . . . | 1254 |
| 31 | Coupling and chaining bridge (CCB) . . . . . | 1256 |
| 31.1 | CCB introduction . . . . . | 1256 |
| 31.2 | CCB main features . . . . . | 1256 |
| 31.3 | CCB implementation . . . . . | 1257 |
| 31.4 | CCB functional description . . . . . | 1257 |
| 31.4.1 | CCB block diagram . . . . . | 1257 |
| 31.4.2 | CCB internal signals . . . . . | 1258 |
| 31.4.3 | CCB reset and clocks . . . . . | 1258 |
| 31.4.4 | CCB coupling and chaining . . . . . | 1258 |
| 31.4.5 | CCB error management . . . . . | 1261 |
| 31.5 | CCB coupling and chaining operations . . . . . | 1261 |
| 31.5.1 | Preliminary steps before any protected operation . . . . . | 1263 |
| 31.5.2 | ECDSA signature . . . . . | 1264 |
| 31.5.3 | ECC scalar multiplication . . . . . | 1271 |
| 31.5.4 | RSA modular exponentiation . . . . . | 1274 |
| 31.6 | CCB interrupts . . . . . | 1276 |
| 31.7 | CCB registers . . . . . | 1277 |
| 31.7.1 | CCB control register (CCB_CR) . . . . . | 1277 |
| 31.7.2 | CCB status register (CCB_SR) . . . . . | 1278 |
| 31.7.3 | CCB reference tag register (CCB_REFTAGRx) . . . . . | 1280 |
| 31.7.4 | CCB register map . . . . . | 1281 |
| 32 | True random number generator (RNG) . . . . . | 1282 |
| 32.1 | RNG introduction . . . . . | 1282 |
| 32.2 | RNG main features . . . . . | 1282 |
| 32.3 | RNG functional description . . . . . | 1283 |
| 32.3.1 | RNG block diagram . . . . . | 1283 |
| 32.3.2 | RNG internal signals . . . . . | 1283 |
| 32.3.3 | Random number generation . . . . . | 1284 |
| 32.3.4 | RNG initialization . . . . . | 1286 |
| 32.3.5 | RNG operation . . . . . | 1287 |
| 32.3.6 | RNG clocking . . . . . | 1289 |
| 32.3.7 | Error management . . . . . | 1289 |
| 32.3.8 | RNG low-power use . . . . . | 1291 |
| 32.4 | RNG interrupts . . . . . | 1291 |
| 32.5 | RNG processing time . . . . . | 1292 |
| 32.6 | RNG entropy source validation . . . . . | 1292 |
| 32.6.1 | Introduction . . . . . | 1292 |
| 32.6.2 | Validation conditions . . . . . | 1292 |
| 32.7 | RNG registers . . . . . | 1294 |
| 32.7.1 | RNG control register (RNG_CR) . . . . . | 1294 |
| 32.7.2 | RNG status register (RNG_SR) . . . . . | 1296 |
| 32.7.3 | RNG data register (RNG_DR) . . . . . | 1297 |
- 32.7.4 RNG noise source control register (RNG_NSCR) . . . . . 1298
- 32.7.5 RNG health test control register x (RNG_HTCRx) . . . . . 1298
- 32.7.6 RNG health test status register 0 (RNG_HTSR0) . . . . . 1299
- 32.7.7 RNG health test status register 1 (RNG_HTSR1) . . . . . 1299
- 32.7.8 RNG noise source mask register (RNG_NSMR) . . . . . 1300
- 32.7.9 RNG register map . . . . . 1301
33 AES hardware accelerator (AES) . . . . . 1302
- 33.1 AES introduction . . . . . 1302
- 33.2 AES main features . . . . . 1302
- 33.3 AES implementation . . . . . 1303
- 33.4 AES functional description . . . . . 1303
- 33.4.1 AES block diagram . . . . . 1303
- 33.4.2 AES internal signals . . . . . 1304
- 33.4.3 AES reset and clocks . . . . . 1304
- 33.4.4 AES symmetric cipher implementation . . . . . 1304
- 33.4.5 AES encryption or decryption typical usage . . . . . 1305
- 33.4.6 AES authenticated encryption, decryption, and cipher-based message authentication . . . . . 1308
- 33.4.7 AES ciphertext stealing and data padding . . . . . 1308
- 33.4.8 AES suspend and resume operations . . . . . 1309
- 33.4.9 AES basic chaining modes (ECB, CBC) . . . . . 1309
- 33.4.10 AES counter (CTR) mode . . . . . 1313
- 33.4.11 AES Galois/counter mode (GCM) . . . . . 1315
- 33.4.12 AES Galois message authentication code (GMAC) . . . . . 1320
- 33.4.13 AES counter with CBC-MAC (CCM) . . . . . 1321
- 33.4.14 AES key sharing with secure AES co-processor . . . . . 1326
- 33.4.15 AES data registers and data swapping . . . . . 1327
- 33.4.16 AES key registers . . . . . 1329
- 33.4.17 AES initialization vector registers . . . . . 1329
- 33.4.18 AES error management . . . . . 1330
- 33.5 AES interrupts . . . . . 1331
- 33.6 AES DMA requests . . . . . 1331
- 33.7 AES processing latency . . . . . 1332
- 33.8 AES registers . . . . . 1334
- 33.8.1 AES control register (AES_CR) . . . . . 1334
| 33.8.2 | AES status register (AES_SR) . . . . . | 1336 |
| 33.8.3 | AES data input register (AES_DINR) . . . . . | 1337 |
| 33.8.4 | AES data output register (AES_DOUTR) . . . . . | 1338 |
| 33.8.5 | AES key register 0 (AES_KEYR0) . . . . . | 1338 |
| 33.8.6 | AES key register 1 (AES_KEYR1) . . . . . | 1339 |
| 33.8.7 | AES key register 2 (AES_KEYR2) . . . . . | 1339 |
| 33.8.8 | AES key register 3 (AES_KEYR3) . . . . . | 1339 |
| 33.8.9 | AES initialization vector register 0 (AES_IVR0) . . . . . | 1340 |
| 33.8.10 | AES initialization vector register 1 (AES_IVR1) . . . . . | 1340 |
| 33.8.11 | AES initialization vector register 2 (AES_IVR2) . . . . . | 1340 |
| 33.8.12 | AES initialization vector register 3 (AES_IVR3) . . . . . | 1341 |
| 33.8.13 | AES key register 4 (AES_KEYR4) . . . . . | 1341 |
| 33.8.14 | AES key register 5 (AES_KEYR5) . . . . . | 1341 |
| 33.8.15 | AES key register 6 (AES_KEYR6) . . . . . | 1342 |
| 33.8.16 | AES key register 7 (AES_KEYR7) . . . . . | 1342 |
| 33.8.17 | AES suspend registers (AES_SUSPRx) . . . . . | 1342 |
| 33.8.18 | AES interrupt enable register (AES_IER) . . . . . | 1343 |
| 33.8.19 | AES interrupt status register (AES_ISR) . . . . . | 1344 |
| 33.8.20 | AES interrupt clear register (AES_ICR) . . . . . | 1345 |
| 33.8.21 | AES register map . . . . . | 1345 |
| 34 | Secure AES coprocessor (SAES) . . . . . | 1348 |
| 34.1 | SAES introduction . . . . . | 1348 |
| 34.2 | SAES main features . . . . . | 1348 |
| 34.3 | SAES implementation . . . . . | 1349 |
| 34.4 | SAES functional description . . . . . | 1349 |
| 34.4.1 | SAES block diagram . . . . . | 1349 |
| 34.4.2 | SAES internal signals . . . . . | 1350 |
| 34.4.3 | SAES reset and clocks . . . . . | 1351 |
| 34.4.4 | SAES symmetric cipher implementation . . . . . | 1351 |
| 34.4.5 | SAES encryption or decryption typical usage . . . . . | 1352 |
| 34.4.6 | SAES authenticated encryption, decryption, and cipher-based message authentication . . . . . | 1354 |
| 34.4.7 | SAES ciphertext stealing and data padding . . . . . | 1355 |
| 34.4.8 | SAES suspend and resume operations . . . . . | 1355 |
| 34.4.9 | SAES basic chaining modes (ECB, CBC) . . . . . | 1356 |
| 34.4.10 | SAES counter (CTR) mode . . . . . | 1360 |
- 34.4.11 SAES Galois/counter mode (GCM) . . . . . 1362
- 34.4.12 SAES Galois message authentication code (GMAC) . . . . . 1366
- 34.4.13 SAES counter with CBC-MAC (CCM) . . . . . 1368
- 34.4.14 SAES operation with wrapped keys . . . . . 1373
- 34.4.15 SAES operation with shared keys . . . . . 1377
- 34.4.16 SAES data registers and data swapping . . . . . 1378
- 34.4.17 SAES key registers . . . . . 1381
- 34.4.18 SAES initialization vector registers . . . . . 1382
- 34.4.19 SAES error management . . . . . 1383
- 34.5 SAES interrupts . . . . . 1385
- 34.6 SAES DMA requests . . . . . 1385
- 34.7 SAES processing latency . . . . . 1386
- 34.8 SAES registers . . . . . 1388
- 34.8.1 SAES control register (SAES_CR) . . . . . 1388
- 34.8.2 SAES status register (SAES_SR) . . . . . 1391
- 34.8.3 SAES data input register (SAES_DINR) . . . . . 1392
- 34.8.4 SAES data output register (SAES_DOUTR) . . . . . 1393
- 34.8.5 SAES key register 0 (SAES_KEYR0) . . . . . 1393
- 34.8.6 SAES key register 1 (SAES_KEYR1) . . . . . 1394
- 34.8.7 SAES key register 2 (SAES_KEYR2) . . . . . 1394
- 34.8.8 SAES key register 3 (SAES_KEYR3) . . . . . 1394
- 34.8.9 SAES initialization vector register 0 (SAES_IVR0) . . . . . 1395
- 34.8.10 SAES initialization vector register 1 (SAES_IVR1) . . . . . 1395
- 34.8.11 SAES initialization vector register 2 (SAES_IVR2) . . . . . 1395
- 34.8.12 SAES initialization vector register 3 (SAES_IVR3) . . . . . 1396
- 34.8.13 SAES key register 4 (SAES_KEYR4) . . . . . 1396
- 34.8.14 SAES key register 5 (SAES_KEYR5) . . . . . 1396
- 34.8.15 SAES key register 6 (SAES_KEYR6) . . . . . 1397
- 34.8.16 SAES key register 7 (SAES_KEYR7) . . . . . 1397
- 34.8.17 SAES suspend registers (SAES_SUSPRx) . . . . . 1397
- 34.8.18 SAES interrupt enable register (SAES_IER) . . . . . 1398
- 34.8.19 SAES interrupt status register (SAES_ISR) . . . . . 1399
- 34.8.20 SAES interrupt clear register (SAES_ICR) . . . . . 1400
- 34.8.21 SAES register map . . . . . 1401
- 35 Hash processor (HASH) . . . . . 1403
- 35.1 HASH introduction . . . . . 1403
| 35.2 | HASH main features . . . . . | 1403 |
| 35.3 | HASH implementation . . . . . | 1404 |
| 35.4 | HASH functional description . . . . . | 1404 |
| 35.4.1 | HASH block diagram . . . . . | 1404 |
| 35.4.2 | HASH internal signals . . . . . | 1404 |
| 35.4.3 | About secure hash algorithms . . . . . | 1405 |
| 35.4.4 | Message data feeding . . . . . | 1405 |
| 35.4.5 | Message digest computing . . . . . | 1406 |
| 35.4.6 | Message padding . . . . . | 1408 |
| 35.4.7 | HMAC operation . . . . . | 1410 |
| 35.4.8 | HASH suspend/resume operations . . . . . | 1411 |
| 35.4.9 | HASH DMA interface . . . . . | 1413 |
| 35.4.10 | HASH error management . . . . . | 1414 |
| 35.4.11 | HASH processing time . . . . . | 1414 |
| 35.5 | HASH interrupts . . . . . | 1415 |
| 35.6 | HASH registers . . . . . | 1415 |
| 35.6.1 | HASH control register (HASH_CR) . . . . . | 1415 |
| 35.6.2 | HASH data input register (HASH_DIN) . . . . . | 1417 |
| 35.6.3 | HASH start register (HASH_STR) . . . . . | 1418 |
| 35.6.4 | HASH digest registers . . . . . | 1419 |
| 35.6.5 | HASH interrupt enable register (HASH_IMR) . . . . . | 1421 |
| 35.6.6 | HASH status register (HASH_SR) . . . . . | 1421 |
| 35.6.7 | HASH context swap registers . . . . . | 1422 |
| 35.6.8 | HASH register map . . . . . | 1423 |
| 36 | Public key accelerator (PKA) . . . . . | 1425 |
| 36.1 | PKA introduction . . . . . | 1425 |
| 36.2 | PKA main features . . . . . | 1425 |
| 36.3 | PKA implementation . . . . . | 1425 |
| 36.4 | PKA functional description . . . . . | 1426 |
| 36.4.1 | PKA block diagram . . . . . | 1426 |
| 36.4.2 | PKA internal signals . . . . . | 1426 |
| 36.4.3 | PKA reset and clocks . . . . . | 1427 |
| 36.4.4 | PKA public key acceleration . . . . . | 1427 |
| 36.4.5 | Typical applications for PKA . . . . . | 1429 |
| 36.4.6 | PKA procedure to perform an operation . . . . . | 1431 |
- 36.4.7 Private keys protection using CCB . . . . . 1432
- 36.4.8 PKA error management . . . . . 1436
- 36.5 PKA operating modes . . . . . 1436
- 36.5.1 Introduction . . . . . 1436
- 36.5.2 Montgomery parameter computation . . . . . 1438
- 36.5.3 Modular addition . . . . . 1438
- 36.5.4 Modular subtraction . . . . . 1439
- 36.5.5 Modular and Montgomery multiplication . . . . . 1439
- 36.5.6 Modular exponentiation . . . . . 1440
- 36.5.7 Modular inversion . . . . . 1442
- 36.5.8 Modular reduction . . . . . 1442
- 36.5.9 Arithmetic addition . . . . . 1443
- 36.5.10 Arithmetic subtraction . . . . . 1443
- 36.5.11 Arithmetic multiplication . . . . . 1444
- 36.5.12 Arithmetic comparison . . . . . 1444
- 36.5.13 RSA CRT exponentiation . . . . . 1444
- 36.5.14 Point on elliptic curve Fp check . . . . . 1445
- 36.5.15 ECC Fp scalar multiplication . . . . . 1446
- 36.5.16 ECDSA sign . . . . . 1447
- 36.5.17 ECDSA verification . . . . . 1449
- 36.5.18 ECC complete addition . . . . . 1450
- 36.5.19 ECC double base ladder . . . . . 1450
- 36.5.20 ECC projective to affine . . . . . 1451
- 36.6 Example of configurations and processing times . . . . . 1452
- 36.6.1 Supported elliptic curves . . . . . 1452
- 36.6.2 Computation times . . . . . 1454
- 36.7 PKA interrupts . . . . . 1456
- 36.8 PKA registers . . . . . 1457
- 36.8.1 PKA control register (PKA_CR) . . . . . 1457
- 36.8.2 PKA status register (PKA_SR) . . . . . 1459
- 36.8.3 PKA clear flag register (PKA_CLRFR) . . . . . 1461
- 36.8.4 PKA RAM . . . . . 1462
- 36.8.5 PKA register map . . . . . 1463
37 Advanced-control timers (TIM1/TIM8) . . . . . 1464
- 37.1 TIM1/TIM8 introduction . . . . . 1464
| 37.2 | TIM1/TIM8 main features . . . . . | 1465 |
| 37.3 | TIM1/TIM8 functional description . . . . . | 1466 |
| 37.3.1 | Block diagram . . . . . | 1466 |
| 37.3.2 | TIM1/TIM8 pins and internal signals . . . . . | 1467 |
| 37.3.3 | Time-base unit . . . . . | 1471 |
| 37.3.4 | Counter modes . . . . . | 1473 |
| 37.3.5 | Repetition counter . . . . . | 1485 |
| 37.3.6 | External trigger input . . . . . | 1486 |
| 37.3.7 | Clock selection . . . . . | 1487 |
| 37.3.8 | Capture/compare channels . . . . . | 1491 |
| 37.3.9 | Input capture mode . . . . . | 1494 |
| 37.3.10 | PWM input mode . . . . . | 1495 |
| 37.3.11 | Forced output mode . . . . . | 1496 |
| 37.3.12 | Output compare mode . . . . . | 1496 |
| 37.3.13 | PWM mode . . . . . | 1498 |
| 37.3.14 | Asymmetric PWM mode . . . . . | 1506 |
| 37.3.15 | Combined PWM mode . . . . . | 1507 |
| 37.3.16 | Combined 3-phase PWM mode . . . . . | 1508 |
| 37.3.17 | Complementary outputs and dead-time insertion . . . . . | 1509 |
| 37.3.18 | Using the break function . . . . . | 1512 |
| 37.3.19 | Bidirectional break inputs . . . . . | 1518 |
| 37.3.20 | Clearing the tim_ocxref signal on an external event . . . . . | 1519 |
| 37.3.21 | 6-step PWM generation . . . . . | 1521 |
| 37.3.22 | One-pulse mode . . . . . | 1522 |
| 37.3.23 | Retriggerable One-pulse mode . . . . . | 1524 |
| 37.3.24 | Pulse on compare mode . . . . . | 1525 |
| 37.3.25 | Encoder interface mode . . . . . | 1527 |
| 37.3.26 | Direction bit output . . . . . | 1544 |
| 37.3.27 | UIF bit remapping . . . . . | 1545 |
| 37.3.28 | Timer input XOR function . . . . . | 1545 |
| 37.3.29 | Interfacing with Hall sensors . . . . . | 1545 |
| 37.3.30 | Timer synchronization . . . . . | 1547 |
| 37.3.31 | ADC triggers . . . . . | 1552 |
| 37.3.32 | ADC synchronization . . . . . | 1552 |
| 37.3.33 | DMA burst mode . . . . . | 1553 |
| 37.3.34 | TIM1/TIM8 DMA requests . . . . . | 1554 |
| 37.3.35 | Debug mode . . . . . | 1554 |
| 37.4 | TIM1/TIM8 low-power modes . . . . . | 1555 |
| 37.5 | TIM1/TIM8 interrupts . . . . . | 1555 |
| 37.6 | TIM1/TIM8 registers . . . . . | 1556 |
| 37.6.1 | TIMx control register 1 (TIMx_CR1)(x = 1, 8) . . . . . | 1556 |
| 37.6.2 | TIMx control register 2 (TIMx_CR2)(x = 1, 8) . . . . . | 1557 |
| 37.6.3 | TIMx slave mode control register (TIMx_SMCR)(x = 1, 8) . . . . . | 1561 |
| 37.6.4 | TIMx DMA/interrupt enable register (TIMx_DIER)(x = 1, 8) . . . . . | 1565 |
| 37.6.5 | TIMx status register (TIMx_SR)(x = 1, 8) . . . . . | 1566 |
| 37.6.6 | TIMx event generation register (TIMx_EGR)(x = 1, 8) . . . . . | 1569 |
| 37.6.7 | TIMx capture/compare mode register 1 (TIMx_CCMR1) (x = 1, 8) . . . . . | 1570 |
| 37.6.8 | TIMx capture/compare mode register 1 [alternate] (TIMx_CCMR1)(x = 1, 8) . . . . . | 1572 |
| 37.6.9 | TIMx capture/compare mode register 2 (TIMx_CCMR2) (x = 1, 8) . . . . . | 1575 |
| 37.6.10 | TIMx capture/compare mode register 2 [alternate] (TIMx_CCMR2)(x = 1, 8) . . . . . | 1576 |
| 37.6.11 | TIMx capture/compare enable register (TIMx_CCER)(x = 1, 8) . . . . . | 1579 |
| 37.6.12 | TIMx counter (TIMx_CNT)(x = 1, 8) . . . . . | 1583 |
| 37.6.13 | TIMx prescaler (TIMx_PSC)(x = 1, 8) . . . . . | 1583 |
| 37.6.14 | TIMx autoreload register (TIMx_ARR)(x = 1, 8) . . . . . | 1584 |
| 37.6.15 | TIMx repetition counter register (TIMx_RCR)(x = 1, 8) . . . . . | 1584 |
| 37.6.16 | TIMx capture/compare register 1 (TIMx_CCR1)(x = 1, 8) . . . . . | 1585 |
| 37.6.17 | TIMx capture/compare register 2 (TIMx_CCR2)(x = 1, 8) . . . . . | 1585 |
| 37.6.18 | TIMx capture/compare register 3 (TIMx_CCR3)(x = 1, 8) . . . . . | 1586 |
| 37.6.19 | TIMx capture/compare register 4 (TIMx_CCR4)(x = 1, 8) . . . . . | 1587 |
| 37.6.20 | TIMx break and dead-time register (TIMx_BDTR)(x = 1, 8) . . . . . | 1588 |
| 37.6.21 | TIMx capture/compare register 5 (TIMx_CCR5)(x = 1, 8) . . . . . | 1592 |
| 37.6.22 | TIMx capture/compare register 6 (TIMx_CCR6)(x = 1, 8) . . . . . | 1593 |
| 37.6.23 | TIMx capture/compare mode register 3 (TIMx_CCMR3) (x = 1, 8) . . . . . | 1594 |
| 37.6.24 | TIMx timer deadtime register 2 (TIMx_DTR2)(x = 1, 8) . . . . . | 1595 |
| 37.6.25 | TIMx timer encoder control register (TIMx_ECR)(x = 1, 8) . . . . . | 1596 |
| 37.6.26 | TIMx timer input selection register (TIMx_TISEL)(x = 1, 8) . . . . . | 1597 |
| 37.6.27 | TIMx alternate function option register 1 (TIMx_AF1)(x = 1, 8) . . . . . | 1598 |
| 37.6.28 | TIMx alternate function register 2 (TIMx_AF2)(x = 1, 8) . . . . . | 1601 |
| 37.6.29 | TIMx DMA control register (TIMx_DCR)(x = 1, 8) . . . . . | 1603 |
| 37.6.30 | TIMx DMA address for full transfer (TIMx_DMAR)(x = 1, 8) . . . . . | 1605 |
| 37.6.31 | TIMx register map ..... | 1605 |
| 38 | General-purpose timers (TIM2/TIM3/TIM4) ..... | 1608 |
| 38.1 | TIM2/TIM3/TIM4 introduction ..... | 1608 |
| 38.2 | TIM2/TIM3/TIM4 main features ..... | 1608 |
| 38.3 | TIM2/TIM3/TIM4 implementation ..... | 1609 |
| 38.4 | TIM2/TIM3/TIM4 functional description ..... | 1610 |
| 38.4.1 | Block diagram ..... | 1610 |
| 38.4.2 | TIM2/TIM3/TIM4 pins and internal signals ..... | 1611 |
| 38.4.3 | Time-base unit ..... | 1614 |
| 38.4.4 | Counter modes ..... | 1616 |
| 38.4.5 | Clock selection ..... | 1628 |
| 38.4.6 | Capture/compare channels ..... | 1632 |
| 38.4.7 | Input capture mode ..... | 1634 |
| 38.4.8 | PWM input mode ..... | 1635 |
| 38.4.9 | Forced output mode ..... | 1636 |
| 38.4.10 | Output compare mode ..... | 1636 |
| 38.4.11 | PWM mode ..... | 1638 |
| 38.4.12 | Asymmetric PWM mode ..... | 1646 |
| 38.4.13 | Combined PWM mode ..... | 1647 |
| 38.4.14 | Clearing the tim_ocxref signal on an external event ..... | 1648 |
| 38.4.15 | One-pulse mode ..... | 1650 |
| 38.4.16 | Retriggerable one-pulse mode ..... | 1651 |
| 38.4.17 | Pulse on compare mode ..... | 1652 |
| 38.4.18 | Encoder interface mode ..... | 1654 |
| 38.4.19 | Direction bit output ..... | 1672 |
| 38.4.20 | UIF bit remapping ..... | 1673 |
| 38.4.21 | Timer input XOR function ..... | 1673 |
| 38.4.22 | Timers and external trigger synchronization ..... | 1673 |
| 38.4.23 | Timer synchronization ..... | 1677 |
| 38.4.24 | ADC triggers ..... | 1682 |
| 38.4.25 | ADC synchronization ..... | 1683 |
| 38.4.26 | DMA burst mode ..... | 1684 |
| 38.4.27 | TIM2/TIM3/TIM4 DMA requests ..... | 1685 |
| 38.4.28 | Debug mode ..... | 1685 |
| 38.4.29 | TIM2/TIM3/TIM4 low-power modes ..... | 1685 |
| 38.4.30 | TIM2/TIM3/TIM4 interrupts ..... | 1686 |
| 38.5 | TIM2/TIM3/TIM4 registers . . . . . | 1687 |
| 38.5.1 | TIMx control register 1 (TIMx_CR1)(x = 2 to 4) . . . . . | 1687 |
| 38.5.2 | TIMx control register 2 (TIMx_CR2)(x = 2 to 4) . . . . . | 1688 |
| 38.5.3 | TIMx slave mode control register (TIMx_SMCR)(x = 2 to 4) . . . . . | 1690 |
| 38.5.4 | TIMx DMA/Interrupt enable register (TIMx_DIER)(x = 2 to 4) . . . . . | 1694 |
| 38.5.5 | TIMx status register (TIMx_SR)(x = 2 to 4) . . . . . | 1695 |
| 38.5.6 | TIMx event generation register (TIMx_EGR)(x = 2 to 4) . . . . . | 1697 |
| 38.5.7 | TIMx capture/compare mode register 1 (TIMx_CCMR1)(x = 2 to 4) . . . . . | 1698 |
| 38.5.8 | TIMx capture/compare mode register 1 [alternate] (TIMx_CCMR1)(x = 2 to 4) . . . . . | 1700 |
| 38.5.9 | TIMx capture/compare mode register 2 (TIMx_CCMR2)(x = 2 to 4) . . . . . | 1702 |
| 38.5.10 | TIMx capture/compare mode register 2 [alternate] (TIMx_CCMR2)(x = 2 to 4) . . . . . | 1703 |
| 38.5.11 | TIMx capture/compare enable register (TIMx_CCER)(x = 2 to 4) . . . . . | 1706 |
| 38.5.12 | TIMx counter (TIMx_CNT)(x = 2 to 4) . . . . . | 1708 |
| 38.5.13 | TIMx prescaler (TIMx_PSC)(x = 2 to 4) . . . . . | 1708 |
| 38.5.14 | TIMx autoreload register (TIMx_ARR)(x = 2 to 4) . . . . . | 1709 |
| 38.5.15 | TIMx capture/compare register 1 (TIMx_CCR1)(x = 2 to 4) . . . . . | 1709 |
| 38.5.16 | TIMx capture/compare register 2 (TIMx_CCR2)(x = 2 to 4) . . . . . | 1710 |
| 38.5.17 | TIMx capture/compare register 3 (TIMx_CCR3)(x = 2 to 4) . . . . . | 1711 |
| 38.5.18 | TIMx capture/compare register 4 (TIMx_CCR4)(x = 2 to 4) . . . . . | 1712 |
| 38.5.19 | TIMx timer encoder control register (TIMx_ECR)(x = 2 to 4) . . . . . | 1713 |
| 38.5.20 | TIMx timer input selection register (TIMx_TISEL)(x = 2 to 4) . . . . . | 1714 |
| 38.5.21 | TIMx alternate function register 1 (TIMx_AF1)(x = 2 to 4) . . . . . | 1715 |
| 38.5.22 | TIMx alternate function register 2 (TIMx_AF2)(x = 2 to 4) . . . . . | 1716 |
| 38.5.23 | TIMx DMA control register (TIMx_DCR)(x = 2 to 4) . . . . . | 1717 |
| 38.5.24 | TIMx DMA address for full transfer (TIMx_DMAR)(x = 2 to 4) . . . . . | 1718 |
| 38.5.25 | TIMx register map . . . . . | 1719 |
| 39 | Basic timers (TIM6/TIM7) . . . . . | 1722 |
| 39.1 | TIM6/TIM7 introduction . . . . . | 1722 |
| 39.2 | TIM6/TIM7 main features . . . . . | 1722 |
| 39.3 | TIM6/TIM7 functional description . . . . . | 1723 |
| 39.3.1 | TIM6/TIM7 block diagram . . . . . | 1723 |
| 39.3.2 | TIM6/TIM7 internal signals . . . . . | 1723 |
| 39.3.3 | TIM6/TIM7 clocks . . . . . | 1724 |
| 39.3.4 | Time-base unit . . . . . | 1724 |
| 39.3.5 | Counting mode ..... | 1726 |
| 39.3.6 | UIF bit remapping ..... | 1733 |
| 39.3.7 | ADC triggers ..... | 1734 |
| 39.3.8 | ADC synchronization ..... | 1734 |
| 39.3.9 | TIM6/TIM7 DMA requests ..... | 1735 |
| 39.3.10 | Debug mode ..... | 1735 |
| 39.3.11 | TIM6/TIM7 low-power modes ..... | 1735 |
| 39.3.12 | TIM6/TIM7 interrupts ..... | 1735 |
| 39.4 | TIM6/TIM7 registers ..... | 1736 |
| 39.4.1 | TIMx control register 1 (TIMx_CR1)(x = 6 to 7) ..... | 1736 |
| 39.4.2 | TIMx control register 2 (TIMx_CR2)(x = 6 to 7) ..... | 1738 |
| 39.4.3 | TIMx DMA/Interrupt enable register (TIMx_DIER)(x = 6 to 7) ..... | 1738 |
| 39.4.4 | TIMx status register (TIMx_SR)(x = 6 to 7) ..... | 1739 |
| 39.4.5 | TIMx event generation register (TIMx_EGR)(x = 6 to 7) ..... | 1739 |
| 39.4.6 | TIMx counter (TIMx_CNT)(x = 6 to 7) ..... | 1740 |
| 39.4.7 | TIMx prescaler (TIMx_PSC)(x = 6 to 7) ..... | 1740 |
| 39.4.8 | TIMx autoreload register (TIMx_ARR)(x = 6 to 7) ..... | 1741 |
| 39.4.9 | TIMx register map ..... | 1742 |
| 40 | General-purpose timers (TIM12) ..... | 1743 |
| 40.1 | TIM12 introduction ..... | 1743 |
| 40.2 | TIM12 main features ..... | 1743 |
| 40.3 | TIM12 functional description ..... | 1744 |
| 40.3.1 | Block diagram ..... | 1744 |
| 40.3.2 | TIM12 pins and internal signals ..... | 1744 |
| 40.3.3 | Time-base unit ..... | 1746 |
| 40.3.4 | Counter modes ..... | 1748 |
| 40.3.5 | Clock selection ..... | 1751 |
| 40.3.6 | Capture/compare channels ..... | 1753 |
| 40.3.7 | Input capture mode ..... | 1755 |
| 40.3.8 | PWM input mode (TIM12 only) ..... | 1756 |
| 40.3.9 | Forced output mode ..... | 1757 |
| 40.3.10 | Output compare mode ..... | 1757 |
| 40.3.11 | PWM mode ..... | 1759 |
| 40.3.12 | Combined PWM mode (TIM12 only) ..... | 1764 |
| 40.3.13 | One-pulse mode ..... | 1765 |
| 40.3.14 | Retriggerable one pulse mode (TIM12 only) ..... | 1767 |
| 40.3.15 | UIF bit remapping . . . . . | 1768 |
| 40.3.16 | Timer input XOR function . . . . . | 1768 |
| 40.3.17 | TIM12 external trigger synchronization . . . . . | 1768 |
| 40.3.18 | Slave mode – combined reset + trigger mode . . . . . | 1771 |
| 40.3.19 | Slave mode – combined reset + gated mode . . . . . | 1771 |
| 40.3.20 | Timer synchronization (TIM12 only) . . . . . | 1771 |
| 40.3.21 | Using timer output as trigger for other timers (N/A only) . . . . . | 1771 |
| 40.3.22 | ADC triggers (TIM12 only) . . . . . | 1771 |
| 40.3.23 | Debug mode . . . . . | 1771 |
| 40.4 | TIM12 low-power modes . . . . . | 1772 |
| 40.5 | TIM12 interrupts . . . . . | 1772 |
| 40.6 | TIM12 registers . . . . . | 1772 |
| 40.6.1 | TIM12 control register 1 (TIM12_CR1) . . . . . | 1772 |
| 40.6.2 | TIM12 control register 2 (TIM12_CR2) . . . . . | 1774 |
| 40.6.3 | TIM12 slave mode control register (TIM12_SMCR) . . . . . | 1774 |
| 40.6.4 | TIM12 interrupt enable register (TIM12_DIER) . . . . . | 1776 |
| 40.6.5 | TIM12 status register (TIM12_SR) . . . . . | 1777 |
| 40.6.6 | TIM12 event generation register (TIM12_EGR) . . . . . | 1778 |
| 40.6.7 | TIM12 capture/compare mode register 1 (TIM12_CCMR1) . . . . . | 1779 |
| 40.6.8 | TIM12 capture/compare mode register 1 [alternate] (TIM12_CCMR1) . . . . . | 1780 |
| 40.6.9 | TIM12 capture/compare enable register (TIM12_CCER) . . . . . | 1783 |
| 40.6.10 | TIM12 counter (TIM12_CNT) . . . . . | 1784 |
| 40.6.11 | TIM12 prescaler (TIM12_PSC) . . . . . | 1785 |
| 40.6.12 | TIM12 autoreload register (TIM12_ARR) . . . . . | 1785 |
| 40.6.13 | TIM12 capture/compare register 1 (TIM12_CCR1) . . . . . | 1786 |
| 40.6.14 | TIM12 capture/compare register 2 (TIM12_CCR2) . . . . . | 1786 |
| 40.6.15 | TIM12 timer input selection register (TIM12_TISEL) . . . . . | 1787 |
| 40.6.16 | TIM12 register map . . . . . | 1788 |
| 41 | General purpose timers (TIM15/TIM16/TIM17) . . . . . | 1790 |
| 41.1 | TIM15/TIM16/TIM17 introduction . . . . . | 1790 |
| 41.2 | TIM15 main features . . . . . | 1790 |
| 41.3 | TIM16/TIM17 main features . . . . . | 1791 |
| 41.4 | TIM15/TIM16/TIM17 functional description . . . . . | 1792 |
| 41.4.1 | Block diagram . . . . . | 1792 |
| 41.4.2 | TIM15/TIM16/TIM17 pins and internal signals . . . . . | 1793 |
| 41.4.3 | Time-base unit . . . . . | 1796 |
| 41.4.4 | Counter modes . . . . . | 1798 |
| 41.4.5 | Repetition counter . . . . . | 1802 |
| 41.4.6 | Clock selection . . . . . | 1803 |
| 41.4.7 | Capture/compare channels . . . . . | 1805 |
| 41.4.8 | Input capture mode . . . . . | 1807 |
| 41.4.9 | PWM input mode (only for TIM15) . . . . . | 1809 |
| 41.4.10 | Forced output mode . . . . . | 1810 |
| 41.4.11 | Output compare mode . . . . . | 1810 |
| 41.4.12 | PWM mode . . . . . | 1812 |
| 41.4.13 | Combined PWM mode (TIM15 only) . . . . . | 1817 |
| 41.4.14 | Complementary outputs and dead-time insertion . . . . . | 1818 |
| 41.4.15 | Using the break function . . . . . | 1821 |
| 41.4.16 | Bidirectional break input . . . . . | 1825 |
| 41.4.17 | Clearing the tim_ocxref signal on an external event . . . . . | 1826 |
| 41.4.18 | 6-step PWM generation . . . . . | 1827 |
| 41.4.19 | One-pulse mode . . . . . | 1829 |
| 41.4.20 | Retriggerable one pulse mode (TIM15 only) . . . . . | 1830 |
| 41.4.21 | UIF bit remapping . . . . . | 1831 |
| 41.4.22 | Timer input XOR function (TIM15 only) . . . . . | 1831 |
| 41.4.23 | External trigger synchronization (TIM15 only) . . . . . | 1831 |
| 41.4.24 | Slave mode – combined reset + trigger mode (TIM15 only) . . . . . | 1834 |
| 41.4.25 | Slave mode – combined reset + gated mode (TIM15 only) . . . . . | 1834 |
| 41.4.26 | Timer synchronization (TIM15 only) . . . . . | 1835 |
| 41.4.27 | Using timer output as trigger for other timers (TIM16/TIM17 only) . . . . . | 1835 |
| 41.4.28 | ADC triggers (TIM15 only) . . . . . | 1835 |
| 41.4.29 | ADC synchronization (TIM15 only) . . . . . | 1836 |
| 41.4.30 | DMA burst mode . . . . . | 1836 |
| 41.4.31 | TIM15/TIM16/TIM17 DMA requests . . . . . | 1837 |
| 41.4.32 | Debug mode . . . . . | 1838 |
| 41.5 | TIM15/TIM16/TIM17 low-power modes . . . . . | 1838 |
| 41.6 | TIM15/TIM16/TIM17 interrupts . . . . . | 1838 |
| 41.7 | TIM15 registers . . . . . | 1839 |
| 41.7.1 | TIM15 control register 1 (TIM15_CR1) . . . . . | 1839 |
| 41.7.2 | TIM15 control register 2 (TIM15_CR2) . . . . . | 1840 |
| 41.7.3 | TIM15 slave mode control register (TIM15_SMCR) . . . . . | 1842 |
| 41.7.4 | TIM15 DMA/interrupt enable register (TIM15_DIER) . . . . . | 1844 |
| 41.7.5 | TIM15 status register (TIM15_SR) . . . . . | 1845 |
| 41.7.6 | TIM15 event generation register (TIM15_EGR) . . . . . | 1847 |
| 41.7.7 | TIM15 capture/compare mode register 1 (TIM15_CCMR1) . . . . . | 1848 |
| 41.7.8 | TIM15 capture/compare mode register 1 [alternate] (TIM15_CCMR1) . . . . . | 1849 |
| 41.7.9 | TIM15 capture/compare enable register (TIM15_CCER) . . . . . | 1852 |
| 41.7.10 | TIM15 counter (TIM15_CNT) . . . . . | 1855 |
| 41.7.11 | TIM15 prescaler (TIM15_PSC) . . . . . | 1855 |
| 41.7.12 | TIM15 autoreload register (TIM15_ARR) . . . . . | 1856 |
| 41.7.13 | TIM15 repetition counter register (TIM15_RCR) . . . . . | 1856 |
| 41.7.14 | TIM15 capture/compare register 1 (TIM15_CCR1) . . . . . | 1857 |
| 41.7.15 | TIM15 capture/compare register 2 (TIM15_CCR2) . . . . . | 1858 |
| 41.7.16 | TIM15 break and dead-time register (TIM15_BDTR) . . . . . | 1858 |
| 41.7.17 | TIM15 timer deadtime register 2 (TIM15_DTR2) . . . . . | 1861 |
| 41.7.18 | TIM15 input selection register (TIM15_TISEL) . . . . . | 1862 |
| 41.7.19 | TIM15 alternate function register 1 (TIM15_AF1) . . . . . | 1863 |
| 41.7.20 | TIM15 alternate function register 2 (TIM15_AF2) . . . . . | 1865 |
| 41.7.21 | TIM15 DMA control register (TIM15_DCR) . . . . . | 1866 |
| 41.7.22 | TIM15 DMA address for full transfer (TIM15_DMAR) . . . . . | 1867 |
| 41.7.23 | TIM15 register map . . . . . | 1867 |
| 41.8 | TIM16/TIM17 registers . . . . . | 1870 |
| 41.8.1 | TIMx control register 1 (TIMx_CR1)(x = 16 to 17) . . . . . | 1870 |
| 41.8.2 | TIMx control register 2 (TIMx_CR2)(x = 16 to 17) . . . . . | 1871 |
| 41.8.3 | TIMx DMA/interrupt enable register (TIMx_DIER)(x = 16 to 17) . . . . . | 1872 |
| 41.8.4 | TIMx status register (TIMx_SR)(x = 16 to 17) . . . . . | 1873 |
| 41.8.5 | TIMx event generation register (TIMx_EGR)(x = 16 to 17) . . . . . | 1874 |
| 41.8.6 | TIMx capture/compare mode register 1 (TIMx_CCMR1) (x = 16 to 17) . . . . . | 1875 |
| 41.8.7 | TIMx capture/compare mode register 1 [alternate] (TIMx_CCMR1)(x = 16 to 17) . . . . . | 1876 |
| 41.8.8 | TIMx capture/compare enable register (TIMx_CCER)(x = 16 to 17) . . . . . | 1878 |
| 41.8.9 | TIMx counter (TIMx_CNT)(x = 16 to 17) . . . . . | 1881 |
| 41.8.10 | TIMx prescaler (TIMx_PSC)(x = 16 to 17) . . . . . | 1881 |
| 41.8.11 | TIMx auto-reautoreload register (TIMx_ARR)(x = 16 to 17) . . . . . | 1882 |
| 41.8.12 | TIMx repetition counter register (TIMx_RCR)(x = 16 to 17) . . . . . | 1882 |
| 41.8.13 | TIMx capture/compare register 1 (TIMx_CCR1)(x = 16 to 17) . . . . . | 1883 |
| 41.8.14 | TIMx break and dead-time register (TIMx_BDTR)(x = 16 to 17) . . . . . | 1884 |
| 41.8.15 | TIMx timer deadtime register 2 (TIMx_DTR2)(x = 16 to 17) . . . . . | 1887 |
| 41.8.16 | TIMx input selection register (TIMx_TISEL)(x = 16 to 17) . . . . . | 1888 |
| 41.8.17 | TIMx alternate function register 1 (TIMx_AF1)(x = 16 to 17) . . . . . | 1888 |
| 41.8.18 | TIMx alternate function register 2 (TIMx_AF2)(x = 16 to 17) . . . . . | 1891 |
| 41.8.19 | TIMx option register 1 (TIMx_OR1)(x = 16 to 17) . . . . . | 1891 |
| 41.8.20 | TIMx DMA control register (TIMx_DCR)(x = 16 to 17) . . . . . | 1892 |
| 41.8.21 | TIM16/TIM17 DMA address for full transfer (TIMx_DMAR)(x = 16 to 17) . . . . . | 1893 |
| 41.8.22 | TIM16/TIM17 register map . . . . . | 1894 |
| 42 | Low-power timer (LPTIM) . . . . . | 1896 |
| 42.1 | LPTIM introduction . . . . . | 1896 |
| 42.2 | LPTIM main features . . . . . | 1896 |
| 42.3 | LPTIM implementation . . . . . | 1897 |
| 42.4 | LPTIM functional description . . . . . | 1898 |
| 42.4.1 | LPTIM block diagram . . . . . | 1898 |
| 42.4.2 | LPTIM pins and internal signals . . . . . | 1899 |
| 42.4.3 | LPTIM input and trigger mapping . . . . . | 1901 |
| 42.4.4 | LPTIM reset and clocks . . . . . | 1902 |
| 42.4.5 | Glitch filter . . . . . | 1903 |
| 42.4.6 | Prescaler . . . . . | 1904 |
| 42.4.7 | Trigger multiplexer . . . . . | 1904 |
| 42.4.8 | Operating mode . . . . . | 1905 |
| 42.4.9 | Timeout function . . . . . | 1907 |
| 42.4.10 | Waveform generation . . . . . | 1907 |
| 42.4.11 | Register update . . . . . | 1908 |
| 42.4.12 | Counter mode . . . . . | 1909 |
| 42.4.13 | Timer enable . . . . . | 1909 |
| 42.4.14 | Timer counter reset . . . . . | 1910 |
| 42.4.15 | Encoder mode . . . . . | 1910 |
| 42.4.16 | Repetition counter . . . . . | 1912 |
| 42.4.17 | Capture/compare channels . . . . . | 1913 |
| 42.4.18 | Input capture mode . . . . . | 1914 |
| 42.4.19 | PWM mode . . . . . | 1916 |
| 42.4.20 | Autonomous mode . . . . . | 1918 |
| 42.4.21 | DMA requests . . . . . | 1919 |
| 42.4.22 | Debug mode . . . . . | 1920 |
- 42.5 LPTIM low-power modes . . . . . 1920
- 42.6 LPTIM interrupts . . . . . 1920
- 42.7 LPTIM registers . . . . . 1921
- 42.7.1 LPTIM4 interrupt and status register (LPTIM4_ISR) . . . . . 1922
- 42.7.2 LPTIMx interrupt and status register [alternate] (LPTIMx_ISR)
(x = 1 to 3) . . . . . 1923 - 42.7.3 LPTIMx interrupt and status register [alternate] (LPTIMx_ISR)
(x = 1 to 3) . . . . . 1925 - 42.7.4 LPTIM4 interrupt clear register (LPTIM4_ICR) . . . . . 1927
- 42.7.5 LPTIMx interrupt clear register [alternate] (LPTIMx_ICR)
(x = 1 to 3) . . . . . 1928 - 42.7.6 LPTIMx interrupt clear register [alternate] (LPTIMx_ICR)
(x = 1 to 3) . . . . . 1929 - 42.7.7 LPTIM4 interrupt enable register (LPTIM4_DIER) . . . . . 1930
- 42.7.8 LPTIMx interrupt enable register [alternate] (LPTIMx_DIER)
(x = 1 to 3) . . . . . 1932 - 42.7.9 LPTIMx interrupt enable register [alternate] (LPTIMx_DIER)
(x = 1 to 3) . . . . . 1933 - 42.7.10 LPTIM configuration register (LPTIM_CFGR) . . . . . 1935
- 42.7.11 LPTIM control register (LPTIM_CR) . . . . . 1938
- 42.7.12 LPTIM compare register 1 (LPTIM_CCR1) . . . . . 1939
- 42.7.13 LPTIM autoreload register (LPTIM_ARR) . . . . . 1940
- 42.7.14 LPTIM counter register (LPTIM_CNT) . . . . . 1940
- 42.7.15 LPTIM configuration register 2 (LPTIM_CFGR2) . . . . . 1941
- 42.7.16 LPTIM repetition register (LPTIM_RCR) . . . . . 1942
- 42.7.17 LPTIM capture/compare mode register 1 (LPTIM_CCMR1) . . . . . 1942
- 42.7.18 LPTIM compare register 2 (LPTIM_CCR2) . . . . . 1945
- 42.7.19 LPTIM register map . . . . . 1945
- 43 Infrared interface (IRTIM) . . . . . 1948
- 44 Independent watchdog (IWDG) . . . . . 1949
- 44.1 IWDG introduction . . . . . 1949
- 44.2 IWDG main features . . . . . 1949
- 44.3 IWDG implementation . . . . . 1950
- 44.4 IWDG functional description . . . . . 1950
- 44.4.1 IWDG block diagram . . . . . 1950
- 44.4.2 IWDG internal signals . . . . . 1951
| 44.4.3 | Software and hardware watchdog modes . . . . . | 1952 |
| 44.4.4 | Window option . . . . . | 1953 |
| 44.4.5 | Debug . . . . . | 1956 |
| 44.4.6 | Register access protection . . . . . | 1956 |
| 44.5 | IWDG low power modes . . . . . | 1956 |
| 44.6 | IWDG interrupts . . . . . | 1957 |
| 44.7 | IWDG registers . . . . . | 1958 |
| 44.7.1 | IWDG key register (IWDG_KR) . . . . . | 1958 |
| 44.7.2 | IWDG prescaler register (IWDG_PR) . . . . . | 1959 |
| 44.7.3 | IWDG reload register (IWDG_RLR) . . . . . | 1960 |
| 44.7.4 | IWDG status register (IWDG_SR) . . . . . | 1960 |
| 44.7.5 | IWDG window register (IWDG_WINR) . . . . . | 1961 |
| 44.7.6 | IWDG early wake-up interrupt register (IWDG_EWCR) . . . . . | 1962 |
| 44.7.7 | IWDG register map . . . . . | 1964 |
| 45 | System window watchdog (WWDG) . . . . . | 1965 |
| 45.1 | WWDG introduction . . . . . | 1965 |
| 45.2 | WWDG main features . . . . . | 1965 |
| 45.3 | WWDG implementation . . . . . | 1965 |
| 45.4 | WWDG functional description . . . . . | 1966 |
| 45.4.1 | WWDG block diagram . . . . . | 1966 |
| 45.4.2 | WWDG internal signals . . . . . | 1966 |
| 45.4.3 | Enabling the watchdog . . . . . | 1967 |
| 45.4.4 | Controlling the down-counter . . . . . | 1967 |
| 45.4.5 | How to program the watchdog timeout . . . . . | 1967 |
| 45.4.6 | Debug mode . . . . . | 1968 |
| 45.5 | WWDG interrupts . . . . . | 1969 |
| 45.6 | WWDG registers . . . . . | 1969 |
| 45.6.1 | WWDG control register (WWDG_CR) . . . . . | 1969 |
| 45.6.2 | WWDG configuration register (WWDG_CFR) . . . . . | 1970 |
| 45.6.3 | WWDG status register (WWDG_SR) . . . . . | 1971 |
| 45.6.4 | WWDG register map . . . . . | 1971 |
| 46 | Real-time clock (RTC) . . . . . | 1972 |
| 46.1 | RTC introduction . . . . . | 1972 |
| 46.2 | RTC main features . . . . . | 1972 |
- 46.3 RTC functional description . . . . . 1973
- 46.3.1 RTC block diagram . . . . . 1973
- 46.3.2 RTC pins and internal signals . . . . . 1975
- 46.3.3 GPIOs controlled by the RTC . . . . . 1976
- 46.3.4 RTC registers write protection . . . . . 1976
- 46.3.5 RTC secure protection modes . . . . . 1977
- 46.3.6 RTC privilege protection modes . . . . . 1978
- 46.3.7 Clock and prescalers . . . . . 1979
- 46.3.8 Real-time clock and calendar . . . . . 1980
- 46.3.9 Calendar ultra-low power mode . . . . . 1981
- 46.3.10 Programmable alarms . . . . . 1981
- 46.3.11 Periodic auto-wake-up . . . . . 1981
- 46.3.12 RTC initialization and configuration . . . . . 1982
- 46.3.13 Reading the calendar . . . . . 1985
- 46.3.14 Resetting the RTC . . . . . 1986
- 46.3.15 RTC synchronization . . . . . 1986
- 46.3.16 RTC reference clock detection . . . . . 1987
- 46.3.17 RTC smooth digital calibration . . . . . 1988
- 46.3.18 Timestamp function . . . . . 1990
- 46.3.19 Calibration clock output . . . . . 1991
- 46.3.20 Tamper and alarm output . . . . . 1991
- 46.4 RTC low-power modes . . . . . 1992
- 46.5 RTC interrupts . . . . . 1992
- 46.6 RTC registers . . . . . 1994
- 46.6.1 RTC time register (RTC_TR) . . . . . 1994
- 46.6.2 RTC date register (RTC_DR) . . . . . 1995
- 46.6.3 RTC subsecond register (RTC_SSR) . . . . . 1996
- 46.6.4 RTC initialization control and status register (RTC_ICSR) . . . . . 1997
- 46.6.5 RTC prescaler register (RTC_PRER) . . . . . 1999
- 46.6.6 RTC wake-up timer register (RTC_WUTR) . . . . . 2000
- 46.6.7 RTC control register (RTC_CR) . . . . . 2001
- 46.6.8 RTC privilege mode control register (RTC_PRIVCFGR) . . . . . 2005
- 46.6.9 RTC secure configuration register (RTC_SECCFGR) . . . . . 2006
- 46.6.10 RTC write protection register (RTC_WPR) . . . . . 2007
- 46.6.11 RTC calibration register (RTC_CALR) . . . . . 2008
- 46.6.12 RTC shift control register (RTC_SHIFT) . . . . . 2009
- 46.6.13 RTC timestamp time register (RTC_TSTR) . . . . . 2010
| 46.6.14 | RTC timestamp date register (RTC_TSDR) . . . . . | 2011 |
| 46.6.15 | RTC timestamp subsecond register (RTC_TSSSR) . . . . . | 2012 |
| 46.6.16 | RTC alarm A register (RTC_ALRMAR) . . . . . | 2012 |
| 46.6.17 | RTC alarm A subsecond register (RTC_ALRMASSR) . . . . . | 2014 |
| 46.6.18 | RTC alarm B register (RTC_ALRMBR) . . . . . | 2015 |
| 46.6.19 | RTC alarm B subsecond register (RTC_ALRMBSSR) . . . . . | 2016 |
| 46.6.20 | RTC status register (RTC_SR) . . . . . | 2017 |
| 46.6.21 | RTC nonsecure masked interrupt status register (RTC_MISR) . . . . . | 2018 |
| 46.6.22 | RTC secure masked interrupt status register (RTC_SMISR) . . . . . | 2019 |
| 46.6.23 | RTC status clear register (RTC_SCR) . . . . . | 2021 |
| 46.6.24 | RTC timestamp on tamper control register (RTC_TAMPTSCR) . . . . . | 2022 |
| 46.6.25 | RTC timestamp status register (RTC_TSIDR) . . . . . | 2023 |
| 46.6.26 | RTC alarm A binary mode register (RTC_ALRABINR) . . . . . | 2024 |
| 46.6.27 | RTC alarm B binary mode register (RTC_ALRBBINR) . . . . . | 2024 |
| 46.6.28 | RTC register map . . . . . | 2025 |
| 47 | Tamper and backup registers (TAMP) . . . . . | 2028 |
| 47.1 | Introduction . . . . . | 2028 |
| 47.2 | TAMP main features . . . . . | 2028 |
| 47.3 | TAMP functional description . . . . . | 2029 |
| 47.3.1 | TAMP block diagram . . . . . | 2029 |
| 47.3.2 | TAMP pins and internal signals . . . . . | 2030 |
| 47.3.3 | GPIOs controlled by the RTC and TAMP . . . . . | 2032 |
| 47.3.4 | TAMP register write protection . . . . . | 2034 |
| 47.3.5 | TAMP secure protection modes . . . . . | 2034 |
| 47.3.6 | Backup registers protection zones . . . . . | 2034 |
| 47.3.7 | TAMP privilege protection modes . . . . . | 2035 |
| 47.3.8 | Boot hardware key (BHK) . . . . . | 2035 |
| 47.3.9 | Tamper detection . . . . . | 2036 |
| 47.3.10 | TAMP backup registers and other device secrets erase . . . . . | 2036 |
| 47.3.11 | Tamper detection - confirmed mode . . . . . | 2036 |
| 47.3.12 | Tamper detection configuration and initialization . . . . . | 2038 |
| 47.4 | TAMP in low-power modes . . . . . | 2041 |
| 47.5 | TAMP interrupts . . . . . | 2041 |
| 47.6 | TAMP registers . . . . . | 2042 |
| 47.6.1 | TAMP control register 1 (TAMP_CR1) . . . . . | 2042 |
| 47.6.2 | TAMP control register 2 (TAMP_CR2) . . . . . | 2043 |
| 47.6.3 | TAMP control register 3 (TAMP_CR3) . . . . . | 2044 |
| 47.6.4 | TAMP filter control register (TAMP_FLTCR) . . . . . | 2045 |
| 47.6.5 | TAMP secure configuration register (TAMP_SECCFGR) . . . . . | 2046 |
| 47.6.6 | TAMP privileged configuration register (TAMP_PRIVCFGR) . . . . . | 2048 |
| 47.6.7 | TAMP interrupt enable register (TAMP_IER) . . . . . | 2049 |
| 47.6.8 | TAMP status register (TAMP_SR) . . . . . | 2050 |
| 47.6.9 | TAMP nonsecure masked interrupt status register (TAMP_MISR) . . . . . | 2051 |
| 47.6.10 | TAMP secure masked interrupt status register (TAMP_SMISR) . . . . . | 2052 |
| 47.6.11 | TAMP status clear register (TAMP_SCR) . . . . . | 2053 |
| 47.6.12 | TAMP monotonic counter 1 register (TAMP_COUNT1R) . . . . . | 2054 |
| 47.6.13 | TAMP resource protection register (TAMP_RPFCFGR) . . . . . | 2054 |
| 47.6.14 | TAMP backup x register (TAMP_BKPxR) . . . . . | 2055 |
| 47.6.15 | TAMP register map . . . . . | 2055 |
| 48 | Inter-integrated circuit interface (I2C) . . . . . | 2058 |
| 48.1 | I2C introduction . . . . . | 2058 |
| 48.2 | I2C main features . . . . . | 2058 |
| 48.3 | I2C implementation . . . . . | 2059 |
| 48.4 | I2C functional description . . . . . | 2059 |
| 48.4.1 | I2C block diagram . . . . . | 2060 |
| 48.4.2 | I2C pins and internal signals . . . . . | 2060 |
| 48.4.3 | I2C clock requirements . . . . . | 2061 |
| 48.4.4 | I2C mode selection . . . . . | 2062 |
| 48.4.5 | I2C initialization . . . . . | 2063 |
| 48.4.6 | I2C reset . . . . . | 2067 |
| 48.4.7 | I2C data transfer . . . . . | 2067 |
| 48.4.8 | I2C target mode . . . . . | 2069 |
| 48.4.9 | I2C controller mode . . . . . | 2078 |
| 48.4.10 | I2C_TIMINGR register configuration examples . . . . . | 2089 |
| 48.4.11 | SMBus specific features . . . . . | 2091 |
| 48.4.12 | SMBus initialization . . . . . | 2094 |
| 48.4.13 | SMBus I2C_TIMEOUTR register configuration examples . . . . . | 2096 |
| 48.4.14 | SMBus target mode . . . . . | 2096 |
| 48.4.15 | SMBus controller mode . . . . . | 2100 |
| 48.4.16 | Autonomous mode . . . . . | 2103 |
| 48.4.17 | Error conditions . . . . . | 2105 |
| 48.5 | I2C in low-power modes . . . . . | 2106 |
| 48.6 | I2C interrupts . . . . . | 2107 |
| 48.7 | I2C DMA requests . . . . . | 2107 |
| 48.7.1 | Transmission using DMA . . . . . | 2107 |
| 48.7.2 | Reception using DMA . . . . . | 2108 |
| 48.7.3 | Controller event control using DMA . . . . . | 2108 |
| 48.8 | I2C debug modes . . . . . | 2109 |
| 48.9 | I2C registers . . . . . | 2109 |
| 48.9.1 | I2C control register 1 (I2C_CR1) . . . . . | 2109 |
| 48.9.2 | I2C control register 2 (I2C_CR2) . . . . . | 2112 |
| 48.9.3 | I2C own address 1 register (I2C_OAR1) . . . . . | 2114 |
| 48.9.4 | I2C own address 2 register (I2C_OAR2) . . . . . | 2114 |
| 48.9.5 | I2C timing register (I2C_TIMINGR) . . . . . | 2115 |
| 48.9.6 | I2C timeout register (I2C_TIMEOUTR) . . . . . | 2116 |
| 48.9.7 | I2C interrupt and status register (I2C_ISR) . . . . . | 2117 |
| 48.9.8 | I2C interrupt clear register (I2C_ICR) . . . . . | 2120 |
| 48.9.9 | I2C PEC register (I2C_PECR) . . . . . | 2121 |
| 48.9.10 | I2C receive data register (I2C_RXDR) . . . . . | 2121 |
| 48.9.11 | I2C transmit data register (I2C_TXDR) . . . . . | 2122 |
| 48.9.12 | I2C autonomous mode control register (I2C_AUTOCR) . . . . . | 2122 |
| 48.9.13 | I2C register map . . . . . | 2124 |
| 49 | Improved inter-integrated circuit (I3C) . . . . . | 2126 |
| 49.1 | I3C introduction . . . . . | 2126 |
| 49.2 | I3C main features . . . . . | 2126 |
| 49.3 | I3C implementation . . . . . | 2128 |
| 49.3.1 | I3C instantiation . . . . . | 2128 |
| 49.3.2 | I3C wake-up from low-power mode(s) . . . . . | 2128 |
| 49.3.3 | I3C autonomous mode with DMA in Stop mode(s) . . . . . | 2128 |
| 49.3.4 | I3C FIFOs . . . . . | 2128 |
| 49.3.5 | I3C triggers . . . . . | 2129 |
| 49.3.6 | I3C interrupt(s) . . . . . | 2129 |
| 49.3.7 | I3C MIPI ® support . . . . . | 2130 |
| 49.4 | I3C block diagram . . . . . | 2131 |
| 49.5 | I3C pins and internal signals . . . . . | 2131 |
| 49.6 | I3C reset and clocks . . . . . | 2132 |
- 49.6.1 I3C reset . . . . . 2132
- 49.6.2 I3C clocks and requirements . . . . . 2132
- 49.7 I3C peripheral state and programming . . . . . 2134
- 49.7.1 I3C peripheral state . . . . . 2134
- 49.7.2 I3C controller state and programming sequence . . . . . 2135
- 49.7.3 I3C target state and programming sequence . . . . . 2140
- 49.8 I3C registers and programming . . . . . 2144
- 49.8.1 I3C register set, as controller/target . . . . . 2144
- 49.8.2 I3C registers and fields use versus peripheral state, as controller . . . . . 2145
- 49.8.3 I3C registers and fields usage versus peripheral state, as target . . . . . 2148
- 49.9 I3C bus transfers and programming . . . . . 2150
- 49.9.1 I3C command set (CCC), as controller/target . . . . . 2150
- 49.9.2 I3C broadcast/direct CCC transfer (except ENTDAA, RSTACT), as controller . . . . . 2154
- 49.9.3 I3C broadcast ENTDAA CCC transfer, as controller . . . . . 2156
- 49.9.4 I3C broadcast/direct RSTACT CCC transfer, as controller . . . . . 2156
- 49.9.5 I3C broadcast/direct CCC transfer (except ENTDAA, DEFTGTS, DEFGRPA), as target . . . . . 2158
- 49.9.6 I3C broadcast ENTDAA CCC transfer, as target . . . . . 2160
- 49.9.7 I3C broadcast DEFTGTS CCC transfer, as target . . . . . 2161
- 49.9.8 I3C broadcast DEFGRPA CCC transfer, as target . . . . . 2162
- 49.9.9 I3C direct GETSTATUS CCC response, as target . . . . . 2163
- 49.9.10 I3C private read/write transfer, as controller . . . . . 2164
- 49.9.11 I3C private read/write transfer, as target . . . . . 2165
- 49.9.12 Legacy I2C read/write transfer, as controller . . . . . 2166
- 49.9.13 I3C IBI transfer, as controller/target . . . . . 2167
- 49.9.14 I3C hot-join request transfer, as controller/target . . . . . 2168
- 49.9.15 I3C controller-role request transfer, as controller/target . . . . . 2169
- 49.10 I3C FIFOs management, as controller . . . . . 2170
- 49.10.1 C-FIFO management, as controller . . . . . 2170
- 49.10.2 TX-FIFO management, as controller . . . . . 2171
- 49.10.3 RX-FIFO management, as controller . . . . . 2174
- 49.10.4 S-FIFO management, as controller . . . . . 2176
- 49.11 I3C FIFOs management, as target . . . . . 2178
- 49.11.1 RX-FIFO management, as target . . . . . 2178
- 49.11.2 TX-FIFO management, as target . . . . . 2179
- 49.12 I3C error management . . . . . 2182
| 49.12.1 | Controller error management . . . . . | 2182 |
| 49.12.2 | Target error management . . . . . | 2184 |
| 49.13 | I3C wake-up from low-power mode(s) . . . . . | 2185 |
| 49.13.1 | Wake-up from Stop . . . . . | 2185 |
| 49.13.2 | I3C wake-up from Standby . . . . . | 2188 |
| 49.14 | I3C in low-power modes . . . . . | 2188 |
| 49.15 | I3C interrupts . . . . . | 2189 |
| 49.16 | I3C registers . . . . . | 2189 |
| 49.16.1 | I3C message control register (I3C_CR) . . . . . | 2189 |
| 49.16.2 | I3C message control register [alternate] (I3C_CR) . . . . . | 2191 |
| 49.16.3 | I3C configuration register (I3C_CFGGR) . . . . . | 2193 |
| 49.16.4 | I3C receive data byte register (I3C_RDR) . . . . . | 2198 |
| 49.16.5 | I3C receive data word register (I3C_RDWR) . . . . . | 2199 |
| 49.16.6 | I3C transmit data byte register (I3C_TDR) . . . . . | 2200 |
| 49.16.7 | I3C transmit data word register (I3C_TDWR) . . . . . | 2201 |
| 49.16.8 | I3C IBI payload data register (I3C_IBIDR) . . . . . | 2203 |
| 49.16.9 | I3C target transmit configuration register (I3C_TGTTDR) . . . . . | 2204 |
| 49.16.10 | I3C status register (I3C_SR) . . . . . | 2205 |
| 49.16.11 | I3C status error register (I3C_SER) . . . . . | 2206 |
| 49.16.12 | I3C received message register (I3C_RMR) . . . . . | 2208 |
| 49.16.13 | I3C event register (I3C_EVR) . . . . . | 2209 |
| 49.16.14 | I3C interrupt enable register (I3C_IER) . . . . . | 2213 |
| 49.16.15 | I3C clear event register (I3C_CEVR) . . . . . | 2215 |
| 49.16.16 | I3C masked interrupt status register (I3C_MISR) . . . . . | 2217 |
| 49.16.17 | I3C own device characteristics register (I3C_DEVR0) . . . . . | 2218 |
| 49.16.18 | I3C device x characteristics register (I3C_DEVRx) . . . . . | 2220 |
| 49.16.19 | I3C maximum read length register (I3C_MAXRLR) . . . . . | 2222 |
| 49.16.20 | I3C maximum write length register (I3C_MAXWLR) . . . . . | 2223 |
| 49.16.21 | I3C timing register 0 (I3C_TIMINGR0) . . . . . | 2224 |
| 49.16.22 | I3C timing register 1 (I3C_TIMINGR1) . . . . . | 2225 |
| 49.16.23 | I3C timing register 2 (I3C_TIMINGR2) . . . . . | 2227 |
| 49.16.24 | I3C bus characteristics register (I3C_BCR) . . . . . | 2228 |
| 49.16.25 | I3C device characteristics register (I3C_DCR) . . . . . | 2229 |
| 49.16.26 | I3C get capability register (I3C_GETCAPR) . . . . . | 2230 |
| 49.16.27 | I3C controller-role capability register (I3C_CRCAPR) . . . . . | 2231 |
| 49.16.28 | I3C get max data speed register (I3C_GETMXDSR) . . . . . | 2232 |
| 49.16.29 | I3C extended provisioned ID register (I3C_EPIDR) . . . . . | 2234 |
| 49.16.30 I3C register map ..... | 2235 |
| 50 Improved inter-integrated circuit (I3C) ..... | 2238 |
| 50.1 I3C introduction ..... | 2238 |
| 50.2 I3C main features ..... | 2238 |
| 50.3 I3C implementation ..... | 2240 |
| 50.3.1 I3C instantiation ..... | 2240 |
| 50.3.2 I3C wake-up from low-power mode(s) ..... | 2240 |
| 50.3.3 I3C autonomous mode with DMA in Stop mode(s) ..... | 2240 |
| 50.3.4 I3C FIFOs ..... | 2241 |
| 50.3.5 I3C triggers ..... | 2241 |
| 50.3.6 I3C interrupt(s) ..... | 2242 |
| 50.3.7 I3C MIPI ® support ..... | 2243 |
| 50.4 I3C block diagram ..... | 2244 |
| 50.5 I3C pins and internal signals ..... | 2244 |
| 50.6 I3C reset and clocks ..... | 2245 |
| 50.6.1 I3C reset ..... | 2245 |
| 50.6.2 I3C clocks and requirements ..... | 2245 |
| 50.7 I3C peripheral state and programming ..... | 2247 |
| 50.7.1 I3C peripheral state ..... | 2247 |
| 50.7.2 I3C controller state and programming sequence ..... | 2248 |
| 50.7.3 I3C target state and programming sequence ..... | 2253 |
| 50.8 I3C registers and programming ..... | 2260 |
| 50.8.1 I3C register set, as controller/target ..... | 2260 |
| 50.8.2 I3C registers and fields use versus peripheral state, as controller .. | 2261 |
| 50.8.3 I3C registers and fields usage versus peripheral state, as target .. | 2263 |
| 50.9 I3C bus transfers and programming ..... | 2265 |
| 50.9.1 I3C command set (CCC), as controller/target ..... | 2265 |
| 50.9.2 I3C broadcast/direct CCC transfer (except ENTDAA, RSTACT), as controller ..... | 2269 |
| 50.9.3 I3C broadcast ENTDAA CCC transfer, as controller ..... | 2271 |
| 50.9.4 I3C broadcast/direct RSTACT CCC transfer, as controller ..... | 2271 |
| 50.9.5 I3C broadcast/direct CCC transfer (except ENTDAA, DEFTGTS, DEFGRPA), as target ..... | 2273 |
| 50.9.6 I3C broadcast ENTDAA CCC transfer, as target ..... | 2275 |
| 50.9.7 I3C broadcast DEFTGTS CCC transfer, as target ..... | 2276 |
| 50.9.8 I3C broadcast DEFGRPA CCC transfer, as target ..... | 2277 |
| 50.9.9 | I3C direct GETSTATUS CCC response, as target . . . . . | 2278 |
| 50.9.10 | I3C private read/write transfer, as controller . . . . . | 2279 |
| 50.9.11 | I3C private read/write transfer, as target . . . . . | 2280 |
| 50.9.12 | Legacy I2C read/write transfer, as controller . . . . . | 2281 |
| 50.9.13 | Legacy I2C read/write transfer, as target . . . . . | 2282 |
| 50.9.14 | I3C IBI transfer, as controller/target . . . . . | 2282 |
| 50.9.15 | I3C hot-join request transfer, as controller/target . . . . . | 2284 |
| 50.9.16 | I3C controller-role request transfer, as controller/target . . . . . | 2285 |
| 50.10 | I3C FIFOs management, as controller . . . . . | 2286 |
| 50.10.1 | C-FIFO management, as controller . . . . . | 2286 |
| 50.10.2 | TX-FIFO management, as controller . . . . . | 2287 |
| 50.10.3 | RX-FIFO management, as controller . . . . . | 2290 |
| 50.10.4 | S-FIFO management, as controller . . . . . | 2292 |
| 50.11 | I3C FIFOs management, as target . . . . . | 2294 |
| 50.11.1 | RX-FIFO management, as target . . . . . | 2294 |
| 50.11.2 | TX-FIFO management, as target . . . . . | 2297 |
| 50.12 | I3C error management . . . . . | 2301 |
| 50.12.1 | Controller error management . . . . . | 2301 |
| 50.12.2 | Target error management . . . . . | 2303 |
| 50.13 | I3C wake-up from low-power mode(s) . . . . . | 2304 |
| 50.13.1 | Wake-up from Stop . . . . . | 2304 |
| 50.13.2 | I3C wake-up from Standby . . . . . | 2307 |
| 50.14 | I3C in low-power modes . . . . . | 2307 |
| 50.15 | I3C interrupts . . . . . | 2308 |
| 50.16 | I3C registers . . . . . | 2308 |
| 50.16.1 | I3C message control register (I3C_CR) . . . . . | 2308 |
| 50.16.2 | I3C message control register [alternate] (I3C_CR) . . . . . | 2310 |
| 50.16.3 | I3C configuration register (I3C_CFGGR) . . . . . | 2312 |
| 50.16.4 | I3C receive data byte register (I3C_RDR) . . . . . | 2317 |
| 50.16.5 | I3C receive data word register (I3C_RDWR) . . . . . | 2318 |
| 50.16.6 | I3C transmit data byte register (I3C_TDR) . . . . . | 2319 |
| 50.16.7 | I3C transmit data word register (I3C_TDWR) . . . . . | 2320 |
| 50.16.8 | I3C IBI payload data register (I3C_IBIDR) . . . . . | 2322 |
| 50.16.9 | I3C target transmit configuration register (I3C_TGTTDR) . . . . . | 2323 |
| 50.16.10 | I3C status register (I3C_SR) . . . . . | 2324 |
| 50.16.11 | I3C status error register (I3C_SER) . . . . . | 2325 |
| 50.16.12 | I3C received message register (I3C_RMR) . . . . . | 2327 |
| 50.16.13 | I3C event register (I3C_EVR) . . . . . | 2328 |
| 50.16.14 | I3C interrupt enable register (I3C_IER) . . . . . | 2332 |
| 50.16.15 | I3C clear event register (I3C_CEVR) . . . . . | 2334 |
| 50.16.16 | I3C masked interrupt status register (I3C_MISR) . . . . . | 2336 |
| 50.16.17 | I3C own device characteristics register (I3C_DEVR0) . . . . . | 2337 |
| 50.16.18 | I3C device x characteristics register (I3C_DEVRx) . . . . . | 2339 |
| 50.16.19 | I3C maximum read length register (I3C_MAXRLR) . . . . . | 2341 |
| 50.16.20 | I3C maximum write length register (I3C_MAXWLR) . . . . . | 2342 |
| 50.16.21 | I3C I2C target configuration register (I3C_I2CCFGR) . . . . . | 2343 |
| 50.16.22 | I3C timing register 0 (I3C_TIMINGR0) . . . . . | 2344 |
| 50.16.23 | I3C timing register 1 (I3C_TIMINGR1) . . . . . | 2345 |
| 50.16.24 | I3C timing register 2 (I3C_TIMINGR2) . . . . . | 2347 |
| 50.16.25 | I3C bus characteristics register (I3C_BCR) . . . . . | 2349 |
| 50.16.26 | I3C device characteristics register (I3C_DCR) . . . . . | 2350 |
| 50.16.27 | I3C get capability register (I3C_GETCAPR) . . . . . | 2351 |
| 50.16.28 | I3C controller-role capability register (I3C_CRCAPR) . . . . . | 2352 |
| 50.16.29 | I3C get max data speed register (I3C_GETMXDSR) . . . . . | 2353 |
| 50.16.30 | I3C extended provisioned ID register (I3C_EPIDR) . . . . . | 2355 |
| 50.16.31 | I3C register map . . . . . | 2356 |
| 51 | Universal synchronous/asynchronous receiver transmitter (USART/UART) . . . . . | 2359 |
| 51.1 | USART introduction . . . . . | 2359 |
| 51.2 | USART main features . . . . . | 2359 |
| 51.3 | USART extended features . . . . . | 2360 |
| 51.4 | USART implementation . . . . . | 2360 |
| 51.5 | USART functional description . . . . . | 2362 |
| 51.5.1 | USART block diagram . . . . . | 2362 |
| 51.5.2 | USART pins and internal signals . . . . . | 2362 |
| 51.5.3 | USART clocks . . . . . | 2365 |
| 51.5.4 | USART character description . . . . . | 2365 |
| 51.5.5 | USART FIFOs and thresholds . . . . . | 2367 |
| 51.5.6 | USART transmitter . . . . . | 2367 |
| 51.5.7 | USART receiver . . . . . | 2370 |
| 51.5.8 | USART baud rate generation . . . . . | 2377 |
| 51.5.9 | Tolerance of the USART receiver to clock deviation . . . . . | 2379 |
| 51.5.10 | USART auto baud rate detection . . . . . | 2380 |
| 51.5.11 | USART multiprocessor communication . . . . . | 2382 |
| 51.5.12 | USART Modbus communication . . . . . | 2384 |
| 51.5.13 | USART parity control . . . . . | 2385 |
| 51.5.14 | USART LIN (local interconnection network) mode . . . . . | 2386 |
| 51.5.15 | USART synchronous mode . . . . . | 2388 |
| 51.5.16 | USART single-wire half-duplex communication . . . . . | 2392 |
| 51.5.17 | USART receiver timeout . . . . . | 2392 |
| 51.5.18 | USART smartcard mode . . . . . | 2393 |
| 51.5.19 | USART IrDA SIR ENDEC block . . . . . | 2397 |
| 51.5.20 | Continuous communication using USART and DMA . . . . . | 2400 |
| 51.5.21 | RS232 hardware flow control and RS485 driver enable . . . . . | 2402 |
| 51.5.22 | USART autonomous mode . . . . . | 2404 |
| 51.6 | USART in low-power modes . . . . . | 2406 |
| 51.7 | USART interrupts . . . . . | 2407 |
| 51.8 | USART registers . . . . . | 2409 |
| 51.8.1 | USART control register 1 (USART_CR1) . . . . . | 2409 |
| 51.8.2 | USART control register 1 [alternate] (USART_CR1) . . . . . | 2413 |
| 51.8.3 | USART control register 2 (USART_CR2) . . . . . | 2416 |
| 51.8.4 | USART control register 3 (USART_CR3) . . . . . | 2420 |
| 51.8.5 | USART control register 3 [alternate] (USART_CR3) . . . . . | 2424 |
| 51.8.6 | USART baud rate register (USART_BRR) . . . . . | 2427 |
| 51.8.7 | USART guard time and prescaler register (USART_GTPR) . . . . . | 2428 |
| 51.8.8 | USART receiver timeout register (USART_RTOR) . . . . . | 2429 |
| 51.8.9 | USART request register (USART_RQR) . . . . . | 2430 |
| 51.8.10 | USART interrupt and status register (USART_ISR) . . . . . | 2431 |
| 51.8.11 | USART interrupt and status register [alternate] (USART_ISR) . . . . . | 2437 |
| 51.8.12 | USART interrupt flag clear register (USART_ICR) . . . . . | 2442 |
| 51.8.13 | USART receive data register (USART_RDR) . . . . . | 2443 |
| 51.8.14 | USART transmit data register (USART_TDR) . . . . . | 2444 |
| 51.8.15 | USART prescaler register (USART_PRESC) . . . . . | 2444 |
| 51.8.16 | USART autonomous mode control register (USART_AUTOCR) . . . . . | 2445 |
| 51.8.17 | USART register map . . . . . | 2446 |
| 52 | Low-power universal asynchronous receiver transmitter (LPUART) . . . . . | 2448 |
| 52.1 | LPUART introduction . . . . . | 2448 |
| 52.2 | LPUART main features . . . . . | 2448 |
| 52.3 | LPUART implementation . . . . . | 2449 |
| 52.4 | LPUART functional description . . . . . | 2451 |
| 52.4.1 | LPUART block diagram . . . . . | 2451 |
| 52.4.2 | LPUART pins and internal signals . . . . . | 2452 |
| 52.4.3 | LPUART clocks . . . . . | 2454 |
| 52.4.4 | LPUART character description . . . . . | 2454 |
| 52.4.5 | LPUART FIFOs and thresholds . . . . . | 2456 |
| 52.4.6 | LPUART transmitter . . . . . | 2456 |
| 52.4.7 | LPUART receiver . . . . . | 2460 |
| 52.4.8 | LPUART baud rate generation . . . . . | 2464 |
| 52.4.9 | Tolerance of the LPUART receiver to clock deviation . . . . . | 2465 |
| 52.4.10 | LPUART multiprocessor communication . . . . . | 2466 |
| 52.4.11 | LPUART parity control . . . . . | 2468 |
| 52.4.12 | LPUART single-wire half-duplex communication . . . . . | 2469 |
| 52.4.13 | Continuous communication using DMA and LPUART . . . . . | 2469 |
| 52.4.14 | RS232 hardware flow control and RS485 driver enable . . . . . | 2472 |
| 52.4.15 | LPUART autonomous mode . . . . . | 2474 |
| 52.5 | LPUART in low-power modes . . . . . | 2476 |
| 52.6 | LPUART interrupts . . . . . | 2477 |
| 52.7 | LPUART registers . . . . . | 2478 |
| 52.7.1 | LPUART control register 1 (LPUART_CR1) . . . . . | 2478 |
| 52.7.2 | LPUART control register 1 [alternate] (LPUART_CR1) . . . . . | 2481 |
| 52.7.3 | LPUART control register 2 (LPUART_CR2) . . . . . | 2484 |
| 52.7.4 | LPUART control register 3 (LPUART_CR3) . . . . . | 2486 |
| 52.7.5 | LPUART control register 3 [alternate] (LPUART_CR3) . . . . . | 2488 |
| 52.7.6 | LPUART baud rate register (LPUART_BRR) . . . . . | 2490 |
| 52.7.7 | LPUART request register (LPUART_RQR) . . . . . | 2490 |
| 52.7.8 | LPUART interrupt and status register (LPUART_ISR) . . . . . | 2491 |
| 52.7.9 | LPUART interrupt and status register [alternate] (LPUART_ISR) . . . . . | 2496 |
| 52.7.10 | LPUART interrupt flag clear register (LPUART_ICR) . . . . . | 2499 |
| 52.7.11 | LPUART receive data register (LPUART_RDR) . . . . . | 2500 |
| 52.7.12 | LPUART transmit data register (LPUART_TDR) . . . . . | 2500 |
| 52.7.13 | LPUART prescaler register (LPUART_PRESC) . . . . . | 2501 |
| 52.7.14 | LPUART autonomous mode control register (LPUART_AUTOCR) . . . . . | 2502 |
| 52.7.15 | LPUART register map . . . . . | 2502 |
| 53 | Serial peripheral interface (SPI) . . . . . | 2505 |
| 53.1 | SPI introduction . . . . . | 2505 |
| 53.2 | SPI main features . . . . . | 2505 |
| 53.3 | SPI implementation . . . . . | 2506 |
| 53.4 | SPI functional description . . . . . | 2507 |
| 53.4.1 | SPI block diagram . . . . . | 2507 |
| 53.4.2 | SPI pins and internal signals . . . . . | 2508 |
| 53.4.3 | SPI communication general aspects . . . . . | 2510 |
| 53.4.4 | Communications between one master and one slave . . . . . | 2510 |
| 53.4.5 | Standard multislave communication . . . . . | 2513 |
| 53.4.6 | Multimaster communication . . . . . | 2514 |
| 53.4.7 | Slave select (NSS pin) management . . . . . | 2515 |
| 53.4.8 | Ready pin (RDY) management . . . . . | 2519 |
| 53.4.9 | Communication formats . . . . . | 2519 |
| 53.4.10 | Configuring the SPI . . . . . | 2521 |
| 53.4.11 | Enabling the SPI . . . . . | 2522 |
| 53.4.12 | SPI data transmission and reception procedures . . . . . | 2523 |
| 53.4.13 | Disabling the SPI . . . . . | 2527 |
| 53.4.14 | Communication using DMA (direct memory addressing) . . . . . | 2528 |
| 53.4.15 | Autonomous mode . . . . . | 2529 |
| 53.5 | SPI specific modes and control . . . . . | 2531 |
| 53.5.1 | TI mode . . . . . | 2531 |
| 53.5.2 | SPI error flags . . . . . | 2532 |
| 53.5.3 | CRC computation . . . . . | 2535 |
| 53.6 | SPI in low-power modes . . . . . | 2536 |
| 53.7 | SPI interrupts . . . . . | 2536 |
| 53.8 | SPI registers . . . . . | 2538 |
| 53.8.1 | SPI control register 1 (SPI_CR1) . . . . . | 2538 |
| 53.8.2 | SPI control register 2 (SPI_CR2) . . . . . | 2540 |
| 53.8.3 | SPI configuration register 1 (SPI_CFG1) . . . . . | 2540 |
| 53.8.4 | SPI configuration register 2 (SPI_CFG2) . . . . . | 2543 |
| 53.8.5 | SPI interrupt enable register (SPI_IER) . . . . . | 2545 |
| 53.8.6 | SPI status register (SPI_SR) . . . . . | 2546 |
| 53.8.7 | SPI interrupt/status flags clear register (SPI_IFCR) . . . . . | 2549 |
| 53.8.8 | SPI autonomous mode control register (SPI_AUTOCR) . . . . . | 2550 |
| 53.8.9 | SPI transmit data register (SPI_TXDR) . . . . . | 2550 |
| 53.8.10 | SPI receive data register (SPI_RXDR) . . . . . | 2551 |
| 53.8.11 | SPI polynomial register (SPI_CRCPOLY) . . . . . | 2551 |
| 53.8.12 | SPI transmitter CRC register (SPI_TXCRC) . . . . . | 2552 |
| 53.8.13 | SPI receiver CRC register (SPI_RXCRC) . . . . . | 2553 |
| 53.8.14 | SPI underrun data register (SPI_UDRDR) . . . . . | 2553 |
| 53.8.15 | SPI register map . . . . . | 2554 |
| 54 | Serial audio interface (SAI) . . . . . | 2555 |
| 54.1 | SAI introduction . . . . . | 2555 |
| 54.2 | SAI main features . . . . . | 2555 |
| 54.3 | SAI implementation . . . . . | 2556 |
| 54.4 | SAI functional description . . . . . | 2557 |
| 54.4.1 | SAI block diagram . . . . . | 2557 |
| 54.4.2 | SAI pins and internal signals . . . . . | 2558 |
| 54.4.3 | Main SAI modes . . . . . | 2559 |
| 54.4.4 | SAI synchronization mode . . . . . | 2560 |
| 54.4.5 | Audio data size . . . . . | 2560 |
| 54.4.6 | Frame synchronization . . . . . | 2560 |
| 54.4.7 | Slot configuration . . . . . | 2564 |
| 54.4.8 | SAI clock generator . . . . . | 2566 |
| 54.4.9 | Internal FIFOs . . . . . | 2569 |
| 54.4.10 | PDM interface . . . . . | 2571 |
| 54.4.11 | AC'97 link controller . . . . . | 2579 |
| 54.4.12 | SPDIF output . . . . . | 2580 |
| 54.4.13 | Specific features . . . . . | 2583 |
| 54.4.14 | Error flags . . . . . | 2587 |
| 54.4.15 | Disabling the SAI . . . . . | 2590 |
| 54.4.16 | SAI DMA interface . . . . . | 2590 |
| 54.5 | SAI interrupts . . . . . | 2591 |
| 54.6 | SAI registers . . . . . | 2593 |
| 54.6.1 | SAI configuration register 1 (SAI_ACR1) . . . . . | 2593 |
| 54.6.2 | SAI configuration register 2 (SAI_ACR2) . . . . . | 2595 |
| 54.6.3 | SAI frame configuration register (SAI_AFRCR) . . . . . | 2597 |
| 54.6.4 | SAI slot register (SAI_ASLOTR) . . . . . | 2598 |
| 54.6.5 | SAI interrupt mask register (SAI_AIM) . . . . . | 2599 |
| 54.6.6 | SAI status register (SAI_AS) . . . . . | 2601 |
| 54.6.7 | SAI clear flag register (SAI_ACLRFR) . . . . . | 2603 |
| 54.6.8 | SAI data register (SAI_ADR) . . . . . | 2604 |
| 54.6.9 | SAI configuration register 1 (SAI_BCR1) . . . . . | 2604 |
| 54.6.10 | SAI configuration register 2 (SAI_BCR2) . . . . . | 2607 |
| 54.6.11 | SAI frame configuration register (SAI_BFRCR) . . . . . | 2609 |
| 54.6.12 | SAI slot register (SAI_BSLOTR) . . . . . | 2610 |
| 54.6.13 | SAI interrupt mask register (SAI_BIM) . . . . . | 2611 |
| 54.6.14 | SAI status register (SAI_BSR) . . . . . | 2612 |
| 54.6.15 | SAI clear flag register (SAI_BCLRFR) . . . . . | 2614 |
| 54.6.16 | SAI data register (SAI_BDR) . . . . . | 2615 |
| 54.6.17 | SAI PDM control register (SAI_PDMCR) . . . . . | 2616 |
| 54.6.18 | SAI PDM delay register (SAI_PDMDLY) . . . . . | 2617 |
| 54.6.19 | SAI register map . . . . . | 2619 |
| 55 | FD controller area network (FDCAN) . . . . . | 2621 |
| 55.1 | FDCAN introduction . . . . . | 2621 |
| 55.2 | FDCAN main features . . . . . | 2623 |
| 55.3 | FDCAN implementation . . . . . | 2623 |
| 55.4 | FDCAN functional description . . . . . | 2624 |
| 55.4.1 | FDCAN block diagram . . . . . | 2624 |
| 55.4.2 | FDCAN pins and internal signals . . . . . | 2625 |
| 55.4.3 | Bit timing . . . . . | 2626 |
| 55.4.4 | Operating modes . . . . . | 2627 |
| 55.4.5 | Error management . . . . . | 2636 |
| 55.4.6 | Message RAM . . . . . | 2637 |
| 55.4.7 | FIFO acknowledge handling . . . . . | 2646 |
| 55.4.8 | FDCAN Rx FIFO element . . . . . | 2646 |
| 55.4.9 | FDCAN Tx buffer element . . . . . | 2648 |
| 55.4.10 | FDCAN Tx event FIFO element . . . . . | 2650 |
| 55.4.11 | FDCAN standard message ID filter element . . . . . | 2651 |
| 55.4.12 | FDCAN extended message ID filter element . . . . . | 2652 |
| 55.5 | FDCAN registers . . . . . | 2654 |
| 55.5.1 | FDCAN core release register (FDCAN_CREL) . . . . . | 2654 |
| 55.5.2 | FDCAN endian register (FDCAN_ENDN) . . . . . | 2654 |
| 55.5.3 | FDCAN data bit timing and prescaler register (FDCAN_DBTP) . . . . . | 2654 |
| 55.5.4 | FDCAN test register (FDCAN_TEST) . . . . . | 2655 |
| 55.5.5 | FDCAN RAM watchdog register (FDCAN_RWD) . . . . . | 2656 |
| 55.5.6 | FDCAN CC control register (FDCAN_CCCR) . . . . . | 2657 |
| 55.5.7 | FDCAN nominal bit timing and prescaler register (FDCAN_NBTP) . . . . . | 2658 |
| 55.5.8 | FDCAN timestamp counter configuration register (FDCAN_TSCC) . . . . . | 2660 |
| 55.5.9 | FDCAN timestamp counter value register (FDCAN_TSCV) . . . . . | 2660 |
| 55.5.10 | FDCAN timeout counter configuration register (FDCAN_TOCC) . . . . . | 2661 |
| 55.5.11 | FDCAN timeout counter value register (FDCAN_TOCV) . . . . . | 2662 |
| 55.5.12 | FDCAN error counter register (FDCAN_ECR) . . . . . | 2662 |
| 55.5.13 | FDCAN protocol status register (FDCAN_PSR) . . . . . | 2663 |
| 55.5.14 | FDCAN transmitter delay compensation register (FDCAN_TDCR) . . . . . | 2665 |
| 55.5.15 | FDCAN interrupt register (FDCAN_IR) . . . . . | 2665 |
| 55.5.16 | FDCAN interrupt enable register (FDCAN_IE) . . . . . | 2668 |
| 55.5.17 | FDCAN interrupt line select register (FDCAN_ILS) . . . . . | 2670 |
| 55.5.18 | FDCAN interrupt line enable register (FDCAN_ILE) . . . . . | 2671 |
| 55.5.19 | FDCAN global filter configuration register (FDCAN_RXGFC) . . . . . | 2671 |
| 55.5.20 | FDCAN extended ID and mask register (FDCAN_XIDAM) . . . . . | 2673 |
| 55.5.21 | FDCAN high-priority message status register (FDCAN_HPMS) . . . . . | 2673 |
| 55.5.22 | FDCAN Rx FIFO 0 status register (FDCAN_RXF0S) . . . . . | 2674 |
| 55.5.23 | CAN Rx FIFO 0 acknowledge register (FDCAN_RXF0A) . . . . . | 2675 |
| 55.5.24 | FDCAN Rx FIFO 1 status register (FDCAN_RXF1S) . . . . . | 2675 |
| 55.5.25 | FDCAN Rx FIFO 1 acknowledge register (FDCAN_RXF1A) . . . . . | 2676 |
| 55.5.26 | FDCAN Tx buffer configuration register (FDCAN_TXBC) . . . . . | 2676 |
| 55.5.27 | FDCAN Tx FIFO/queue status register (FDCAN_TXFQS) . . . . . | 2677 |
| 55.5.28 | FDCAN Tx buffer request pending register (FDCAN_TXBRP) . . . . . | 2677 |
| 55.5.29 | FDCAN Tx buffer add request register (FDCAN_TXBAR) . . . . . | 2678 |
| 55.5.30 | FDCAN Tx buffer cancellation request register (FDCAN_TXBCR) . . . . . | 2679 |
| 55.5.31 | FDCAN Tx buffer transmission occurred register (FDCAN_TXBTO) . . . . . | 2679 |
| 55.5.32 | FDCAN Tx buffer cancellation finished register (FDCAN_TXBCF) . . . . . | 2680 |
| 55.5.33 | FDCAN Tx buffer transmission interrupt enable register (FDCAN_TXBTIE) . . . . . | 2680 |
| 55.5.34 | FDCAN Tx buffer cancellation finished interrupt enable register (FDCAN_TXBCIE) . . . . . | 2681 |
| 55.5.35 | FDCAN Tx event FIFO status register (FDCAN_TXEFS) . . . . . | 2681 |
| 55.5.36 | FDCAN Tx event FIFO acknowledge register (FDCAN_TXEFA) . . . . . | 2682 |
| 55.5.37 | FDCAN CFG clock divider register (FDCAN_CKDIV) . . . . . | 2682 |
| 55.5.38 | FDCAN register map . . . . . | 2683 |
| 56 | Universal serial bus full-speed host/device interface (USB) . . . . . | 2687 |
| 56.1 | USB introduction . . . . . | 2687 |
| 56.2 | USB main features . . . . . | 2687 |
| 56.3 | USB implementation . . . . . | 2687 |
| 56.4 | USB functional description . . . . . | 2688 |
| 56.4.1 | USB block diagram . . . . . | 2688 |
| 56.4.2 | USB pins and internal signals . . . . . | 2688 |
| 56.4.3 | USB reset and clocks . . . . . | 2689 |
| 56.4.4 | General description and Device mode functionality . . . . . | 2689 |
| 56.4.5 | Description of USB blocks used in both Device and Host modes . . . . . | 2690 |
| 56.4.6 | Description of host frame scheduler (HFS) specific to Host mode . . . . . | 2691 |
| 56.5 | Programming considerations for Device and Host modes . . . . . | 2692 |
| 56.5.1 | Generic USB Device programming . . . . . | 2692 |
| 56.5.2 | System and power-on reset . . . . . | 2692 |
| 56.5.3 | Double-buffered endpoints and usage in Device mode . . . . . | 2699 |
| 56.5.4 | Double buffered channels: usage in Host mode . . . . . | 2701 |
| 56.5.5 | Isochronous transfers in Device mode . . . . . | 2702 |
| 56.5.6 | Isochronous transfers in Host mode . . . . . | 2703 |
| 56.5.7 | Suspend/resume events . . . . . | 2704 |
| 56.6 | USB registers . . . . . | 2707 |
| 56.6.1 | USB control register (USB_CNTR) . . . . . | 2708 |
| 56.6.2 | USB interrupt status register (USB_ISTR) . . . . . | 2711 |
| 56.6.3 | USB frame number register (USB_FNR) . . . . . | 2715 |
| 56.6.4 | USB Device address (USB_DADDR) . . . . . | 2715 |
| 56.6.5 | USB LPM control and status register (USB_LPMCSR) . . . . . | 2716 |
| 56.6.6 | USB battery charging detector (USB_BCDR) . . . . . | 2717 |
| 56.6.7 | USB endpoint/channel n register (USB_CHEPnR) . . . . . | 2718 |
| 56.7 | USB SRAM registers . . . . . | 2727 |
| 56.7.1 | Channel/endpoint transmit buffer descriptor n (USB_CHEP_TXRXBD_n) . . . . . | 2728 |
| 56.7.2 | Channel/endpoint receive buffer descriptor n [alternate] (USB_CHEP_TXRXBD_n) . . . . . | 2728 |
| 56.7.3 | Channel/endpoint receive buffer descriptor n (USB_CHEP_RXTXBD_n) . . . . . | 2730 |
| 56.7.4 | Channel/endpoint transmit buffer descriptor n [alternate] (USB_CHEP_RXTXBD_n) . . . . . | 2731 |
| 56.7.5 | USB SRAM register map . . . . . | 2732 |
| 57 | Debug support (DBG) . . . . . | 2733 |
| 57.1 | Introduction . . . . . | 2733 |
| 57.2 | DBG functional description . . . . . | 2734 |
| 57.2.1 | DBG block diagram . . . . . | 2734 |
| 57.2.2 | DBG pins and internal signals . . . . . | 2734 |
| 57.2.3 | DBG reset and clocks . . . . . | 2735 |
| 57.2.4 | DBG power domains . . . . . | 2735 |
| 57.2.5 | Debug and low-power modes . . . . . | 2735 |
| 57.2.6 | Security . . . . . | 2736 |
| 57.3 | Serial-wire and JTAG debug port (SWJ-DP) . . . . . | 2737 |
| 57.3.1 | JTAG debug port . . . . . | 2738 |
| 57.3.2 | Serial-wire debug port . . . . . | 2740 |
| 57.3.3 | Debug port registers . . . . . | 2741 |
| 57.3.4 | Debug port register map . . . . . | 2747 |
| 57.4 | Access ports . . . . . | 2748 |
| 57.4.1 | Access port registers . . . . . | 2748 |
| 57.4.2 | Access port register map . . . . . | 2753 |
| 57.5 | ROM tables . . . . . | 2753 |
| 57.5.1 | MCU ROM table registers . . . . . | 2756 |
| 57.5.2 | MCU ROM table register map . . . . . | 2759 |
| 57.5.3 | Processor ROM table registers . . . . . | 2760 |
| 57.5.4 | Processor ROM table register map . . . . . | 2764 |
| 57.6 | Data watchpoint and trace unit (DWT) . . . . . | 2766 |
| 57.6.1 | DWT registers . . . . . | 2766 |
| 57.6.2 | DWT register map . . . . . | 2778 |
| 57.7 | Instrumentation trace macrocell (ITM) . . . . . | 2781 |
| 57.7.1 | ITM registers . . . . . | 2781 |
| 57.7.2 | ITM register map . . . . . | 2788 |
| 57.8 | Breakpoint unit (BPU) . . . . . | 2789 |
| 57.8.1 | BPU registers . . . . . | 2789 |
| 57.8.2 | BPU register map . . . . . | 2794 |
| 57.9 | Embedded Trace Macrocell (ETM) . . . . . | 2796 |
| 57.9.1 | ETM registers . . . . . | 2796 |
| 57.9.2 | ETM register map . . . . . | 2818 |
| 57.10 | Trace port interface unit (TPIU) . . . . . | 2822 |
| 57.10.1 | TPIU registers . . . . . | 2822 |
| 57.10.2 | TPIU register map . . . . . | 2831 |
| 57.11 | Cross-trigger interface (CTI) . . . . . | 2833 |
- 57.11.1 CTI registers . . . . . 2833
- 57.11.2 CTI register map . . . . . 2843
- 57.12 Microcontroller debug unit (DBGMCU) . . . . . 2845
- 57.12.1 Device ID . . . . . 2845
- 57.12.2 Low-power mode emulation . . . . . 2845
- 57.12.3 Peripheral clock freeze . . . . . 2845
- 57.12.4 DBGMCU registers . . . . . 2848
- 57.12.5 DBGMCU register map . . . . . 2858
- 57.13 References . . . . . 2860
- 58 Device electronic signature . . . . . 2861
- 58.1 Unique device ID register (96 bits) . . . . . 2861
- 58.2 Flash memory size data register . . . . . 2862
- 58.3 Package data register . . . . . 2863
- 59 Important security notice . . . . . 2864
- 60 Revision history . . . . . 2865
List of tables
| Table 1. | Example of memory map security attribution versus SAU configuration regions . . . . . | 103 |
| Table 2. | Securable peripherals by TZSC . . . . . | 104 |
| Table 3. | TrustZone aware peripherals . . . . . | 106 |
| Table 4. | Memory map and peripheral register boundary addresses . . . . . | 112 |
| Table 5. | SRAM sizes . . . . . | 116 |
| Table 6. | Configuring security attributes with IDAU and SAU . . . . . | 123 |
| Table 7. | DMA channel use (security) . . . . . | 128 |
| Table 8. | Secure alternate function between peripherals and allocated I/Os . . . . . | 131 |
| Table 9. | Nonsecure peripherals not connectable to secure I/Os . . . . . | 131 |
| Table 10. | Nonsecure peripherals connectable to secure I/Os . . . . . | 132 |
| Table 11. | TrustZone-aware DBGMCU access management . . . . . | 133 |
| Table 12. | DMA channel use (privilege). . . . . | 137 |
| Table 13. | Accelerated-cryptographic operations . . . . . | 143 |
| Table 14. | Main product life-cycle transitions. . . . . | 145 |
| Table 15. | Typical product life-cycle phases . . . . . | 146 |
| Table 16. | OEM1/2 RDP unlocking methods . . . . . | 148 |
| Table 17. | Debug protection with RDP . . . . . | 149 |
| Table 18. | Software intellectual property protection with RDP. . . . . | 150 |
| Table 19. | Boot modes when TrustZone is disabled (TZEN = 0). . . . . | 152 |
| Table 20. | Boot modes when TrustZone is enabled (TZEN = 1) . . . . . | 153 |
| Table 21. | Boot space versus RDP protection. . . . . | 153 |
| Table 22. | GTZC features . . . . . | 157 |
| Table 23. | GTZC1 subblocks address offset for STM32U356/366 and STM32U375/385 . . . . . | 158 |
| Table 24. | GTZC1 subblocks address offset for STM32U3B5/3C5. . . . . | 158 |
| Table 25. | MPCBB resource assignment for STM32U356/366 . . . . . | 158 |
| Table 26. | MPCBB resource assignment for STM32U375/385 . . . . . | 158 |
| Table 27. | MPCBB resource assignment for STM32U3B5/3C5 . . . . . | 159 |
| Table 28. | GTZC interrupt request. . . . . | 162 |
| Table 29. | GTZC1 TZSC register map and reset values . . . . . | 176 |
| Table 30. | GTZC1 TZIC register map and reset values. . . . . | 200 |
| Table 31. | GTZC1 MPCBB1 register map and reset values . . . . . | 204 |
| Table 32. | GTZC1 MPCBB2 register map and reset values . . . . . | 207 |
| Table 33. | GTZC1 MPCBB3 register map and reset values . . . . . | 210 |
| Table 34. | GTZC1 MPCBB4 register map and reset values . . . . . | 213 |
| Table 35. | SRAM structure . . . . . | 214 |
| Table 36. | Internal SRAM features . . . . . | 215 |
| Table 37. | Effect of low-power modes on RAMCFG . . . . . | 216 |
| Table 38. | RAMCFG interrupt requests . . . . . | 216 |
| Table 39. | RAMCFG register map and reset values . . . . . | 221 |
| Table 40. | Flash module 512-Kbyte dual-bank organization for STM32U356/366 . . . . . | 224 |
| Table 41. | Flash module 1-Mbyte dual-bank organization for STM32U375/385 . . . . . | 225 |
| Table 42. | Flash module 2-Mbyte dual-bank organization for STM32U3B5/3C5. . . . . | 226 |
| Table 43. | Number of wait states according to CPU clock (HCLK) frequency (LPM = 0) . . . . . | 227 |
| Table 44. | Number of wait states according to CPU clock (HCLK) frequency (LPM = 1) . . . . . | 227 |
| Table 45. | Flash operation interrupted by a system reset . . . . . | 237 |
| Table 46. | User option-byte organization mapping . . . . . | 238 |
| Table 47. | Default secure option bytes after TZEN activation . . . . . | 241 |
| Table 48. | Secure watermark-based area . . . . . | 242 |
| Table 49. | Secure hide protection . . . . . | 243 |
| Table 50. | Secure and HDP protections . . . . . | 244 |
| Table 51. | Write access register to HDPx_EXT and HDPxEXT_ACCDIS . . . . . | 245 |
| Table 52. | HDP extension protections . . . . . | 245 |
| Table 53. | Flash security state . . . . . | 247 |
| Table 54. | WRP protection . . . . . | 251 |
| Table 55. | Flash memory readout protection status (TZEN = 0) . . . . . | 252 |
| Table 56. | Access status versus protection level and execution mode when TZEN = 0 . . . . . | 253 |
| Table 57. | Flash memory readout protection status (TZEN = 1) . . . . . | 253 |
| Table 58. | Access status versus protection level and execution modes when TZEN = 1 . . . . . | 255 |
| Table 59. | Macros for RSS services . . . . . | 260 |
| Table 60. | RSS lib interface functions . . . . . | 261 |
| Table 61. | Flash memory access versus RDP level when TrustZone is active (TZEN = 1) . . . . . | 262 |
| Table 62. | Flash memory access versus HDPx and HDPx extended (x = 1 or 2) . . . . . | 262 |
| Table 63. | Flash memory access versus RDP level when TrustZone is disabled (TZEN = 0) . . . . . | 263 |
| Table 64. | Flash memory mass erase versus RDP level when TrustZone is active (TZEN = 1) . . . . . | 263 |
| Table 65. | Flash system memory, OTP and RSS accesses (valid for all RDP levels) . . . . . | 264 |
| Table 66. | FLASH registers access . . . . . | 264 |
| Table 67. | FLASH page access versus privilege mode . . . . . | 264 |
| Table 68. | FLASH mass erase versus privilege mode . . . . . | 265 |
| Table 69. | FLASH_SECBByRx registers access when TrustZone is active (TZEN = 1) . . . . . | 265 |
| Table 70. | FLASH_PRIVBByRx registers access when TrustZone is active (TZEN = 1) . . . . . | 265 |
| Table 71. | FLASH_PRIVBByRx registers access when TrustZone is disabled (TZEN = 0) . . . . . | 265 |
| Table 72. | Flash interrupt requests . . . . . | 266 |
| Table 73. | FLASH register map and reset values . . . . . | 305 |
| Table 74. | ICACHE features . . . . . | 310 |
| Table 75. | TAG memory dimensioning parameters for n-way set associative operating mode (default) . . . . . | 312 |
| Table 76. | TAG memory dimensioning parameters for direct-mapped cache mode . . . . . | 313 |
| Table 77. | ICACHE cacheability for AHB transaction . . . . . | 315 |
| Table 78. | Memory configurations . . . . . | 315 |
| Table 79. | ICACHE remap region size, base address, and remap address . . . . . | 316 |
| Table 80. | ICACHE interrupts . . . . . | 320 |
| Table 81. | ICACHE register map and reset values . . . . . | 324 |
| Table 82. | PWR input/output pins . . . . . | 326 |
| Table 83. | PWR internal input/output signals . . . . . | 327 |
| Table 84. | PWR wake-up source selection . . . . . | 327 |
| Table 85. | PVM features . . . . . | 336 |
| Table 86. | Low-power mode summary . . . . . | 340 |
| Table 87. | Functionalities depending on the working mode . . . . . | 341 |
| Table 88. | Sleep mode . . . . . | 346 |
| Table 89. | Stop 0 mode . . . . . | 348 |
| Table 90. | Stop 1 mode . . . . . | 349 |
| Table 91. | Stop 2 mode . . . . . | 351 |
| Table 92. | Stop 3 mode . . . . . | 354 |
| Table 93. | Standby mode . . . . . | 357 |
| Table 94. | Shutdown mode . . . . . | 359 |
| Table 95. | Power modes output states versus MCU power modes . . . . . | 360 |
| Table 96. | PWR Security configuration summary . . . . . | 361 |
| Table 97. | PWR interrupt requests . . . . . | 362 |
| Table 98. | PWR register map and reset values . . . . . | 391 |
| Table 99. | RCC input/output signals connected to package pins or balls . . . . . | 394 |
| Table 100. | HSE/LSE clock sources . . . . . | 399 |
| Table 101. | MSIS and MSIK ranges per internal MSIRCs (PLL mode disabled). . . . . | 401 |
| Table 102. | MSIS and MSIK frequencies of MSIRC1 in PLL mode. . . . . | 403 |
| Table 103. | Bus maximum frequency . . . . . | 406 |
| Table 104. | Clock source maximum frequency . . . . . | 406 |
| Table 105. | RCC security configuration summary . . . . . | 412 |
| Table 106. | Interrupt sources and control . . . . . | 415 |
| Table 107. | RCC register map and reset values . . . . . | 478 |
| Table 108. | CRS features . . . . . | 484 |
| Table 109. | CRS internal input/output signals . . . . . | 485 |
| Table 110. | CRS interconnection . . . . . | 486 |
| Table 111. | Effect of low-power modes on CRS . . . . . | 489 |
| Table 112. | Interrupt control bits . . . . . | 489 |
| Table 113. | CRS register map and reset values . . . . . | 494 |
| Table 114. | Port bit configuration. . . . . | 497 |
| Table 115. | GPIO secured bits . . . . . | 505 |
| Table 116. | Effect of low-power modes on the GPIO . . . . . | 506 |
| Table 117. | GPIO register map and reset values . . . . . | 516 |
| Table 118. | TrustZone security and privilege register accesses . . . . . | 520 |
| Table 119. | BOOSTEN and ANASWVDD set/reset. . . . . | 521 |
| Table 120. | SYSCFG register map and reset values. . . . . | 531 |
| Table 121. | Peripheral interconnect matrix . . . . . | 533 |
| Table 122. | GPDMA1 channel implementation . . . . . | 550 |
| Table 123. | GPDMA1 wake-up in low-power modes . . . . . | 550 |
| Table 124. | Programmed GPDMA1 request . . . . . | 550 |
| Table 125. | Programmed GPDMA1 request as a block request . . . . . | 554 |
| Table 126. | GPDMA1 channel with peripheral early termination . . . . . | 554 |
| Table 127. | Programmed GPDMA1 request with peripheral early termination . . . . . | 554 |
| Table 128. | Programmed GPDMA1 trigger . . . . . | 555 |
| Table 129. | Programmed GPDMA source/destination burst . . . . . | 576 |
| Table 130. | Programmed data handling . . . . . | 581 |
| Table 131. | Effect of low-power modes on GPDMA . . . . . | 594 |
| Table 132. | GPDMA interrupt requests . . . . . | 595 |
| Table 133. | GPDMA register map and reset values . . . . . | 623 |
| Table 134. | STM32U3 series vector table . . . . . | 627 |
| Table 135. | EXTI signals . . . . . | 634 |
| Table 136. | EVG signals . . . . . | 634 |
| Table 137. | EXTI line connections . . . . . | 635 |
| Table 138. | Masking functionality . . . . . | 637 |
| Table 139. | Register protection overview . . . . . | 638 |
| Table 140. | EXTI register map and reset values . . . . . | 647 |
| Table 141. | CRC internal input/output signals . . . . . | 650 |
| Table 142. | CRC register map and reset values . . . . . | 655 |
| Table 143. | HSP features . . . . . | 659 |
| Table 144. | HSP memory mapping . . . . . | 659 |
| Table 145. | HSP external pins . . . . . | 660 |
| Table 146. | HSP internal signals . . . . . | 660 |
| Table 147. | HSP trigger input connections . . . . . | 661 |
| Table 148. | HSP trigger output connections for STM32U3B5/3C5 . . . . . | 662 |
| Table 149. | HSP break connections . . . . . | 662 |
| Table 150. | Memory mapping seen from MMC AHB slave . . . . . | 665 |
| Table 151. | BSTAT possible values. . . . . | 671 |
| Table 152. | BUFFCMB programming examples . . . . . | 678 |
| Table 153. | Trigger sources versus priority and task number . . . . . | 690 |
| Table 154. | Trigger sources versus priority and task number . . . . . | 691 |
| Table 155. | Firmware error number . . . . . | 698 |
| Table 156. | HSP interrupt requests . . . . . | 702 |
| Table 157. | List of trigger sources . . . . . | 707 |
| Table 158. | Snoop signal selection . . . . . | 716 |
| Table 159. | Flags and signal sources for break function . . . . . | 717 |
| Table 160. | Flags and signal sources for break input and debug functions. . . . . | 718 |
| Table 161. | List of locked fields . . . . . | 721 |
| Table 162. | Processing list mapping . . . . . | 724 |
| Table 163. | List of processing functions . . . . . | 731 |
| Table 164. | HSP register map and reset values . . . . . | 788 |
| Table 165. | OCTOSPI implementation . . . . . | 795 |
| Table 166. | OCTOSPI input/output pins . . . . . | 797 |
| Table 167. | OCTOSPI internal signals. . . . . | 797 |
| Table 168. | Command/address phase description . . . . . | 806 |
| Table 169. | OctaRAM command address bit assignment (based on 64-Mbyte OctaRAM) . . . . . | 817 |
| Table 170. | Address alignment cases . . . . . | 823 |
| Table 171. | OCTOSPI interrupt requests. . . . . | 825 |
| Table 172. | OCTOSPI register map and reset values . . . . . | 848 |
| Table 173. | SDMMC features . . . . . | 852 |
| Table 174. | SDMMC operation modes SD and SDIO . . . . . | 855 |
| Table 175. | SDMMC operation modes e•MMC . . . . . | 855 |
| Table 176. | SDMMC internal input/output signals . . . . . | 856 |
| Table 177. | SDMMC pins. . . . . | 857 |
| Table 178. | SDMMC Command and data phase selection . . . . . | 858 |
| Table 179. | Command token format . . . . . | 864 |
| Table 180. | Short response with CRC token format . . . . . | 865 |
| Table 181. | Short response without CRC token format . . . . . | 865 |
| Table 182. | Long response with CRC token format. . . . . | 865 |
| Table 183. | Specific Commands overview. . . . . | 866 |
| Table 184. | Command path status flags . . . . . | 867 |
| Table 185. | Command path error handling . . . . . | 867 |
| Table 186. | Data token format . . . . . | 875 |
| Table 187. | Data path status flags and clear bits. . . . . | 875 |
| Table 188. | Data path error handling. . . . . | 877 |
| Table 189. | Data FIFO access. . . . . | 878 |
| Table 190. | Transmit FIFO status flags . . . . . | 879 |
| Table 191. | Receive FIFO status flags . . . . . | 880 |
| Table 192. | AHB and SDMMC_CK clock frequency relation. . . . . | 885 |
| Table 193. | SDIO special operation control. . . . . | 885 |
| Table 194. | 4-bit mode Start, interrupt, and CRC-status Signaling detection . . . . . | 889 |
| Table 195. | CMD12 use cases . . . . . | 894 |
| Table 196. | SDMMC interrupts . . . . . | 908 |
| Table 197. | Response type and SDMMC_RESPxR registers . . . . . | 915 |
| Table 198. | SDMMC register map . . . . . | 931 |
| Table 199. | STM32U3 series features . . . . . | 934 |
| Table 200. | DLYB internal input/output signals . . . . . | 935 |
| Table 201. | Delay block control . . . . . | 936 |
| Table 202. | DLYB register map and reset values . . . . . | 939 |
| Table 203. | ADC features . . . . . | 942 |
| Table 204. | ADC input/output pins . . . . . | 944 |
| Table 205. | ADC internal input/output signals . . . . . | 944 |
| Table 206. | ADC1/2 interconnection . . . . . | 944 |
| Table 207. | Configuring the trigger polarity for regular external triggers . . . . . | 963 |
| Table 208. | Configuring the trigger polarity for injected external triggers . . . . . | 963 |
| Table 209. | TSAR timings depending on resolution . . . . . | 974 |
| Table 210. | Offset computation versus data resolution . . . . . | 978 |
| Table 211. | 12-bit data formats . . . . . | 980 |
| Table 212. | Numerical examples for 32-bit or 16-bit format (POSSPFF = 0) . . . . . | 981 |
| Table 213. | Analog window watchdog features . . . . . | 989 |
| Table 214. | Analog watchdog 1 channel selection . . . . . | 990 |
| Table 215. | Analog watchdog 1, 2, 3 comparison . . . . . | 991 |
| Table 216. | Maximum output results versus N and M . . . . . | 996 |
| Table 217. | Oversampler operating mode summary . . . . . | 1000 |
| Table 218. | DELAY bits versus ADC resolution. . . . . | 1006 |
| Table 219. | Effect of low-power modes on the ADC . . . . . | 1021 |
| Table 220. | ADC interrupts . . . . . | 1022 |
| Table 221. | ADC register map and reset values for each ADC . . . . . | 1056 |
| Table 222. | ADC register map and reset values (master and slave ADC common registers) . . . . . | 1059 |
| Table 223. | DAC features . . . . . | 1062 |
| Table 224. | DAC input/output pins . . . . . | 1064 |
| Table 225. | DAC internal input/output signals . . . . . | 1064 |
| Table 226. | DAC interconnection . . . . . | 1065 |
| Table 227. | Data format (case of 12-bit data) . . . . . | 1067 |
| Table 228. | HFSEL description . . . . . | 1068 |
| Table 229. | Sample and refresh timings . . . . . | 1073 |
| Table 230. | Channel output modes summary . . . . . | 1075 |
| Table 231. | Effect of low-power modes on DAC . . . . . | 1082 |
| Table 232. | DAC interrupts . . . . . | 1082 |
| Table 233. | DAC register map and reset values . . . . . | 1099 |
| Table 234. | VREFBUF typical values . . . . . | 1102 |
| Table 235. | VREF buffer modes . . . . . | 1103 |
| Table 236. | VREFBUF register map and reset values . . . . . | 1105 |
| Table 237. | COMP1 noninverting input assignment . . . . . | 1107 |
| Table 238. | COMP1 inverting input assignment . . . . . | 1108 |
| Table 239. | COMP2 noninverting input assignment . . . . . | 1108 |
| Table 240. | COMP2 inverting input assignment . . . . . | 1108 |
| Table 241. | COMP1 output-blanking PWM assignment . . . . . | 1108 |
| Table 242. | COMP2 output-blanking PWM assignment . . . . . | 1109 |
| Table 243. | Comparator behavior in the low-power modes . . . . . | 1112 |
| Table 244. | Interrupt control bits . . . . . | 1113 |
| Table 245. | COMP register map and reset values . . . . . | 1116 |
| Table 246. | Operational amplifier possible connections . . . . . | 1118 |
| Table 247. | Operating modes and calibration . . . . . | 1123 |
| Table 248. | Effect of low-power modes on the OPAMP . . . . . | 1124 |
| Table 249. | OPAMP register map and reset values . . . . . | 1129 |
| Table 250. | ADF features . . . . . | 1131 |
| Table 251. | ADF external pins . . . . . | 1132 |
| Table 252. | ADF internal signals . . . . . | 1132 |
| Table 253. | ADF trigger connections . . . . . | 1133 |
| Table 254. | MDF ADC data connections . . . . . | 1133 |
| Table 255. | Control of the common clock generation . . . . . | 1140 |
| Table 256. | Clock constraints with respect to the incoming stream. . . . . | 1141 |
| Table 257. | Data size according to CIC order and CIC decimation values . . . . . | 1146 |
| Table 258. | Possible gain values . . . . . | 1147 |
| Table 259. | Recommended maximum gain values versus CIC decimation ratios . . . . . | 1149 |
| Table 260. | Most common microphone settings . . . . . | 1149 |
| Table 261. | HPF 3 dB cut-off frequency examples . . . . . | 1151 |
| Table 262. | ANSLP values versus FRSIZE and sampling rates . . . . . | 1164 |
| Table 263. | Threshold values according SNTHR . . . . . | 1165 |
| Table 264. | Register protection summary . . . . . | 1171 |
| Table 265. | Effect of low-power modes on ADF . . . . . | 1172 |
| Table 266. | ADF interrupt requests . . . . . | 1173 |
| Table 267. | Examples of ADF settings for microphone capture . . . . . | 1174 |
| Table 268. | Programming sequence (CIC4) . . . . . | 1175 |
| Table 269. | Programming sequence (CIC5) . . . . . | 1176 |
| Table 270. | Output signal levels . . . . . | 1181 |
| Table 271. | ADF register map and reset values . . . . . | 1202 |
| Table 272. | Example of frame rate calculation . . . . . | 1208 |
| Table 273. | Blink frequency . . . . . | 1216 |
| Table 274. | Remapping capability . . . . . | 1220 |
| Table 275. | LCD behavior in low-power modes. . . . . | 1226 |
| Table 276. | LCD interrupt requests . . . . . | 1226 |
| Table 277. | LCD register map and reset values . . . . . | 1233 |
| Table 278. | TSC implementation . . . . . | 1237 |
| Table 279. | Acquisition sequence summary . . . . . | 1239 |
| Table 280. | Spread spectrum deviation versus AHB clock frequency. . . . . | 1242 |
| Table 281. | I/O state depending on its mode and IODEF bit value . . . . . | 1243 |
| Table 282. | Effect of low-power modes on TSC . . . . . | 1244 |
| Table 283. | Interrupt control bits . . . . . | 1247 |
| Table 284. | TSC register map and reset values . . . . . | 1254 |
| Table 285. | Peripherals connected by CCB interconnect . . . . . | 1257 |
| Table 286. | CCB internal input/output signals . . . . . | 1258 |
| Table 287. | Blob creation steps for ECDSA signature (CCOP = 0b110000 i >0) . . . . . | 1265 |
| Table 288. | Blob use steps for ECDSA signature (CCOP = 0b11000011) . . . . . | 1268 |
| Table 289. | Blob use steps for signing public key computation (CCOP = 0b10000001) . . . . . | 1270 |
| Table 290. | Blob creation steps for scalar multiplication (CCOP = 0b100000 i >0) . . . . . | 1272 |
| Table 291. | Blob use steps for scalar multiplication (CCOP = 0b10000001) . . . . . | 1273 |
| Table 292. | Blob creation steps for modular exponentiation (CCOP = 0b01000100) . . . . . | 1274 |
| Table 293. | Blob use steps for modular exponentiation (CCOP = 0b01000101) . . . . . | 1275 |
| Table 294. | CCB register map and reset values . . . . . | 1281 |
| Table 295. | RNG internal input/output signals . . . . . | 1283 |
| Table 296. | RNG interrupt requests. . . . . | 1292 |
| Table 297. | RNG configurations . . . . . | 1293 |
| Table 298. | Additional health test configurations. . . . . | 1293 |
| Table 299. | Configuration selection . . . . . | 1293 |
| Table 300. | RNG register map and reset map. . . . . | 1301 |
| Table 301. | AES versus SAES features . . . . . | 1303 |
| Table 302. | AES internal input/output signals . . . . . | 1304 |
| Table 303. | AES approved symmetric key functions . . . . . | 1305 |
| Table 304. | Counter mode initialization vector definition . . . . . | 1314 |
| Table 305. | Initialization of IV registers in GCM mode. . . . . | 1317 |
| Table 306. | GCM last block definition . . . . . | 1317 |
| Table 307. | Initialization of IV registers in CCM mode. . . . . | 1324 |
| Table 308. | AES data swapping example . . . . . | 1327 |
| Table 309. | Key endianness in AES_KEYRx registers (128/256-bit keys) . . . . . | 1329 |
| Table 310. | IVI bitfield spread over AES_IVRx registers . . . . . | 1330 |
| Table 311. | AES interrupt requests . . . . . | 1331 |
| Table 312. | Processing latency for ECB, CBC and CTR. . . . . | 1332 |
| Table 313. | Processing latency for GCM and CCM (in clock cycles). . . . . | 1333 |
| Table 314. | AES register map and reset values . . . . . | 1345 |
| Table 315. | AES versus SAES features . . . . . | 1349 |
| Table 316. | SAES internal input/output signals . . . . . | 1350 |
| Table 317. | SAES approved symmetric key functions. . . . . | 1351 |
| Table 318. | Counter mode initialization vector definition . . . . . | 1361 |
| Table 319. | Initialization of IV registers in GCM mode. . . . . | 1364 |
| Table 320. | GCM last block definition . . . . . | 1364 |
| Table 321. | Initialization of IV registers in CCM mode. . . . . | 1370 |
| Table 322. | AES data swapping example . . . . . | 1379 |
| Table 323. | Key endianness in SAES_KEYRx registers (128/256-bit keys) . . . . . | 1381 |
| Table 324. | IVI bitfield spread over SAES_IVRx registers. . . . . | 1383 |
| Table 325. | SAES interrupt requests . . . . . | 1385 |
| Table 326. | Processing latency for ECB, CBC and CTR. . . . . | 1386 |
| Table 327. | Processing latency for GCM and CCM (in SAES kernel clock cycles) . . . . . | 1386 |
| Table 328. | SAES register map and reset values . . . . . | 1401 |
| Table 329. | HASH internal input/output signals. . . . . | 1404 |
| Table 330. | Information on supported hash algorithms . . . . . | 1405 |
| Table 331. | Hash processor outputs . . . . . | 1408 |
| Table 332. | Processing time (in clock cycle) . . . . . | 1414 |
| Table 333. | HASH interrupt requests. . . . . | 1415 |
| Table 334. | HASH1 register map and reset values . . . . . | 1423 |
| Table 335. | Internal input/output signals . . . . . | 1426 |
| Table 336. | PKA integer arithmetic functions list . . . . . | 1427 |
| Table 337. | PKA prime field (Fp) elliptic curve functions list . . . . . | 1428 |
| Table 338. | Chaining mode to/from PKA . . . . . | 1433 |
| Table 339. | Integrity protected parameters list . . . . . | 1435 |
| Table 340. | Confidentiality protected parameter list . . . . . | 1435 |
| Table 341. | Example of 'a' curve coefficient for ECC Fp scalar. . . . . | 1437 |
| Table 342. | Montgomery parameter computation . . . . . | 1438 |
| Table 343. | Modular addition . . . . . | 1438 |
| Table 344. | Modular subtraction . . . . . | 1439 |
| Table 345. | Montgomery multiplication . . . . . | 1440 |
| Table 346. | Modular exponentiation (normal mode) . . . . . | 1441 |
| Table 347. | Modular exponentiation (fast mode) . . . . . | 1441 |
| Table 348. | Modular exponentiation (protected mode) . . . . . | 1442 |
| Table 349. | Modular inversion . . . . . | 1442 |
| Table 350. | Modular reduction . . . . . | 1443 |
| Table 351. | Arithmetic addition . . . . . | 1443 |
| Table 352. | Arithmetic subtraction . . . . . | 1443 |
| Table 353. | Arithmetic multiplication . . . . . | 1444 |
| Table 354. | Arithmetic comparison . . . . . | 1444 |
| Table 355. | CRT exponentiation . . . . . | 1445 |
| Table 356. | Point on elliptic curve Fp check . . . . . | 1446 |
| Table 357. | ECC Fp scalar multiplication. . . . . | 1446 |
| Table 358. | ECDSA sign - Inputs . . . . . | 1448 |
| Table 359. | ECDSA sign - Outputs . . . . . | 1448 |
| Table 360. | Extended ECDSA sign - additional outputs . . . . . | 1449 |
| Table 361. | ECDSA verification - inputs . . . . . | 1449 |
| Table 362. | ECDSA verification - outputs . . . . . | 1450 |
| Table 363. | ECC complete addition . . . . . | 1450 |
| Table 364. | ECC double base ladder. . . . . | 1451 |
| Table 365. | ECC projective to affine . . . . . | 1452 |
| Table 366. | Family of supported curves for ECC operations . . . . . | 1453 |
| Table 367. | Modular exponentiation . . . . . | 1454 |
| Table 368. | ECC scalar multiplication . . . . . | 1454 |
| Table 369. | ECDSA signature average computation time . . . . . | 1455 |
| Table 370. | ECDSA verification average computation times . . . . . | 1455 |
| Table 371. | ECC double base ladder average computation times . . . . . | 1455 |
| Table 372. | ECC projective to affine average computation times . . . . . | 1455 |
| Table 373. | ECC complete addition average computation times . . . . . | 1455 |
| Table 374. | Point on elliptic curve Fp check average computation times . . . . . | 1455 |
| Table 375. | Montgomery parameters average computation times. . . . . | 1456 |
| Table 376. | PKA interrupt requests . . . . . | 1456 |
| Table 377. | PKA register map and reset values . . . . . | 1463 |
| Table 378. | TIM input/output pins . . . . . | 1467 |
| Table 379. | TIM internal input/output signals . . . . . | 1467 |
| Table 380. | Interconnect to the tim_ti1 input multiplexer . . . . . | 1468 |
| Table 381. | Interconnect to the tim_ti2 input multiplexer . . . . . | 1469 |
| Table 382. | Interconnect to the tim_ti3 input multiplexer . . . . . | 1469 |
| Table 383. | Interconnect to the tim_ti4 input multiplexer . . . . . | 1469 |
| Table 384. | Internal trigger connection . . . . . | 1469 |
| Table 385. | Interconnect to the tim_etr input multiplexer. . . . . | 1470 |
| Table 386. | Timer break interconnect . . . . . | 1470 |
| Table 387. | Timer break2 interconnect . . . . . | 1470 |
| Table 388. | System break interconnect . . . . . | 1471 |
| Table 389. | Interconnect to the ocref_clr input multiplexer . . . . . | 1471 |
| Table 390. | CCR and ARR register change dithering pattern . . . . . | 1504 |
| Table 391. | CCR register change dithering pattern in center-aligned PWM mode . . . . . | 1505 |
| Table 392. | Behavior of timer outputs versus tim_brk/tim_brk2 inputs . . . . . | 1517 |
| Table 393. | Break protection disarming conditions . . . . . | 1519 |
| Table 394. | Counting direction versus encoder signals (CC1P = CC2P = 0) . . . . . | 1528 |
| Table 395. | Counting direction versus encoder signals and polarity settings . . . . . | 1532 |
| Table 396. | DMA request. . . . . | 1554 |
| Table 397. | Effect of low-power modes on TIM1/TIM8 . . . . . | 1555 |
| Table 398. | Interrupt requests . . . . . | 1555 |
| Table 399. | Output control bits for complementary tim_ocx and tim_ocxn channels with break feature . . . . . | 1582 |
| Table 400. | TIMx register map and reset values . . . . . | 1605 |
| Table 401. | STM32U3 series general purpose timers . . . . . | 1609 |
| Table 402. | TIM input/output pins . . . . . | 1611 |
| Table 403. | TIM internal input/output signals . . . . . | 1611 |
| Table 404. | Interconnect to the tim_ti1 input multiplexer . . . . . | 1612 |
| Table 405. | Interconnect to the tim_ti2 input multiplexer . . . . . | 1612 |
| Table 406. | Interconnect to the tim_ti3 input multiplexer . . . . . | 1612 |
| Table 407. | Interconnect to the tim_ti4 input multiplexer . . . . . | 1613 |
| Table 408. | TIMx internal trigger connection . . . . . | 1613 |
| Table 409. | Interconnect to the tim_etr input multiplexer . . . . . | 1613 |
| Table 410. | Interconnect to the tim_ocref_clr input multiplexer . . . . . | 1614 |
| Table 411. | CCR and ARR register change dithering pattern . . . . . | 1645 |
| Table 412. | CCR register change dithering pattern in center-aligned PWM mode . . . . . | 1646 |
| Table 413. | Counting direction versus encoder signals(CC1P = CC2P = 0) . . . . . | 1655 |
| Table 414. | Counting direction versus encoder signals and polarity settings . . . . . | 1660 |
| Table 415. | DMA request . . . . . | 1685 |
| Table 416. | Effect of low-power modes on TIM2/TIM3/TIM4 . . . . . | 1685 |
| Table 417. | Interrupt requests . . . . . | 1686 |
| Table 418. | Output control bit for standard tim_ocx channels . . . . . | 1707 |
| Table 419. | TIM2/TIM3/TIM4 register map and reset values . . . . . | 1719 |
| Table 420. | TIM internal input/output signals . . . . . | 1723 |
| Table 421. | TIMx_ARR register change dithering pattern . . . . . | 1733 |
| Table 422. | DMA request . . . . . | 1735 |
| Table 423. | Effect of low-power modes on TIM6/TIM7 . . . . . | 1735 |
| Table 424. | Interrupt request . . . . . | 1735 |
| Table 425. | TIMx register map and reset values . . . . . | 1742 |
| Table 426. | TIM input/output pins . . . . . | 1744 |
| Table 427. | TIM internal input/output signals . . . . . | 1745 |
| Table 428. | Interconnect to the tim_ti1 input multiplexer . . . . . | 1745 |
| Table 429. | Interconnect to the tim_ti2 input multiplexer . . . . . | 1745 |
| Table 430. | TIMx internal trigger connection . . . . . | 1746 |
| Table 431. | CCR and ARR register change dithering pattern . . . . . | 1763 |
| Table 432. | Effect of low-power modes on TIM12 . . . . . | 1772 |
| Table 433. | Interrupt requests . . . . . | 1772 |
| Table 434. | Output control bit for standard tim_ocx channels . . . . . | 1784 |
| Table 435. | TIM12 register map and reset values . . . . . | 1788 |
| Table 436. | TIM input/output pins . . . . . | 1793 |
| Table 437. | TIM internal input/output signals . . . . . | 1794 |
| Table 438. | Interconnect to the tim_ti1 input multiplexer . . . . . | 1794 |
| Table 439. | Interconnect to the tim_ti2 input multiplexer . . . . . | 1795 |
| Table 440. | TIMx internal trigger connection . . . . . | 1795 |
| Table 441. | Timer break interconnect . . . . . | 1796 |
| Table 442. | System break interconnect . . . . . | 1796 |
| Table 443. | Interconnect to the ocref_clr input multiplexer . . . . . | 1796 |
| Table 444. | CCR and ARR register change dithering pattern . . . . . | 1816 |
| Table 445. | Break protection disarming conditions . . . . . | 1825 |
| Table 446. | DMA request . . . . . | 1838 |
| Table 447. | Effect of low-power modes on TIM15/TIM16/TIM17 . . . . . | 1838 |
| Table 448. | Interrupt requests . . . . . | 1839 |
| Table 449. | Output control bits for complementary tim_ocx and tim_ocxn channels with break feature (TIM15) . . . . . | 1854 |
| Table 450. | TIM15 register map and reset values . . . . . | 1867 |
| Table 451. | Output control bits for complementary tim_oc1 and tim_oc1n channels with break feature (TIM16/TIM17) . . . . . | 1880 |
| Table 452. | TIM16/TIM17 register map and reset values . . . . . | 1894 |
| Table 453. | STM32U3 series LPTIM features . . . . . | 1897 |
| Table 454. | LPTIM1/2/3 input/output pins . . . . . | 1899 |
| Table 455. | LPTIM4 input/output pins . . . . . | 1899 |
| Table 456. | LPTIM1/2/3 internal signals . . . . . | 1900 |
| Table 457. | LPTIM4 internal signals . . . . . | 1900 |
| Table 458. | LPTIM1/2/3/4 external trigger connections . . . . . | 1901 |
| Table 459. | LPTIM1/2/3/4 input 1 connections . . . . . | 1901 |
| Table 460. | LPTIM1/2 input 2 connections . . . . . | 1901 |
| Table 461. | LPTIM1 input capture 1 connections . . . . . | 1901 |
| Table 462. | LPTIM2/3 input capture 1 connections . . . . . | 1902 |
| Table 463. | LPTIM1 input capture 2 connections . . . . . | 1902 |
| Table 464. | LPTIM2 input capture 2 connections . . . . . | 1902 |
| Table 465. | LPTIM3 input capture 2 connections . . . . . | 1902 |
| Table 466. | Prescaler division ratios . . . . . | 1904 |
| Table 467. | Encoder counting scenarios . . . . . | 1911 |
| Table 468. | Input capture Glitch filter latency (in counter step unit). . . . . | 1915 |
| Table 469. | Effect of low-power modes on the LPTIM . . . . . | 1920 |
| Table 470. | Interrupt events . . . . . | 1921 |
| Table 471. | LPTIM register map and reset values . . . . . | 1945 |
| Table 472. | STM32U3 series IWDG features . . . . . | 1950 |
| Table 473. | IWDG delays versus actions . . . . . | 1951 |
| Table 474. | IWDG internal input/output signals . . . . . | 1951 |
| Table 475. | Effect of low power modes on IWDG . . . . . | 1956 |
| Table 476. | IWDG interrupt request . . . . . | 1958 |
| Table 477. | IWDG register map and reset values . . . . . | 1964 |
| Table 478. | WWDG features . . . . . | 1965 |
| Table 479. | WWDG internal input/output signals . . . . . | 1966 |
| Table 480. | WWDG interrupt requests . . . . . | 1969 |
| Table 481. | WWDG register map and reset values . . . . . | 1971 |
| Table 482. | RTC input/output pins . . . . . | 1975 |
| Table 483. | RTC internal input/output signals . . . . . | 1975 |
| Table 484. | RTC interconnection . . . . . | 1976 |
| Table 485. | RTC_OUT mapping . . . . . | 1976 |
| Table 486. | Effect of low-power modes on RTC . . . . . | 1992 |
| Table 487. | RTC pins functionality over modes . . . . . | 1992 |
| Table 488. | Nonsecure interrupt requests . . . . . | 1993 |
| Table 489. | Secure interrupt requests . . . . . | 1993 |
| Table 490. | RTC register map and reset values . . . . . | 2025 |
| Table 491. | TAMP input/output pins . . . . . | 2030 |
| Table 492. | TAMP internal input/output signals . . . . . | 2030 |
| Table 493. | TAMP interconnection . . . . . | 2031 |
| Table 494. | PC13 pin configuration . . . . . | 2033 |
| Table 495. | Backup registers and BHK tamper protection . . . . . | 2038 |
| Table 496. | Other device resource x tamper protection . . . . . | 2038 |
| Table 497. | Effect of low-power modes on TAMP . . . . . | 2041 |
| Table 498. | TAMP pins functionality over modes . . . . . | 2041 |
| Table 499. | Interrupt requests . . . . . | 2041 |
| Table 500. | TAMP register map and reset values . . . . . | 2055 |
| Table 501. | I2C implementation . . . . . | 2059 |
| Table 502. | I2C input/output pins . . . . . | 2060 |
| Table 503. | I2C internal input/output signals . . . . . | 2061 |
| Table 504. | Trigger interconnections . . . . . | 2061 |
| Table 505. | Comparison of analog and digital filters . . . . . | 2063 |
| Table 506. | I 2 C-bus and SMBus specification data setup and hold times . . . . . | 2065 |
| Table 507. | I2C configuration . . . . . | 2069 |
| Table 508. | I 2 C-bus and SMBus specification clock timings . . . . . | 2080 |
| Table 509. | Timing settings for f I2CCLK of 8 MHz. . . . . | 2090 |
| Table 510. | Timing settings for f I2CCLK of 16 MHz. . . . . | 2090 |
| Table 511. | Timing settings for f I2CCLK of 48 MHz. . . . . | 2091 |
| Table 512. | SMBus timeout specifications . . . . . | 2093 |
| Table 513. | SMBus with PEC configuration . . . . . | 2095 |
| Table 514. | TIMEOUTA[11:0] for maximum t TIMEOUT of 25 ms. . . . . | 2096 |
| Table 515. | TIMEOUTB[11:0] for maximum t LOW:SEXT and t LOW:MEXT of 8 ms . . . . . | 2096 |
| Table 516. | TIMEOUTA[11:0] for maximum t IDLE of 50 µs . . . . . | 2096 |
| Table 517. | Effect of low-power modes to I2C. . . . . | 2106 |
| Table 518. | I2C interrupt requests . . . . . | 2107 |
| Table 519. | I2C register map and reset values . . . . . | 2124 |
| Table 520. | I3C instantiation . . . . . | 2128 |
| Table 521. | I3C wake-up . . . . . | 2128 |
| Table 522. | I3C autonomous mode with DMA in Stop mode(s). . . . . | 2128 |
| Table 523. | I3C FIFOs implementation . . . . . | 2129 |
| Table 524. | I3C triggers, when I3C as controller . . . . . | 2129 |
| Table 525. | I3C interrupt(s) . . . . . | 2130 |
| Table 526. | I3C peripheral controller/target features versus MIPI v1.1 . . . . . | 2130 |
| Table 527. | I3C input/output pins. . . . . | 2131 |
| Table 528. | I3C internal input/output signals . . . . . | 2131 |
| Table 529. | I3C register usage . . . . . | 2144 |
| Table 530. | I3C registers/fields usage versus controller state . . . . . | 2145 |
| Table 531. | I3C registers/fields usage versus target state. . . . . | 2148 |
| Table 532. | List of supported I3C CCCs, as controller/target . . . . . | 2151 |
| Table 533. | I3C controller error management . . . . . | 2182 |
| Table 534. | I3C target error management . . . . . | 2184 |
| Table 535. | Effect of low-power modes . . . . . | 2188 |
| Table 536. | I3C register map and reset values . . . . . | 2235 |
| Table 537. | I3C instantiation . . . . . | 2240 |
| Table 538. | I3C wake-up . . . . . | 2240 |
| Table 539. | I3C autonomous mode with DMA in Stop mode(s). . . . . | 2241 |
| Table 540. | I3C FIFOs implementation . . . . . | 2241 |
| Table 541. | I3C triggers, when I3C as controller . . . . . | 2241 |
| Table 542. | I3C interrupt(s) . . . . . | 2242 |
| Table 543. | I3C peripheral controller/target features versus MIPI v1.1 . . . . . | 2243 |
| Table 544. | I3C input/output pins. . . . . | 2244 |
| Table 545. | I3C internal input/output signals . . . . . | 2244 |
| Table 546. | I3C register usage . . . . . | 2260 |
| Table 547. | I3C registers/fields usage versus controller state . . . . . | 2261 |
| Table 548. | I3C registers/fields usage versus target state. . . . . | 2263 |
| Table 549. | List of supported I3C CCCs, as controller/target . . . . . | 2266 |
| Table 550. | I3C controller error management . . . . . | 2301 |
| Table 551. | I3C target error management . . . . . | 2303 |
| Table 552. | Effect of low-power modes . . . . . | 2307 |
| Table 553. | I3C register map and reset values . . . . . | 2356 |
| Table 554. | Instance implementation on STM32U3 series . . . . . | 2360 |
| Table 555. | USART/LPUART features . . . . . | 2360 |
| Table 556. | USART/UART input/output pins . . . . . | 2363 |
| Table 557. | USART internal input/output signals. . . . . | 2364 |
| Table 558. | USART interconnection (USART1/2/3 and UART4/5) . . . . . | 2364 |
| Table 559. | Noise detection from sampled data . . . . . | 2376 |
| Table 560. | Tolerance of the USART receiver when BRR [3:0] = 0000. . . . . | 2380 |
| Table 561. | Tolerance of the USART receiver when BRR[3:0] is different from 0000. . . . . | 2380 |
| Table 562. | USART frame formats . . . . . | 2385 |
| Table 563. | Effect of low-power modes on the USART . . . . . | 2406 |
| Table 564. | USART interrupt requests. . . . . | 2407 |
| Table 565. | USART register map and reset values . . . . . | 2446 |
| Table 566. | Instance implementation on STM32U3 series . . . . . | 2449 |
| Table 567. | USART/LPUART features . . . . . | 2449 |
| Table 568. | LPUART input/output pins . . . . . | 2452 |
| Table 569. | LPUART internal input/output signals. . . . . | 2452 |
| Table 570. | LPUART interconnections (LPUART1). . . . . | 2453 |
| Table 571. | Error calculation for programmed baud rates at lpuart_ker_ck_pres= 32.768 kHz . . . . . | 2464 |
| Table 572. | Tolerance of the LPUART receiver. . . . . | 2465 |
| Table 574. | Effect of low-power modes on the LPUART . . . . . | 2476 |
| Table 575. | LPUART interrupt requests. . . . . | 2477 |
| Table 576. | LPUART register map and reset values . . . . . | 2502 |
| Table 577. | SPI features . . . . . | 2506 |
| Table 578. | SPI input/output pins. . . . . | 2508 |
| Table 579. | SPI internal input/output signals . . . . . | 2509 |
| Table 580. | SPI interconnection (SPI1 and SPI2) . . . . . | 2509 |
| Table 581. | SPI interconnection (SPI3 and SPI4) . . . . . | 2510 |
| Table 582. | Effect of low-power modes on the SPI . . . . . | 2536 |
| Table 583. | SPI wake-up and interrupt requests . . . . . | 2537 |
| Table 584. | SPI register map and reset values . . . . . | 2554 |
| Table 585. | SAI features . . . . . | 2556 |
| Table 586. | SAI internal input/output signals . . . . . | 2558 |
| Table 587. | SAI input/output pins. . . . . | 2558 |
| Table 588. | MCLK_x activation conditions. . . . . | 2566 |
| Table 589. | Clock generator programming examples . . . . . | 2569 |
| Table 590. | SAI_A configuration for TDM mode . . . . . | 2576 |
| Table 591. | TDM frame configuration examples . . . . . | 2578 |
| Table 592. | SOPD pattern . . . . . | 2581 |
| Table 593. | Parity bit calculation . . . . . | 2581 |
| Table 594. | Audio sampling frequency versus symbol rates . . . . . | 2582 |
| Table 595. | SAI interrupt sources . . . . . | 2591 |
| Table 596. | SAI register map and reset values . . . . . | 2619 |
| Table 597. | FDCAN features . . . . . | 2623 |
| Table 598. | CAN subsystem I/O signals . . . . . | 2625 |
| Table 599. | CAN subsystem I/O pins. . . . . | 2625 |
| Table 600. | DLC coding in FDCAN . . . . . | 2629 |
| Table 601. | Possible configurations for frame transmission . . . . . | 2643 |
| Table 602. | Rx FIFO element . . . . . | 2646 |
| Table 603. | Rx FIFO element description . . . . . | 2646 |
| Table 604. | Tx buffer and FIFO element . . . . . | 2648 |
| Table 605. | Tx buffer element description . . . . . | 2648 |
| Table 606. | Tx event FIFO element. . . . . | 2650 |
| Table 607. | Tx event FIFO element description. . . . . | 2650 |
| Table 608. | Standard message ID filter element . . . . . | 2651 |
| Table 609. | Standard message ID filter element field description . . . . . | 2652 |
| Table 610. | Extended message ID filter element. . . . . | 2652 |
| Table 611. | Extended message ID filter element field description. . . . . | 2653 |
| Table 612. | FDCAN register map and reset values . . . . . | 2683 |
| Table 613. | STM32U3 series USB implementation . . . . . | 2687 |
| Table 614. | USB input/output pins . . . . . | 2688 |
| Table 615. | Double-buffering buffer flag definition . . . . . | 2700 |
| Table 616. | Bulk double-buffering memory buffers usage (Device mode) . . . . . | 2700 |
| Table 617. | Bulk double-buffering memory buffers usage (Host mode) . . . . . | 2702 |
| Table 618. | Isochronous memory buffers usage . . . . . | 2703 |
| Table 619. | Isochronous memory buffers usage . . . . . | 2704 |
| Table 620. | Resume event detection . . . . . | 2706 |
| Table 621. | Resume event detection for host . . . . . | 2707 |
| Table 622. | Reception status encoding . . . . . | 2725 |
| Table 623. | Endpoint/channel type encoding . . . . . | 2725 |
| Table 624. | Endpoint/channel kind meaning . . . . . | 2725 |
| Table 625. | Transmission status encoding . . . . . | 2725 |
| Table 626. | USB register map and reset values . . . . . | 2726 |
| Table 627. | Definition of allocated buffer memory . . . . . | 2729 |
| Table 628. | USB SRAM register map and reset values . . . . . | 2732 |
| Table 629. | JTAG/Serial-wire debug port pins . . . . . | 2734 |
| Table 630. | Trace port pins . . . . . | 2734 |
| Table 631. | Single-wire trace port pins . . . . . | 2735 |
| Table 632. | Authentication signal states . . . . . | 2736 |
| Table 633. | JTAG-DP data registers . . . . . | 2739 |
| Table 634. | Packet request . . . . . | 2740 |
| Table 635. | ACK response . . . . . | 2741 |
| Table 636. | Data transfer . . . . . | 2741 |
| Table 637. | Debug port register map and reset values . . . . . | 2747 |
| Table 638. | Access port register map and reset values . . . . . | 2753 |
| Table 639. | MCU ROM table . . . . . | 2754 |
| Table 640. | Processor ROM table . . . . . | 2754 |
| Table 641. | MCU ROM table register map and reset values . . . . . | 2759 |
| Table 642. | CPU ROM table register map and reset values . . . . . | 2764 |
| Table 643. | DWT register map and reset values . . . . . | 2778 |
| Table 644. | ITM register map and reset values . . . . . | 2788 |
| Table 645. | BPU register map and reset values . . . . . | 2794 |
| Table 646. | ETM register map and reset values . . . . . | 2818 |
| Table 647. | TPIU register map and reset values . . . . . | 2831 |
| Table 648. | CTI register map and reset values . . . . . | 2843 |
| Table 649. | Peripheral clock freeze control bits . . . . . | 2845 |
| Table 650. | Peripheral behavior in debug mode . . . . . | 2847 |
| Table 651. | Debugger access to freeze register bits . . . . . | 2847 |
| Table 652. | DBGMCU register map and reset values . . . . . | 2858 |
| Table 653. | Document revision history . . . . . | 2865 |
List of figures
| Figure 1. | System architecture . . . . . | 101 |
| Figure 2. | Memory map based on IDAU mapping for STM32U356/366 . . . . . | 109 |
| Figure 3. | Memory map based on IDAU mapping for STM32U375/385 . . . . . | 110 |
| Figure 4. | Memory map based on IDAU mapping for STM323B5/3C5 . . . . . | 111 |
| Figure 5. | Secure/nonsecure partitioning using TrustZone technology . . . . . | 120 |
| Figure 6. | Sharing memory map between CPU in secure and nonsecure state . . . . . | 122 |
| Figure 7. | Secure world transition and memory partitioning . . . . . | 122 |
| Figure 8. | Global TrustZone framework and TrustZone awareness . . . . . | 124 |
| Figure 9. | Flash memory TrustZone protections . . . . . | 127 |
| Figure 10. | Flash memory secure HDP area . . . . . | 135 |
| Figure 11. | Key management principle . . . . . | 142 |
| Figure 12. | Device life-cycle security . . . . . | 145 |
| Figure 13. | RDP level transition scheme . . . . . | 147 |
| Figure 14. | Collaborative development principle . . . . . | 150 |
| Figure 15. | GTZC in Armv8-M subsystem block diagram . . . . . | 157 |
| Figure 16. | GTZC block diagram . . . . . | 160 |
| Figure 17. | MPCBB block diagram . . . . . | 161 |
| Figure 18. | Secure, HDP, and HDP extension areas . . . . . | 246 |
| Figure 19. | Flash memory security attributes and protections in case of no bank swap (SWAP_BANK = 0) . . . . . | 249 |
| Figure 20. | Flash memory security attributes and protections in case of bank swap (SWAP_BANK = 1) . . . . . | 249 |
| Figure 21. | RDP level transition scheme when TrustZone is disabled (TZEN = 0) . . . . . | 257 |
| Figure 22. | RDP level transition scheme when TrustZone is enabled (TZEN = 1) . . . . . | 257 |
| Figure 23. | ICACHE block diagram . . . . . | 311 |
| Figure 24. | ICACHE TAG and data memories functional view . . . . . | 313 |
| Figure 25. | ICACHE remapping address mechanism . . . . . | 316 |
| Figure 26. | Power supply overview . . . . . | 328 |
| Figure 27. | Brownout reset waveform . . . . . | 335 |
| Figure 28. | PVD thresholds . . . . . | 335 |
| Figure 29. | I/O states in Stop 3 mode . . . . . | 354 |
| Figure 30. | I/O states in Standby mode . . . . . | 357 |
| Figure 31. | Simplified diagram of the reset circuit . . . . . | 395 |
| Figure 32. | Clock tree (1) . . . . . | 398 |
| Figure 33. | MSI block diagram . . . . . | 401 |
| Figure 34. | CRS block diagram . . . . . | 485 |
| Figure 35. | CRS counter behavior . . . . . | 487 |
| Figure 36. | Structure of three-volt or five-volt tolerant GPIO (TT or FT) . . . . . | 497 |
| Figure 37. | Input floating/pull-up/pull-down configurations . . . . . | 501 |
| Figure 38. | Output configuration . . . . . | 502 |
| Figure 39. | Alternate function configuration . . . . . | 503 |
| Figure 40. | High-impedance analog configuration . . . . . | 503 |
| Figure 41. | I/O compensation cell block diagram . . . . . | 519 |
| Figure 42. | GPDMA block diagram . . . . . | 557 |
| Figure 43. | GPDMA channel direct programming without linked-list (GPDMA_CxLLR = 0) . . . . . | 558 |
| Figure 44. | GPDMA channel suspend and resume sequence . . . . . | 559 |
| Figure 45. | GPDMA channel abort and restart sequence . . . . . | 560 |
| Figure 46. | Static linked-list data structure (all Uxx = 1) |
of a linear addressing channel x . . . . . 561
Figure 47. Static linked-list data structure (all Uxx = 1)
of a 2D addressing channel x . . . . . 562
Figure 48. GPDMA dynamic linked-list data structure
of a linear addressing channel x . . . . . 563
Figure 49. GPDMA dynamic linked-list data structure
of a 2D addressing channel x . . . . . 563
Figure 50. GPDMA channel execution and linked-list programming
in run-to-completion mode (GPDMA_CxCR.LSM = 0) . . . . . 565
Figure 51. Inserting a LLn with an auxiliary GPDMA channel y . . . . . 567
Figure 52. GPDMA channel execution and linked-list programming
in link step mode (GPDMA_CxCR.LSM = 1) . . . . . 569
Figure 53. Building LLn+1: GPDMA dynamic linked-lists in link step mode . . . . . 570
Figure 54. Replace with a new LLn' in register file in link step mode . . . . . 571
Figure 55. Replace with a new LLn' and LLn+1' in memory in link step mode (option 1) . . . . . 572
Figure 56. Replace with a new LLn' and LLn+1' in memory in link step mode (option 2) . . . . . 573
Figure 57. GPDMA channel execution and linked-list programming . . . . . 575
Figure 58. Programmed 2D addressing . . . . . 578
Figure 59. GPDMA arbitration policy . . . . . 585
Figure 60. Trigger hit, memorization, and overrun waveform . . . . . 588
Figure 61. GPDMA circular buffer programming: update of the memory start address
with a linear addressing channel . . . . . 589
Figure 62. Shared GPDMA channel with circular buffering: update of the memory
start address with a linear addressing channel. . . . . 590
Figure 63. EXTI block diagram . . . . . 634
Figure 64. Configurable event trigger logic CPU wake-up. . . . . 636
Figure 65. EXTI mux GPIO selection. . . . . 637
Figure 66. CRC calculation unit block diagram . . . . . 650
Figure 67. HSP functional view . . . . . 657
Figure 68. HSP block diagram . . . . . 660
Figure 69. Single-precision floating-point format . . . . . 663
Figure 70. MMC overview . . . . . 664
Figure 71. Memory mapping seen from the AHB slave port SP1 . . . . . 666
Figure 72. BRAM arbitration . . . . . 667
Figure 73. HSP code loading . . . . . 668
Figure 74. HSP start-up . . . . . 670
Figure 75. MSGB block diagram . . . . . 671
Figure 76. DCMD block diagram . . . . . 674
Figure 77. Direct command programming example. . . . . 676
Figure 78. STREAM block diagram . . . . . 677
Figure 79. BUF CMB details . . . . . 678
Figure 80. Buffer usage generation example. . . . . 680
Figure 81. TRGITF block diagram . . . . . 682
Figure 82. TRGIN overrun detection . . . . . 684
Figure 83. SEG block diagram. . . . . 685
Figure 84. Example of dedicated event generation . . . . . 687
Figure 85. EVTC block diagram. . . . . 688
Figure 86. Processing request control . . . . . 689
Figure 87. Example of synchronization mechanism . . . . . 690
Figure 88. Task controller details. . . . . 693
Figure 89. Priority encoder example . . . . . 694
Figure 90. HSP interrupt controller . . . . . 695
| Figure 91. | HSP error interrupt controller. . . . . | 696 |
| Figure 92. | HSP event interrupt controller. . . . . | 700 |
| Figure 93. | Saturation flag. . . . . | 701 |
| Figure 94. | HCC block diagram. . . . . | 704 |
| Figure 95. | TRGITF wake-up capabilities . . . . . | 705 |
| Figure 96. | TCU block diagram. . . . . | 706 |
| Figure 97. | Task overlap . . . . . | 706 |
| Figure 98. | TRGO block diagram . . . . . | 707 |
| Figure 99. | TSC block diagram. . . . . | 708 |
| Figure 100. | Trace controller block diagram . . . . . | 710 |
| Figure 101. | TSC capture example 1 . . . . . | 712 |
| Figure 102. | TSC capture example 2 . . . . . | 713 |
| Figure 103. | SNOOP function . . . . . | 715 |
| Figure 104. | Break interface . . . . . | 717 |
| Figure 105. | Break input timing example . . . . . | 719 |
| Figure 106. | Step-by-step timing example . . . . . | 721 |
| Figure 107. | PLSUP simplified algorithm . . . . . | 726 |
| Figure 108. | Processing list programming algorithm. . . . . | 728 |
| Figure 109. | Direct command processing list simplified algorithm . . . . . | 729 |
| Figure 110. | Data sharing models. . . . . | 730 |
| Figure 111. | OCTOSPI block diagram in octal configuration . . . . . | 796 |
| Figure 112. | OCTOSPI block diagram in quad configuration . . . . . | 796 |
| Figure 113. | OCTOSPI block diagram in dual-quad configuration . . . . . | 797 |
| Figure 114. | SDR read command in octal configuration. . . . . | 798 |
| Figure 115. | DTR read in octal-SPI mode with DQS (Macronix mode) example . . . . . | 801 |
| Figure 116. | SDR write command in octo-SPI mode example . . . . . | 803 |
| Figure 117. | DTR write in octal-SPI mode (Macronix mode) example . . . . . | 804 |
| Figure 118. | Example of HyperBus read operation. . . . . | 806 |
| Figure 119. | HyperBus write operation with initial latency . . . . . | 807 |
| Figure 120. | HyperBus read operation with additional latency . . . . . | 807 |
| Figure 121. | HyperBus write operation with additional latency . . . . . | 808 |
| Figure 122. | HyperBus write operation with no latency (register write). . . . . | 808 |
| Figure 123. | HyperBus read operation page crossing with latency. . . . . | 809 |
| Figure 124. | D0/D1 data ordering in octal-SPI DTR mode (Micron) - Read access . . . . . | 816 |
| Figure 125. | OctaRAM read operation with reverse data ordering D1/D0 . . . . . | 816 |
| Figure 126. | NCS when CKMODE = 0 (T = CLK period) . . . . . | 822 |
| Figure 127. | NCS when CKMODE = 1 in SDR mode (T = CLK period) . . . . . | 822 |
| Figure 128. | NCS when CKMODE = 1 in DTR mode (T = CLK period) . . . . . | 823 |
| Figure 129. | NCS when CKMODE = 1 with an abort (T = CLK period). . . . . | 823 |
| Figure 130. | SDMMC “no response” and “no data” operations. . . . . | 853 |
| Figure 131. | SDMMC (multiple) block read operation. . . . . | 853 |
| Figure 132. | SDMMC (multiple) block write operation. . . . . | 854 |
| Figure 133. | SDMMC (sequential) stream read operation . . . . . | 854 |
| Figure 134. | SDMMC (sequential) stream write operation . . . . . | 854 |
| Figure 135. | SDMMC block diagram. . . . . | 856 |
| Figure 136. | SDMMC Command and data phase relation . . . . . | 858 |
| Figure 137. | Control unit . . . . . | 860 |
| Figure 138. | Command/response path . . . . . | 861 |
| Figure 139. | Command path state machine (CPSM) . . . . . | 862 |
| Figure 140. | Data path . . . . . | 868 |
| Figure 141. | DDR mode data packet clocking . . . . . | 869 |
| Figure 142. | DDR mode CRC status / boot acknowledgment clocking. . . . . | 869 |
| Figure 143. Data path state machine (DPSM) . . . . . | 870 |
| Figure 144. CLKMUX unit . . . . . | 881 |
| Figure 145. Linked list structures . . . . . | 883 |
| Figure 146. Asynchronous interrupt generation . . . . . | 886 |
| Figure 147. Synchronous interrupt period data read . . . . . | 887 |
| Figure 148. Synchronous interrupt period data write . . . . . | 887 |
| Figure 149. Asynchronous interrupt period data read . . . . . | 888 |
| Figure 150. Asynchronous interrupt period data write . . . . . | 889 |
| Figure 151. Clock stop with SDMMC_CK for DS, HS, SDR12, SDR25. . . . . | 892 |
| Figure 152. Clock stop with SDMMC_CK for DDR50, SDR50, SDR104. . . . . | 892 |
| Figure 153. Read Wait with SDMMC_CK < 50 MHz . . . . . | 893 |
| Figure 154. Read Wait with SDMMC_CK > 50 MHz . . . . . | 893 |
| Figure 155. CMD12 stream timing . . . . . | 896 |
| Figure 156. CMD5 Sleep Awake procedure . . . . . | 898 |
| Figure 157. Normal boot mode operation . . . . . | 900 |
| Figure 158. Alternative boot mode operation . . . . . | 901 |
| Figure 159. Command response R1b busy signaling . . . . . | 902 |
| Figure 160. SDMMC state control . . . . . | 903 |
| Figure 161. Card cycle power / power up diagram . . . . . | 904 |
| Figure 162. CMD11 signal voltage switch sequence . . . . . | 905 |
| Figure 163. Voltage switch transceiver typical application. . . . . | 907 |
| Figure 164. DLYB block diagram . . . . . | 935 |
| Figure 165. ADC block diagram . . . . . | 943 |
| Figure 166. ADC clock scheme . . . . . | 947 |
| Figure 167. ADC1 connectivity . . . . . | 948 |
| Figure 168. ADC2 connectivity . . . . . | 949 |
| Figure 169. ADC calibration. . . . . | 951 |
| Figure 170. Calibration factor forcing. . . . . | 952 |
| Figure 171. Enabling/disabling the ADC . . . . . | 953 |
| Figure 172. Bulb mode timing diagram . . . . . | 956 |
| Figure 173. Analog-to-digital conversion time . . . . . | 961 |
| Figure 174. Stopping ongoing regular conversions . . . . . | 962 |
| Figure 175. Stopping ongoing regular and injected conversions . . . . . | 962 |
| Figure 176. Triggers shared between ADC master and slave . . . . . | 964 |
| Figure 177. Injected conversion latency during ongoing regular conversion . . . . . | 965 |
| Figure 178. Example of ADC_JSQR queue of context (sequence change) . . . . . | 967 |
| Figure 179. Example of ADC_JSQR queue of context (trigger change) . . . . . | 967 |
| Figure 180. Example of ADC_JSQR queue of context with overflow before conversion. . . . . | 968 |
| Figure 181. Example of ADC_JSQR queue of context with overflow during conversion . . . . . | 968 |
| Figure 182. Example of ADC_JSQR queue of context with empty queue (case JQM = 0). . . . . | 969 |
| Figure 183. Example of ADC_JSQR queue of context with empty queue (JQM = 1) . . . . . | 970 |
| Figure 184. Flushing ADC_JSQR queue of context by setting JADSTP = 1 (JQM = 0) - JADSTP occurs during an ongoing conversion. . . . . | 970 |
| Figure 185. Flushing ADC_JSQR queue of context by setting JADSTP = 1 (JQM = 0) - JADSTP occurs during an ongoing conversion and a new trigger occurs . . . . . | 971 |
| Figure 186. Flushing ADC_JSQR queue of context by setting JADSTP = 1 (JQM = 0) - JADSTP occurs outside an ongoing conversion. . . . . | 971 |
| Figure 187. Flushing ADC_JSQR queue of context by setting JADSTP = 1 (JQM = 1) . . . . . | 972 |
| Figure 188. Flushing ADC_JSQR queue of context by setting ADDIS = 1 (JQM = 0). . . . . | 972 |
| Figure 189. Flushing ADC_JSQR queue of context by setting ADDIS = 1 (JQM = 1). . . . . | 973 |
| Figure 190. Single conversions of a sequence, software trigger . . . . . | 975 |
| Figure 191. Continuous conversion of a sequence, software trigger . . . . . | 975 |
| Figure 192. Single conversions of a sequence, hardware trigger . . . . . | 976 |
| Figure 193. Continuous conversions of a sequence, hardware trigger . . . . . | 976 |
| Figure 194. Right alignment (offset disabled, unsigned value) . . . . . | 978 |
| Figure 195. Right alignment (offset enabled, signed value). . . . . | 979 |
| Figure 196. Left alignment (offset disabled, unsigned value) . . . . . | 979 |
| Figure 197. Left alignment (offset enabled, signed value). . . . . | 980 |
| Figure 198. Example of overrun (OVRMOD = 0). . . . . | 983 |
| Figure 199. Example of overrun (OVRMOD = 1). . . . . | 983 |
| Figure 200. AUTDLY = 1, regular conversion in continuous mode, software trigger . . . . . | 987 |
| Figure 201. AUTDLY = 1, regular hardware conversions interrupted by injected conversions (DISCEN = 0; JDISCEN = 0) . . . . . | 987 |
| Figure 202. AUTDLY = 1, regular hardware conversions interrupted by injected conversions (DISCEN = 1, JDISCEN = 1) . . . . . | 988 |
| Figure 203. AUTDLY = 1, regular continuous conversions interrupted by injected conversions . . . . . | 988 |
| Figure 204. AUTDLY = 1 in autoinjection mode (JAUTO = 1) . . . . . | 989 |
| Figure 205. Analog watchdog guarded area . . . . . | 990 |
| Figure 206. ADC_AWDy_OUT signal generation (on all regular channels). . . . . | 992 |
| Figure 207. ADC_AWDy_OUT signal generation (AWDy flag not cleared by software) . . . . . | 993 |
| Figure 208. ADC_AWDy_OUT signal generation (on a single regular channel) . . . . . | 993 |
| Figure 209. ADC_AWDy_OUT signal generation (on all injected channels) . . . . . | 994 |
| Figure 210. 12-bit result oversampling with 10-bit right shift and rounding . . . . . | 995 |
| Figure 211. Triggered regular oversampling mode (TROVS bit = 1). . . . . | 997 |
| Figure 212. Regular oversampling modes (4x ratio) . . . . . | 998 |
| Figure 213. Regular and injected oversampling modes used simultaneously . . . . . | 999 |
| Figure 214. Triggered regular oversampling with injection . . . . . | 999 |
| Figure 215. Oversampling in autoinjection mode. . . . . | 1000 |
| Figure 216. Dual ADC block diagram . . . . . | 1002 |
| Figure 217. Injected simultaneous mode on four channels: Dual ADC mode . . . . . | 1003 |
| Figure 218. Regular simultaneous mode on 16 channels: dual ADC mode . . . . . | 1005 |
| Figure 219. Interleaved mode on 1 channel in continuous conversion mode: Dual ADC mode . . . . . | 1007 |
| Figure 220. Interleaved mode on 1 channel in single conversion mode: Dual ADC mode . . . . . | 1007 |
| Figure 221. Interleaved conversion with injection . . . . . | 1008 |
| Figure 222. Alternate trigger: injected group of each ADC . . . . . | 1009 |
| Figure 223. Alternate trigger: 4 injected channels (each ADC) in discontinuous mode. . . . . | 1010 |
| Figure 224. Alternate + regular simultaneous . . . . . | 1010 |
| Figure 225. Case of trigger occurring during injected conversion . . . . . | 1011 |
| Figure 226. Interleaved single channel CH0 with injected sequence CH11, CH12 . . . . . | 1011 |
| Figure 227. Two interleaved channels (CH1, CH2) with injected sequence CH11, CH12 - case 1: Master interrupted first. . . . . | 1012 |
| Figure 228. Two interleaved channels (CH1, CH2) with injected sequence CH11, CH12 - case 2: Slave interrupted first. . . . . | 1012 |
| Figure 229. DMA requests in regular simultaneous mode when DAMDF[1:0] = 0b00 . . . . . | 1013 |
| Figure 230. DMA requests in interleaved mode when DAMDF = 0b10 . . . . . | 1014 |
| Figure 231. Temperature sensor channel block diagram . . . . . | 1017 |
| Figure 232. VBAT channel block diagram . . . . . | 1018 |
| Figure 233. VREFINT channel block diagram . . . . . | 1019 |
| Figure 234. Dual-channel DAC block diagram . . . . . | 1063 |
| Figure 235. Data registers in single DAC channel mode. . . . . | 1066 |
| Figure 236. Data registers in dual DAC channel mode . . . . . | 1067 |
| Figure 237. Timing diagram for conversion with trigger disabled TEN = 0 . . . . . | 1068 |
| Figure 238. DAC LFSR register calculation algorithm . . . . . | 1070 |
| Figure 239. DAC conversion (SW trigger enabled) with LFSR wave generation. . . . . | 1071 |
| Figure 240. DAC triangle wave generation . . . . . | 1071 |
| Figure 241. DAC conversion (SW trigger enabled) with triangle wave generation . . . . . | 1072 |
| Figure 242. DAC sample and hold mode phase diagram . . . . . | 1074 |
| Figure 243. VREFBUF block diagram . . . . . | 1102 |
| Figure 244. Comparator block diagrams . . . . . | 1107 |
| Figure 245. Window mode . . . . . | 1110 |
| Figure 246. Comparator hysteresis . . . . . | 1110 |
| Figure 247. Comparator output blanking . . . . . | 1111 |
| Figure 248. Scaler . . . . . | 1112 |
| Figure 249. Standalone mode: external gain setting mode . . . . . | 1119 |
| Figure 250. Follower configuration. . . . . | 1120 |
| Figure 251. PGA mode, internal gain setting (x2/x4/x8/x16), inverting input not used . . . . . | 1121 |
| Figure 252. PGA mode, internal gain setting (x2/x4/x8/x16), inverting input used for filtering . . . . . | 1122 |
| Figure 253. ADF block diagram . . . . . | 1132 |
| Figure 254. SITF overview. . . . . | 1134 |
| Figure 255. SPI timing example . . . . . | 1135 |
| Figure 256. Manchester timing example (SITFMOD = 11) . . . . . | 1137 |
| Figure 257. CKGEN overview . . . . . | 1139 |
| Figure 258. BSMX overview . . . . . | 1141 |
| Figure 259. DFLT overview . . . . . | 1142 |
| Figure 260. Programmable delay. . . . . | 1143 |
| Figure 261. CIC4 and CIC5 frequency response with decimation ratio = 32 or 16 . . . . . | 1145 |
| Figure 262. Reshape filter frequency response normalized (FRS / 2 = 1). . . . . | 1150 |
| Figure 263. Trigger logic for DFLT and CKGEN . . . . . | 1152 |
| Figure 264. Asynchronous continuous mode (ACQMOD[2:0] = 0) . . . . . | 1153 |
| Figure 265. Asynchronous single-shot mode (ACQMOD[2:0] = 001) . . . . . | 1154 |
| Figure 266. Synchronous continuous mode (ACQMOD[2:0] = 010) . . . . . | 1155 |
| Figure 267. Synchronous single-shot mode (ACQMOD[2:0] = 011) . . . . . | 1156 |
| Figure 268. Window continuous mode (ACQMOD[2:0] = 100) . . . . . | 1157 |
| Figure 269. Discard function example . . . . . | 1159 |
| Figure 270. Start sequence with DFLTEN, in continuous mode, audio configuration . . . . . | 1159 |
| Figure 271. SAD block diagram . . . . . | 1160 |
| Figure 272. SAD flow diagram . . . . . | 1162 |
| Figure 273. SAD timing diagram example . . . . . | 1168 |
| Figure 274. ADF_DFLTxDATA format . . . . . | 1168 |
| Figure 275. Data resynchronization . . . . . | 1169 |
| Figure 276. Example of overflow and transfer to memory . . . . . | 1170 |
| Figure 277. ADF interrupt interface . . . . . | 1173 |
| Figure 278. Sensor connection examples . . . . . | 1178 |
| Figure 279. Global frequency response. . . . . | 1178 |
| Figure 280. Detailed frequency response . . . . . | 1179 |
| Figure 281. Simplified DFLT view with gain information . . . . . | 1181 |
| Figure 282. SAD example working with SADMOD = 01 . . . . . | 1184 |
| Figure 283. SAD example working with SADMOD = 1x . . . . . | 1185 |
| Figure 284. LCD controller block diagram . . . . . | 1207 |
| Figure 285. 1/3 bias, 1/4 duty . . . . . | 1209 |
| Figure 286. Static duty case 1 . . . . . | 1210 |
| Figure 287. Static duty case 2 . . . . . | 1211 |
| Figure 288. 1/2 duty, 1/2 bias ..... | 1212 |
| Figure 289. 1/3 duty, 1/3 bias ..... | 1213 |
| Figure 290. 1/4 duty, 1/3 bias ..... | 1214 |
| Figure 291. 1/8 duty, 1/4 bias ..... | 1215 |
| Figure 292. LCD voltage control ..... | 1218 |
| Figure 293. Dead time ..... | 1219 |
| Figure 294. SEG/COM mux feature example ..... | 1224 |
| Figure 295. Flowchart example ..... | 1225 |
| Figure 296. TSC block diagram ..... | 1237 |
| Figure 297. Surface charge transfer analog I/O group structure ..... | 1238 |
| Figure 298. Sampling capacitor voltage variation ..... | 1240 |
| Figure 299. Charge transfer acquisition sequence ..... | 1241 |
| Figure 300. Spread spectrum variation principle ..... | 1242 |
| Figure 301. Surface charge transfer with comparator analog I/O group structure ..... | 1245 |
| Figure 302. Sensor voltage variation for both normal and comparator mode ..... | 1246 |
| Figure 303. CCB block diagram ..... | 1257 |
| Figure 304. CCB operation CPU → PKA + SAES (write) ..... | 1259 |
| Figure 305. CCB operation PKA → SAES ..... | 1259 |
| Figure 306. CCB operation SAES → PKA ..... | 1259 |
| Figure 307. CCB operation SAES → CCB ..... | 1260 |
| Figure 308. CCB operation RNG → PKA (write) ..... | 1260 |
| Figure 309. CCB operation RNG → SAES (write) ..... | 1261 |
| Figure 310. Blob creation scenarios ..... | 1262 |
| Figure 311. RNG block diagram ..... | 1283 |
| Figure 312. NIST SP800-90B entropy source model ..... | 1284 |
| Figure 313. RNG initialization overview ..... | 1287 |
| Figure 314. AES block diagram ..... | 1304 |
| Figure 315. Encryption/ decryption typical usage ..... | 1305 |
| Figure 316. Typical operation with authentication ..... | 1308 |
| Figure 317. Example of suspend mode management ..... | 1309 |
| Figure 318. ECB encryption ..... | 1310 |
| Figure 319. ECB decryption ..... | 1310 |
| Figure 320. CBC encryption ..... | 1310 |
| Figure 321. CBC decryption ..... | 1311 |
| Figure 322. Message construction in CTR mode ..... | 1313 |
| Figure 323. CTR encryption ..... | 1314 |
| Figure 324. Message construction in GCM ..... | 1315 |
| Figure 325. GCM authenticated encryption ..... | 1317 |
| Figure 326. Message construction in GMAC mode ..... | 1320 |
| Figure 327. GMAC authentication mode ..... | 1321 |
| Figure 328. Message construction in CCM mode ..... | 1322 |
| Figure 329. CCM mode authenticated encryption ..... | 1323 |
| Figure 330. 128-bit block construction according to the data type ..... | 1328 |
| Figure 331. SAES block diagram ..... | 1350 |
| Figure 332. Encryption/ decryption typical usage ..... | 1352 |
| Figure 333. Typical operation with authentication ..... | 1354 |
| Figure 334. Example of suspend mode management ..... | 1355 |
| Figure 335. ECB encryption ..... | 1356 |
| Figure 336. ECB decryption ..... | 1356 |
| Figure 337. CBC encryption ..... | 1357 |
| Figure 338. CBC decryption ..... | 1357 |
| Figure 339. Message construction in CTR mode ..... | 1360 |
| Figure 340. CTR encryption . . . . . | 1361 |
| Figure 341. Message construction in GCM . . . . . | 1362 |
| Figure 342. GCM authenticated encryption . . . . . | 1364 |
| Figure 343. Message construction in GMAC mode . . . . . | 1367 |
| Figure 344. GMAC authentication mode . . . . . | 1367 |
| Figure 345. Message construction in CCM mode . . . . . | 1368 |
| Figure 346. CCM mode authenticated encryption . . . . . | 1370 |
| Figure 347. Operation with wrapped keys for SAES in ECB and CBC modes . . . . . | 1373 |
| Figure 348. Operation with wrapped keys for SAES in CTR mode . . . . . | 1376 |
| Figure 349. Usage of Shared-key mode . . . . . | 1377 |
| Figure 350. 128-bit block construction according to the data type. . . . . | 1380 |
| Figure 351. Key protection mechanisms . . . . . | 1382 |
| Figure 352. HASH block diagram . . . . . | 1404 |
| Figure 353. Message data swapping feature . . . . . | 1406 |
| Figure 354. HASH suspend/resume mechanism . . . . . | 1412 |
| Figure 355. PKA block diagram . . . . . | 1426 |
| Figure 356. Chaining of PKA with SAES or RNG . . . . . | 1433 |
| Figure 357. Advanced-control timer block diagram . . . . . | 1466 |
| Figure 358. Counter timing diagram with prescaler division change from 1 to 2 . . . . . | 1472 |
| Figure 359. Counter timing diagram with prescaler division change from 1 to 4 . . . . . | 1473 |
| Figure 360. Counter timing diagram, internal clock divided by 1 . . . . . | 1474 |
| Figure 361. Counter timing diagram, internal clock divided by 2 . . . . . | 1475 |
| Figure 362. Counter timing diagram, internal clock divided by 4 . . . . . | 1475 |
| Figure 363. Counter timing diagram, internal clock divided by N . . . . . | 1476 |
| Figure 364. Counter timing diagram, update event when ARPE = 0 (TIMx_ARR not preloaded). . . . . | 1476 |
| Figure 365. Counter timing diagram, update event when ARPE = 1 (TIMx_ARR preloaded). . . . . | 1477 |
| Figure 366. Counter timing diagram, internal clock divided by 1 . . . . . | 1478 |
| Figure 367. Counter timing diagram, internal clock divided by 2 . . . . . | 1479 |
| Figure 368. Counter timing diagram, internal clock divided by 4 . . . . . | 1479 |
| Figure 369. Counter timing diagram, internal clock divided by N . . . . . | 1480 |
| Figure 370. Counter timing diagram, update event when repetition counter is not used. . . . . | 1480 |
| Figure 371. Counter timing diagram, internal clock divided by 1, TIMx_ARR = 0x6 . . . . . | 1482 |
| Figure 372. Counter timing diagram, internal clock divided by 2 . . . . . | 1482 |
| Figure 373. Counter timing diagram, internal clock divided by 4, TIMx_ARR = 0x36 . . . . . | 1483 |
| Figure 374. Counter timing diagram, internal clock divided by N . . . . . | 1483 |
| Figure 375. Counter timing diagram, update event with ARPE = 1 (counter underflow) . . . . . | 1484 |
| Figure 376. Counter timing diagram, Update event with ARPE = 1 (counter overflow) . . . . . | 1485 |
| Figure 377. Update rate examples depending on mode and TIMx_RCR register settings . . . . . | 1486 |
| Figure 379. Control circuit in normal mode, internal clock divided by 1 . . . . . | 1488 |
| Figure 380. tim_ti2 external clock connection example . . . . . | 1488 |
| Figure 381. Control circuit in external clock mode 1 . . . . . | 1489 |
| Figure 382. External trigger input block . . . . . | 1490 |
| Figure 383. Control circuit in external clock mode 2 . . . . . | 1491 |
| Figure 384. Capture/compare channel (example: channel 1 input stage) . . . . . | 1491 |
| Figure 385. Capture/compare channel 1 main circuit . . . . . | 1492 |
| Figure 386. Output stage of capture/compare channel (channel 1, idem ch. 2, 3 and 4) . . . . . | 1493 |
| Figure 387. Output stage of capture/compare channel (channel 5, idem ch. 6) . . . . . | 1493 |
| Figure 388. PWM input mode timing . . . . . | 1496 |
| Figure 389. Output compare mode, toggle on tim_oc1 . . . . . | 1498 |
| Figure 390. Edge-aligned PWM waveforms (ARR = 8) . . . . . | 1499 |
| Figure 391. Center-aligned PWM waveforms (ARR = 8) . . . . . | 1500 |
| Figure 392. Dithering principle . . . . . | 1501 |
| Figure 393. Data format and register coding in dithering mode . . . . . | 1502 |
| Figure 394. PWM resolution vs frequency . . . . . | 1503 |
| Figure 395. PWM dithering pattern . . . . . | 1504 |
| Figure 396. Dithering effect on duty cycle in center-aligned PWM mode . . . . . | 1505 |
| Figure 397. Generation of 2 phase-shifted PWM signals with 50% duty cycle . . . . . | 1507 |
| Figure 398. Combined PWM mode on channel 1 and 3 . . . . . | 1508 |
| Figure 399. 3-phase combined PWM signals with multiple trigger pulses per period . . . . . | 1509 |
| Figure 400. Complementary output with symmetrical dead-time insertion . . . . . | 1510 |
| Figure 401. Asymmetrical deadtime . . . . . | 1511 |
| Figure 402. Dead-time waveforms with delay greater than the negative pulse . . . . . | 1511 |
| Figure 403. Dead-time waveforms with delay greater than the positive pulse . . . . . | 1511 |
| Figure 404. Break and Break2 circuitry overview . . . . . | 1514 |
| Figure 405. Various output behavior in response to a break event on tim_brk (OSSI = 1) . . . . . | 1516 |
| Figure 406. PWM output state following tim_brk and tim_brk2 assertion (OSSI = 1) . . . . . | 1517 |
| Figure 407. PWM output state following tim_brk assertion (OSSI = 0) . . . . . | 1518 |
| Figure 408. Output redirection (tim_brk2 request not represented) . . . . . | 1519 |
| Figure 409. tim_ocref_clr input selection multiplexer . . . . . | 1520 |
| Figure 410. Clearing TIMx tim_ocxref . . . . . | 1521 |
| Figure 411. 6-step generation, COM example (OSSR = 1) . . . . . | 1522 |
| Figure 412. Example of one pulse mode . . . . . | 1523 |
| Figure 413. Retriggerable one-pulse mode . . . . . | 1524 |
| Figure 414. Pulse generator circuitry . . . . . | 1525 |
| Figure 415. Pulse generation on compare event, for edge-aligned and encoder modes . . . . . | 1526 |
| Figure 416. Extended pulsewidth in case of concurrent triggers . . . . . | 1527 |
| Figure 417. Example of counter operation in encoder interface mode . . . . . | 1529 |
| Figure 418. Example of encoder interface mode with tim_ti1fp1 polarity inverted . . . . . | 1529 |
| Figure 419. Quadrature encoder counting modes . . . . . | 1530 |
| Figure 420. Direction plus clock encoder mode . . . . . | 1531 |
| Figure 421. Directional clock encoder mode (CC1P = CC2P = 0) . . . . . | 1531 |
| Figure 422. Directional clock encoder mode (CC1P = CC2P = 1) . . . . . | 1532 |
| Figure 423. Index gating options . . . . . | 1533 |
| Figure 424. Jittered Index signals . . . . . | 1533 |
| Figure 425. Index generation for IPOS[1:0] = 11 . . . . . | 1534 |
| Figure 426. Counter reading with index gated on channel A (IPOS[1:0] = 11) . . . . . | 1534 |
| Figure 427. Counter reading with index ungated (IPOS[1:0] = 00) . . . . . | 1535 |
| Figure 428. Counter reading with index gated on channel A and B . . . . . | 1535 |
| Figure 429. Encoder mode behavior in case of narrow index pulse (IPOS[1:0] = 11) . . . . . | 1536 |
| Figure 430. Counter reset Narrow index pulse (closer view, ARR = 0x07) . . . . . | 1537 |
| Figure 431. Index behavior in x1 and x2 mode (IPOS[1:0] = 01) . . . . . | 1538 |
| Figure 432. Directional index sensitivity . . . . . | 1538 |
| Figure 433. Counter reset as function of FIDX bit setting . . . . . | 1539 |
| Figure 434. Index blanking . . . . . | 1539 |
| Figure 435. Index behavior in clock + direction mode, IPOS[0] = 1 . . . . . | 1540 |
| Figure 436. Index behavior in directional clock mode, IPOS[0] = 1 . . . . . | 1540 |
| Figure 437. State diagram for quadrature encoded signals . . . . . | 1541 |
| Figure 438. Up-counting encoder error detection . . . . . | 1542 |
| Figure 439. Down-counting encode error detection . . . . . | 1543 |
| Figure 440. Encoder mode change with preload transferred on update (SMSPS = 0) . . . . . | 1544 |
| Figure 441. Measuring time interval between edges on three signals . . . . . | 1545 |
| Figure 442. Example of Hall sensor interface . . . . . | 1547 |
| Figure 443. | Control circuit in reset mode . . . . . | 1548 |
| Figure 444. | Control circuit in Gated mode . . . . . | 1549 |
| Figure 445. | Control circuit in trigger mode . . . . . | 1550 |
| Figure 446. | Control circuit in external clock mode 2 + trigger mode . . . . . | 1551 |
| Figure 447. | General-purpose timer block diagram . . . . . | 1610 |
| Figure 448. | Counter timing diagram with prescaler division change from 1 to 2 . . . . . | 1615 |
| Figure 449. | Counter timing diagram with prescaler division change from 1 to 4 . . . . . | 1616 |
| Figure 450. | Counter timing diagram, internal clock divided by 1 . . . . . | 1617 |
| Figure 451. | Counter timing diagram, internal clock divided by 2 . . . . . | 1617 |
| Figure 452. | Counter timing diagram, internal clock divided by 4 . . . . . | 1618 |
| Figure 453. | Counter timing diagram, internal clock divided by N . . . . . | 1618 |
| Figure 454. | Counter timing diagram, Update event when ARPE = 0 (TIMx_ARR not preloaded). . . . . | 1619 |
| Figure 455. | Counter timing diagram, Update event when ARPE = 1 (TIMx_ARR preloaded). . . . . | 1620 |
| Figure 456. | Counter timing diagram, internal clock divided by 1 . . . . . | 1621 |
| Figure 457. | Counter timing diagram, internal clock divided by 2 . . . . . | 1622 |
| Figure 458. | Counter timing diagram, internal clock divided by 4 . . . . . | 1622 |
| Figure 459. | Counter timing diagram, internal clock divided by N . . . . . | 1623 |
| Figure 460. | Counter timing diagram, Update event . . . . . | 1623 |
| Figure 461. | Counter timing diagram, internal clock divided by 1, TIMx_ARR = 0x6 . . . . . | 1625 |
| Figure 462. | Counter timing diagram, internal clock divided by 2 . . . . . | 1625 |
| Figure 463. | Counter timing diagram, internal clock divided by 4, TIMx_ARR = 0x36 . . . . . | 1626 |
| Figure 464. | Counter timing diagram, internal clock divided by N . . . . . | 1626 |
| Figure 465. | Counter timing diagram, Update event with ARPE = 1 (counter underflow). . . . . | 1627 |
| Figure 466. | Counter timing diagram, Update event with ARPE = 1 (counter overflow). . . . . | 1628 |
| Figure 467. | Control circuit in normal mode, internal clock divided by 1 . . . . . | 1629 |
| Figure 468. | tim_ti2 external clock connection example . . . . . | 1629 |
| Figure 469. | Control circuit in external clock mode 1 . . . . . | 1630 |
| Figure 470. | External trigger input block . . . . . | 1631 |
| Figure 471. | Control circuit in external clock mode 2 . . . . . | 1632 |
| Figure 472. | Capture/compare channel (example: channel 1 input stage). . . . . | 1632 |
| Figure 473. | Capture/compare channel 1 main circuit . . . . . | 1633 |
| Figure 474. | Output stage of capture/compare channel (channel 1, idem ch.2, 3 and 4). . . . . | 1633 |
| Figure 475. | PWM input mode timing . . . . . | 1636 |
| Figure 476. | Output compare mode, toggle on tim_oc1 . . . . . | 1638 |
| Figure 477. | Edge-aligned PWM waveforms (ARR = 8). . . . . | 1639 |
| Figure 478. | Center-aligned PWM waveforms (ARR = 8). . . . . | 1640 |
| Figure 479. | Dithering principle . . . . . | 1641 |
| Figure 480. | Data format and register coding in dithering mode . . . . . | 1642 |
| Figure 481. | PWM resolution vs frequency (16-bit mode). . . . . | 1643 |
| Figure 482. | PWM resolution vs frequency (32-bit mode). . . . . | 1643 |
| Figure 483. | PWM dithering pattern . . . . . | 1644 |
| Figure 484. | Dithering effect on duty cycle in center-aligned PWM mode . . . . . | 1645 |
| Figure 485. | Generation of two phase-shifted PWM signals with 50% duty cycle . . . . . | 1647 |
| Figure 486. | Combined PWM mode on channels 1 and 3 . . . . . | 1648 |
| Figure 487. | OCREF_CLR input selection multiplexer . . . . . | 1649 |
| Figure 488. | Clearing TIMx tim_ocxref . . . . . | 1649 |
| Figure 489. | Example of One-pulse mode . . . . . | 1650 |
| Figure 490. | Retriggerable one-pulse mode . . . . . | 1652 |
| Figure 491. | Pulse generator circuitry . . . . . | 1653 |
| Figure 492. | Pulse generation on compare event, for edge-aligned and encoder modes . . . . . | 1653 |
| Figure 493. | Extended pulse width in case of concurrent triggers . . . . . | 1654 |
| Figure 494. | Example of counter operation in encoder interface mode . . . . . | 1656 |
| Figure 495. | Example of encoder interface mode with tim_ti1fp1 polarity inverted . . . . . | 1656 |
| Figure 496. | Quadrature encoder counting modes . . . . . | 1657 |
| Figure 497. | Direction plus clock encoder mode . . . . . | 1658 |
| Figure 498. | Directional clock encoder mode (CC1P = CC2P = 0) . . . . . | 1659 |
| Figure 499. | Directional clock encoder mode (CC1P = CC2P = 1) . . . . . | 1659 |
| Figure 500. | Index gating options . . . . . | 1661 |
| Figure 501. | Jittered Index signals . . . . . | 1661 |
| Figure 502. | Index generation for IPOS[1:0] = 11 . . . . . | 1662 |
| Figure 503. | Counter reading with index gated on channel A (IPOS[1:0] = 11) . . . . . | 1662 |
| Figure 504. | Counter reading with index ungated (IPOS[1:0] = 00) . . . . . | 1663 |
| Figure 505. | Counter reading with index gated on channel A and B . . . . . | 1663 |
| Figure 506. | Encoder mode behavior in case of narrow index pulse (IPOS[1:0] = 11) . . . . . | 1664 |
| Figure 507. | Counter reset Narrow index pulse (closer view, ARR = 0x07) . . . . . | 1665 |
| Figure 508. | Index behavior in x1 and x2 mode (IPOS[1:0] = 01) . . . . . | 1666 |
| Figure 509. | Directional index sensitivity . . . . . | 1666 |
| Figure 510. | Counter reset as function of FIDX bit setting . . . . . | 1667 |
| Figure 511. | Index blanking . . . . . | 1667 |
| Figure 512. | Index behavior in clock + direction mode, IPOS[0] = 1 . . . . . | 1668 |
| Figure 513. | Index behavior in directional clock mode, IPOS[0] = 1 . . . . . | 1668 |
| Figure 514. | State diagram for quadrature encoded signals . . . . . | 1669 |
| Figure 515. | Up-counting encoder error detection . . . . . | 1670 |
| Figure 516. | Down-counting encode error detection . . . . . | 1671 |
| Figure 517. | Encoder mode change with preload transferred on update (SMSPS = 0) . . . . . | 1672 |
| Figure 518. | Control circuit in reset mode . . . . . | 1674 |
| Figure 519. | Control circuit in gated mode . . . . . | 1675 |
| Figure 520. | Control circuit in trigger mode . . . . . | 1675 |
| Figure 521. | Control circuit in external clock mode 2 + trigger mode . . . . . | 1677 |
| Figure 522. | Master/Slave timer example . . . . . | 1677 |
| Figure 523. | Master/slave connection example with 1 channel only timers . . . . . | 1678 |
| Figure 524. | Gating TIM_slv with tim_oc1ref of TIM_mstr . . . . . | 1679 |
| Figure 525. | Gating TIM_slv with Enable of TIM_mstr . . . . . | 1680 |
| Figure 526. | Triggering TIM_slv with update of TIM_mstr . . . . . | 1681 |
| Figure 527. | Triggering TIM_slv with Enable of TIM_mstr . . . . . | 1681 |
| Figure 528. | Triggering TIM_mstr and TIM_slv with TIM_mstr tim_ti1 input . . . . . | 1682 |
| Figure 529. | Basic timer block diagram . . . . . | 1723 |
| Figure 530. | Control circuit in normal mode, internal clock divided by 1 . . . . . | 1724 |
| Figure 531. | Counter timing diagram with prescaler division change from 1 to 2 . . . . . | 1725 |
| Figure 532. | Counter timing diagram with prescaler division change from 1 to 4 . . . . . | 1726 |
| Figure 533. | Counter timing diagram, internal clock divided by 1 . . . . . | 1727 |
| Figure 534. | Counter timing diagram, internal clock divided by 2 . . . . . | 1727 |
| Figure 535. | Counter timing diagram, internal clock divided by 4 . . . . . | 1728 |
| Figure 536. | Counter timing diagram, internal clock divided by N . . . . . | 1728 |
| Figure 537. | Counter timing diagram, update event when ARPE = 0 (TIMx_ARR not preloaded) . . . . . | 1729 |
| Figure 538. | Counter timing diagram, update event when ARPE = 1 (TIMx_ARR preloaded) . . . . . | 1730 |
| Figure 539. | Dithering principle . . . . . | 1731 |
| Figure 540. | Data format and register coding in dithering mode . . . . . | 1731 |
| Figure 541. | FCnt resolution vs frequency . . . . . | 1732 |
| Figure 542. | PWM dithering pattern . . . . . | 1732 |
| Figure 543. | General-purpose timer block diagram (TIM12) . . . . . | 1744 |
| Figure 544. | Counter timing diagram with prescaler division change from 1 to 2 . . . . . | 1747 |
| Figure 545. | Counter timing diagram with prescaler division change from 1 to 4 . . . . . | 1747 |
| Figure 546. | Counter timing diagram, internal clock divided by 1 . . . . . | 1748 |
| Figure 547. | Counter timing diagram, internal clock divided by 2 . . . . . | 1749 |
| Figure 548. | Counter timing diagram, internal clock divided by 4 . . . . . | 1749 |
| Figure 549. | Counter timing diagram, internal clock divided by N . . . . . | 1750 |
| Figure 550. | Counter timing diagram, update event when ARPE = 0 (TIMx_ARR not preloaded). . . . . | 1750 |
| Figure 551. | Counter timing diagram, update event when ARPE = 1 (TIMx_ARR preloaded). . . . . | 1751 |
| Figure 552. | Control circuit in normal mode, internal clock divided by 1 . . . . . | 1752 |
| Figure 553. | tim_ti2 external clock connection example . . . . . | 1752 |
| Figure 554. | Control circuit in external clock mode 1 . . . . . | 1753 |
| Figure 555. | Capture/compare channel 1 input stage (TIM12) . . . . . | 1754 |
| Figure 556. | Capture/compare channel 1 main circuit . . . . . | 1754 |
| Figure 557. | Output stage of capture/compare channel 1 . . . . . | 1755 |
| Figure 558. | PWM input mode timing . . . . . | 1757 |
| Figure 559. | Output compare mode, toggle on tim_oc1. . . . . | 1759 |
| Figure 560. | Edge-aligned PWM waveforms (ARR = 8) . . . . . | 1760 |
| Figure 561. | Dithering principle . . . . . | 1761 |
| Figure 562. | Data format and register coding in dithering mode . . . . . | 1761 |
| Figure 563. | PWM resolution vs frequency . . . . . | 1762 |
| Figure 564. | PWM dithering pattern . . . . . | 1763 |
| Figure 565. | Combined PWM mode on channel 1 and 2 . . . . . | 1765 |
| Figure 566. | Example of one pulse mode . . . . . | 1766 |
| Figure 567. | Retriggerable one pulse mode . . . . . | 1767 |
| Figure 568. | Measuring time interval between edges on 2 signals . . . . . | 1768 |
| Figure 569. | Control circuit in reset mode . . . . . | 1769 |
| Figure 570. | Control circuit in gated mode . . . . . | 1770 |
| Figure 571. | Control circuit in trigger mode . . . . . | 1770 |
| Figure 572. | TIM15 block diagram . . . . . | 1792 |
| Figure 573. | TIM16/TIM17 block diagram . . . . . | 1793 |
| Figure 574. | Counter timing diagram with prescaler division change from 1 to 2 . . . . . | 1797 |
| Figure 575. | Counter timing diagram with prescaler division change from 1 to 4 . . . . . | 1798 |
| Figure 576. | Counter timing diagram, internal clock divided by 1 . . . . . | 1799 |
| Figure 577. | Counter timing diagram, internal clock divided by 2 . . . . . | 1800 |
| Figure 578. | Counter timing diagram, internal clock divided by 4 . . . . . | 1800 |
| Figure 579. | Counter timing diagram, internal clock divided by N . . . . . | 1801 |
| Figure 580. | Counter timing diagram, update event when ARPE = 0 (TIMx_ARR not preloaded). . . . . | 1801 |
| Figure 581. | Counter timing diagram, update event when ARPE = 1 (TIMx_ARR preloaded). . . . . | 1802 |
| Figure 582. | Update rate examples depending on mode and TIMx_RCR register settings . . . . . | 1803 |
| Figure 583. | Control circuit in normal mode, internal clock divided by 1 . . . . . | 1804 |
| Figure 584. | tim_ti2 external clock connection example . . . . . | 1804 |
| Figure 585. | Control circuit in external clock mode 1 . . . . . | 1805 |
| Figure 586. | Capture/compare channel (example: channel 1 input stage) . . . . . | 1806 |
| Figure 587. | Capture/compare channel 1 main circuit . . . . . | 1806 |
| Figure 588. | Output stage of capture/compare channel (channel 1). . . . . | 1807 |
| Figure 589. | Output stage of capture/compare channel (channel 2 for TIM15) . . . . . | 1807 |
| Figure 590. | PWM input mode timing . . . . . | 1810 |
| Figure 591. | Output compare mode, toggle on tim_oc1 . . . . . | 1812 |
| Figure 592. | Edge-aligned PWM waveforms (ARR = 8) . . . . . | 1813 |
| Figure 593. Dithering principle . . . . . | 1814 |
| Figure 594. Data format and register coding in dithering mode . . . . . | 1814 |
| Figure 595. PWM resolution vs frequency . . . . . | 1815 |
| Figure 596. PWM dithering pattern . . . . . | 1816 |
| Figure 597. Combined PWM mode on channel 1 and 2 . . . . . | 1818 |
| Figure 598. Complementary output with symmetrical dead-time insertion. . . . . | 1819 |
| Figure 599. Asymmetrical deadtime . . . . . | 1820 |
| Figure 600. Dead-time waveforms with delay greater than the negative pulse. . . . . | 1820 |
| Figure 601. Dead-time waveforms with delay greater than the positive pulse. . . . . | 1820 |
| Figure 602. Break circuitry overview . . . . . | 1822 |
| Figure 603. Output behavior in response to a break event on tim_brk . . . . . | 1824 |
| Figure 604. Output redirection . . . . . | 1826 |
| Figure 605. tim_ocref_clr input selection multiplexer. . . . . | 1827 |
| Figure 606. 6-step generation, COM example (OSSR = 1) . . . . . | 1828 |
| Figure 607. Example of one pulse mode. . . . . | 1829 |
| Figure 608. Retriggerable one pulse mode . . . . . | 1831 |
| Figure 609. Measuring time interval between edges on 2 signals . . . . . | 1831 |
| Figure 610. Control circuit in reset mode . . . . . | 1832 |
| Figure 611. Control circuit in gated mode . . . . . | 1833 |
| Figure 612. Control circuit in trigger mode. . . . . | 1834 |
| Figure 613. LPTIM1/2/3 block diagram (1) . . . . . | 1898 |
| Figure 614. LPTIM4 block diagram(1) . . . . . | 1899 |
| Figure 615. Glitch filter timing diagram . . . . . | 1904 |
| Figure 616. LPTIM output waveform, single-counting mode configuration when repetition register content is different than zero (with PRELOAD = 1) . . . . . | 1905 |
| Figure 617. LPTIM output waveform, single-counting mode configuration and Set-once mode activated (WAVE bit is set). . . . . | 1906 |
| Figure 618. LPTIM output waveform, Continuous counting mode configuration . . . . . | 1906 |
| Figure 619. Waveform generation . . . . . | 1908 |
| Figure 620. Encoder mode counting sequence . . . . . | 1912 |
| Figure 621. Continuous counting mode when repetition register LPTIM_RCR different from zero (with PRELOAD = 1). . . . . | 1913 |
| Figure 622. Capture/compare input stage (channel 1) . . . . . | 1914 |
| Figure 623. Capture/compare output stage (channel 1) . . . . . | 1914 |
| Figure 624. Edge-aligned PWM mode (PRELOAD = 1) . . . . . | 1916 |
| Figure 625. Edge-aligned PWM waveforms (ARR=8 and CCxP = 0) . . . . . | 1917 |
| Figure 626. PWM mode with immediate update versus preloaded update . . . . . | 1918 |
| Figure 627. IRTIM internal hardware connections . . . . . | 1948 |
| Figure 628. Independent watchdog block diagram . . . . . | 1951 |
| Figure 629. Reset timing due to timeout . . . . . | 1953 |
| Figure 630. Reset timing due to refresh in the not allowed area . . . . . | 1954 |
| Figure 631. Changing PR, RL, and performing a refresh (1) . . . . . | 1955 |
| Figure 632. Independent watchdog interrupt timing diagram. . . . . | 1957 |
| Figure 633. Watchdog block diagram . . . . . | 1966 |
| Figure 634. Window watchdog timing diagram . . . . . | 1968 |
| Figure 635. RTC block diagram . . . . . | 1974 |
| Figure 636. TAMP block diagram . . . . . | 2029 |
| Figure 637. Backup registers protection zones . . . . . | 2035 |
| Figure 638. Tamper sampling with precharge pulse . . . . . | 2040 |
| Figure 639. Low level detection with precharge and filtering . . . . . | 2040 |
| Figure 640. Block diagram . . . . . | 2060 |
| Figure 641. I 2 C-bus protocol . . . . . | 2062 |
| Figure 642. Setup and hold timings . . . . . | 2064 |
| Figure 643. I2C initialization flow . . . . . | 2067 |
| Figure 644. Data reception . . . . . | 2068 |
| Figure 645. Data transmission . . . . . | 2068 |
| Figure 646. Target initialization flow . . . . . | 2072 |
| Figure 647. Transfer sequence flow for I2C target transmitter, NOSTRETCH = 0 . . . . . | 2073 |
| Figure 648. Transfer sequence flow for I2C target transmitter, NOSTRETCH = 1 . . . . . | 2074 |
| Figure 649. Transfer bus diagrams for I2C target transmitter (mandatory events only) . . . . . | 2075 |
| Figure 650. Transfer sequence flow for I2C target receiver, NOSTRETCH = 0 . . . . . | 2076 |
| Figure 651. Transfer sequence flow for I2C target receiver, NOSTRETCH = 1 . . . . . | 2077 |
| Figure 652. Transfer bus diagrams for I2C target receiver (mandatory events only) . . . . . | 2077 |
| Figure 653. Controller clock generation . . . . . | 2079 |
| Figure 654. Controller initialization flow . . . . . | 2081 |
| Figure 655. 10-bit address read access with HEAD10R = 0 . . . . . | 2081 |
| Figure 656. 10-bit address read access with HEAD10R = 1 . . . . . | 2082 |
| Figure 657. Transfer sequence flow for I2C controller transmitter, N ≤ 255 bytes. . . . . | 2083 |
| Figure 658. Transfer sequence flow for I2C controller transmitter, N > 255 bytes. . . . . | 2084 |
| Figure 659. Transfer bus diagrams for I2C controller transmitter (mandatory events only) . . . . . | 2085 |
| Figure 660. Transfer sequence flow for I2C controller receiver, N ≤ 255 bytes . . . . . | 2087 |
| Figure 661. Transfer sequence flow for I2C controller receiver, N > 255 bytes. . . . . | 2088 |
| Figure 662. Transfer bus diagrams for I2C controller receiver (mandatory events only) . . . . . | 2089 |
| Figure 663. Timeout intervals for \( t_{LOW:SEXT} \) , \( t_{LOW:MEXT} \) . . . . . | 2093 |
| Figure 664. Transfer sequence flow for SMBus target transmitter N bytes + PEC . . . . . | 2097 |
| Figure 665. Transfer bus diagram for SMBus target transmitter (SBC = 1). . . . . | 2097 |
| Figure 666. Transfer sequence flow for SMBus target receiver N bytes + PEC . . . . . | 2099 |
| Figure 667. Bus transfer diagrams for SMBus target receiver (SBC = 1) . . . . . | 2100 |
| Figure 668. Bus transfer diagrams for SMBus controller transmitter . . . . . | 2101 |
| Figure 669. Bus transfer diagrams for SMBus controller receiver . . . . . | 2103 |
| Figure 670. I3C block diagram. . . . . | 2131 |
| Figure 671. I3C (primary) controller state and programming sequence diagram. . . . . | 2136 |
| Figure 672. I3C target state and programming sequence diagram . . . . . | 2141 |
| Figure 673. I3C CCC messages, as controller . . . . . | 2155 |
| Figure 674. I3C broadcast ENTDAA CCC, as controller . . . . . | 2156 |
| Figure 675. I3C broadcast, direct read and direct write RSTACT CCC, as controller . . . . . | 2157 |
| Figure 676. I3C CCC messages, as target . . . . . | 2159 |
| Figure 677. I3C broadcast ENTDAA CCC, as target. . . . . | 2160 |
| Figure 678. I3C broadcast DEFTGTS CCC, as target. . . . . | 2161 |
| Figure 679. I3C broadcast DEFGSPA CCC, as target . . . . . | 2162 |
| Figure 680. I3C private read/write messages, as controller. . . . . | 2164 |
| Figure 681. I3C private read/write messages, as target . . . . . | 2165 |
| Figure 682. Legacy I2C read/write messages, as controller . . . . . | 2166 |
| Figure 683. IBI transfer, as controller/target . . . . . | 2167 |
| Figure 684. Hot-join request transfer, as controller/target . . . . . | 2168 |
| Figure 685. Controller-role request transfer, as controller/target . . . . . | 2169 |
| Figure 686. C-FIFO management, as controller . . . . . | 2170 |
| Figure 687. TX-FIFO management, as controller . . . . . | 2172 |
| Figure 688. RX-FIFO management, as controller . . . . . | 2174 |
| Figure 689. S-FIFO management, as controller . . . . . | 2177 |
| Figure 690. RX-FIFO management, as target on the I3C bus . . . . . | 2178 |
| Figure 691. | TX-FIFO management with I3C_TGTTDR, as target on the I3C bus . . . . . | 2180 |
| Figure 692. | TX-FIFO management by software without I3C_TGTTDR if reading less bytes than TX-FIFO size, as target. . . . . | 2182 |
| Figure 693. | I3C block diagram. . . . . | 2244 |
| Figure 694. | I3C (primary) controller state and programming sequence diagram. . . . . | 2249 |
| Figure 695. | I3C target state and programming sequence diagram, when initialized on an I3C bus without a static address . . . . . | 2254 |
| Figure 696. | I3C target state and programming sequence diagram when initialized on an I3C bus with a static address, . . . . . | 2255 |
| Figure 697. | I3C target state and programming sequence diagram, when initialized on an I2C bus with a static address . . . . . | 2256 |
| Figure 698. | I3C CCC messages, as controller . . . . . | 2270 |
| Figure 699. | I3C broadcast ENTDAA CCC, as controller . . . . . | 2271 |
| Figure 700. | I3C broadcast, direct read and direct write RSTACT CCC, as controller . . . . . | 2272 |
| Figure 701. | I3C CCC messages, as target . . . . . | 2274 |
| Figure 702. | I3C broadcast ENTDAA CCC, as target. . . . . | 2275 |
| Figure 703. | I3C broadcast DEFTGTS CCC, as target. . . . . | 2276 |
| Figure 704. | I3C broadcast DEFGRPA CCC, as target . . . . . | 2277 |
| Figure 705. | I3C private read/write messages, as controller. . . . . | 2279 |
| Figure 706. | I3C private read/write messages, as target . . . . . | 2280 |
| Figure 707. | Legacy I2C read/write messages, as controller . . . . . | 2281 |
| Figure 708. | Legacy I 2 C read/write messages, as target . . . . . | 2282 |
| Figure 709. | IBI transfer, as controller/target . . . . . | 2283 |
| Figure 710. | Hot-join request transfer, as controller/target . . . . . | 2284 |
| Figure 711. | Controller-role request transfer, as controller/target . . . . . | 2285 |
| Figure 712. | C-FIFO management, as controller . . . . . | 2286 |
| Figure 713. | TX-FIFO management, as controller . . . . . | 2288 |
| Figure 714. | RX-FIFO management, as controller . . . . . | 2290 |
| Figure 715. | S-FIFO management, as controller . . . . . | 2293 |
| Figure 716. | RX-FIFO management, as target on the I3C bus. . . . . | 2295 |
| Figure 717. | RX-FIFO management, as target on the I2C bus. . . . . | 2296 |
| Figure 718. | TX-FIFO management with I3C_TGTTDR, as target on the I3C bus. . . . . | 2298 |
| Figure 719. | TX-FIFO management with I3C_TGTTDR, as target on the I2C bus. . . . . | 2299 |
| Figure 720. | TX-FIFO management by software without I3C_TGTTDR if reading less bytes than TX-FIFO size, as target. . . . . | 2301 |
| Figure 721. | USART block diagram . . . . . | 2362 |
| Figure 722. | Word length programming . . . . . | 2366 |
| Figure 723. | Configurable stop bits . . . . . | 2368 |
| Figure 724. | TC/TXE behavior when transmitting . . . . . | 2370 |
| Figure 725. | Start bit detection when oversampling by 16 or 8. . . . . | 2371 |
| Figure 726. | usart_ker_ck clock divider block diagram. . . . . | 2374 |
| Figure 727. | Data sampling when oversampling by 16. . . . . | 2375 |
| Figure 728. | Data sampling when oversampling by 8. . . . . | 2376 |
| Figure 729. | Mute mode using Idle line detection . . . . . | 2383 |
| Figure 730. | Mute mode using address mark detection . . . . . | 2384 |
| Figure 731. | Break detection in LIN mode (11-bit break length - LBDL bit is set). . . . . | 2387 |
| Figure 732. | Break detection in LIN mode vs. Framing error detection. . . . . | 2388 |
| Figure 733. | USART example of synchronous master transmission. . . . . | 2389 |
| Figure 734. | USART data clock timing diagram in synchronous master mode (M bits = 00) . . . . . | 2389 |
| Figure 735. | USART data clock timing diagram in synchronous master mode (M bits = 01) . . . . . | 2390 |
| Figure 736. USART data clock timing diagram in synchronous slave mode (M bits = 00) . . . . . | 2391 |
| Figure 737. ISO 7816-3 asynchronous protocol . . . . . | 2393 |
| Figure 738. Parity error detection using the 1.5 stop bits . . . . . | 2395 |
| Figure 739. IrDA SIR ENDEC block diagram. . . . . | 2399 |
| Figure 740. IrDA data modulation (3/16) - normal mode . . . . . | 2399 |
| Figure 741. Transmission using DMA . . . . . | 2401 |
| Figure 742. Reception using DMA . . . . . | 2402 |
| Figure 743. Hardware flow control between two USARTs. . . . . | 2402 |
| Figure 744. RS232 RTS flow control . . . . . | 2403 |
| Figure 745. RS232 CTS flow control . . . . . | 2404 |
| Figure 746. LPUART block diagram . . . . . | 2451 |
| Figure 747. LPUART word length programming . . . . . | 2455 |
| Figure 748. Configurable stop bits . . . . . | 2457 |
| Figure 749. TC/TXE behavior when transmitting . . . . . | 2459 |
| Figure 750. lpuart_ker_ck clock divider block diagram . . . . . | 2463 |
| Figure 751. Mute mode using Idle line detection . . . . . | 2467 |
| Figure 752. Mute mode using address mark detection . . . . . | 2468 |
| Figure 753. Transmission using DMA . . . . . | 2470 |
| Figure 754. Reception using DMA . . . . . | 2471 |
| Figure 755. Hardware flow control between two LPUARTs. . . . . | 2472 |
| Figure 756. RS232 RTS flow control . . . . . | 2472 |
| Figure 757. RS232 CTS flow control . . . . . | 2473 |
| Figure 758. SPI block diagram . . . . . | 2507 |
| Figure 759. Full-duplex single master/ single slave application. . . . . | 2511 |
| Figure 760. Half-duplex single master/ single slave application . . . . . | 2512 |
| Figure 761. Simplex single master / single slave application (master in transmit-only / slave in receive-only mode) . . . . . | 2513 |
| Figure 762. Master and three independent slaves connected in star topology . . . . . | 2514 |
| Figure 763. Multimaster application . . . . . | 2515 |
| Figure 764. Scheme of NSS control logic . . . . . | 2517 |
| Figure 765. Data flow timing control (SSOE = 1, SSOM = 0, SSM = 0) . . . . . | 2517 |
| Figure 766. NSS interleaving pulses between data (SSOE = 1, SSOM = 1, SSM = 0). . . . . | 2518 |
| Figure 767. Data clock timing diagram . . . . . | 2520 |
| Figure 768. Data alignment when data size is not equal to 8, 16 or 32 bits . . . . . | 2521 |
| Figure 769. TI mode transfer . . . . . | 2531 |
| Figure 770. Optional configurations of the slave behavior when an underrun condition is detected . . . . . | 2533 |
| Figure 771. SAI functional block diagram . . . . . | 2557 |
| Figure 772. Audio frame . . . . . | 2560 |
| Figure 773. FS role is start of frame + channel side identification (FSDEF = TRIS = 1) . . . . . | 2563 |
| Figure 774. FS role is start of frame (FSDEF = 0). . . . . | 2564 |
| Figure 775. Slot size configuration with FBOFF = 0 in SAI_xSLOTR . . . . . | 2565 |
| Figure 776. First bit offset . . . . . | 2565 |
| Figure 777. Audio block clock generator overview . . . . . | 2567 |
| Figure 778. PDM typical connection and timing. . . . . | 2571 |
| Figure 779. Detailed PDM interface block diagram . . . . . | 2572 |
| Figure 780. Start-up sequence . . . . . | 2573 |
| Figure 781. SAI_ADR format in TDM mode, 32-bit slot width . . . . . | 2574 |
| Figure 782. SAI_ADR format in TDM mode, 16-bit slot width . . . . . | 2575 |
| Figure 783. SAI_ADR format in TDM mode, 8-bit slot width . . . . . | 2576 |
| Figure 784. AC'97 audio frame . . . . . | 2579 |
| Figure 785. SPDIF format . . . . . | 2580 |
| Figure 786. SAI_xDR register ordering . . . . . | 2581 |
| Figure 787. Data companding hardware in an audio block in the SAI . . . . . | 2584 |
| Figure 788. Tristate strategy on SD output line on an inactive slot . . . . . | 2586 |
| Figure 789. Tristate on output data line in a protocol like I2S . . . . . | 2587 |
| Figure 790. Overrun detection error . . . . . | 2588 |
| Figure 791. FIFO underrun event . . . . . | 2588 |
| Figure 792. CAN subsystem . . . . . | 2622 |
| Figure 793. FDCAN block diagram . . . . . | 2624 |
| Figure 794. Bit timing . . . . . | 2626 |
| Figure 795. Transceiver delay measurement . . . . . | 2631 |
| Figure 796. Pin control in bus monitoring mode . . . . . | 2632 |
| Figure 797. Pin control in loop-back mode . . . . . | 2635 |
| Figure 798. CAN error state diagram . . . . . | 2636 |
| Figure 799. Message RAM configuration . . . . . | 2637 |
| Figure 800. Standard message ID filter path . . . . . | 2640 |
| Figure 801. Extended message ID filter path . . . . . | 2641 |
| Figure 802. USB peripheral block diagram . . . . . | 2688 |
| Figure 803. Packet buffer areas with examples of buffer description table locations . . . . . | 2694 |
| Figure 804. Block diagram of debug support infrastructure . . . . . | 2734 |
| Figure 805. JTAG TAP state machine . . . . . | 2738 |
| Figure 806. CoreSight topology . . . . . | 2755 |
Chapters
- 1. Documentation conventions
- 2. Memory and bus architecture
- 3. System security
- 4. Boot modes
- 5. Global TrustZone controller (GTZC)
- 6. RAM configuration controller (RAMCFG)
- 7. Embedded flash memory (FLASH)
- 8. Instruction cache (ICACHE)
- 9. Power control (PWR)
- 10. Reset and clock control (RCC)
- 11. Clock recovery system (CRS)
- 12. General-purpose I/Os (GPIO)
- 13. System configuration controller (SYSCFG)
- 14. Peripheral interconnect matrix
- 15. General purpose direct memory access controller (GPDMA)
- 16. Nested vectored interrupt controller (NVIC)
- 17. Extended interrupts and event controller (EXTI)
- 18. Cyclic redundancy check calculation unit (CRC)
- 19. Hardware signal processor (HSP)
- 20. Extended-SPI interface (OCTOSPI)
- 21. Secure digital input/output MultiMediaCard interface (SDMMC)
- 22. Delay block (DLYB)
- 23. Analog-to-digital converters (ADC)
- 24. Digital-to-analog converter (DAC)
- 25. Voltage reference buffer (VREFBUF)
- 26. Comparator (COMP)
- 27. Operational amplifier (OPAMP)
- 28. Audio digital filter (ADF)
- 29. Liquid crystal display controller (LCD)
- 30. Touch sensing controller (TSC)
- 31. Coupling and chaining bridge (CCB)
- 32. True random number generator (RNG)
- 33. AES hardware accelerator (AES)
- 34. Secure AES coprocessor (SAES)
- 35. Hash processor (HASH)
- 36. Public key accelerator (PKA)
- 37. Advanced-control timers (TIM1/TIM8)
- 38. General-purpose timers (TIM2/TIM3/TIM4)
- 39. Basic timers (TIM6/TIM7)
- 40. General-purpose timers (TIM12)
- 41. General purpose timers (TIM15/TIM16/TIM17)
- 42. Low-power timer (LPTIM)
- 43. Infrared interface (IRTIM)
- 44. Independent watchdog (IWDG)
- 45. System window watchdog (WWDG)
- 46. Real-time clock (RTC)
- 47. Tamper and backup registers (TAMP)
- 48. Inter-integrated circuit interface (I2C)
- 49. Improved inter-integrated circuit (I3C)
- 50. Improved inter-integrated circuit (I3C)
- 51. Universal synchronous/asynchronous receiver transmitter (USART/UART)
- 52. Low-power universal asynchronous receiver transmitter (LPUART)
- 53. Serial peripheral interface (SPI)
- 54. Serial audio interface (SAI)
- 55. FD controller area network (FDCAN)
- 56. Universal serial bus full-speed host/device interface (USB)
- 57. Debug support (DBG)
- 58. Device electronic signature
- 59. Important security notice
- 60. Revision history