RM0453-STM32WL5x
Introduction
This document is addressed to application developers. It provides complete information on how to use the STM32WL5x microcontrollers memory and peripherals.
STM32WL5x MCUs with integrated sub-GHz radio operating in the 150 - 960 MHz ISM band, belong to a family of microcontrollers with different memory sizes, packages and peripherals.
For ordering information, mechanical and electrical device characteristics, refer to the corresponding datasheets.
For information on the Arm ® Cortex ® -Mx cores, refer to the corresponding Arm ® Technical Reference Manuals available on http://infocenter.arm.com .
STM32WL5x microcontrollers include ST state-of-the-art patented technology.
Related documents
- • STM32WL55xx STM32WL54xx datasheet (DS13293)
For information on the device errata with respect to the datasheet and reference manual, refer to the STM32WL55xx STM32WL54xx errata sheet (ES0500).
Contents
- 1 Documentation conventions . . . . . 60
- 1.1 General information . . . . . 60
- 1.2 List of abbreviations for registers . . . . . 60
- 1.3 Glossary . . . . . 61
- 1.4 Availability of peripherals . . . . . 61
- 2 Memory and bus architecture . . . . . 62
- 2.1 System architecture . . . . . 62
- 2.1.1 S0: CPU1 I-bus . . . . . 63
- 2.1.2 S1: CPU1 D-bus . . . . . 63
- 2.1.3 S2: CPU1 S-bus . . . . . 63
- 2.1.4 S3: CPU2 S-bus . . . . . 63
- 2.1.5 S4, S5: DMA-bus . . . . . 64
- 2.2 Boot configuration . . . . . 64
- 2.3 CPU2 boot . . . . . 66
- 2.4 SRAM erase . . . . . 67
- 2.5 Memory protection . . . . . 67
- 2.6 Memory organization . . . . . 72
- 2.6.1 Introduction . . . . . 72
- 2.6.2 Memory map and register boundary addresses . . . . . 73
- 2.6.3 CPU1 bit banding . . . . . 77
- 2.1 System architecture . . . . . 62
- 3 Global security controller (GTZC) . . . . . 79
- 3.1 GTZC introduction . . . . . 79
- 3.2 GTZC main features . . . . . 79
- 3.3 GTZC security system architecture . . . . . 79
- 3.4 GTZC functional description . . . . . 80
- 3.4.1 GTZC block diagram . . . . . 80
- 3.4.2 GTZC internal signals . . . . . 81
- 3.4.3 Illegal access definition . . . . . 81
- 3.4.4 Security controller (TZSC) . . . . . 84
- 3.4.5 Security illegal access controller (TZIC) . . . . . 85
- 3.4.6 Power-on/reset state . . . . . 85
| 3.4.7 | Interrupts ..... | 86 |
| 3.5 | GTZC TZSC registers ..... | 86 |
| 3.5.1 | GTZC TZSC control register (GTZC_TZSC_CR) ..... | 86 |
| 3.5.2 | GTZC TZSC security configuration register (GTZC_TZSC_SECCFGR1) ..... | 87 |
| 3.5.3 | GTZC TZSC privileged configuration register (GTZC_TZSC_PRIVCFGR1) ..... | 88 |
| 3.5.4 | GTZC TZSC unprivileged watermark 1 register (GTZC_TZSC_MPCWM1_UPWMR) ..... | 89 |
| 3.5.5 | GTZC TZSC unprivileged writable watermark 1 register (GTZC_TZSC_MPCWM1_UPWWMR) ..... | 90 |
| 3.5.6 | GTZC TZSC unprivileged watermark 2 register (GTZC_TZSC_MPCWM2_UPWMR) ..... | 91 |
| 3.5.7 | GTZC TZSC unprivileged watermark 3 register (GTZC_TZSC_MPCWM3_UPWMR) ..... | 92 |
| 3.5.8 | GTZC TZSC register map ..... | 93 |
| 3.6 | GTZC TZIC registers ..... | 94 |
| 3.6.1 | GTZC TZIC interrupt enable register 1 (GTZC_TZIC_IER1) ..... | 94 |
| 3.6.2 | GTZC TZIC status register 1 (GTZC_TZIC_MISR1) ..... | 95 |
| 3.6.3 | GTZC TZIC interrupt status clear register 1 (GTZC_TZIC_ICR1) ..... | 97 |
| 3.6.4 | GTZC TZIC register map ..... | 98 |
| 4 | Embedded flash memory (FLASH) ..... | 99 |
| 4.1 | FLASH introduction ..... | 99 |
| 4.2 | FLASH main features ..... | 99 |
| 4.3 | FLASH functional description ..... | 99 |
| 4.3.1 | Flash memory organization ..... | 99 |
| 4.3.2 | Empty check ..... | 100 |
| 4.3.3 | Error code correction (ECC) ..... | 101 |
| 4.3.4 | Read access latency ..... | 101 |
| 4.3.5 | Adaptive real-time memory accelerator (ART Accelerator) ..... | 102 |
| 4.3.6 | Flash program and erase operations ..... | 106 |
| 4.3.7 | Flash main memory erase sequences ..... | 107 |
| 4.3.8 | Flash main memory programming sequences ..... | 109 |
| 4.4 | FLASH option bytes ..... | 114 |
| 4.4.1 | Option bytes description ..... | 114 |
| 4.4.2 | Option bytes programming ..... | 115 |
| 4.4.3 | Sub-GHz radio SPI security ..... | 118 |
| 4.5 | Secure system memory . . . . . | 118 |
| 4.5.1 | Introduction . . . . . | 118 |
| 4.5.2 | RSSLIB functions . . . . . | 118 |
| 4.6 | Flash memory protection . . . . . | 119 |
| 4.6.1 | Readout protection (RDP) . . . . . | 119 |
| 4.6.2 | Proprietary code readout protection (PCROP) . . . . . | 123 |
| 4.6.3 | Write protection (WRP) . . . . . | 124 |
| 4.6.4 | CPU2 security (ESE) . . . . . | 125 |
| 4.6.5 | Hide protection area (HDPAD) . . . . . | 127 |
| 4.6.6 | CPU1 boot lock chain of trust . . . . . | 127 |
| 4.6.7 | CPU2 boot lock chain of trust . . . . . | 127 |
| 4.7 | FLASH program erase suspension . . . . . | 127 |
| 4.8 | FLASH interrupts . . . . . | 128 |
| 4.8.1 | Illegal access interrupts . . . . . | 128 |
| 4.9 | Register access protection . . . . . | 129 |
| 4.10 | FLASH registers . . . . . | 130 |
| 4.10.1 | FLASH access control register (FLASH_ACR) . . . . . | 130 |
| 4.10.2 | FLASH access control register 2 (FLASH_ACR2) . . . . . | 131 |
| 4.10.3 | FLASH key register (FLASH_KEYR) . . . . . | 132 |
| 4.10.4 | FLASH option key register (FLASH_OPTKEYR) . . . . . | 132 |
| 4.10.5 | FLASH status register (FLASH_SR) . . . . . | 132 |
| 4.10.6 | FLASH control register (FLASH_CR) . . . . . | 135 |
| 4.10.7 | FLASH ECC register (FLASH_ECCR) . . . . . | 136 |
| 4.10.8 | FLASH option register (FLASH_OPTR) . . . . . | 137 |
| 4.10.9 | FLASH PCROP zone A start address register (FLASH_PCROP1ASR) . . . . . | 140 |
| 4.10.10 | FLASH PCROP zone A end address register (FLASH_PCROP1AER) . . . . . | 140 |
| 4.10.11 | FLASH WRP area A address register (FLASH_WRP1AR) . . . . . | 141 |
| 4.10.12 | FLASH WRP area B address register (FLASH_WRP1BR) . . . . . | 142 |
| 4.10.13 | FLASH PCROP zone B start address register (FLASH_PCROP1BSR) . . . . . | 142 |
| 4.10.14 | FLASH PCROP zone B end address register (FLASH_PCROP1BER) . . . . . | 143 |
| 4.10.15 | FLASH IPCC mailbox data buffer address register (FLASH_IPCCBR) . . . . . | 144 |
| 4.10.16 | FLASH CPU2 access control register (FLASH_C2ACR) . . . . . | 144 |
| 4.10.17 | FLASH CPU2 status register (FLASH_C2SR) . . . . . | 145 |
| 4.10.18 | FLASH CPU2 control register (FLASH_C2CR) . . . . . | 147 |
| 4.10.19 | FLASH secure flash start address register (FLASH_SFR) . . . . . | 148 |
| 4.10.20 | FLASH secure SRAM start address and CPU2 reset vector register (FLASH_SRRVR) . . . . . | 150 |
| 4.10.21 | FLASH register map . . . . . | 152 |
| 5 | Sub-GHz radio (SUBGHZ) . . . . . | 154 |
| 5.1 | Sub-GHz radio introduction . . . . . | 154 |
| 5.2 | Sub-GHz radio main features . . . . . | 154 |
| 5.3 | Sub-GHz radio functional description . . . . . | 155 |
| 5.3.1 | General description . . . . . | 155 |
| 5.3.2 | Sub-GHz radio signals . . . . . | 155 |
| 5.3.3 | Transmitter . . . . . | 156 |
| 5.3.4 | Receiver . . . . . | 157 |
| 5.3.5 | RF-PLL . . . . . | 158 |
| 5.3.6 | Intermediate frequencies . . . . . | 158 |
| 5.4 | Sub-GHz radio clocks . . . . . | 159 |
| 5.4.1 | Internal oscillators . . . . . | 159 |
| 5.4.2 | HSE32 reference clock . . . . . | 159 |
| 5.5 | Sub-GHz radio modems . . . . . | 160 |
| 5.5.1 | LoRa modem . . . . . | 160 |
| 5.5.2 | LoRa framing . . . . . | 162 |
| 5.5.3 | FSK modem . . . . . | 164 |
| 5.5.4 | MSK modem . . . . . | 165 |
| 5.5.5 | Generic framing . . . . . | 165 |
| 5.5.6 | BPSK modem . . . . . | 167 |
| 5.5.7 | BPSK framing . . . . . | 168 |
| 5.6 | Sub-GHz radio data buffer . . . . . | 168 |
| 5.6.1 | Receive data buffer operation . . . . . | 169 |
| 5.6.2 | Transmit data buffer operation . . . . . | 169 |
| 5.7 | Sub-GHz radio operating modes . . . . . | 169 |
| 5.7.1 | Startup mode . . . . . | 171 |
| 5.7.2 | Sleep mode . . . . . | 171 |
| 5.7.3 | Calibration mode . . . . . | 171 |
| 5.7.4 | Standby mode . . . . . | 172 |
| 5.7.5 | Frequency synthesis mode (FS) . . . . . | 172 |
| 5.7.6 | Transmit mode (TX) . . . . . | 172 |
| 5.7.7 | Receive mode (RX) ..... | 173 |
| 5.7.8 | Active mode switching time ..... | 173 |
| 5.8 | Sub-GHz radio SPI interface ..... | 174 |
| 5.8.1 | Sub-GHz radio command structure ..... | 175 |
| 5.8.2 | Register and buffer access commands ..... | 175 |
| 5.8.3 | Operating mode commands ..... | 177 |
| 5.8.4 | Sub-GHz radio configuration commands ..... | 182 |
| 5.8.5 | Communication status information commands ..... | 193 |
| 5.8.6 | IRQ interrupt commands ..... | 196 |
| 5.8.7 | Miscellaneous commands ..... | 198 |
| 5.8.8 | Set_TcxoMode command ..... | 201 |
| 5.8.9 | Sub-GHz radio commands overview ..... | 202 |
| 5.9 | Sub-GHz radio application configuration ..... | 204 |
| 5.9.1 | Basic sequence for LoRa, (G)MSK and (G)FSK transmit operation .. | 204 |
| 5.9.2 | Basic sequence for LoRa and (G)FSK receive operation ..... | 205 |
| 5.9.3 | Basic sequence for BPSK transmit operation ..... | 206 |
| 5.10 | Sub-GHz radio registers ..... | 206 |
| 5.10.1 | Sub-GHz radio ramp-up MSB register (SUBGHZ_RAM_RAMPUPH) ..... | 206 |
| 5.10.2 | Sub-GHz radio ramp-up LSB register (SUBGHZ_RAM_RAMPUPL) ..... | 207 |
| 5.10.3 | Sub-GHz radio ramp-down MSB register (SUBGHZ_RAM_RAMPDNH) ..... | 207 |
| 5.10.4 | Sub-GHz radio ramp-down LSB register (SUBGHZ_RAM_RAMPDNL) ..... | 207 |
| 5.10.5 | Sub-GHz radio frame limit MSB register (SUBGHZ_RAM_FRAMELIMH) ..... | 207 |
| 5.10.6 | Sub-GHz radio frame limit LSB register (SUBGHZ_RAM_FRAMELIML) ..... | 208 |
| 5.10.7 | Sub-GHz radio generic bit synchronization register (SUBGHZ_GBSYNCR) ..... | 208 |
| 5.10.8 | Sub-GHz radio generic CFO MSB register (SUBGHZ_GCFORH) ..... | 208 |
| 5.10.9 | Sub-GHz radio generic CFO LSB register (SUBGHZ_GCFORL) ..... | 209 |
| 5.10.10 | Sub-GHz radio generic packet control 1 register (SUBGHZ_GPKTCTL1R) ..... | 209 |
| 5.10.11 | Sub-GHz radio generic packet control 1A register (SUBGHZ_GPKTCTL1AR) ..... | 209 |
| 5.10.12 | Sub-GHz radio generic whitening LSB register (SUBGHZ_GWHITEINIRL) ..... | 210 |
| 5.10.13 | Sub-GHz radio generic payload length register (SUBGHZ_GRTXPLDLEN) ..... | 210 |
| 5.10.14 | Sub-GHz radio generic CRC initial MSB register (SUBGHZ_GCRCINIRH) ..... | 210 |
| 5.10.15 | Sub-GHz radio generic CRC initial LSB register (SUBGHZ_GCRCINIRL) ..... | 211 |
| 5.10.16 | Sub-GHz radio generic CRC polynomial MSB register (SUBGHZ_GCRCPOLRH) ..... | 211 |
| 5.10.17 | Sub-GHz radio generic CRC polynomial LSB register (SUBGHZ_GCRCPOLRL) ..... | 211 |
| 5.10.18 | Sub-GHz radio generic synchronization word control register 0 (SUBGHZ_GSYNCR0) ..... | 212 |
| 5.10.19 | Sub-GHz radio generic synchronization word control register 1 (SUBGHZ_GSYNCR1) ..... | 212 |
| 5.10.20 | Sub-GHz radio generic synchronization word control register 2 (SUBGHZ_GSYNCR2) ..... | 212 |
| 5.10.21 | Sub-GHz radio generic synchronization word control register 3 (SUBGHZ_GSYNCR3) ..... | 212 |
| 5.10.22 | Sub-GHz radio generic synchronization word control register 4 (SUBGHZ_GSYNCR4) ..... | 213 |
| 5.10.23 | Sub-GHz radio generic synchronization word control register 5 (SUBGHZ_GSYNCR5) ..... | 213 |
| 5.10.24 | Sub-GHz radio generic synchronization word control register 6 (SUBGHZ_GSYNCR6) ..... | 213 |
| 5.10.25 | Sub-GHz radio generic synchronization word control register 7 (SUBGHZ_GSYNCR7) ..... | 213 |
| 5.10.26 | Sub-GHz radio generic node address register (SUBGHZ_GNODEADR) ..... | 214 |
| 5.10.27 | Sub-GHz radio generic broadcast address register (SUBGHZ_GBCASTADDR) ..... | 214 |
| 5.10.28 | Sub-GHz radio generic AFC register (SUBGHZ_GAFCR) ..... | 214 |
| 5.10.29 | Sub-GHz radio LoRa payload length register (SUBGHZ_LPLDLENR) ..... | 214 |
| 5.10.30 | Sub-GHz radio synchro timeout register (SUBGHZ_LSYNCTIMEOUTR) ..... | 215 |
| 5.10.31 | Sub-GHz radio LoRa IQ polarity MSB register (SUBGHZ_LIQPOLR) ..... | 215 |
| 5.10.32 | Sub-GHz radio LoRa IQ polarity LSB register (SUBGHZ_LIQPOLR) ..... | 215 |
| 5.10.33 | Sub-GHz radio LoRa synchronization word MSB register (SUBGHZ_LSYNCRH) ..... | 215 |
| 5.10.34 | Sub-GHz radio LoRa synchronization word LSB register (SUBGHZ_LSYNCR) ..... | 216 |
| 5.10.35 | Sub-GHz radio Tx address pointer register (SUBGHZ_TXADRPTR) ..... | 216 |
| 5.10.36 | Sub-GHz radio Rx address pointer register (SUBGHZ_RXADPTRR) ..... | 216 |
| 5.10.37 | Sub-GHz radio bandwidth select register (SUBGHZ_BWSELR) ..... | 217 |
| 5.10.38 | Sub-GHz radio random number register 3 (SUBGHZ_RNGR3) . . . . . | 217 |
| 5.10.39 | Sub-GHz radio random number register 2 (SUBGHZ_RNGR2) . . . . . | 217 |
| 5.10.40 | Sub-GHz radio random number register 1 (SUBGHZ_RNGR1) . . . . . | 217 |
| 5.10.41 | Sub-GHz radio random number register 0 (SUBGHZ_RNGR0) . . . . . | 218 |
| 5.10.42 | Sub-GHz radio SD resolution register (SUBGHZ_SDCFG0R) . . . . . | 218 |
| 5.10.43 | Sub-GHz radio AGC RSSI control register (SUBGHZ_AGCRSSICTL0R) . . . . . | 218 |
| 5.10.44 | Sub-GHz radio receiver gain control register (SUBGHZ_RXGAINCR) | 218 |
| 5.10.45 | Sub-GHz radio AGC reset configuration register (SUBGHZ_AGCGFORSTCFGGR) . . . . . | 219 |
| 5.10.46 | Sub-GHz radio AGC reset power threshold register (SUBGHZ_AGCGFORSTPOWTHR) . . . . . | 219 |
| 5.10.47 | Sub-GHz radio Tx clamp register (SUBGHZ_TXCLAMPR) . . . . . | 219 |
| 5.10.48 | Sub-GHz radio disable LNA register (REG_ANA_LNA) . . . . . | 220 |
| 5.10.49 | Sub-GHz radio disable mixer register (REG_ANA_MIXER) . . . . . | 220 |
| 5.10.50 | Sub-GHz radio PA over current protection register (SUBGHZ_PAOCPR) . . . . . | 220 |
| 5.10.51 | Sub-GHz radio RTC control register (SUBGHZ_RTCCTLR) . . . . . | 220 |
| 5.10.52 | Sub-GHz radio RTC period MSB register (SUBGHZ_RTCPRDR2) . . . . . | 221 |
| 5.10.53 | Sub-GHz radio RTC period mid-byte register (SUBGHZ_RTCPRDR1) . . . . . | 221 |
| 5.10.54 | Sub-GHz radio RTC period LSB register (SUBGHZ_RTCPRDR0) . . . . . | 221 |
| 5.10.55 | Sub-GHz radio HSE32 OSC_IN capacitor trim register (SUBGHZ_HSEINTRIMR) . . . . . | 222 |
| 5.10.56 | Sub-GHz radio HSE32 OSC_OUT capacitor trim register (SUBGHZ_HSEOUTTRIMR) . . . . . | 222 |
| 5.10.57 | Sub-GHz radio SMPS control 0 register (SUBGHZ_SMPSC0R) . . . . . | 223 |
| 5.10.58 | Sub-GHz radio power control register (SUBGHZ_PCR) . . . . . | 223 |
| 5.10.59 | Sub-GHz radio regulator drive control register (SUBGHZ_REGDRVCR) . . . . . | 224 |
| 5.10.60 | Sub-GHz radio SMPS control 2 register (SUBGHZ_SMPSC2R) . . . . . | 224 |
| 5.10.61 | Sub-GHz radio register map . . . . . | 225 |
| 6 | Power control (PWR) . . . . . | 227 |
| 6.1 | Power supplies . . . . . | 227 |
| 6.1.1 | Independent analog peripherals supply . . . . . | 230 |
| 6.1.2 | Battery backup domain . . . . . | 230 |
| 6.1.3 | Voltage regulator . . . . . | 232 |
| 6.1.4 | Dynamic voltage scaling management . . . . . | 232 |
| 6.2 | Power supply supervisor . . . . . | 233 |
| 6.2.1 | Power-on reset (POR)/power-down reset (PDR) /Brownout reset (BOR) . . . . . | 233 |
| 6.2.2 | Programmable voltage detector (PVD) . . . . . | 234 |
| 6.2.3 | Peripheral voltage monitoring (PVM) . . . . . | 235 |
| 6.2.4 | Radio end of life (EOL) . . . . . | 236 |
| 6.3 | Radio busy management . . . . . | 236 |
| 6.4 | CPU2 boot . . . . . | 238 |
| 6.5 | Low-power modes . . . . . | 240 |
| 6.5.1 | Run mode . . . . . | 248 |
| 6.5.2 | Low-power run mode (LPRun) . . . . . | 248 |
| 6.5.3 | Enter low-power mode . . . . . | 249 |
| 6.5.4 | Exit low-power mode . . . . . | 249 |
| 6.5.5 | Sleep mode . . . . . | 251 |
| 6.5.6 | Low-power sleep mode (LPSleep) . . . . . | 252 |
| 6.5.7 | Stop 0 mode . . . . . | 253 |
| 6.5.8 | Stop 1 mode . . . . . | 255 |
| 6.5.9 | Stop 2 mode . . . . . | 256 |
| 6.5.10 | Standby mode . . . . . | 258 |
| 6.5.11 | Shutdown mode . . . . . | 260 |
| 6.5.12 | Auto-wake-up from low-power mode . . . . . | 261 |
| 6.6 | PWR registers . . . . . | 262 |
| 6.6.1 | PWR control register 1 (PWR_CR1) . . . . . | 262 |
| 6.6.2 | PWR control register 2 (PWR_CR2) . . . . . | 264 |
| 6.6.3 | PWR control register 3 (PWR_CR3) . . . . . | 265 |
| 6.6.4 | PWR control register 4 (PWR_CR4) . . . . . | 266 |
| 6.6.5 | PWR status register 1 (PWR_SR1) . . . . . | 267 |
| 6.6.6 | Power status register 2 (PWR_SR2) . . . . . | 268 |
| 6.6.7 | PWR status clear register (PWR_SCR) . . . . . | 270 |
| 6.6.8 | PWR control register 5 (PWR_CR5) . . . . . | 271 |
| 6.6.9 | PWR port A pull-up control register (PWR_PUCRA) . . . . . | 272 |
| 6.6.10 | PWR port A pull-down control register (PWR_PDCRA) . . . . . | 272 |
| 6.6.11 | PWR port B pull-up control register (PWR_PUCRB) . . . . . | 273 |
| 6.6.12 | PWR port B pull-down control register (PWR_PDCRB) . . . . . | 273 |
| 6.6.13 | PWR port C pull-up control register (PWR_PUCRC) . . . . . | 273 |
| 6.6.14 | PWR port C pull-down control register (PWR_PDCRC) . . . . . | 274 |
| 6.6.15 | PWR port H pull-up control register (PWR_PUCRH) . . . . . | 275 |
| 6.6.16 | PWR port H pull-down control register (PWR_PDCRH) . . . . . | 275 |
| 6.6.17 | PWR CPU2 control register 1 (PWR_C2CR1) . . . . . | 276 |
| 6.6.18 | PWR CPU2 control register 3 (PWR_C2CR3) . . . . . | 277 |
| 6.6.19 | PWR extended status and status clear register (PWR_EXTSCR) . . . . . | 278 |
| 6.6.20 | PWR security configuration register (PWR_SECCFGR) . . . . . | 279 |
| 6.6.21 | PWR sub-GHz SPI control register (PWR_SUBGHZSPICR) . . . . . | 280 |
| 6.6.22 | PWR RSS command register (PWR_RSSCMDR) . . . . . | 280 |
| 6.6.23 | PWR register map . . . . . | 281 |
| 7 | Reset and clock control (RCC) . . . . . | 283 |
| 7.1 | Reset . . . . . | 283 |
| 7.1.1 | Power reset . . . . . | 283 |
| 7.1.2 | System reset . . . . . | 283 |
| 7.1.3 | Backup domain reset . . . . . | 285 |
| 7.1.4 | Sub-GHz radio reset . . . . . | 285 |
| 7.1.5 | PKA SRAM reset . . . . . | 285 |
| 7.2 | Clocks . . . . . | 285 |
| 7.2.1 | HSE32 clock with trimming . . . . . | 288 |
| 7.2.2 | HSI16 clock . . . . . | 291 |
| 7.2.3 | MSI clock . . . . . | 291 |
| 7.2.4 | PLL . . . . . | 292 |
| 7.2.5 | LSE clock . . . . . | 293 |
| 7.2.6 | LSI clock . . . . . | 294 |
| 7.2.7 | Clock source stabilization time . . . . . | 294 |
| 7.2.8 | System clock (SYSCLK) selection . . . . . | 294 |
| 7.2.9 | Clock source frequency versus voltage scaling . . . . . | 295 |
| 7.2.10 | Clock security system on HSE32 (CSS) . . . . . | 295 |
| 7.2.11 | Clock security system on LSE (LSECSS) . . . . . | 296 |
| 7.2.12 | SPI2S2 clock . . . . . | 296 |
| 7.2.13 | Sub-GHz radio SPI clock . . . . . | 296 |
| 7.2.14 | ADC clock . . . . . | 297 |
| 7.2.15 | RTC clock . . . . . | 297 |
| 7.2.16 | Timer clock . . . . . | 297 |
| 7.2.17 | Watchdog clock . . . . . | 298 |
| 7.2.18 | True RNG clock . . . . . | 298 |
| 7.2.19 | Clock-out capability . . . . . | 298 |
| 7.2.20 | Internal/external clock measurement with TIM16/TIM17 . . . . . | 299 |
| 7.2.21 | Peripheral clocks enable ..... | 301 |
| 7.3 | Low-power modes ..... | 302 |
| 7.4 | RCC registers ..... | 304 |
| 7.4.1 | RCC clock control register (RCC_CR) ..... | 304 |
| 7.4.2 | RCC internal clock sources calibration register (RCC_ICSCR) ..... | 307 |
| 7.4.3 | RCC clock configuration register (RCC_CFGR) ..... | 308 |
| 7.4.4 | RCC PLL configuration register (RCC_PLLCFGR) ..... | 310 |
| 7.4.5 | RCC clock interrupt enable register (RCC_CIER) ..... | 313 |
| 7.4.6 | RCC clock interrupt flag register (RCC_CIFR) ..... | 315 |
| 7.4.7 | RCC clock interrupt clear register (RCC_CICR) ..... | 316 |
| 7.4.8 | RCC AHB1 peripheral reset register (RCC_AHB1RSTR) ..... | 317 |
| 7.4.9 | RCC AHB2 peripheral reset register (RCC_AHB2RSTR) ..... | 318 |
| 7.4.10 | RCC AHB3 peripheral reset register (RCC_AHB3RSTR) ..... | 318 |
| 7.4.11 | RCC APB1 peripheral reset register 1 (RCC_APB1RSTR1) ..... | 319 |
| 7.4.12 | RCC APB1 peripheral reset register 2 (RCC_APB1RSTR2) ..... | 321 |
| 7.4.13 | RCC APB2 peripheral reset register (RCC_APB2RSTR) ..... | 321 |
| 7.4.14 | RCC APB3 peripheral reset register (RCC_APB3RSTR) ..... | 322 |
| 7.4.15 | RCC AHB1 peripheral clock enable register (RCC_AHB1ENR) ..... | 323 |
| 7.4.16 | RCC AHB2 peripheral clock enable register (RCC_AHB2ENR) ..... | 324 |
| 7.4.17 | RCC AHB3 peripheral clock enable register (RCC_AHB3ENR) ..... | 324 |
| 7.4.18 | RCC APB1 peripheral clock enable register 1 (RCC_APB1ENR1) ..... | 325 |
| 7.4.19 | RCC APB1 peripheral clock enable register 2 (RCC_APB1ENR2) ..... | 327 |
| 7.4.20 | RCC APB2 peripheral clock enable register (RCC_APB2ENR) ..... | 328 |
| 7.4.21 | RCC APB3 peripheral clock enable register (RCC_APB3ENR) ..... | 329 |
| 7.4.22 | RCC AHB1 peripheral clock enable in Sleep mode register (RCC_AHB1SMENR) ..... | 329 |
| 7.4.23 | RCC AHB2 peripheral clock enable in Sleep mode register (RCC_AHB2SMENR) ..... | 330 |
| 7.4.24 | RCC AHB3 peripheral clock enable in Sleep and Stop mode register (RCC_AHB3SMENR) ..... | 331 |
| 7.4.25 | RCC APB1 peripheral clock enable in Sleep mode register 1 (RCC_APB1SMENR1) ..... | 332 |
| 7.4.26 | RCC APB1 peripheral clock enable in Sleep mode register 2 (RCC_APB1SMENR2) ..... | 334 |
| 7.4.27 | RCC APB2 peripheral clock enable in Sleep mode register (RCC_APB2SMENR) ..... | 335 |
| 7.4.28 | RCC APB3 peripheral clock enable in Sleep mode register (RCC_APB3SMENR) ..... | 336 |
- 7.4.29 RCC peripherals independent clock configuration register (RCC_CCIPR) . . . . . 336
- 7.4.30 RCC backup domain control register (RCC_BDCR) . . . . . 338
- 7.4.31 RCC control/status register (RCC_CSR) . . . . . 341
- 7.4.32 RCC extended clock recovery register (RCC_EXTCFGR) . . . . . 343
- 7.4.33 RCC CPU2 AHB1 peripheral clock enable register (RCC_C2AHB1ENR) . . . . . 345
- 7.4.34 RCC CPU2 AHB2 peripheral clock enable register (RCC_C2AHB2ENR) . . . . . 346
- 7.4.35 RCC CPU2 AHB3 peripheral clock enable register (RCC_C2AHB3ENR) . . . . . 347
- 7.4.36 RCC CPU2 APB1 peripheral clock enable register 1 (RCC_C2APB1ENR1) . . . . . 348
- 7.4.37 RCC CPU2 APB1 peripheral clock enable register 2 (RCC_C2APB1ENR2) . . . . . 349
- 7.4.38 RCC CPU2 APB2 peripheral clock enable register (RCC_C2APB2ENR) . . . . . 350
- 7.4.39 RCC CPU2 APB3 peripheral clock enable register (RCC_C2APB3ENR) . . . . . 351
- 7.4.40 RCC CPU2 AHB1 peripheral clock enable in Sleep mode register (RCC_C2AHB1SMENR) . . . . . 351
- 7.4.41 RCC CPU2 AHB2 peripheral clock enable in Sleep mode register (RCC_C2AHB2SMENR) . . . . . 352
- 7.4.42 RCC CPU2 AHB3 peripheral clock enable in Sleep mode register (RCC_C2AHB3SMENR) . . . . . 353
- 7.4.43 RCC CPU2 APB1 peripheral clock enable in Sleep mode register 1 (RCC_C2APB1SMENR1) . . . . . 354
- 7.4.44 RCC CPU2 APB1 peripheral clock enable in Sleep mode register 2 (RCC_C2APB1SMENR2) . . . . . 356
- 7.4.45 RCC CPU2 APB2 peripheral clock enable in Sleep mode register (RCC_C2APB2SMENR) . . . . . 357
- 7.4.46 RCC CPU2 APB3 peripheral clock enable in Sleep mode register (RCC_C2APB3SMENR) . . . . . 358
- 7.4.47 RCC register map . . . . . 359
- 8 Hardware semaphore (HSEM) . . . . . 365
- 8.1 Introduction . . . . . 365
- 8.2 Main features . . . . . 365
- 8.3 Functional description . . . . . 366
- 8.3.1 HSEM block diagram . . . . . 366
- 8.3.2 HSEM internal signals . . . . . 366
| 8.3.3 | HSEM lock procedures . . . . . | 366 |
| 8.3.4 | HSEM write/read/read lock register address . . . . . | 368 |
| 8.3.5 | HSEM unlock procedures . . . . . | 368 |
| 8.3.6 | HSEM COREID semaphore clear . . . . . | 369 |
| 8.3.7 | HSEM interrupts . . . . . | 369 |
| 8.3.8 | AHB bus master ID verification . . . . . | 371 |
| 8.4 | HSEM registers . . . . . | 372 |
| 8.4.1 | HSEM register semaphore x (HSEM_Rx) . . . . . | 372 |
| 8.4.2 | HSEM read lock register semaphore x (HSEM_RLRx) . . . . . | 373 |
| 8.4.3 | HSEM interrupt enable register (HSEM_CnIER) . . . . . | 374 |
| 8.4.4 | HSEM interrupt clear register (HSEM_CnICR) . . . . . | 374 |
| 8.4.5 | HSEM interrupt status register (HSEM_CnISR) . . . . . | 374 |
| 8.4.6 | HSEM interrupt status register (HSEM_CnMISR) . . . . . | 375 |
| 8.4.7 | HSEM clear register (HSEM_CR) . . . . . | 375 |
| 8.4.8 | HSEM clear semaphore key register (HSEM_KEYR) . . . . . | 376 |
| 8.4.9 | HSEM register map . . . . . | 377 |
| 9 | Inter-processor communication controller (IPCC) . . . . . | 379 |
| 9.1 | Introduction . . . . . | 379 |
| 9.2 | IPCC main features . . . . . | 379 |
| 9.3 | IPCC functional description . . . . . | 379 |
| 9.3.1 | IPCC block diagram . . . . . | 380 |
| 9.3.2 | IPCC Simplex channel mode . . . . . | 380 |
| 9.3.3 | IPCC Half-duplex channel mode . . . . . | 383 |
| 9.3.4 | IPCC interrupts . . . . . | 386 |
| 9.4 | IPCC registers . . . . . | 387 |
| 9.4.1 | IPCC processor 1 control register (IPCC_C1CR) . . . . . | 387 |
| 9.4.2 | IPCC processor 1 mask register (IPCC_C1MR) . . . . . | 387 |
| 9.4.3 | IPCC processor 1 status set clear register (IPCC_C1SCR) . . . . . | 388 |
| 9.4.4 | IPCC processor 1 to processor 2 status register (IPCC_C1TOC2SR) . . . . . | 388 |
| 9.4.5 | IPCC processor 2 control register (IPCC_C2CR) . . . . . | 389 |
| 9.4.6 | IPCC processor 2 mask register (IPCC_C2MR) . . . . . | 389 |
| 9.4.7 | IPCC processor 2 status set clear register (IPCC_C2SCR) . . . . . | 390 |
| 9.4.8 | IPCC processor 2 to processor 1 status register (IPCC_C2TOC1SR) . . . . . | 391 |
| 9.4.9 | IPCC register map . . . . . | 392 |
| 10 | General-purpose I/Os (GPIO) . . . . . | 393 |
| 10.1 | GPIO introduction . . . . . | 393 |
| 10.2 | GPIO main features . . . . . | 393 |
| 10.3 | GPIO functional description . . . . . | 393 |
| 10.3.1 | General purpose I/O (GPIO) . . . . . | 396 |
| 10.3.2 | I/O pin alternate function multiplexer and mapping . . . . . | 396 |
| 10.3.3 | I/O port control registers . . . . . | 397 |
| 10.3.4 | I/O port data registers . . . . . | 397 |
| 10.3.5 | I/O data bitwise handling . . . . . | 397 |
| 10.3.6 | GPIO locking mechanism . . . . . | 398 |
| 10.3.7 | I/O alternate function input/output . . . . . | 398 |
| 10.3.8 | External interrupt/wake-up lines . . . . . | 398 |
| 10.3.9 | Input configuration . . . . . | 399 |
| 10.3.10 | Output configuration . . . . . | 399 |
| 10.3.11 | Alternate function configuration . . . . . | 400 |
| 10.3.12 | Analog configuration . . . . . | 401 |
| 10.3.13 | Using the LSE oscillator pins as GPIOs . . . . . | 401 |
| 10.3.14 | Using the GPIO pins in the RTC supply domain . . . . . | 401 |
| 10.3.15 | Using PH3 as GPIO . . . . . | 402 |
| 10.4 | GPIO registers . . . . . | 402 |
| 10.4.1 | GPIOx mode register (GPIOx_MODER) (x = A to B) . . . . . | 402 |
| 10.4.2 | GPIOx output type register (GPIOx_OTYPER) (x = A to B) . . . . . | 402 |
| 10.4.3 | GPIOx output speed register (GPIOx_OSPEEDR) (x = A to B) . . . . . | 403 |
| 10.4.4 | GPIOx pull-up/pull-down register (GPIOx_PUPDR) (x = A to B) . . . . . | 403 |
| 10.4.5 | GPIOx input data register (GPIOx_IDR) (x = A to B) . . . . . | 404 |
| 10.4.6 | GPIOx output data register (GPIOx_ODR) (x = A to B) . . . . . | 404 |
| 10.4.7 | GPIOx bit set/reset register (GPIOx_BSRR) (x = A to B) . . . . . | 405 |
| 10.4.8 | GPIOx configuration lock register (GPIOx_LCKR) (x = A to B) . . . . . | 405 |
| 10.4.9 | GPIOx alternate function low register (GPIOx_AFRL) (x = A to B) . . . . . | 406 |
| 10.4.10 | GPIOx alternate function high register (GPIOx_AFRH) (x = A to B) . . . . . | 407 |
| 10.4.11 | GPIOx bit reset register (GPIOx_BRR) (x = A to B) . . . . . | 407 |
| 10.4.12 | GPIOC mode register (GPIOC_MODER) . . . . . | 408 |
| 10.4.13 | GPIOC output type register (GPIOC_OTYPER) . . . . . | 408 |
| 10.4.14 | GPIOC output speed register (GPIOC_OSPEEDR) . . . . . | 409 |
| 10.4.15 | GPIOC pull-up/pull-down register (GPIOC_PUPDR) . . . . . | 410 |
| 10.4.16 | GPIOC input data register (GPIOC_IDR) . . . . . | 410 |
| 10.4.17 | GPIOC output data register (GPIOC_ODR) . . . . . | 411 |
| 10.4.18 | GPIOC bit set/reset register (GPIOC_BSRR) . . . . . | 411 |
| 10.4.19 | GPIOC configuration lock register (GPIOC_LCKR) . . . . . | 412 |
| 10.4.20 | GPIOC alternate function low register (GPIOC_AFRL) . . . . . | 413 |
| 10.4.21 | GPIOC alternate function high register (GPIOC_AFRH) . . . . . | 414 |
| 10.4.22 | GPIOC bit reset register (GPIOC_BRR) . . . . . | 414 |
| 10.4.23 | GPIOH mode register (GPIOH_MODER) . . . . . | 415 |
| 10.4.24 | GPIO H output type register (GPIOH_OTYPER) . . . . . | 415 |
| 10.4.25 | GPIOH output speed register (GPIOH_OSPEEDR) . . . . . | 416 |
| 10.4.26 | GPIOH pull-up/pull-down register (GPIOH_PUPDR) . . . . . | 416 |
| 10.4.27 | GPIOH input data register (GPIOH_IDR) . . . . . | 417 |
| 10.4.28 | GPIOH output data register (GPIOH_ODR) . . . . . | 417 |
| 10.4.29 | GPIO H bit set/reset register (GPIOH_BSRR) . . . . . | 417 |
| 10.4.30 | GPIOH configuration lock register (GPIOH_LCKR) . . . . . | 418 |
| 10.4.31 | GPIOH alternate function low register (GPIOH_AFRL) . . . . . | 419 |
| 10.4.32 | GPIOH bit reset register (GPIOH_BRR) . . . . . | 420 |
| 10.4.33 | GPIOA register map . . . . . | 420 |
| 10.4.34 | GPIOB register map . . . . . | 421 |
| 10.4.35 | GPIOC register map . . . . . | 422 |
| 10.4.36 | GPIOH register map . . . . . | 423 |
| 11 | System configuration controller (SYSCFG) . . . . . | 424 |
| 11.1 | SYSCFG main features . . . . . | 424 |
| 11.2 | SYSCFG registers . . . . . | 424 |
| 11.2.1 | SYSCFG memory remap register (SYSCFG_MEMRMP) . . . . . | 424 |
| 11.2.2 | SYSCFG configuration register 1 (SYSCFG_CFGR1) . . . . . | 425 |
| 11.2.3 | SYSCFG external interrupt configuration register 1 (SYSCFG_EXTICR1) . . . . . | 426 |
| 11.2.4 | SYSCFG external interrupt configuration register 2 (SYSCFG_EXTICR2) . . . . . | 427 |
| 11.2.5 | SYSCFG external interrupt configuration register 3 (SYSCFG_EXTICR3) . . . . . | 428 |
| 11.2.6 | SYSCFG external interrupt configuration register 4 (SYSCFG_EXTICR4) . . . . . | 429 |
| 11.2.7 | SYSCFG SRAM control and status register (SYSCFG_SCSR) . . . . . | 430 |
| 11.2.8 | SYSCFG configuration register 2 (SYSCFG_CFGR2) . . . . . | 430 |
| 11.2.9 | SYSCFG SRAM2 write protection register (SYSCFG_SWPR) . . . . . | 431 |
| 11.2.10 | SYSCFG SRAM2 key register (SYSCFG_SKR) . . . . . | 432 |
- 11.2.11 SYSCFG CPU1 interrupt mask register 1 (SYSCFG_IMR1) . . . . . 432
- 11.2.12 SYSCFG CPU1 interrupt mask register 2 (SYSCFG_IMR2) . . . . . 433
- 11.2.13 SYSCFG CPU2 interrupt mask register 1 (SYSCFG_C2IMR1) . . . . . 433
- 11.2.14 SYSCFG CPU2 interrupt mask register 2 (SYSCFG_C2IMR2) . . . . . 435
- 11.2.15 SYSCFG radio debug control register (SYSCFG_RFDCR) . . . . . 435
- 11.2.16 SYSCFG register map . . . . . 436
- 12
Peripherals interconnect matrix . . . . . 438
- 12.1 Introduction . . . . . 438
- 12.2 Connection summary . . . . . 438
- 12.3 Interconnection details . . . . . 439
- 12.3.1 From timer (TIM1/TIM2/TIM17) to timer (TIM1/TIM2) . . . . . 439
- 12.3.2 From timer (LPTIM1/LPTIM2) to timer (LPTIM3) . . . . . 440
- 12.3.3 From timer (TIM1/TIM2) and GPIO pin EXTI to ADC/DAC . . . . . 440
- 12.3.4 From timer (LPTIM1/LPTIM2) to DAC . . . . . 441
- 12.3.5 From ADC to timer (TIM1) . . . . . 441
- 12.3.6 From HSE32, LSE, LSI, MSI, MCO, RTC to timers
(TIM2/TIM16/TIM17) . . . . . 441 - 12.3.7 From RTC, TAMP, COMP1, COMP2 to low-power timers
(LPTIM1/LPTIM2) . . . . . 442 - 12.3.8 From timer (TIM1/TIM2) to comparators (COMP1/COMP2) . . . . . 442
- 12.3.9 From internal analog to ADC . . . . . 443
- 12.3.10 From comparators (COMP1/COMP2) to timers
(TIM1/TIM2/TIM16/TIM17) . . . . . 443 - 12.3.11 From system errors to timers (TIM1/TIM16/TIM17) . . . . . 444
- 12.3.12 From timers (TIM16/TIM17) to IRTIM . . . . . 444
- 12.3.13 From timer (LPTIM1/LPTIM2/LPTIM3/GPIO pin EXTI)
to DMAMUX1 trigger . . . . . 444 - 12.3.14 From timer (LPTIM3) to sub-GHz radio SPI NSS . . . . . 445
- 13
Direct memory access controller (DMA) . . . . . 446
- 13.1 Introduction . . . . . 446
- 13.2 DMA main features . . . . . 446
- 13.3 DMA implementation . . . . . 447
- 13.3.1 DMA1 and DMA2 . . . . . 447
- 13.3.2 DMA request mapping . . . . . 447
- 13.4 DMA functional description . . . . . 448
- 13.4.1 DMA block diagram . . . . . 448
| 13.4.2 | DMA pins and internal signals . . . . . | 449 |
| 13.4.3 | DMA transfers . . . . . | 449 |
| 13.4.4 | DMA arbitration . . . . . | 450 |
| 13.4.5 | DMA channels . . . . . | 451 |
| 13.4.6 | DMA data width, alignment and endianness . . . . . | 456 |
| 13.4.7 | DMA error management . . . . . | 457 |
| 13.5 | DMA interrupts . . . . . | 458 |
| 13.6 | DMA registers . . . . . | 458 |
| 13.6.1 | DMA interrupt status register (DMA_ISR) . . . . . | 458 |
| 13.6.2 | DMA interrupt flag clear register (DMA_IFCR) . . . . . | 461 |
| 13.6.3 | DMA channel x configuration register (DMA_CCRx) . . . . . | 462 |
| 13.6.4 | DMA channel x number of data to transfer register (DMA_CNDTRx) . . . . . | 467 |
| 13.6.5 | DMA channel x peripheral address register (DMA_CPARx) . . . . . | 468 |
| 13.6.6 | DMA channel x memory address register (DMA_CMARx) . . . . . | 468 |
| 13.6.7 | DMA register map . . . . . | 469 |
| 14 | DMA request multiplexer (DMAMUX) . . . . . | 472 |
| 14.1 | Introduction . . . . . | 472 |
| 14.2 | DMAMUX main features . . . . . | 473 |
| 14.3 | DMAMUX implementation . . . . . | 473 |
| 14.3.1 | DMAMUX1 instantiation . . . . . | 473 |
| 14.3.2 | DMAMUX1 mapping . . . . . | 474 |
| 14.4 | DMAMUX functional description . . . . . | 476 |
| 14.4.1 | DMAMUX block diagram . . . . . | 476 |
| 14.4.2 | DMAMUX signals . . . . . | 477 |
| 14.4.3 | DMAMUX channels . . . . . | 477 |
| 14.4.4 | DMAMUX secure/non-secure channels . . . . . | 478 |
| 14.4.5 | DMAMUX privileged / unprivileged channels . . . . . | 478 |
| 14.4.6 | DMAMUX request line multiplexer . . . . . | 478 |
| 14.4.7 | DMAMUX request generator . . . . . | 481 |
| 14.5 | DMAMUX interrupts . . . . . | 482 |
| 14.6 | DMAMUX registers . . . . . | 484 |
| 14.6.1 | DMAMUX request line multiplexer channel x configuration register (DMAMUX_CxCR) . . . . . | 484 |
| 14.6.2 | DMAMUX request line multiplexer interrupt channel status register (DMAMUX_CSR) . . . . . | 485 |
- 14.6.3 DMAMUX request line multiplexer interrupt channel clear flag register (DMAMUX_CCFR) . . . . . 485
- 14.6.4 DMAMUX request generator channel x configuration register (DMAMUX_RGxCR) . . . . . 486
- 14.6.5 DMAMUX request generator interrupt status register (DMAMUX_RGSR) . . . . . 487
- 14.6.6 DMAMUX request generator interrupt clear flag register (DMAMUX_RGCFR) . . . . . 488
- 14.6.7 DMAMUX register map . . . . . 489
- 15 Nested vectored interrupt controller (NVIC) . . . . . 491
- 15.1 NVIC main features . . . . . 491
- 15.2 Interrupt block diagram . . . . . 491
- 15.3 Interrupt and exception vectors . . . . . 492
- 16 Extended interrupts and event controller (EXTI) . . . . . 498
- 16.1 EXTI main features . . . . . 498
- 16.2 EXTI block diagram . . . . . 498
- 16.3 EXTI connections between peripherals and CPU . . . . . 500
- 16.3.1 EXTI wake-up interrupt list . . . . . 500
- 16.4 EXTI functional description . . . . . 502
- 16.4.1 EXTI configurable event input wake-up . . . . . 503
- 16.4.2 EXTI direct event input wake-up . . . . . 504
- 16.5 EXTI functional behavior . . . . . 504
- 16.6 EXTI registers . . . . . 505
- 16.6.1 EXTI rising trigger selection register (EXTI_RTSR1) . . . . . 506
- 16.6.2 EXTI falling trigger selection register (EXTI_FTSR1) . . . . . 507
- 16.6.3 EXTI software interrupt event register (EXTI_SWIER1) . . . . . 508
- 16.6.4 EXTI pending register (EXTI_PR1) . . . . . 509
- 16.6.5 EXTI rising trigger selection register (EXTI_RTSR2) . . . . . 510
- 16.6.6 EXTI falling trigger selection register (EXTI_FTSR2) . . . . . 510
- 16.6.7 EXTI software interrupt event register (EXTI_SWIER2) . . . . . 511
- 16.6.8 EXTI pending register (EXTI_PR2) . . . . . 512
- 16.6.9 EXTI interrupt mask register (EXTI_CnIMR1) . . . . . 512
- 16.6.10 EXTI event mask register (EXTI_CnEMR1) . . . . . 513
- 16.6.11 EXTI interrupt mask register (EXTI_CnIMR2) . . . . . 514
- 16.6.12 EXTI event mask register (EXTI_CnEMR2) . . . . . 514
| 16.6.13 | EXTI register map ..... | 515 |
| 17 | Cyclic redundancy check calculation unit (CRC) ..... | 517 |
| 17.1 | Introduction ..... | 517 |
| 17.2 | CRC main features ..... | 517 |
| 17.3 | CRC functional description ..... | 518 |
| 17.3.1 | CRC block diagram ..... | 518 |
| 17.3.2 | CRC internal signals ..... | 518 |
| 17.3.3 | CRC operation ..... | 518 |
| 17.4 | CRC registers ..... | 520 |
| 17.4.1 | CRC data register (CRC_DR) ..... | 520 |
| 17.4.2 | CRC independent data register (CRC_IDR) ..... | 520 |
| 17.4.3 | CRC control register (CRC_CR) ..... | 521 |
| 17.4.4 | CRC initial value (CRC_INIT) ..... | 522 |
| 17.4.5 | CRC polynomial (CRC_POL) ..... | 522 |
| 17.4.6 | CRC register map ..... | 523 |
| 18 | Analog-to-digital converter (ADC) ..... | 524 |
| 18.1 | Introduction ..... | 524 |
| 18.2 | ADC main features ..... | 525 |
| 18.3 | ADC functional description ..... | 526 |
| 18.3.1 | ADC pins and internal signals ..... | 526 |
| 18.3.2 | ADC voltage regulator (ADVREGEN) ..... | 527 |
| 18.3.3 | Calibration (ADCAL) ..... | 528 |
| 18.3.4 | ADC on-off control (ADEN, ADDIS, ADRDY) ..... | 530 |
| 18.3.5 | ADC clock (CKMODE, PRESC[3:0]) ..... | 531 |
| 18.3.6 | ADC connectivity ..... | 533 |
| 18.3.7 | Configuring the ADC ..... | 534 |
| 18.3.8 | Channel selection (CHSEL, SCANDIR, CHSELRMOD) ..... | 534 |
| 18.3.9 | Programmable sampling time (SMPx[2:0]) ..... | 535 |
| 18.3.10 | Single conversion mode (CONT = 0) ..... | 536 |
| 18.3.11 | Continuous conversion mode (CONT = 1) ..... | 536 |
| 18.3.12 | Starting conversions (ADSTART) ..... | 537 |
| 18.3.13 | Timings ..... | 538 |
| 18.3.14 | Stopping an ongoing conversion (ADSTP) ..... | 539 |
| 18.4 | Conversion on external trigger and trigger polarity (EXTSEL, EXTEN) . | 539 |
| 18.4.1 | Discontinuous mode (DISCEN) . . . . . | 540 |
| 18.4.2 | Programmable resolution (RES) - Fast conversion mode . . . . . | 540 |
| 18.4.3 | End of conversion, end of sampling phase (EOC, EOSMP flags) . . . . . | 541 |
| 18.4.4 | End of conversion sequence (EOS flag) . . . . . | 541 |
| 18.4.5 | Example timing diagrams (single/continuous modes hardware/software triggers) . . . . . | 542 |
| 18.4.6 | Low frequency trigger mode . . . . . | 544 |
| 18.5 | Data management . . . . . | 544 |
| 18.5.1 | Data register and data alignment (ADC_DR, ALIGN) . . . . . | 544 |
| 18.5.2 | ADC overrun (OVR, OVRMOD) . . . . . | 544 |
| 18.5.3 | Managing a sequence of data converted without using the DMA . . . . . | 546 |
| 18.5.4 | Managing converted data without using the DMA without overrun . . . . . | 546 |
| 18.5.5 | Managing converted data using the DMA . . . . . | 546 |
| 18.6 | Low-power features . . . . . | 547 |
| 18.6.1 | Wait mode conversion . . . . . | 547 |
| 18.6.2 | Auto-off mode (AUTOFF) . . . . . | 548 |
| 18.7 | Analog window watchdogs . . . . . | 549 |
| 18.7.1 | Description of analog watchdog 1 . . . . . | 550 |
| 18.7.2 | Description of analog watchdog 2 and 3 . . . . . | 551 |
| 18.7.3 | ADC_AWDx_OUT output signal generation . . . . . | 551 |
| 18.7.4 | Analog watchdog threshold control . . . . . | 553 |
| 18.8 | Oversampler . . . . . | 554 |
| 18.8.1 | ADC operating modes supported when oversampling . . . . . | 555 |
| 18.8.2 | Analog watchdog . . . . . | 556 |
| 18.8.3 | Triggered mode . . . . . | 556 |
| 18.9 | Temperature sensor and internal reference voltage . . . . . | 556 |
| 18.10 | Battery voltage monitoring . . . . . | 559 |
| 18.11 | ADC interrupts . . . . . | 560 |
| 18.12 | ADC registers . . . . . | 561 |
| 18.12.1 | ADC interrupt and status register (ADC_ISR) . . . . . | 561 |
| 18.12.2 | ADC interrupt enable register (ADC_IER) . . . . . | 562 |
| 18.12.3 | ADC control register (ADC_CR) . . . . . | 564 |
| 18.12.4 | ADC configuration register 1 (ADC_CFGR1) . . . . . | 566 |
| 18.12.5 | ADC configuration register 2 (ADC_CFGR2) . . . . . | 569 |
| 18.12.6 | ADC sampling time register (ADC_SMPR) . . . . . | 570 |
| 18.12.7 | ADC watchdog threshold register (ADC_AWD1TR) . . . . . | 571 |
| 18.12.8 | ADC watchdog threshold register (ADC_AWD2TR) . . . . . | 572 |
| 18.12.9 | ADC channel selection register (ADC_CHSELR) . . . . . | 572 |
| 18.12.10 | ADC channel selection register [alternate] (ADC_CHSELR) . . . . . | 573 |
| 18.12.11 | ADC watchdog threshold register (ADC_AWD3TR) . . . . . | 575 |
| 18.12.12 | ADC data register (ADC_DR) . . . . . | 576 |
| 18.12.13 | ADC analog watchdog 2 configuration register (ADC_AWD2CR) . . . . . | 576 |
| 18.12.14 | ADC Analog Watchdog 3 Configuration register (ADC_AWD3CR) . . . . . | 576 |
| 18.12.15 | ADC calibration factor (ADC_CALFACT) . . . . . | 577 |
| 18.12.16 | ADC common configuration register (ADC_CCR) . . . . . | 578 |
| 18.13 | ADC register map . . . . . | 579 |
| 19 | Digital-to-analog converter (DAC) . . . . . | 581 |
| 19.1 | Introduction . . . . . | 581 |
| 19.2 | DAC main features . . . . . | 581 |
| 19.3 | DAC implementation . . . . . | 582 |
| 19.4 | DAC functional description . . . . . | 582 |
| 19.4.1 | DAC block diagram . . . . . | 582 |
| 19.4.2 | DAC pins and internal signals . . . . . | 583 |
| 19.4.3 | DAC channel enable . . . . . | 584 |
| 19.4.4 | DAC data format . . . . . | 584 |
| 19.4.5 | DAC conversion . . . . . | 585 |
| 19.4.6 | DAC output voltage . . . . . | 585 |
| 19.4.7 | DAC trigger selection . . . . . | 585 |
| 19.4.8 | DMA requests . . . . . | 586 |
| 19.4.9 | Noise generation . . . . . | 586 |
| 19.4.10 | Triangle-wave generation . . . . . | 588 |
| 19.4.11 | DAC channel modes . . . . . | 589 |
| 19.4.12 | DAC channel buffer calibration . . . . . | 592 |
| 19.4.13 | DAC channel conversion modes . . . . . | 593 |
| 19.5 | DAC in low-power modes . . . . . | 594 |
| 19.6 | DAC interrupts . . . . . | 595 |
| 19.7 | DAC registers . . . . . | 595 |
| 19.7.1 | DAC control register (DAC_CR) . . . . . | 595 |
| 19.7.2 | DAC software trigger register (DAC_SWTRGR) . . . . . | 597 |
| 19.7.3 | DAC channel1 12-bit right-aligned data holding register (DAC_DHR12R1) . . . . . | 597 |
| 19.7.4 | DAC channel1 12-bit left aligned data holding register (DAC_DHR12L1) . . . . . | 598 |
| 19.7.5 | DAC channel1 8-bit right aligned data holding register (DAC_DHR8R1) . . . . . | 598 |
| 19.7.6 | DAC channel1 data output register (DAC_DOR1) . . . . . | 599 |
| 19.7.7 | DAC status register (DAC_SR) . . . . . | 599 |
| 19.7.8 | DAC calibration control register (DAC_CCR) . . . . . | 600 |
| 19.7.9 | DAC mode control register (DAC_MCR) . . . . . | 600 |
| 19.7.10 | DAC channel1 sample and hold sample time register (DAC_SHSR1) . . . . . | 601 |
| 19.7.11 | DAC sample and hold time register (DAC_SHHR) . . . . . | 601 |
| 19.7.12 | DAC sample and hold refresh time register (DAC_SHRR) . . . . . | 602 |
| 19.7.13 | DAC register map . . . . . | 603 |
| 20 | Voltage reference buffer (VREFBUF) . . . . . | 605 |
| 20.1 | Introduction . . . . . | 605 |
| 20.2 | VREFBUF functional description . . . . . | 605 |
| 20.3 | VREFBUF registers . . . . . | 606 |
| 20.3.1 | VREFBUF control and status register (VREFBUF_CSR) . . . . . | 606 |
| 20.3.2 | VREFBUF calibration control register (VREFBUF_CCR) . . . . . | 606 |
| 20.3.3 | VREFBUF register map . . . . . | 607 |
| 21 | Comparator (COMP) . . . . . | 608 |
| 21.1 | COMP introduction . . . . . | 608 |
| 21.2 | COMP main features . . . . . | 608 |
| 21.3 | COMP functional description . . . . . | 609 |
| 21.3.1 | COMP block diagram . . . . . | 609 |
| 21.3.2 | COMP pins and internal signals . . . . . | 609 |
| 21.3.3 | COMP reset and clocks . . . . . | 611 |
| 21.3.4 | Comparator LOCK mechanism . . . . . | 611 |
| 21.3.5 | Window comparator . . . . . | 611 |
| 21.3.6 | Hysteresis . . . . . | 612 |
| 21.3.7 | Comparator output blanking function . . . . . | 613 |
| 21.3.8 | COMP power and speed modes . . . . . | 613 |
| 21.4 | COMP low-power modes . . . . . | 614 |
| 21.5 | COMP interrupts . . . . . | 614 |
| 21.6 | COMP registers . . . . . | 615 |
| 21.6.1 | COMP1 control and status register (COMP1_CSR) . . . . . | 615 |
| 21.6.2 | COMP2 control and status register (COMP2_CSR) . . . . . | 617 |
| 21.6.3 | COMP register map . . . . . | 619 |
| 22 | True random number generator (RNG) . . . . . | 620 |
| 22.1 | Introduction . . . . . | 620 |
| 22.2 | RNG main features . . . . . | 620 |
| 22.3 | RNG functional description . . . . . | 621 |
| 22.3.1 | RNG block diagram . . . . . | 621 |
| 22.3.2 | RNG internal signals . . . . . | 621 |
| 22.3.3 | Random number generation . . . . . | 621 |
| 22.3.4 | RNG initialization . . . . . | 624 |
| 22.3.5 | RNG operation . . . . . | 625 |
| 22.3.6 | RNG clocking . . . . . | 627 |
| 22.3.7 | Error management . . . . . | 627 |
| 22.3.8 | RNG low-power use . . . . . | 628 |
| 22.4 | RNG interrupts . . . . . | 628 |
| 22.5 | RNG processing time . . . . . | 629 |
| 22.6 | RNG entropy source validation . . . . . | 629 |
| 22.6.1 | Introduction . . . . . | 629 |
| 22.6.2 | Validation conditions . . . . . | 629 |
| 22.6.3 | Data collection . . . . . | 630 |
| 22.7 | RNG registers . . . . . | 630 |
| 22.7.1 | RNG control register (RNG_CR) . . . . . | 630 |
| 22.7.2 | RNG status register (RNG_SR) . . . . . | 632 |
| 22.7.3 | RNG data register (RNG_DR) . . . . . | 633 |
| 22.7.4 | RNG health test control register (RNG_HTCR) . . . . . | 634 |
| 22.7.5 | RNG register map . . . . . | 634 |
| 23 | AES hardware accelerator (AES) . . . . . | 635 |
| 23.1 | Introduction . . . . . | 635 |
| 23.2 | AES main features . . . . . | 635 |
| 23.3 | AES implementation . . . . . | 635 |
| 23.4 | AES functional description . . . . . | 636 |
| 23.4.1 | AES block diagram . . . . . | 636 |
| 23.4.2 | AES internal signals . . . . . | 636 |
| 23.4.3 | AES cryptographic core . . . . . | 636 |
| 23.4.4 | AES procedure to perform a cipher operation . . . . . | 642 |
| 23.4.5 | AES decryption round key preparation . . . . . | 645 |
| 23.4.6 | AES ciphertext stealing and data padding . . . . . | 645 |
| 23.4.7 | AES task suspend and resume . . . . . | 646 |
| 23.4.8 | AES basic chaining modes (ECB, CBC) . . . . . | 646 |
| 23.4.9 | AES counter (CTR) mode . . . . . | 651 |
| 23.4.10 | AES Galois/counter mode (GCM) . . . . . | 653 |
| 23.4.11 | AES Galois message authentication code (GMAC) . . . . . | 658 |
| 23.4.12 | AES counter with CBC-MAC (CCM) . . . . . | 660 |
| 23.4.13 | AES data registers and data swapping . . . . . | 665 |
| 23.4.14 | AES key registers . . . . . | 667 |
| 23.4.15 | AES initialization vector registers . . . . . | 667 |
| 23.4.16 | AES DMA interface . . . . . | 668 |
| 23.4.17 | AES error management . . . . . | 669 |
| 23.5 | AES interrupts . . . . . | 670 |
| 23.6 | AES processing latency . . . . . | 670 |
| 23.7 | AES registers . . . . . | 671 |
| 23.7.1 | AES control register (AES_CR) . . . . . | 671 |
| 23.7.2 | AES status register (AES_SR) . . . . . | 673 |
| 23.7.3 | AES data input register (AES_DINR) . . . . . | 675 |
| 23.7.4 | AES data output register (AES_DOUTR) . . . . . | 675 |
| 23.7.5 | AES key register 0 (AES_KEYR0) . . . . . | 676 |
| 23.7.6 | AES key register 1 (AES_KEYR1) . . . . . | 676 |
| 23.7.7 | AES key register 2 (AES_KEYR2) . . . . . | 677 |
| 23.7.8 | AES key register 3 (AES_KEYR3) . . . . . | 677 |
| 23.7.9 | AES initialization vector register 0 (AES_IVR0) . . . . . | 677 |
| 23.7.10 | AES initialization vector register 1 (AES_IVR1) . . . . . | 678 |
| 23.7.11 | AES initialization vector register 2 (AES_IVR2) . . . . . | 678 |
| 23.7.12 | AES initialization vector register 3 (AES_IVR3) . . . . . | 678 |
| 23.7.13 | AES key register 4 (AES_KEYR4) . . . . . | 679 |
| 23.7.14 | AES key register 5 (AES_KEYR5) . . . . . | 679 |
| 23.7.15 | AES key register 6 (AES_KEYR6) . . . . . | 679 |
| 23.7.16 | AES key register 7 (AES_KEYR7) . . . . . | 680 |
| 23.7.17 | AES suspend registers (AES_SUSPxR) . . . . . | 680 |
| 23.7.18 | AES register map . . . . . | 681 |
| 24 | Public key accelerator (PKA) . . . . . | 683 |
| 24.1 | Introduction . . . . . | 683 |
| 24.2 | PKA main features . . . . . | 683 |
| 24.3 | PKA functional description . . . . . | 683 |
| 24.3.1 | PKA block diagram . . . . . | 683 |
| 24.3.2 | PKA internal signals . . . . . | 684 |
| 24.3.3 | PKA reset and clocks . . . . . | 684 |
| 24.3.4 | PKA public key acceleration . . . . . | 684 |
| 24.3.5 | Typical applications for PKA . . . . . | 686 |
| 24.3.6 | PKA procedure to perform an operation . . . . . | 688 |
| 24.3.7 | PKA error management . . . . . | 689 |
| 24.4 | PKA operating modes . . . . . | 689 |
| 24.4.1 | Introduction . . . . . | 689 |
| 24.4.2 | Montgomery parameter computation . . . . . | 690 |
| 24.4.3 | Modular addition . . . . . | 691 |
| 24.4.4 | Modular subtraction . . . . . | 691 |
| 24.4.5 | Modular and Montgomery multiplication . . . . . | 691 |
| 24.4.6 | Modular exponentiation . . . . . | 692 |
| 24.4.7 | Modular inversion . . . . . | 693 |
| 24.4.8 | Modular reduction . . . . . | 694 |
| 24.4.9 | Arithmetic addition . . . . . | 694 |
| 24.4.10 | Arithmetic subtraction . . . . . | 694 |
| 24.4.11 | Arithmetic multiplication . . . . . | 695 |
| 24.4.12 | Arithmetic comparison . . . . . | 695 |
| 24.4.13 | RSA CRT exponentiation . . . . . | 695 |
| 24.4.14 | Point on elliptic curve Fp check . . . . . | 696 |
| 24.4.15 | ECC Fp scalar multiplication . . . . . | 697 |
| 24.4.16 | ECDSA sign . . . . . | 698 |
| 24.4.17 | ECDSA verification . . . . . | 700 |
| 24.5 | Example of configurations and processing times . . . . . | 701 |
| 24.5.1 | Supported elliptic curves . . . . . | 701 |
| 24.5.2 | Computation times . . . . . | 703 |
| 24.6 | PKA interrupts . . . . . | 704 |
| 24.7 | PKA registers . . . . . | 705 |
| 24.7.1 | PKA control register (PKA_CR) . . . . . | 705 |
| 24.7.2 | PKA status register (PKA_SR) . . . . . | 706 |
- 24.7.3 PKA clear flag register (PKA_CLRFR) . . . . . 707
- 24.7.4 PKA RAM . . . . . 707
- 24.7.5 PKA register map . . . . . 708
- 25 Advanced-control timer (TIM1) . . . . . 709
- 25.1 TIM1 introduction . . . . . 709
- 25.2 TIM1 main features . . . . . 710
- 25.3 TIM1 functional description . . . . . 712
- 25.3.1 Time-base unit . . . . . 712
- 25.3.2 Counter modes . . . . . 714
- 25.3.3 Repetition counter . . . . . 725
- 25.3.4 External trigger input . . . . . 727
- 25.3.5 Clock selection . . . . . 728
- 25.3.6 Capture/compare channels . . . . . 732
- 25.3.7 Input capture mode . . . . . 734
- 25.3.8 PWM input mode . . . . . 735
- 25.3.9 Forced output mode . . . . . 736
- 25.3.10 Output compare mode . . . . . 737
- 25.3.11 PWM mode . . . . . 738
- 25.3.12 Asymmetric PWM mode . . . . . 741
- 25.3.13 Combined PWM mode . . . . . 742
- 25.3.14 Combined 3-phase PWM mode . . . . . 743
- 25.3.15 Complementary outputs and dead-time insertion . . . . . 744
- 25.3.16 Using the break function . . . . . 746
- 25.3.17 Bidirectional break inputs . . . . . 752
- 25.3.18 Clearing the OCxREF signal on an external event . . . . . 754
- 25.3.19 6-step PWM generation . . . . . 755
- 25.3.20 One-pulse mode . . . . . 756
- 25.3.21 Retriggerable one pulse mode . . . . . 757
- 25.3.22 Encoder interface mode . . . . . 758
- 25.3.23 UIF bit remapping . . . . . 760
- 25.3.24 Timer input XOR function . . . . . 761
- 25.3.25 Interfacing with Hall sensors . . . . . 761
- 25.3.26 Timer synchronization . . . . . 764
- 25.3.27 ADC synchronization . . . . . 768
- 25.3.28 DMA burst mode . . . . . 768
- 25.3.29 Debug mode . . . . . 769
| 25.4 | TIM1 registers . . . . . | 770 |
| 25.4.1 | TIM1 control register 1 (TIM1_CR1) . . . . . | 770 |
| 25.4.2 | TIM1 control register 2 (TIM1_CR2) . . . . . | 771 |
| 25.4.3 | TIM1 slave mode control register (TIM1_SMCR) . . . . . | 774 |
| 25.4.4 | TIM1 DMA/interrupt enable register (TIM1_DIER) . . . . . | 776 |
| 25.4.5 | TIM1 status register (TIM1_SR) . . . . . | 778 |
| 25.4.6 | TIM1 event generation register (TIM1_EGR) . . . . . | 780 |
| 25.4.7 | TIM1 capture/compare mode register 1 (TIM1_CCMR1) . . . . . | 781 |
| 25.4.8 | TIM1 capture/compare mode register 1 [alternate] (TIM1_CCMR1) . . . . . | 782 |
| 25.4.9 | TIM1 capture/compare mode register 2 (TIM1_CCMR2) . . . . . | 785 |
| 25.4.10 | TIM1 capture/compare mode register 2 [alternate] (TIM1_CCMR2) . . . . . | 786 |
| 25.4.11 | TIM1 capture/compare enable register (TIM1_CCER) . . . . . | 788 |
| 25.4.12 | TIM1 counter (TIM1_CNT) . . . . . | 791 |
| 25.4.13 | TIM1 prescaler (TIM1_PSC) . . . . . | 791 |
| 25.4.14 | TIM1 auto-reload register (TIM1_ARR) . . . . . | 791 |
| 25.4.15 | TIM1 repetition counter register (TIM1_RCR) . . . . . | 792 |
| 25.4.16 | TIM1 capture/compare register 1 (TIM1_CCR1) . . . . . | 792 |
| 25.4.17 | TIM1 capture/compare register 2 (TIM1_CCR2) . . . . . | 793 |
| 25.4.18 | TIM1 capture/compare register 3 (TIM1_CCR3) . . . . . | 793 |
| 25.4.19 | TIM1 capture/compare register 4 (TIM1_CCR4) . . . . . | 794 |
| 25.4.20 | TIM1 break and dead-time register (TIM1_BDTR) . . . . . | 794 |
| 25.4.21 | TIM1 DMA control register (TIM1_DCR) . . . . . | 798 |
| 25.4.22 | TIM1 DMA address for full transfer (TIM1_DMAR) . . . . . | 799 |
| 25.4.23 | TIM1 option register 1 (TIM1_OR1) . . . . . | 800 |
| 25.4.24 | TIM1 capture/compare mode register 3 (TIM1_CCMR3) . . . . . | 800 |
| 25.4.25 | TIM1 capture/compare register 5 (TIM1_CCR5) . . . . . | 801 |
| 25.4.26 | TIM1 capture/compare register 6 (TIM1_CCR6) . . . . . | 802 |
| 25.4.27 | TIM1 alternate function option register 1 (TIM1_AF1) . . . . . | 803 |
| 25.4.28 | TIM1 Alternate function register 2 (TIM1_AF2) . . . . . | 804 |
| 25.4.29 | TIM1 timer input selection register (TIM1_TISEL) . . . . . | 806 |
| 25.4.30 | TIM1 register map . . . . . | 807 |
| 26 | General-purpose timer (TIM2) . . . . . | 810 |
| 26.1 | TIM2 introduction . . . . . | 810 |
| 26.2 | TIM2 main features . . . . . | 810 |
| 26.3 | TIM2 functional description . . . . . | 812 |
| 26.3.1 | Time-base unit . . . . . | 812 |
| 26.3.2 | Counter modes . . . . . | 814 |
| 26.3.3 | Clock selection . . . . . | 824 |
| 26.3.4 | Capture/Compare channels . . . . . | 828 |
| 26.3.5 | Input capture mode . . . . . | 830 |
| 26.3.6 | PWM input mode . . . . . | 831 |
| 26.3.7 | Forced output mode . . . . . | 832 |
| 26.3.8 | Output compare mode . . . . . | 832 |
| 26.3.9 | PWM mode . . . . . | 833 |
| 26.3.10 | Asymmetric PWM mode . . . . . | 837 |
| 26.3.11 | Combined PWM mode . . . . . | 837 |
| 26.3.12 | Clearing the OCxREF signal on an external event . . . . . | 838 |
| 26.3.13 | One-pulse mode . . . . . | 840 |
| 26.3.14 | Retriggerable one pulse mode . . . . . | 841 |
| 26.3.15 | Encoder interface mode . . . . . | 842 |
| 26.3.16 | UIF bit remapping . . . . . | 844 |
| 26.3.17 | Timer input XOR function . . . . . | 844 |
| 26.3.18 | Timers and external trigger synchronization . . . . . | 845 |
| 26.3.19 | Timer synchronization . . . . . | 848 |
| 26.3.20 | DMA burst mode . . . . . | 853 |
| 26.3.21 | Debug mode . . . . . | 854 |
| 26.4 | TIM2 registers . . . . . | 855 |
| 26.4.1 | TIM2 control register 1 (TIM2_CR1) . . . . . | 855 |
| 26.4.2 | TIM2 control register 2 (TIM2_CR2) . . . . . | 856 |
| 26.4.3 | TIM2 slave mode control register (TIM2_SMCR) . . . . . | 858 |
| 26.4.4 | TIM2 DMA/Interrupt enable register (TIM2_DIER) . . . . . | 861 |
| 26.4.5 | TIM2 status register (TIM2_SR) ..... | 862 |
| 26.4.6 | TIM2 event generation register (TIM2_EGR) ..... | 864 |
| 26.4.7 | TIM2 capture/compare mode register 1 (TIM2_CCMR1) ..... | 865 |
| 26.4.8 | TIM2 capture/compare mode register 1 [alternate] (TIM2_CCMR1) .. | 867 |
| 26.4.9 | TIM2 capture/compare mode register 2 (TIM2_CCMR2) ..... | 869 |
| 26.4.10 | TIM2 capture/compare mode register 2 [alternate] (TIM2_CCMR2) .. | 870 |
| 26.4.11 | TIM2 capture/compare enable register (TIM2_CCER) ..... | 871 |
| 26.4.12 | TIM2 counter (TIM2_CNT) ..... | 872 |
| 26.4.13 | TIM2 counter [alternate] (TIM2_CNT) ..... | 873 |
| 26.4.14 | TIM2 prescaler (TIM2_PSC) ..... | 873 |
| 26.4.15 | TIM2 auto-reload register (TIM2_ARR) ..... | 874 |
| 26.4.16 | TIM2 capture/compare register 1 (TIM2_CCR1) ..... | 874 |
| 26.4.17 | TIM2 capture/compare register 2 (TIM2_CCR2) ..... | 874 |
| 26.4.18 | TIM2 capture/compare register 3 (TIM2_CCR3) ..... | 875 |
| 26.4.19 | TIM2 capture/compare register 4 (TIM2_CCR4) ..... | 875 |
| 26.4.20 | TIM2 DMA control register (TIM2_DCR) ..... | 876 |
| 26.4.21 | TIM2 DMA address for full transfer (TIM2_DMAR) ..... | 877 |
| 26.4.22 | TIM2 option register 1 (TIM2_OR1) ..... | 877 |
| 26.4.23 | TIM2 alternate function option register 1 (TIM2_AF1) ..... | 877 |
| 26.4.24 | TIM2 timer input selection register (TIM2_TISEL) ..... | 878 |
| 26.4.25 | TIMx register map ..... | 879 |
| 27 | General-purpose timers (TIM16/TIM17) ..... | 882 |
| 27.1 | TIM16/TIM17 introduction ..... | 882 |
| 27.2 | TIM16/TIM17 main features ..... | 882 |
| 27.3 | TIM16/TIM17 functional description ..... | 884 |
| 27.3.1 | Time-base unit ..... | 884 |
| 27.3.2 | Counter modes ..... | 886 |
| 27.3.3 | Repetition counter ..... | 890 |
| 27.3.4 | Clock selection ..... | 891 |
| 27.3.5 | Capture/compare channels ..... | 893 |
| 27.3.6 | Input capture mode ..... | 895 |
| 27.3.7 | Forced output mode ..... | 896 |
| 27.3.8 | Output compare mode ..... | 896 |
| 27.3.9 | PWM mode ..... | 898 |
| 27.3.10 | Complementary outputs and dead-time insertion ..... | 899 |
| 27.3.11 | Using the break function . . . . . | 901 |
| 27.3.12 | Bidirectional break inputs . . . . . | 904 |
| 27.3.13 | 6-step PWM generation . . . . . | 905 |
| 27.3.14 | One-pulse mode . . . . . | 907 |
| 27.3.15 | UIF bit remapping . . . . . | 908 |
| 27.3.16 | Slave mode – combined reset + trigger mode . . . . . | 908 |
| 27.3.17 | DMA burst mode . . . . . | 908 |
| 27.3.18 | Using timer output as trigger for other timers (TIM16/TIM17) . . . . . | 909 |
| 27.3.19 | Debug mode . . . . . | 910 |
| 27.4 | TIM16/TIM17 registers . . . . . | 911 |
| 27.4.1 | TIMx control register 1 (TIMx_CR1)(x = 16 to 17) . . . . . | 911 |
| 27.4.2 | TIMx control register 2 (TIMx_CR2)(x = 16 to 17) . . . . . | 912 |
| 27.4.3 | TIMx DMA/interrupt enable register (TIMx_DIER)(x = 16 to 17) . . . . . | 913 |
| 27.4.4 | TIMx status register (TIMx_SR)(x = 16 to 17) . . . . . | 914 |
| 27.4.5 | TIMx event generation register (TIMx_EGR)(x = 16 to 17) . . . . . | 915 |
| 27.4.6 | TIMx capture/compare mode register 1 (TIMx_CCMR1)(x = 16 to 17) . . . . . | 916 |
| 27.4.7 | TIMx capture/compare mode register 1 [alternate] (TIMx_CCMR1)(x = 16 to 17) . . . . . | 917 |
| 27.4.8 | TIMx capture/compare enable register (TIMx_CCER)(x = 16 to 17) . . . . . | 919 |
| 27.4.9 | TIMx counter (TIMx_CNT)(x = 16 to 17) . . . . . | 921 |
| 27.4.10 | TIMx prescaler (TIMx_PSC)(x = 16 to 17) . . . . . | 922 |
| 27.4.11 | TIMx auto-reload register (TIMx_ARR)(x = 16 to 17) . . . . . | 922 |
| 27.4.12 | TIMx repetition counter register (TIMx_RCR)(x = 16 to 17) . . . . . | 923 |
| 27.4.13 | TIMx capture/compare register 1 (TIMx_CCR1)(x = 16 to 17) . . . . . | 923 |
| 27.4.14 | TIMx break and dead-time register (TIMx_BDTR)(x = 16 to 17) . . . . . | 924 |
| 27.4.15 | TIMx DMA control register (TIMx_DCR)(x = 16 to 17) . . . . . | 926 |
| 27.4.16 | TIMx DMA address for full transfer (TIMx_DMAR)(x = 16 to 17) . . . . . | 927 |
| 27.4.17 | TIM16 option register 1 (TIM16_OR1) . . . . . | 928 |
| 27.4.18 | TIM16 alternate function register 1 (TIM16_AF1) . . . . . | 928 |
| 27.4.19 | TIM16 input selection register (TIM16_TISEL) . . . . . | 929 |
| 27.4.20 | TIM17 option register 1 (TIM17_OR1) . . . . . | 930 |
| 27.4.21 | TIM17 alternate function register 1 (TIM17_AF1) . . . . . | 930 |
| 27.4.22 | TIM17 input selection register (TIM17_TISEL) . . . . . | 931 |
| 27.4.23 | TIM16/TIM17 register map . . . . . | 932 |
| 28 | Low-power timer (LPTIM) . . . . . | 934 |
| 28.1 | Introduction . . . . . | 934 |
| 28.2 | LPTIM main features . . . . . | 934 |
| 28.3 | LPTIM implementation . . . . . | 934 |
| 28.4 | LPTIM functional description . . . . . | 935 |
| 28.4.1 | LPTIM block diagram . . . . . | 935 |
| 28.4.2 | LPTIM pins and internal signals . . . . . | 935 |
| 28.4.3 | LPTIM input and trigger mapping . . . . . | 936 |
| 28.4.4 | LPTIM reset and clocks . . . . . | 938 |
| 28.4.5 | Glitch filter . . . . . | 938 |
| 28.4.6 | Prescaler . . . . . | 939 |
| 28.4.7 | Trigger multiplexer . . . . . | 939 |
| 28.4.8 | Operating mode . . . . . | 940 |
| 28.4.9 | Timeout function . . . . . | 942 |
| 28.4.10 | Waveform generation . . . . . | 942 |
| 28.4.11 | Register update . . . . . | 943 |
| 28.4.12 | Counter mode . . . . . | 944 |
| 28.4.13 | Timer enable . . . . . | 944 |
| 28.4.14 | Timer counter reset . . . . . | 945 |
| 28.4.15 | Encoder mode . . . . . | 945 |
| 28.4.16 | Repetition counter . . . . . | 947 |
| 28.4.17 | Debug mode . . . . . | 948 |
| 28.5 | LPTIM low-power modes . . . . . | 949 |
| 28.6 | LPTIM interrupts . . . . . | 949 |
| 28.7 | LPTIM registers . . . . . | 950 |
| 28.7.1 | LPTIM interrupt and status register (LPTIM_ISR) . . . . . | 950 |
| 28.7.2 | LPTIM interrupt clear register (LPTIM_ICR) . . . . . | 951 |
| 28.7.3 | LPTIM interrupt enable register (LPTIM_IER) . . . . . | 952 |
| 28.7.4 | LPTIM configuration register (LPTIM_CFGR) . . . . . | 953 |
| 28.7.5 | LPTIM control register (LPTIM_CR) . . . . . | 956 |
| 28.7.6 | LPTIM compare register (LPTIM_CMP) . . . . . | 957 |
| 28.7.7 | LPTIM autoreload register (LPTIM_ARR) . . . . . | 957 |
| 28.7.8 | LPTIM counter register (LPTIM_CNT) . . . . . | 958 |
| 28.7.9 | LPTIM1 option register (LPTIM1_OR) . . . . . | 958 |
| 28.7.10 | LPTIM2 option register (LPTIM2_OR) . . . . . | 959 |
| 28.7.11 | LPTIM3 option register (LPTIM3_OR) . . . . . | 959 |
| 28.7.12 | LPTIM repetition register (LPTIM_RCR) . . . . . | 960 |
- 28.7.13 LPTIM register map ..... 960
- 29 Infrared interface (IRTIM) ..... 962
- 30 Independent watchdog (IWDG) ..... 963
- 30.1 Introduction ..... 963
- 30.2 IWDG main features ..... 963
- 30.3 IWDG functional description ..... 963
- 30.3.1 IWDG block diagram ..... 963
- 30.3.2 Window option ..... 964
- 30.3.3 Hardware watchdog ..... 965
- 30.3.4 Low-power freeze ..... 965
- 30.3.5 Register access protection ..... 965
- 30.3.6 Debug mode ..... 965
- 30.4 IWDG registers ..... 966
- 30.4.1 IWDG key register (IWDG_KR) ..... 966
- 30.4.2 IWDG prescaler register (IWDG_PR) ..... 967
- 30.4.3 IWDG reload register (IWDG_RLR) ..... 968
- 30.4.4 IWDG status register (IWDG_SR) ..... 969
- 30.4.5 IWDG window register (IWDG_WINR) ..... 970
- 30.4.6 IWDG register map ..... 971
- 31 System window watchdog (WWDG) ..... 972
- 31.1 Introduction ..... 972
- 31.2 WWDG main features ..... 972
- 31.3 WWDG functional description ..... 972
- 31.3.1 WWDG block diagram ..... 973
- 31.3.2 WWDG internal signals ..... 973
- 31.3.3 Enabling the watchdog ..... 973
- 31.3.4 Controlling the down-counter ..... 973
- 31.3.5 How to program the watchdog timeout ..... 974
- 31.3.6 Debug mode ..... 975
- 31.4 WWDG interrupts ..... 975
- 31.5 WWDG registers ..... 975
- 31.5.1 WWDG control register (WWDG_CR) ..... 976
- 31.5.2 WWDG configuration register (WWDG_CFR) ..... 976
| 31.5.3 | WWDG status register (WWDG_SR) ..... | 977 |
| 31.5.4 | WWDG register map ..... | 977 |
| 32 | Real-time clock (RTC) ..... | 978 |
| 32.1 | Introduction ..... | 978 |
| 32.2 | RTC main features ..... | 978 |
| 32.3 | RTC functional description ..... | 979 |
| 32.3.1 | RTC block diagram ..... | 979 |
| 32.3.2 | RTC pins and internal signals ..... | 980 |
| 32.3.3 | GPIOs controlled by the RTC and TAMP ..... | 981 |
| 32.3.4 | Clock and prescalers ..... | 983 |
| 32.3.5 | Real-time clock and calendar ..... | 985 |
| 32.3.6 | Calendar ultra-low power mode ..... | 985 |
| 32.3.7 | Programmable alarms ..... | 985 |
| 32.3.8 | Periodic auto-wake-up ..... | 986 |
| 32.3.9 | RTC initialization and configuration ..... | 987 |
| 32.3.10 | Reading the calendar ..... | 989 |
| 32.3.11 | Resetting the RTC ..... | 990 |
| 32.3.12 | RTC synchronization ..... | 990 |
| 32.3.13 | RTC reference clock detection ..... | 991 |
| 32.3.14 | RTC smooth digital calibration ..... | 992 |
| 32.3.15 | Timestamp function ..... | 994 |
| 32.3.16 | Calibration clock output ..... | 995 |
| 32.3.17 | Tamper and alarm output ..... | 995 |
| 32.4 | RTC low-power modes ..... | 996 |
| 32.5 | RTC interrupts ..... | 997 |
| 32.6 | RTC registers ..... | 998 |
| 32.6.1 | RTC time register (RTC_TR) ..... | 998 |
| 32.6.2 | RTC date register (RTC_DR) ..... | 999 |
| 32.6.3 | RTC sub second register (RTC_SSR) ..... | 1000 |
| 32.6.4 | RTC initialization control and status register (RTC_ICSR) ..... | 1000 |
| 32.6.5 | RTC prescaler register (RTC_PRER) ..... | 1002 |
| 32.6.6 | RTC wake-up timer register (RTC_WUTR) ..... | 1003 |
| 32.6.7 | RTC control register (RTC_CR) ..... | 1003 |
| 32.6.8 | RTC write protection register (RTC_WPR) ..... | 1007 |
| 32.6.9 | RTC calibration register (RTC_CALR) ..... | 1007 |
| 32.6.10 | RTC shift control register (RTC_SHIFTR) . . . . . | 1008 |
| 32.6.11 | RTC timestamp time register (RTC_TSTR) . . . . . | 1009 |
| 32.6.12 | RTC timestamp date register (RTC_TSDR) . . . . . | 1010 |
| 32.6.13 | RTC timestamp sub second register (RTC_TSSSR) . . . . . | 1010 |
| 32.6.14 | RTC alarm A register (RTC_ALRMAR) . . . . . | 1011 |
| 32.6.15 | RTC alarm A sub second register (RTC_ALRMASSR) . . . . . | 1012 |
| 32.6.16 | RTC alarm B register (RTC_ALRMBR) . . . . . | 1013 |
| 32.6.17 | RTC alarm B sub second register (RTC_ALRMBSSR) . . . . . | 1014 |
| 32.6.18 | RTC status register (RTC_SR) . . . . . | 1015 |
| 32.6.19 | RTC masked interrupt status register (RTC_MISR) . . . . . | 1016 |
| 32.6.20 | RTC status clear register (RTC_SCR) . . . . . | 1017 |
| 32.6.21 | RTC alarm A binary mode register (RTC_ALRABINR) . . . . . | 1018 |
| 32.6.22 | RTC alarm B binary mode register (RTC_ALRBBINR) . . . . . | 1018 |
| 32.6.23 | RTC register map . . . . . | 1019 |
| 33 | Tamper and backup registers (TAMP) . . . . . | 1021 |
| 33.1 | Introduction . . . . . | 1021 |
| 33.2 | TAMP main features . . . . . | 1021 |
| 33.3 | TAMP functional description . . . . . | 1022 |
| 33.3.1 | TAMP block diagram . . . . . | 1022 |
| 33.3.2 | TAMP pins and internal signals . . . . . | 1023 |
| 33.3.3 | TAMP register write protection . . . . . | 1024 |
| 33.3.4 | Tamper detection . . . . . | 1024 |
| 33.4 | TAMP low-power modes . . . . . | 1026 |
| 33.5 | TAMP interrupts . . . . . | 1026 |
| 33.6 | TAMP registers . . . . . | 1027 |
| 33.6.1 | TAMP control register 1 (TAMP_CR1) . . . . . | 1027 |
| 33.6.2 | TAMP control register 2 (TAMP_CR2) . . . . . | 1028 |
| 33.6.3 | TAMP control register 3 (TAMP_CR3) . . . . . | 1029 |
| 33.6.4 | TAMP filter control register (TAMP_FLTCR) . . . . . | 1030 |
| 33.6.5 | TAMP interrupt enable register (TAMP_IER) . . . . . | 1031 |
| 33.6.6 | TAMP status register (TAMP_SR) . . . . . | 1032 |
| 33.6.7 | TAMP masked interrupt status register (TAMP_MISR) . . . . . | 1033 |
| 33.6.8 | TAMP status clear register (TAMP_SCR) . . . . . | 1034 |
| 33.6.9 | TAMP monotonic counter register (TAMP_COUNTR) . . . . . | 1036 |
| 33.6.10 | TAMP backup x register (TAMP_BKPxR) . . . . . | 1036 |
| 33.6.11 | TAMP register map ..... | 1037 |
| 34 | Inter-integrated circuit interface (I2C) ..... | 1038 |
| 34.1 | Introduction ..... | 1038 |
| 34.2 | I2C main features ..... | 1038 |
| 34.3 | I2C implementation ..... | 1039 |
| 34.4 | I2C functional description ..... | 1039 |
| 34.4.1 | I2C block diagram ..... | 1040 |
| 34.4.2 | I2C pins and internal signals ..... | 1040 |
| 34.4.3 | I2C clock requirements ..... | 1041 |
| 34.4.4 | I2C mode selection ..... | 1041 |
| 34.4.5 | I2C initialization ..... | 1042 |
| 34.4.6 | I2C reset ..... | 1046 |
| 34.4.7 | I2C data transfer ..... | 1047 |
| 34.4.8 | I2C slave mode ..... | 1049 |
| 34.4.9 | I2C master mode ..... | 1058 |
| 34.4.10 | I2C_TIMINGR register configuration examples ..... | 1069 |
| 34.4.11 | SMBus specific features ..... | 1071 |
| 34.4.12 | SMBus initialization ..... | 1073 |
| 34.4.13 | SMBus I2C_TIMEOUTR register configuration examples ..... | 1075 |
| 34.4.14 | SMBus slave mode ..... | 1076 |
| 34.4.15 | SMBus master mode ..... | 1079 |
| 34.4.16 | Wake-up from Stop mode on address match ..... | 1082 |
| 34.4.17 | Error conditions ..... | 1083 |
| 34.5 | I2C in low-power modes ..... | 1085 |
| 34.6 | I2C interrupts ..... | 1085 |
| 34.7 | I2C DMA requests ..... | 1086 |
| 34.7.1 | Transmission using DMA ..... | 1086 |
| 34.7.2 | Reception using DMA ..... | 1086 |
| 34.8 | I2C debug modes ..... | 1087 |
| 34.9 | I2C registers ..... | 1087 |
| 34.9.1 | I2C control register 1 (I2C_CR1) ..... | 1087 |
| 34.9.2 | I2C control register 2 (I2C_CR2) ..... | 1090 |
| 34.9.3 | I2C own address 1 register (I2C_OAR1) ..... | 1092 |
| 34.9.4 | I2C own address 2 register (I2C_OAR2) ..... | 1093 |
| 34.9.5 | I2C timing register (I2C_TIMINGR) ..... | 1094 |
| 34.9.6 | I2C timeout register (I2C_TIMEOUTR) ..... | 1095 |
| 34.9.7 | I2C interrupt and status register (I2C_ISR) ..... | 1096 |
| 34.9.8 | I2C interrupt clear register (I2C_ICR) ..... | 1098 |
| 34.9.9 | I2C PEC register (I2C_PECR) ..... | 1099 |
| 34.9.10 | I2C receive data register (I2C_RXDR) ..... | 1099 |
| 34.9.11 | I2C transmit data register (I2C_TXDR) ..... | 1100 |
| 34.9.12 | I2C register map ..... | 1101 |
| 35 | Universal synchronous/asynchronous receiver transmitter (USART/UART) ..... | 1102 |
| 35.1 | USART introduction ..... | 1102 |
| 35.2 | USART main features ..... | 1103 |
| 35.3 | USART extended features ..... | 1104 |
| 35.4 | USART implementation ..... | 1104 |
| 35.5 | USART functional description ..... | 1105 |
| 35.5.1 | USART block diagram ..... | 1105 |
| 35.5.2 | USART signals ..... | 1106 |
| 35.5.3 | USART character description ..... | 1107 |
| 35.5.4 | USART FIFOs and thresholds ..... | 1109 |
| 35.5.5 | USART transmitter ..... | 1109 |
| 35.5.6 | USART receiver ..... | 1113 |
| 35.5.7 | USART baud rate generation ..... | 1120 |
| 35.5.8 | Tolerance of the USART receiver to clock deviation ..... | 1121 |
| 35.5.9 | USART auto baud rate detection ..... | 1123 |
| 35.5.10 | USART multiprocessor communication ..... | 1125 |
| 35.5.11 | USART Modbus communication ..... | 1127 |
| 35.5.12 | USART parity control ..... | 1128 |
| 35.5.13 | USART LIN (local interconnection network) mode ..... | 1129 |
| 35.5.14 | USART synchronous mode ..... | 1131 |
| 35.5.15 | USART single-wire half-duplex communication ..... | 1135 |
| 35.5.16 | USART receiver timeout ..... | 1135 |
| 35.5.17 | USART smartcard mode ..... | 1136 |
| 35.5.18 | USART IrDA SIR ENDEC block ..... | 1140 |
| 35.5.19 | Continuous communication using USART and DMA ..... | 1143 |
| 35.5.20 | RS232 hardware flow control and RS485 Driver Enable ..... | 1145 |
| 35.5.21 | USART low-power management ..... | 1148 |
| 35.6 | USART in low-power modes ..... | 1151 |
| 35.7 | USART interrupts . . . . . | 1152 |
| 35.8 | USART registers . . . . . | 1153 |
| 35.8.1 | USART control register 1 (USART_CR1) . . . . . | 1153 |
| 35.8.2 | USART control register 1 [alternate] (USART_CR1) . . . . . | 1156 |
| 35.8.3 | USART control register 2 (USART_CR2) . . . . . | 1160 |
| 35.8.4 | USART control register 3 (USART_CR3) . . . . . | 1164 |
| 35.8.5 | USART baud rate register (USART_BRR) . . . . . | 1168 |
| 35.8.6 | USART guard time and prescaler register (USART_GTPR) . . . . . | 1168 |
| 35.8.7 | USART receiver timeout register (USART_RTOR) . . . . . | 1169 |
| 35.8.8 | USART request register (USART_RQR) . . . . . | 1170 |
| 35.8.9 | USART interrupt and status register (USART_ISR) . . . . . | 1171 |
| 35.8.10 | USART interrupt and status register [alternate] (USART_ISR) . . . . . | 1177 |
| 35.8.11 | USART interrupt flag clear register (USART_ICR) . . . . . | 1182 |
| 35.8.12 | USART receive data register (USART_RDR) . . . . . | 1184 |
| 35.8.13 | USART transmit data register (USART_TDR) . . . . . | 1184 |
| 35.8.14 | USART prescaler register (USART_PRESC) . . . . . | 1185 |
| 35.8.15 | USART register map . . . . . | 1186 |
| 36 | Low-power universal asynchronous receiver transmitter (LPUART) . . . . . | 1188 |
| 36.1 | LPUART introduction . . . . . | 1188 |
| 36.2 | LPUART main features . . . . . | 1189 |
| 36.3 | LPUART implementation . . . . . | 1190 |
| 36.4 | LPUART functional description . . . . . | 1191 |
| 36.4.1 | LPUART block diagram . . . . . | 1191 |
| 36.4.2 | LPUART signals . . . . . | 1192 |
| 36.4.3 | LPUART character description . . . . . | 1193 |
| 36.4.4 | LPUART FIFOs and thresholds . . . . . | 1194 |
| 36.4.5 | LPUART transmitter . . . . . | 1195 |
| 36.4.6 | LPUART receiver . . . . . | 1198 |
| 36.4.7 | LPUART baud rate generation . . . . . | 1202 |
| 36.4.8 | Tolerance of the LPUART receiver to clock deviation . . . . . | 1203 |
| 36.4.9 | LPUART multiprocessor communication . . . . . | 1204 |
| 36.4.10 | LPUART parity control . . . . . | 1206 |
| 36.4.11 | LPUART single-wire half-duplex communication . . . . . | 1207 |
| 36.4.12 | Continuous communication using DMA and LPUART . . . . . | 1207 |
| 36.4.13 | RS232 hardware flow control and RS485 Driver Enable . . . . . | 1210 |
| 36.4.14 | LPUART low-power management . . . . . | 1212 |
| 36.5 | LPUART in low-power modes . . . . . | 1215 |
| 36.6 | LPUART interrupts . . . . . | 1216 |
| 36.7 | LPUART registers . . . . . | 1217 |
| 36.7.1 | LPUART control register 1 (LPUART_CR1) . . . . . | 1217 |
| 36.7.2 | LPUART control register 1 [alternate] (LPUART_CR1) . . . . . | 1220 |
| 36.7.3 | LPUART control register 2 (LPUART_CR2) . . . . . | 1223 |
| 36.7.4 | LPUART control register 3 (LPUART_CR3) . . . . . | 1225 |
| 36.7.5 | LPUART baud rate register (LPUART_BRR) . . . . . | 1228 |
| 36.7.6 | LPUART request register (LPUART_RQR) . . . . . | 1228 |
| 36.7.7 | LPUART interrupt and status register (LPUART_ISR) . . . . . | 1229 |
| 36.7.8 | LPUART interrupt and status register [alternate] (LPUART_ISR) . . . . . | 1233 |
| 36.7.9 | LPUART interrupt flag clear register (LPUART_ICR) . . . . . | 1236 |
| 36.7.10 | LPUART receive data register (LPUART_RDR) . . . . . | 1237 |
| 36.7.11 | LPUART transmit data register (LPUART_TDR) . . . . . | 1237 |
| 36.7.12 | LPUART prescaler register (LPUART_PRESC) . . . . . | 1238 |
| 36.7.13 | LPUART register map . . . . . | 1239 |
| 37 | Serial peripheral interface / integrated interchip sound (SPI/I2S) . . . . . | 1241 |
| 37.1 | Introduction . . . . . | 1241 |
| 37.2 | SPI main features . . . . . | 1241 |
| 37.3 | I2S main features . . . . . | 1242 |
| 37.4 | SPI/I2S implementation . . . . . | 1242 |
| 37.5 | SPI functional description . . . . . | 1243 |
| 37.5.1 | General description . . . . . | 1243 |
| 37.5.2 | Communications between one master and one slave . . . . . | 1244 |
| 37.5.3 | Standard multislave communication . . . . . | 1246 |
| 37.5.4 | Multimaster communication . . . . . | 1247 |
| 37.5.5 | Slave select (NSS) pin management . . . . . | 1248 |
| 37.5.6 | Communication formats . . . . . | 1249 |
| 37.5.7 | Configuration of SPI . . . . . | 1251 |
| 37.5.8 | Procedure for enabling SPI . . . . . | 1252 |
| 37.5.9 | Data transmission and reception procedures . . . . . | 1252 |
| 37.5.10 | SPI status flags . . . . . | 1262 |
| 37.5.11 | SPI error flags . . . . . | 1263 |
| 37.5.12 | NSS pulse mode . . . . . | 1264 |
| 37.5.13 | TI mode | 1264 |
| 37.5.14 | CRC calculation | 1265 |
| 37.6 | SPI interrupts | 1267 |
| 37.7 | I2S functional description | 1268 |
| 37.7.1 | I2S general description | 1268 |
| 37.7.2 | Supported audio protocols | 1269 |
| 37.7.3 | Start-up description | 1276 |
| 37.7.4 | Clock generator | 1278 |
| 37.7.5 | I 2 S master mode | 1281 |
| 37.7.6 | I 2 S slave mode | 1282 |
| 37.7.7 | I2S status flags | 1284 |
| 37.7.8 | I2S error flags | 1285 |
| 37.7.9 | DMA features | 1286 |
| 37.8 | I2S interrupts | 1286 |
| 37.9 | SPI and I2S registers | 1287 |
| 37.9.1 | SPI control register 1 (SPIx_CR1) | 1287 |
| 37.9.2 | SPI control register 2 (SPIx_CR2) | 1289 |
| 37.9.3 | SPI status register (SPIx_SR) | 1291 |
| 37.9.4 | SPI data register (SPIx_DR) | 1293 |
| 37.9.5 | SPI CRC polynomial register (SPIx_CRCPR) | 1293 |
| 37.9.6 | SPI Rx CRC register (SPIx_RXCRCR) | 1293 |
| 37.9.7 | SPI Tx CRC register (SPIx_TXCRCR) | 1294 |
| 37.9.8 | SPIx_I2S configuration register (SPIx_I2SCFGR) | 1294 |
| 37.9.9 | SPIx_I2S prescaler register (SPIx_I2SPR) | 1296 |
| 37.9.10 | SPI/I2S register map | 1298 |
| 38 | Debug support (DBG) | 1299 |
| 38.1 | DBG introduction and main features | 1299 |
| 38.2 | DBG use cases | 1300 |
| 38.3 | DBG functional description | 1300 |
| 38.3.1 | DBG block diagram | 1300 |
| 38.3.2 | DBG pins and internal signals | 1301 |
| 38.3.3 | DBG interface control | 1301 |
| 38.3.4 | DBG reset and clocks | 1302 |
| 38.3.5 | DBG power domains | 1302 |
| 38.3.6 | DBG low-power modes | 1302 |
| 38.3.7 | Serial-wire and JTAG debug port . . . . . | 1302 |
| 38.3.8 | JTAG debug port . . . . . | 1303 |
| 38.3.9 | Serial-wire debug port . . . . . | 1306 |
| 38.4 | Debug port (DP) registers . . . . . | 1307 |
| 38.4.1 | DP identification register (DP_PIDR) . . . . . | 1309 |
| 38.4.2 | DP abort register (DP_ABORTR) . . . . . | 1309 |
| 38.4.3 | DP control and status register (DP_CTRLSTATR) . . . . . | 1310 |
| 38.4.4 | DP data link control register (DP_DLCR) . . . . . | 1312 |
| 38.4.5 | DP target identification register (DP_TARGETIDR) . . . . . | 1313 |
| 38.4.6 | DP data link protocol identification register (DP_DLPIDR) . . . . . | 1313 |
| 38.4.7 | DP resend register (DP_RESENR) . . . . . | 1314 |
| 38.4.8 | DP access port select register (DP_SELECTR) . . . . . | 1314 |
| 38.4.9 | DP read buffer register (DP_BUFFR) . . . . . | 1315 |
| 38.4.10 | DP target identification register (DP_TARGETSELR) . . . . . | 1315 |
| 38.4.11 | DP register map and reset values . . . . . | 1316 |
| 38.5 | Access ports . . . . . | 1317 |
| 38.5.1 | AP control/status word register (AP_CSWR) . . . . . | 1321 |
| 38.5.2 | AP transfer address register (AP_TAR) . . . . . | 1322 |
| 38.5.3 | AP data read/write register (AP_DRWR) . . . . . | 1322 |
| 38.5.4 | AP banked data registers x (AP_BDxR) . . . . . | 1323 |
| 38.5.5 | AP base address register (AP_BASER) . . . . . | 1323 |
| 38.5.6 | AP identification register (AP_IDR) . . . . . | 1324 |
| 38.5.7 | AP register map and reset values . . . . . | 1324 |
| 38.6 | Data watchpoint and trace unit (DWT) . . . . . | 1325 |
| 38.6.1 | DWT control register (DWT_CTRLR) . . . . . | 1326 |
| 38.6.2 | DWT cycle count register (DWT_CYCCNTR) . . . . . | 1328 |
| 38.6.3 | DWT CPI count register (DWT_CPICNTR) . . . . . | 1328 |
| 38.6.4 | DWT exception count register (DWT_EXCCNTR) . . . . . | 1328 |
| 38.6.5 | DWT sleep count register (DWT_SLP CNTR) . . . . . | 1329 |
| 38.6.6 | DWT LSU count register (DWT_LSUCNTR) . . . . . | 1329 |
| 38.6.7 | DWT fold count register (DWT_FOLDCNTR) . . . . . | 1329 |
| 38.6.8 | DWT program counter sample register (DWT_PCSR) . . . . . | 1330 |
| 38.6.9 | DWT comparator register x (DWT_COMPxR) . . . . . | 1330 |
| 38.6.10 | DWT mask register x (DWT_MASKxR) . . . . . | 1330 |
| 38.6.11 | DWT function register x (DWT_FUNCTxR) . . . . . | 1331 |
| 38.6.12 | DWT CoreSight peripheral identity register 4 (DWT_PIDR4) . . . . . | 1332 |
| 38.6.13 | DWT CoreSight peripheral identity register 0 (DWT_PIDR0) . . . . . | 1332 |
| 38.6.14 | DWT CoreSight peripheral identity register 1 (DWT_PIDR1) . . . . . | 1333 |
| 38.6.15 | DWT CoreSight peripheral identity register 2 (DWT_PIDR2) . . . . . | 1333 |
| 38.6.16 | DWT CoreSight peripheral identity register 3 (DWT_PIDR3) . . . . . | 1334 |
| 38.6.17 | DWT CoreSight component identity register 0 (DWT_CIDR0) . . . . . | 1334 |
| 38.6.18 | DWT CoreSight peripheral identity register 1 (DWT_CIDR1) . . . . . | 1334 |
| 38.6.19 | DWT CoreSight component identity register 2 (DWT_CIDR2) . . . . . | 1335 |
| 38.6.20 | DWT CoreSight component identity register 3 (DWT_CIDR3) . . . . . | 1335 |
| 38.6.21 | DWT register map . . . . . | 1336 |
| 38.7 | Cross trigger interface (CTI) and cross trigger matrix (CTM) . . . . . | 1338 |
| 38.7.1 | CTI registers . . . . . | 1342 |
| 38.8 | CPU1 ROM table . . . . . | 1358 |
| 38.8.1 | CPU1 ROM memory type register (ROM_MEMTYPE) . . . . . | 1360 |
| 38.8.2 | CPU1 ROM CoreSight peripheral identity register 4 (ROM_PIDR4) . . . . . | 1361 |
| 38.8.3 | CPU1 ROM CoreSight peripheral identity register 0 (ROM_PIDR0) . . . . . | 1361 |
| 38.8.4 | CPU1 ROM CoreSight peripheral identity register 1 (ROM_PIDR1) . . . . . | 1362 |
| 38.8.5 | CPU1 ROM CoreSight peripheral identity register 2 (ROM_PIDR2) . . . . . | 1362 |
| 38.8.6 | CPU1 ROM CoreSight peripheral identity register 3 (ROM_PIDR3) . . . . . | 1363 |
| 38.8.7 | CPU1 ROM CoreSight component identity register 0 (ROM_CIDR0) . . . . . | 1363 |
| 38.8.8 | CPU1 ROM CoreSight peripheral identity register 1 (ROM_CIDR1) . . . . . | 1364 |
| 38.8.9 | CPU1 ROM CoreSight component identity register 2 (ROM_CIDR2) . . . . . | 1364 |
| 38.8.10 | CPU1 ROM CoreSight component identity register 3 (ROM_CIDR3) . . . . . | 1365 |
| 38.8.11 | CPU1 ROM table register map . . . . . | 1365 |
| 38.9 | CPU1 breakpoint unit (FPB) . . . . . | 1366 |
| 38.9.1 | FPB control register (FPB_CTRLR) . . . . . | 1366 |
| 38.9.2 | FPB remap register (FPB_REMAPR) . . . . . | 1367 |
| 38.9.3 | FPB comparator register x (FPB_COMPxR) . . . . . | 1367 |
| 38.9.4 | FPB CoreSight peripheral identity register 4 (FPB_PIDR4) . . . . . | 1368 |
| 38.9.5 | FPB CoreSight peripheral identity register 0 (FPB_PIDR0) . . . . . | 1369 |
| 38.9.6 | FPB CoreSight peripheral identity register 1 (FPB_PIDR1) . . . . . | 1369 |
| 38.9.7 | FPB CoreSight peripheral identity register 2 (FPB_PIDR2) . . . . . | 1370 |
| 38.9.8 | FPB CoreSight peripheral identity register 3 (FPB_PIDR3) . . . . . | 1370 |
| 38.9.9 | FPB CoreSight component identity register 0 (FPB_CIDR0) . . . . . | 1371 |
| 38.9.10 | FPB CoreSight peripheral identity register 1 (FPB_CIDR1) . . . . . | 1371 |
| 38.9.11 | FPB CoreSight component identity register 2 (FPB_CIDR2) . . . . . | 1372 |
| 38.9.12 | FPB CoreSight component identity register 3 (FPB_CIDR3) . . . . . | 1372 |
| 38.9.13 | CPU1 FPB register map . . . . . | 1372 |
| 38.10 | CPU1 instrumentation trace macrocell (ITM) . . . . . | 1374 |
| 38.10.1 | ITM stimulus register x (ITM_STIMRx) | 1374 |
| 38.10.2 | ITM trace enable register (ITM_TER) | 1375 |
| 38.10.3 | ITM trace privilege register (ITM_TPR) | 1375 |
| 38.10.4 | ITM trace control register (ITM_TCR) | 1376 |
| 38.10.5 | ITM CoreSight peripheral identity register 4 (ITM_PIDR4) | 1377 |
| 38.10.6 | ITM CoreSight peripheral identity register 0 (ITM_PIDR0) | 1377 |
| 38.10.7 | ITM CoreSight peripheral identity register 1 (ITM_PIDR1) | 1378 |
| 38.10.8 | ITM CoreSight peripheral identity register 2 (ITM_PIDR2) | 1378 |
| 38.10.9 | ITM CoreSight peripheral identity register 3 (ITM_PIDR3) | 1379 |
| 38.10.10 | ITM CoreSight component identity register 0 (ITM_CIDR0) | 1379 |
| 38.10.11 | ITM CoreSight peripheral identity register 1 (ITM_CIDR1) | 1380 |
| 38.10.12 | ITM CoreSight component identity register 2 (ITM_CIDR2) | 1380 |
| 38.10.13 | ITM CoreSight component identity register 3 (ITM_CIDR3) | 1381 |
| 38.10.14 | CPU1 ITM register map | 1381 |
| 38.11 | CPU1 trace port interface unit (TPIU) | 1382 |
| 38.11.1 | TPIU supported port size register (TPIU_SSPSR) | 1383 |
| 38.11.2 | TPIU current port size register (TPIU_CSPSR) | 1383 |
| 38.11.3 | TPIU asynchronous clock prescaler register (TPIU_ACPR) | 1383 |
| 38.11.4 | TPIU selected pin protocol register (TPIU_SPPR) | 1384 |
| 38.11.5 | TPIU formatter and flush status register (TPIU_FFSR) | 1384 |
| 38.11.6 | TPIU formatter and flush control register (TPIU_FFCR) | 1385 |
| 38.11.7 | TPIU formatter synchronization counter register (TPIU_FSCR) | 1386 |
| 38.11.8 | TPIU claim tag set register (TPIU_CLAIMSETR) | 1386 |
| 38.11.9 | TPIU claim tag clear register (TPIU_CLAIMCLR) | 1387 |
| 38.11.10 | TPIU device configuration register (TPIU_DEVIDR) | 1387 |
| 38.11.11 | TPIU device type identifier register (TPIU_DEVTYPE) | 1388 |
| 38.11.12 | TPIU CoreSight peripheral identity register 4 (TPIU_PIDR4) | 1388 |
| 38.11.13 | TPIU CoreSight peripheral identity register 0 (TPIU_PIDR0) | 1389 |
| 38.11.14 | TPIU CoreSight peripheral identity register 1 (TPIU_PIDR1) | 1389 |
| 38.11.15 | TPIU CoreSight peripheral identity register 2 (TPIU_PIDR2) | 1390 |
| 38.11.16 | TPIU CoreSight peripheral identity register 3 (TPIU_PIDR3) | 1390 |
| 38.11.17 | TPIU CoreSight component identity register 0 (TPIU_CIDR0) | 1391 |
| 38.11.18 | TPIU CoreSight peripheral identity register 1 (TPIU_CIDR1) | 1391 |
| 38.11.19 | TPIU CoreSight component identity register 2 (TPIU_CIDR2) | 1392 |
| 38.11.20 | TPIU CoreSight component identity register 3 (TPIU_CIDR3) | 1392 |
| 38.11.21 | CPU 1 TPIU register map | 1392 |
| 38.12 | Microcontroller debug unit (DBGMCU) | 1394 |
| 38.12.1 | DBGMCU identity code register (DBGMCU_IDCODER) . . . . . | 1395 |
| 38.12.2 | DBGMCU configuration register (DBGMCU_CR) . . . . . | 1395 |
| 38.12.3 | DBGMCU CPU1 APB1 peripheral freeze register 1 (DBGMCU_APB1FZR1) . . . . . | 1396 |
| 38.12.4 | DBGMCU CPU2 APB1 peripheral freeze register 1 (DBGMCU_C2APB1FZR1) . . . . . | 1397 |
| 38.12.5 | DBGMCU CPU1 APB1 peripheral freeze register 2 (DBGMCU_APB1FZR2) . . . . . | 1398 |
| 38.12.6 | DBGMCU CPU2 APB1 peripheral freeze register 2 (DBGMCU_C2APB1FZR2) . . . . . | 1398 |
| 38.12.7 | DBGMCU CPU1 APB2 peripheral freeze register (DBGMCU_APB2FZR) . . . . . | 1399 |
| 38.12.8 | DBGMCU CPU2 APB2 peripheral freeze register (DBGMCU_C2APB2FZR) . . . . . | 1400 |
| 38.12.9 | DBGMCU register map . . . . . | 1400 |
| 38.13 | CPU2 ROM tables . . . . . | 1402 |
| 38.13.1 | CPU2 ROM1 memory type register (C2ROM1_MEMTYPER) . . . . . | 1403 |
| 38.13.2 | CPU2 ROM1 CoreSight peripheral identity register 4 (C2ROM1_PIDR4) . . . . . | 1404 |
| 38.13.3 | CPU2 ROM1 CoreSight peripheral identity register 0 (C2ROM1_PIDR0) . . . . . | 1404 |
| 38.13.4 | CPU2 ROM1 CoreSight peripheral identity register 1 (C2ROM1_PIDR1) . . . . . | 1405 |
| 38.13.5 | CPU2 ROM1 CoreSight peripheral identity register 2 (C2ROM1_PIDR2) . . . . . | 1405 |
| 38.13.6 | CPU2 ROM1 CoreSight peripheral identity register 3 (C2ROM1_PIDR3) . . . . . | 1406 |
| 38.13.7 | CPU2 ROM1 CoreSight component identity register 0 (C2ROM1_CIDR0) . . . . . | 1406 |
| 38.13.8 | CPU2 ROM1 CoreSight peripheral identity register 1 (C2ROM1_CIDR1) . . . . . | 1407 |
| 38.13.9 | CPU2 ROM1 CoreSight component identity register 2 (C2ROM1_CIDR2) . . . . . | 1407 |
| 38.13.10 | CPU2 ROM1 CoreSight component identity register 3 (C2ROM1_CIDR3) . . . . . | 1408 |
| 38.13.11 | CPU2 ROM1 register map . . . . . | 1408 |
| 38.13.12 | CPU2 ROM2 memory type register (C2ROM2_MEMTYPER) . . . . . | 1409 |
| 38.13.13 | CPU2 ROM2 CoreSight peripheral identity register 4 (C2ROM2_PIDR4) . . . . . | 1409 |
| 38.13.14 | CPU2 ROM2 CoreSight peripheral identity register 0 (C2ROM2_PIDR0) . . . . . | 1410 |
| 38.13.15 CPU2 ROM2 CoreSight peripheral identity register 1 (C2ROM2_PIDR1) . . . . . | 1410 |
| 38.13.16 CPU2 ROM2 CoreSight peripheral identity register 2 (C2ROM2_PIDR2) . . . . . | 1411 |
| 38.13.17 CPU2 ROM2 CoreSight peripheral identity register 3 (C2ROM2_PIDR3) . . . . . | 1411 |
| 38.13.18 CPU2 ROM2 CoreSight component identity register 0 (C2ROM2_CIDR0) . . . . . | 1412 |
| 38.13.19 CPU2 ROM2 CoreSight peripheral identity register 1 (C2ROM2_CIDR1) . . . . . | 1412 |
| 38.13.20 CPU2 ROM2 CoreSight component identity register 2 (C2ROM2_CIDR2) . . . . . | 1413 |
| 38.13.21 CPU2 ROM2 CoreSight component identity register 3 (C2ROM2_CIDR3) . . . . . | 1413 |
| 38.13.22 CPU2 ROM2 register map . . . . . | 1413 |
| 38.14 CPU2 breakpoint unit (BPU) . . . . . | 1415 |
| 38.14.1 BPU control register (BPU_CTRLR) . . . . . | 1415 |
| 38.14.2 BPU remap register (BPU_REMAPR) . . . . . | 1415 |
| 38.14.3 BPU comparator register x (BPU_COMPxR) . . . . . | 1416 |
| 38.14.4 BPU CoreSight peripheral identity register 4 (BPU_PIDR4) . . . . . | 1417 |
| 38.14.5 BPU CoreSight peripheral identity register 0 (BPU_PIDR0) . . . . . | 1417 |
| 38.14.6 BPU CoreSight peripheral identity register 1 (BPU_PIDR1) . . . . . | 1418 |
| 38.14.7 BPU CoreSight peripheral identity register 2 (BPU_PIDR2) . . . . . | 1418 |
| 38.14.8 BPU CoreSight peripheral identity register 3 (BPU_PIDR3) . . . . . | 1419 |
| 38.14.9 BPU CoreSight component identity register 0 (BPU_CIDR0) . . . . . | 1419 |
| 38.14.10 BPU CoreSight peripheral identity register 1 (BPU_CIDR1) . . . . . | 1420 |
| 38.14.11 BPU CoreSight component identity register 2 (BPU_CIDR2) . . . . . | 1420 |
| 38.14.12 BPU CoreSight component identity register 3 (BPU_CIDR3) . . . . . | 1421 |
| 38.14.13 CPU2 BPU register map . . . . . | 1421 |
| 38.15 References . . . . . | 1422 |
| 39 Device electronic signature . . . . . | 1423 |
| 39.1 Device electronic signature registers . . . . . | 1423 |
| 39.1.1 Unique device ID register (UID) . . . . . | 1423 |
| 39.1.2 FLASH size data register (FLASHSIZE) . . . . . | 1424 |
| 39.1.3 Package data register (PKG) . . . . . | 1425 |
| 39.1.4 IEEE 64-bit unique device ID register (UID64) . . . . . | 1425 |
| 40 Important security notice . . . . . | 1427 |
41 Revision history ..... 1428
List of tables
Table 1. Device boot mode . . . . . 64
Table 2. SRAM erase conditions . . . . . 67
Table 3. Memory security and privilege access . . . . . 70
Table 4. Memory map and peripheral register boundary addresses . . . . . 74
Table 5. GTZC internal signals . . . . . 81
Table 6. Memory access error generation . . . . . 83
Table 7. Peripheral access error generation . . . . . 84
Table 8. TZSC privileged MPCWMn register memory allocation . . . . . 86
Table 9. GTZC TZSC register map and reset values . . . . . 93
Table 10. TZIC register map and reset values . . . . . 98
Table 11. Flash memory - Single bank organization . . . . . 100
Table 12. Number of wait states according to flash clock (HCLK3) frequency . . . . . 102
Table 13. Page erase overview . . . . . 107
Table 14. Mass erase overview . . . . . 108
Table 15. Errors in page-based row programming . . . . . 113
Table 16. Option bytes organization . . . . . 114
Table 17. Option loading control . . . . . 117
Table 18. Flash memory readout protection status . . . . . 119
Table 19. RDP regression from level 1 to level 0 and memory erase . . . . . 121
Table 20. Access status versus protection level and execution modes . . . . . 122
Table 23. Flash interrupt requests . . . . . 128
Table 25. Flash interface register map and reset values . . . . . 152
Table 26. Sub-GHz internal input/output signals . . . . . 155
Table 27. Sub-GHz radio transmit high output power . . . . . 157
Table 28. FSK mode intermediate frequencies . . . . . 158
Table 29. LoRa mode intermediate frequencies . . . . . 159
Table 30. Spreading factor, chips/symbol and LoRa SNR . . . . . 161
Table 31. LoRa bandwidth setting . . . . . 161
Table 32. Coding rate and overhead ratio . . . . . 162
Table 33. Operation mode transition BUSY switching time . . . . . 174
Table 34. Command structure . . . . . 175
Table 35. PA optimal setting and operating modes . . . . . 184
Table 36. Recommended CAD configuration settings . . . . . 186
Table 37. IRQ bit mapping and definition . . . . . 196
Table 38. Image calibration for ISM bands . . . . . 199
Table 39. Command format Set_TcxoMode() . . . . . 201
Table 40. RegTcxoTrim and Timeout bytes definition . . . . . 202
Table 41. Sub-GHz radio SPI commands overview . . . . . 202
Table 42. SUBGHZ register map and reset values . . . . . 225
Table 43. PVM features . . . . . 235
Table 44. Low-power mode summary . . . . . 244
Table 45. Functionalities depending on system operating mode . . . . . 245
Table 46. MCU and sub-GHz radio operating modes . . . . . 247
Table 47. LPRun . . . . . 249
Table 48. CPU wake-up versus system operating mode . . . . . 251
Table 49. Sleep mode . . . . . 252
Table 50. LPSleep . . . . . 253
Table 51. Stop 0 mode . . . . . 255
| Table 52. | Stop 1 mode . . . . . | 256 |
| Table 53. | Stop 2 mode . . . . . | 258 |
| Table 54. | Standby mode . . . . . | 260 |
| Table 55. | Shutdown mode . . . . . | 261 |
| Table 56. | PWR register map and reset values . . . . . | 281 |
| Table 57. | Clock source stabilization times . . . . . | 294 |
| Table 58. | Clock source frequency . . . . . | 295 |
| Table 59. | SPI2S2 I2S clock PLL configurations . . . . . | 296 |
| Table 60. | Sub-GHz radio SPI clock configurations . . . . . | 297 |
| Table 61. | Peripheral clock enable . . . . . | 301 |
| Table 62. | Low-power debug configurations . . . . . | 302 |
| Table 63. | RCC register map and reset values . . . . . | 359 |
| Table 64. | HSEM internal input/output signals . . . . . | 366 |
| Table 65. | Authorized AHB bus master IDs . . . . . | 371 |
| Table 66. | HSEM register map and reset values . . . . . | 377 |
| Table 67. | IPCC interface signals . . . . . | 380 |
| Table 68. | Bits used for the communication . . . . . | 381 |
| Table 69. | IPCC register map and reset values . . . . . | 392 |
| Table 70. | Port bit configurations . . . . . | 395 |
| Table 71. | GPIOA register map and reset values . . . . . | 420 |
| Table 72. | GPIOB register map and reset values . . . . . | 421 |
| Table 73. | GPIOC register map and reset values . . . . . | 422 |
| Table 74. | GPIOH register map and reset values . . . . . | 423 |
| Table 75. | SYSCFG register map and reset values . . . . . | 436 |
| Table 76. | STM32WL5x peripherals interconnect matrix . . . . . | 438 |
| Table 77. | DMA1 and DMA2 implementation . . . . . | 447 |
| Table 78. | DMA internal input/output signals . . . . . | 449 |
| Table 79. | Programmable data width and endian behavior (when PINC = MINC = 1) . . . . . | 456 |
| Table 80. | DMA interrupt requests . . . . . | 458 |
| Table 81. | DMA register map and reset values . . . . . | 469 |
| Table 82. | DMAMUX instantiation . . . . . | 473 |
| Table 83. | DMAMUX1: assignment of multiplexer inputs to resources . . . . . | 474 |
| Table 84. | DMAMUX1: assignment of trigger inputs to resources . . . . . | 475 |
| Table 85. | DMAMUX1: assignment of synchronization inputs to resources . . . . . | 475 |
| Table 86. | DMAMUX signals . . . . . | 477 |
| Table 87. | DMAMUX interrupts . . . . . | 482 |
| Table 88. | DMAMUX register map and reset values . . . . . | 489 |
| Table 89. | CPU1 vector table . . . . . | 492 |
| Table 90. | CPU2 vector table . . . . . | 495 |
| Table 91. | EXTI pin overview . . . . . | 499 |
| Table 92. | EVG pin overview . . . . . | 499 |
| Table 93. | Wake-up interrupts . . . . . | 500 |
| Table 94. | EXTI event input configurations and register control . . . . . | 503 |
| Table 95. | Masking functionality . . . . . | 504 |
| Table 96. | EXTI register map sections . . . . . | 505 |
| Table 97. | EXTI register map and reset values . . . . . | 515 |
| Table 98. | CRC internal input/output signals . . . . . | 518 |
| Table 99. | CRC register map and reset values . . . . . | 523 |
| Table 100. | ADC input/output pins . . . . . | 526 |
| Table 101. | ADC internal input/output signals . . . . . | 527 |
| Table 102. | External triggers . . . . . | 527 |
| Table 103. | Latency between trigger and start of conversion . . . . . | 532 |
| Table 104. | Configuring the trigger polarity . . . . . | 539 |
| Table 105. | tSAR timings depending on resolution . . . . . | 541 |
| Table 106. | Analog watchdog comparison . . . . . | 550 |
| Table 107. | Analog watchdog 1 channel selection . . . . . | 550 |
| Table 108. | Maximum output results vs N and M. Grayed values indicates truncation . . . . . | 555 |
| Table 109. | ADC interrupts . . . . . | 560 |
| Table 110. | ADC register map and reset values . . . . . | 579 |
| Table 111. | DAC features . . . . . | 582 |
| Table 112. | DAC input/output pins . . . . . | 583 |
| Table 113. | DAC internal input/output signals . . . . . | 583 |
| Table 114. | DAC interconnection . . . . . | 583 |
| Table 115. | Sample and refresh timings . . . . . | 590 |
| Table 116. | Channel output modes summary . . . . . | 591 |
| Table 117. | Effect of low-power modes on DAC . . . . . | 594 |
| Table 118. | DAC interrupts . . . . . | 595 |
| Table 119. | DAC register map and reset values . . . . . | 603 |
| Table 120. | VREF buffer modes . . . . . | 605 |
| Table 121. | VREFBUF register map and reset values . . . . . | 607 |
| Table 122. | COMP1 input plus assignment . . . . . | 609 |
| Table 123. | COMP1 input minus assignment . . . . . | 610 |
| Table 124. | COMP2 input plus assignment . . . . . | 610 |
| Table 125. | COMP2 input minus assignment . . . . . | 610 |
| Table 126. | Comparator behavior in the low-power modes . . . . . | 614 |
| Table 127. | Interrupt control bits . . . . . | 614 |
| Table 128. | COMP register map and reset values . . . . . | 619 |
| Table 129. | RNG internal input/output signals . . . . . | 621 |
| Table 130. | RNG interrupt requests . . . . . | 628 |
| Table 131. | RNG configurations . . . . . | 629 |
| Table 132. | Configuration selection . . . . . | 630 |
| Table 133. | RNG register map and reset map . . . . . | 634 |
| Table 134. | AES internal input/output signals . . . . . | 636 |
| Table 135. | CTR mode initialization vector definition . . . . . | 652 |
| Table 136. | GCM last block definition . . . . . | 654 |
| Table 137. | Initialization of AES_IVRx registers in GCM mode . . . . . | 655 |
| Table 138. | Initialization of AES_IVRx registers in CCM mode . . . . . | 662 |
| Table 139. | Key endianness in AES_KEYRx registers (128- or 256-bit key length) . . . . . | 667 |
| Table 140. | AES interrupt requests . . . . . | 670 |
| Table 141. | Processing latency for ECB, CBC and CTR . . . . . | 670 |
| Table 142. | Processing latency for GCM and CCM (in clock cycles) . . . . . | 671 |
| Table 143. | AES register map and reset values . . . . . | 681 |
| Table 144. | Internal input/output signals . . . . . | 684 |
| Table 145. | PKA integer arithmetic functions list . . . . . | 685 |
| Table 146. | PKA prime field (Fp) elliptic curve functions list . . . . . | 685 |
| Table 147. | Montgomery parameter computation . . . . . | 690 |
| Table 148. | Modular addition . . . . . | 691 |
| Table 149. | Modular subtraction . . . . . | 691 |
| Table 150. | Montgomery multiplication . . . . . | 692 |
| Table 151. | Modular exponentiation (normal mode) . . . . . | 693 |
| Table 152. | Modular exponentiation (fast mode) . . . . . | 693 |
| Table 153. | Modular inversion . . . . . | 693 |
| Table 154. | Modular reduction . . . . . | 694 |
| Table 155. | Arithmetic addition . . . . . | 694 |
| Table 156. | Arithmetic subtraction . . . . . | 694 |
| Table 157. | Arithmetic multiplication . . . . . | 695 |
| Table 158. | Arithmetic comparison . . . . . | 695 |
| Table 159. | CRT exponentiation . . . . . | 696 |
| Table 160. | Point on elliptic curve Fp check . . . . . | 697 |
| Table 161. | ECC Fp scalar multiplication. . . . . | 697 |
| Table 162. | ECC Fp scalar multiplication (Fast Mode) . . . . . | 698 |
| Table 163. | ECDSA sign - Inputs. . . . . | 699 |
| Table 164. | ECDSA sign - Outputs . . . . . | 699 |
| Table 165. | Extended ECDSA sign (extra outputs) . . . . . | 700 |
| Table 166. | ECDSA verification (inputs) . . . . . | 700 |
| Table 167. | ECDSA verification (outputs) . . . . . | 700 |
| Table 168. | Family of supported curves for ECC operations . . . . . | 701 |
| Table 169. | Modular exponentiation computation times . . . . . | 703 |
| Table 170. | ECC scalar multiplication computation times . . . . . | 703 |
| Table 171. | ECDSA signature average computation times . . . . . | 703 |
| Table 172. | ECDSA verification average computation times . . . . . | 704 |
| Table 173. | Point on elliptic curve Fp check average computation times . . . . . | 704 |
| Table 174. | Montgomery parameters average computation times. . . . . | 704 |
| Table 175. | PKA interrupt requests . . . . . | 704 |
| Table 176. | PKA register map and reset values . . . . . | 708 |
| Table 177. | Behavior of timer outputs versus BRK/BRK2 inputs. . . . . | 751 |
| Table 178. | Break protection disarming conditions . . . . . | 753 |
| Table 179. | Counting direction versus encoder signals. . . . . | 759 |
| Table 180. | TIM1 internal trigger connection . . . . . | 776 |
| Table 181. | Output control bits for complementary OCx and OCxN channels with break feature. . . . . | 790 |
| Table 182. | TIM1 register map and reset values . . . . . | 807 |
| Table 183. | Counting direction versus encoder signals. . . . . | 843 |
| Table 184. | TIM2 internal trigger connection . . . . . | 861 |
| Table 185. | Output control bit for standard OCx channels. . . . . | 872 |
| Table 186. | TIM2 register map and reset values . . . . . | 879 |
| Table 187. | Break protection disarming conditions . . . . . | 904 |
| Table 188. | Output control bits for complementary OCx and OCxN channels with break feature (TIM16/17) . . . . . | 921 |
| Table 189. | TIM16/TIM17 register map and reset values . . . . . | 932 |
| Table 190. | STM32WL5x LPTIM features . . . . . | 934 |
| Table 191. | LPTIM input/output pins . . . . . | 935 |
| Table 192. | LPTIM internal signals . . . . . | 936 |
| Table 193. | LPTIM1 external trigger connections . . . . . | 936 |
| Table 194. | LPTIM2 external trigger connections . . . . . | 936 |
| Table 195. | LPTIM3 external trigger connections . . . . . | 937 |
| Table 196. | LPTIM1 input 1 connections . . . . . | 937 |
| Table 197. | LPTIM1 input 2 connections . . . . . | 937 |
| Table 198. | LPTIM2 input 1 connections . . . . . | 937 |
| Table 199. | LPTIM3 input 1 connections . . . . . | 937 |
| Table 200. | Prescaler division ratios . . . . . | 939 |
| Table 201. | Encoder counting scenarios . . . . . | 946 |
| Table 202. | Effect of low-power modes on the LPTIM. . . . . | 949 |
| Table 203. | Interrupt events. . . . . | 949 |
| Table 204. | LPTIM register map and reset values. . . . . | 960 |
| Table 205. | IWDG register map and reset values . . . . . | 971 |
| Table 206. | WWDG internal input/output signals. . . . . | 973 |
| Table 207. | WWDG register map and reset values . . . . . | 977 |
| Table 208. | RTC input/output pins . . . . . | 980 |
| Table 209. | RTC internal input/output signals . . . . . | 980 |
| Table 210. | RTC interconnection . . . . . | 981 |
| Table 211. | PC13 configuration . . . . . | 981 |
| Table 212. | RTC_OUT mapping . . . . . | 983 |
| Table 213. | Effect of low-power modes on RTC . . . . . | 996 |
| Table 214. | RTC pins functionality over modes . . . . . | 996 |
| Table 215. | Interrupt requests . . . . . | 997 |
| Table 216. | RTC register map and reset values . . . . . | 1019 |
| Table 217. | TAMP input/output pins . . . . . | 1023 |
| Table 218. | TAMP internal input/output signals . . . . . | 1023 |
| Table 219. | TAMP interconnection . . . . . | 1023 |
| Table 220. | Effect of low-power modes on TAMP . . . . . | 1026 |
| Table 221. | Interrupt requests . . . . . | 1026 |
| Table 222. | TAMP register map and reset values . . . . . | 1037 |
| Table 223. | I2C implementation . . . . . | 1039 |
| Table 224. | I2C input/output pins . . . . . | 1040 |
| Table 225. | I2C internal input/output signals . . . . . | 1041 |
| Table 226. | Comparison of analog and digital filters . . . . . | 1043 |
| Table 227. | I 2 C-bus and SMBus specification data setup and hold times . . . . . | 1045 |
| Table 228. | I2C configuration . . . . . | 1049 |
| Table 229. | I 2 C-bus and SMBus specification clock timings . . . . . | 1060 |
| Table 230. | Timing settings for f I2CCLK of 8 MHz . . . . . | 1070 |
| Table 231. | Timing settings for f I2CCLK of 16 MHz . . . . . | 1070 |
| Table 232. | SMBus timeout specifications . . . . . | 1072 |
| Table 233. | SMBus with PEC configuration . . . . . | 1074 |
| Table 234. | TIMEOUTA[11:0] for maximum t TIMEOUT of 25 ms . . . . . | 1075 |
| Table 235. | TIMEOUTB[11:0] for maximum t LOW:SEXT and t LOW:MEXT of 8 ms . . . . . | 1075 |
| Table 236. | TIMEOUTA[11:0] for maximum t IDLE of 50 µs . . . . . | 1075 |
| Table 237. | Effect of low-power modes to I2C . . . . . | 1085 |
| Table 238. | I2C interrupt requests . . . . . | 1085 |
| Table 239. | I2C register map and reset values . . . . . | 1101 |
| Table 240. | USART / LPUART features . . . . . | 1104 |
| Table 241. | USART/UART input/output pins . . . . . | 1107 |
| Table 242. | USART internal input/output signals . . . . . | 1107 |
| Table 243. | Noise detection from sampled data . . . . . | 1119 |
| Table 244. | Tolerance of the USART receiver when BRR [3:0] = 0000 . . . . . | 1122 |
| Table 245. | Tolerance of the USART receiver when BRR[3:0] is different from 0000 . . . . . | 1123 |
| Table 246. | USART frame formats . . . . . | 1128 |
| Table 247. | Effect of low-power modes on the USART . . . . . | 1151 |
| Table 248. | USART interrupt requests . . . . . | 1152 |
| Table 249. | USART register map and reset values . . . . . | 1186 |
| Table 250. | USART / LPUART features . . . . . | 1190 |
| Table 251. | LPUART input/output pins . . . . . | 1192 |
| Table 252. | LPUART internal input/output signals . . . . . | 1192 |
| Table 253. | Error calculation for programmed baud rates at lpuart_ker_ck_pres = 32.768 kHz . . . . . | 1202 |
| Table 254. | Error calculation for programmed baud rates at fCK = 100 MHz . . . . . | 1203 |
| Table 255. | Tolerance of the LPUART receiver . . . . . | 1204 |
| Table 257. | Effect of low-power modes on the LPUART . . . . . | 1215 |
| Table 258. | LPUART interrupt requests . . . . . | 1216 |
| Table 259. | LPUART register map and reset values . . . . . | 1239 |
| Table 260. | STM32WL5x SPI and SPI/I2S implementation. . . . . | 1242 |
| Table 261. | SPI interrupt requests . . . . . | 1267 |
| Table 262. | Audio-frequency precision using 48 MHz clock derived from HSE. . . . . | 1280 |
| Table 263. | I2S interrupt requests . . . . . | 1286 |
| Table 264. | SPI/I2S register map and reset values . . . . . | 1298 |
| Table 265. | JTAG/Serial-wire debug port pins. . . . . | 1301 |
| Table 266. | Single-wire trace port pins . . . . . | 1301 |
| Table 267. | Debug access control overview . . . . . | 1301 |
| Table 268. | JTAG-DP data registers . . . . . | 1305 |
| Table 269. | Packet request . . . . . | 1306 |
| Table 270. | ACK response. . . . . | 1307 |
| Table 271. | Data transfer. . . . . | 1307 |
| Table 272. | Debug port registers . . . . . | 1308 |
| Table 273. | DP register map and reset values . . . . . | 1316 |
| Table 274. | MEM-AP registers. . . . . | 1318 |
| Table 275. | AP register map and reset values. . . . . | 1324 |
| Table 276. | DWT register map and reset values . . . . . | 1336 |
| Table 277. | CPU2 CTI inputs. . . . . | 1338 |
| Table 278. | CPU2 CTI outputs. . . . . | 1339 |
| Table 279. | CPU1 CTI inputs. . . . . | 1339 |
| Table 280. | CPU1 CTI outputs. . . . . | 1339 |
| Table 281. | CTI register map and reset values . . . . . | 1355 |
| Table 282. | CPU1 ROM table . . . . . | 1359 |
| Table 283. | CPU1 ROM table register map and reset values . . . . . | 1365 |
| Table 284. | CPU1 FPB register map and reset values . . . . . | 1372 |
| Table 285. | CPU1 ITM register map and reset values. . . . . | 1381 |
| Table 286. | TPIU register map and reset values . . . . . | 1392 |
| Table 287. | DBGMCU register map and reset values . . . . . | 1400 |
| Table 288. | ROM1 table. . . . . | 1402 |
| Table 289. | ROM2 table. . . . . | 1402 |
| Table 290. | CPU2 processor ROM table register map and reset values. . . . . | 1408 |
| Table 291. | CPU2 ROM table register map and reset values . . . . . | 1413 |
| Table 292. | CPU2 BPU register map and reset values . . . . . | 1421 |
| Table 293. | Document revision history . . . . . | 1428 |
List of figures
| Figure 1. | System architecture . . . . . | 63 |
| Figure 2. | Memory protection example . . . . . | 69 |
| Figure 3. | Memory map . . . . . | 73 |
| Figure 4. | GTZC security architecture . . . . . | 80 |
| Figure 5. | GTZC block diagram. . . . . | 81 |
| Figure 6. | Memory protection control water mark . . . . . | 85 |
| Figure 7. | Sequential 16 bits instructions execution . . . . . | 104 |
| Figure 8. | Changing the RDP level . . . . . | 122 |
| Figure 9. | Sub-GHz radio system block diagram . . . . . | 155 |
| Figure 10. | High output power PA. . . . . | 156 |
| Figure 11. | Low output power PA . . . . . | 157 |
| Figure 12. | LoRa packet frames format . . . . . | 163 |
| Figure 13. | Generic packet frames format . . . . . | 166 |
| Figure 14. | Sub-GHz RAM data buffer operation . . . . . | 168 |
| Figure 15. | Sub-GHz radio operating modes . . . . . | 170 |
| Figure 16. | Sub-GHz radio BUSY timing. . . . . | 174 |
| Figure 17. | Receiver listening mode timing . . . . . | 180 |
| Figure 18. | Power supply overview . . . . . | 228 |
| Figure 19. | Supply configurations . . . . . | 229 |
| Figure 20. | Brownout reset waveform . . . . . | 234 |
| Figure 21. | PVD thresholds . . . . . | 235 |
| Figure 22. | EOL thresholds . . . . . | 236 |
| Figure 23. | Radio busy management . . . . . | 237 |
| Figure 24. | CPU2 boot options . . . . . | 239 |
| Figure 25. | CPUs low-power modes possible transitions . . . . . | 243 |
| Figure 26. | Simplified diagram of the reset circuit. . . . . | 284 |
| Figure 27. | Clock tree . . . . . | 288 |
| Figure 28. | HSE32 clock sources . . . . . | 289 |
| Figure 29. | HSE32 TCXO control . . . . . | 290 |
| Figure 30. | LSE clock sources . . . . . | 293 |
| Figure 31. | Frequency measurement with TIM16 in capture mode. . . . . | 299 |
| Figure 32. | Frequency measurement with TIM17 in capture mode. . . . . | 299 |
| Figure 33. | HSEM block diagram . . . . . | 366 |
| Figure 34. | Procedure state diagram . . . . . | 367 |
| Figure 35. | Interrupt state diagram . . . . . | 370 |
| Figure 36. | IPCC block diagram . . . . . | 380 |
| Figure 37. | IPCC Simplex channel mode transfer timing . . . . . | 381 |
| Figure 38. | IPCC Simplex - Send procedure state diagram . . . . . | 382 |
| Figure 39. | IPCC Simplex - Receive procedure state diagram . . . . . | 383 |
| Figure 40. | IPCC Half-duplex channel mode transfer timing. . . . . | 384 |
| Figure 41. | IPCC Half-duplex - Send procedure state diagram . . . . . | 384 |
| Figure 42. | IPCC Half-duplex - Receive procedure state diagram . . . . . | 385 |
| Figure 43. | Basic structure of a standard I/O port bit . . . . . | 394 |
| Figure 44. | Basic structure of a 5V-tolerant I/O port bit. . . . . | 395 |
| Figure 45. | Input floating/pull-up/pull-down configurations . . . . . | 399 |
| Figure 46. | Output configuration . . . . . | 400 |
| Figure 47. | Alternate function configuration . . . . . | 400 |
| Figure 48. | High impedance analog configuration . . . . . | 401 |
| Figure 49. | DMA block diagram ..... | 448 |
| Figure 50. | DMAMUX block diagram ..... | 476 |
| Figure 51. | Synchronization mode of the DMAMUX request line multiplexer channel ..... | 480 |
| Figure 52. | Event generation of the DMA request line multiplexer channel ..... | 480 |
| Figure 53. | Interrupt block diagram ..... | 492 |
| Figure 54. | EXTI block diagram ..... | 499 |
| Figure 55. | Configurable event trigger logic CPU wake-up ..... | 503 |
| Figure 56. | Direct event trigger logic CPU wake-up ..... | 504 |
| Figure 57. | CRC calculation unit block diagram ..... | 518 |
| Figure 58. | ADC block diagram ..... | 526 |
| Figure 59. | ADC calibration ..... | 529 |
| Figure 60. | Calibration factor forcing ..... | 529 |
| Figure 61. | Enabling/disabling the ADC ..... | 530 |
| Figure 62. | ADC clock scheme ..... | 531 |
| Figure 63. | ADC connectivity ..... | 533 |
| Figure 64. | Analog-to-digital conversion time ..... | 538 |
| Figure 65. | ADC conversion timings ..... | 538 |
| Figure 66. | Stopping an ongoing conversion ..... | 539 |
| Figure 67. | Single conversions of a sequence, software trigger ..... | 542 |
| Figure 68. | Continuous conversion of a sequence, software trigger ..... | 542 |
| Figure 69. | Single conversions of a sequence, hardware trigger ..... | 543 |
| Figure 70. | Continuous conversions of a sequence, hardware trigger ..... | 543 |
| Figure 71. | Data alignment and resolution (oversampling disabled: OVSE = 0) ..... | 544 |
| Figure 72. | Example of overrun (OVR) ..... | 545 |
| Figure 73. | Wait mode conversion (continuous mode, software trigger) ..... | 548 |
| Figure 74. | Behavior with WAIT = 0, AUTOFF = 1 ..... | 549 |
| Figure 75. | Behavior with WAIT = 1, AUTOFF = 1 ..... | 549 |
| Figure 76. | Analog watchdog guarded area ..... | 550 |
| Figure 77. | ADC_AWDx_OUT signal generation ..... | 552 |
| Figure 78. | ADC_AWDx_OUT signal generation (AWDx flag not cleared by software) ..... | 552 |
| Figure 79. | ADC_AWDx_OUT signal generation (on a single channel) ..... | 553 |
| Figure 80. | Analog watchdog threshold update ..... | 553 |
| Figure 81. | 20-bit to 16-bit result truncation ..... | 554 |
| Figure 82. | Numerical example with 5-bit shift and rounding ..... | 554 |
| Figure 83. | Triggered oversampling mode (TOVS bit = 1) ..... | 556 |
| Figure 84. | Temperature sensor and VREFINT channel block diagram ..... | 557 |
| Figure 85. | VBAT channel block diagram ..... | 559 |
| Figure 86. | DAC block diagram ..... | 582 |
| Figure 87. | Data registers in single DAC channel mode ..... | 584 |
| Figure 88. | Timing diagram for conversion with trigger disabled TEN = 0 ..... | 585 |
| Figure 89. | DAC LFSR register calculation algorithm ..... | 587 |
| Figure 90. | DAC conversion (SW trigger enabled) with LFSR wave generation ..... | 587 |
| Figure 91. | DAC triangle wave generation ..... | 588 |
| Figure 92. | DAC conversion (SW trigger enabled) with triangle wave generation ..... | 588 |
| Figure 93. | DAC sample and hold mode phase diagram ..... | 591 |
| Figure 94. | Comparator block diagram ..... | 609 |
| Figure 95. | Window mode ..... | 612 |
| Figure 96. | Comparator hysteresis ..... | 612 |
| Figure 97. | Comparator output blanking ..... | 613 |
| Figure 98. | RNG block diagram ..... | 621 |
| Figure 99. | NIST SP800-90B entropy source model ..... | 622 |
| Figure 100. | RNG initialization overview ..... | 625 |
| Figure 101. AES block diagram . . . . . | 636 |
| Figure 102. ECB encryption and decryption principle . . . . . | 638 |
| Figure 103. CBC encryption and decryption principle . . . . . | 639 |
| Figure 104. CTR encryption and decryption principle . . . . . | 640 |
| Figure 105. GCM encryption and authentication principle . . . . . | 641 |
| Figure 106. GMAC authentication principle . . . . . | 641 |
| Figure 107. CCM encryption and authentication principle . . . . . | 642 |
| Figure 108. Example of suspend mode management . . . . . | 646 |
| Figure 109. ECB encryption . . . . . | 647 |
| Figure 110. ECB decryption . . . . . | 647 |
| Figure 111. CBC encryption . . . . . | 648 |
| Figure 112. CBC decryption . . . . . | 648 |
| Figure 113. ECB/CBC encryption (Mode 1) . . . . . | 649 |
| Figure 114. ECB/CBC decryption (Mode 3) . . . . . | 650 |
| Figure 115. Message construction in CTR mode . . . . . | 651 |
| Figure 116. CTR encryption . . . . . | 652 |
| Figure 117. CTR decryption . . . . . | 652 |
| Figure 118. Message construction in GCM . . . . . | 654 |
| Figure 119. GCM authenticated encryption . . . . . | 655 |
| Figure 120. Message construction in GMAC mode . . . . . | 659 |
| Figure 121. GMAC authentication mode . . . . . | 659 |
| Figure 122. Message construction in CCM mode . . . . . | 660 |
| Figure 123. CCM mode authenticated encryption . . . . . | 662 |
| Figure 124. 128-bit block construction with respect to data swap . . . . . | 666 |
| Figure 125. DMA transfer of a 128-bit data block during input phase . . . . . | 668 |
| Figure 126. DMA transfer of a 128-bit data block during output phase . . . . . | 669 |
| Figure 127. PKA block diagram . . . . . | 684 |
| Figure 128. Advanced-control timer block diagram . . . . . | 711 |
| Figure 129. Counter timing diagram with prescaler division change from 1 to 2 . . . . . | 713 |
| Figure 130. Counter timing diagram with prescaler division change from 1 to 4 . . . . . | 713 |
| Figure 131. Counter timing diagram, internal clock divided by 1 . . . . . | 715 |
| Figure 132. Counter timing diagram, internal clock divided by 2 . . . . . | 715 |
| Figure 133. Counter timing diagram, internal clock divided by 4 . . . . . | 716 |
| Figure 134. Counter timing diagram, internal clock divided by N . . . . . | 716 |
| Figure 135. Counter timing diagram, update event when ARPE=0 (TIMx_ARR not preloaded) . . . . . | 717 |
| Figure 136. Counter timing diagram, update event when ARPE=1 (TIMx_ARR preloaded) . . . . . | 717 |
| Figure 137. Counter timing diagram, internal clock divided by 1 . . . . . | 719 |
| Figure 138. Counter timing diagram, internal clock divided by 2 . . . . . | 719 |
| Figure 139. Counter timing diagram, internal clock divided by 4 . . . . . | 720 |
| Figure 140. Counter timing diagram, internal clock divided by N . . . . . | 720 |
| Figure 141. Counter timing diagram, update event when repetition counter is not used . . . . . | 721 |
| Figure 142. Counter timing diagram, internal clock divided by 1, TIMx_ARR = 0x6 . . . . . | 722 |
| Figure 143. Counter timing diagram, internal clock divided by 2 . . . . . | 723 |
| Figure 144. Counter timing diagram, internal clock divided by 4, TIMx_ARR=0x36 . . . . . | 723 |
| Figure 145. Counter timing diagram, internal clock divided by N . . . . . | 724 |
| Figure 146. Counter timing diagram, update event with ARPE=1 (counter underflow) . . . . . | 724 |
| Figure 147. Counter timing diagram, Update event with ARPE=1 (counter overflow) . . . . . | 725 |
| Figure 148. Update rate examples depending on mode and TIMx_RCR register settings . . . . . | 726 |
| Figure 149. External trigger input block . . . . . | 727 |
| Figure 150. TIM1 ETR input circuitry . . . . . | 727 |
| Figure 151. Control circuit in normal mode, internal clock divided by 1 . . . . . | 728 |
| Figure 152. TI2 external clock connection example . . . . . | 729 |
| Figure 153. Control circuit in external clock mode 1 . . . . . | 730 |
| Figure 154. External trigger input block . . . . . | 730 |
| Figure 155. Control circuit in external clock mode 2 . . . . . | 731 |
| Figure 156. Capture/compare channel (example: channel 1 input stage) . . . . . | 732 |
| Figure 157. Capture/compare channel 1 main circuit . . . . . | 732 |
| Figure 158. Output stage of capture/compare channel (channel 1, idem ch. 2 and 3) . . . . . | 733 |
| Figure 159. Output stage of capture/compare channel (channel 4). . . . . | 733 |
| Figure 160. Output stage of capture/compare channel (channel 5, idem ch. 6) . . . . . | 734 |
| Figure 161. PWM input mode timing . . . . . | 736 |
| Figure 162. Output compare mode, toggle on OC1 . . . . . | 738 |
| Figure 163. Edge-aligned PWM waveforms (ARR=8) . . . . . | 739 |
| Figure 164. Center-aligned PWM waveforms (ARR=8). . . . . | 740 |
| Figure 165. Generation of 2 phase-shifted PWM signals with 50% duty cycle . . . . . | 742 |
| Figure 166. Combined PWM mode on channel 1 and 3 . . . . . | 743 |
| Figure 167. 3-phase combined PWM signals with multiple trigger pulses per period . . . . . | 744 |
| Figure 168. Complementary output with dead-time insertion . . . . . | 745 |
| Figure 169. Dead-time waveforms with delay greater than the negative pulse . . . . . | 745 |
| Figure 170. Dead-time waveforms with delay greater than the positive pulse. . . . . | 746 |
| Figure 171. Break and Break2 circuitry overview . . . . . | 748 |
| Figure 172. Various output behavior in response to a break event on BRK (OSSI = 1) . . . . . | 750 |
| Figure 173. PWM output state following BRK and BRK2 pins assertion (OSSI=1) . . . . . | 751 |
| Figure 174. PWM output state following BRK assertion (OSSI=0) . . . . . | 752 |
| Figure 175. Output redirection (BRK2 request not represented) . . . . . | 753 |
| Figure 176. Clearing TIMx OCxREF . . . . . | 754 |
| Figure 177. 6-step generation, COM example (OSSR=1) . . . . . | 755 |
| Figure 178. Example of one pulse mode. . . . . | 756 |
| Figure 179. Retriggerable one pulse mode . . . . . | 758 |
| Figure 180. Example of counter operation in encoder interface mode. . . . . | 759 |
| Figure 181. Example of encoder interface mode with TI1FP1 polarity inverted. . . . . | 760 |
| Figure 182. Measuring time interval between edges on 3 signals . . . . . | 761 |
| Figure 183. Example of Hall sensor interface . . . . . | 763 |
| Figure 184. Control circuit in reset mode . . . . . | 764 |
| Figure 185. Control circuit in Gated mode . . . . . | 765 |
| Figure 186. Control circuit in trigger mode . . . . . | 766 |
| Figure 187. Control circuit in external clock mode 2 + trigger mode . . . . . | 767 |
| Figure 188. General-purpose timer block diagram . . . . . | 811 |
| Figure 189. Counter timing diagram with prescaler division change from 1 to 2 . . . . . | 813 |
| Figure 190. Counter timing diagram with prescaler division change from 1 to 4 . . . . . | 813 |
| Figure 191. Counter timing diagram, internal clock divided by 1 . . . . . | 814 |
| Figure 192. Counter timing diagram, internal clock divided by 2 . . . . . | 815 |
| Figure 193. Counter timing diagram, internal clock divided by 4 . . . . . | 815 |
| Figure 194. Counter timing diagram, internal clock divided by N. . . . . | 816 |
| Figure 195. Counter timing diagram, Update event when ARPE=0 (TIMx_ARR not preloaded). . . . . | 816 |
| Figure 196. Counter timing diagram, Update event when ARPE=1 (TIMx_ARR preloaded). . . . . | 817 |
| Figure 197. Counter timing diagram, internal clock divided by 1 . . . . . | 818 |
| Figure 198. Counter timing diagram, internal clock divided by 2 . . . . . | 818 |
| Figure 199. Counter timing diagram, internal clock divided by 4 . . . . . | 819 |
| Figure 200. Counter timing diagram, internal clock divided by N. . . . . | 819 |
| Figure 201. Counter timing diagram, Update event . . . . . | 820 |
| Figure 202. Counter timing diagram, internal clock divided by 1, TIMx_ARR=0x6 . . . . . | 821 |
| Figure 203. Counter timing diagram, internal clock divided by 2 . . . . . | 822 |
| Figure 204. Counter timing diagram, internal clock divided by 4, TIMx_ARR=0x36 . . . . . | 822 |
| Figure 205. Counter timing diagram, internal clock divided by N . . . . . | 823 |
| Figure 206. Counter timing diagram, Update event with ARPE=1 (counter underflow) . . . . . | 823 |
| Figure 207. Counter timing diagram, Update event with ARPE=1 (counter overflow) . . . . . | 824 |
| Figure 208. Control circuit in normal mode, internal clock divided by 1 . . . . . | 825 |
| Figure 209. TI2 external clock connection example. . . . . | 825 |
| Figure 210. Control circuit in external clock mode 1 . . . . . | 826 |
| Figure 211. External trigger input block . . . . . | 827 |
| Figure 212. Control circuit in external clock mode 2 . . . . . | 828 |
| Figure 213. Capture/Compare channel (example: channel 1 input stage) . . . . . | 828 |
| Figure 214. Capture/Compare channel 1 main circuit . . . . . | 829 |
| Figure 215. Output stage of Capture/Compare channel (channel 1) . . . . . | 829 |
| Figure 216. PWM input mode timing . . . . . | 831 |
| Figure 217. Output compare mode, toggle on OC1 . . . . . | 833 |
| Figure 218. Edge-aligned PWM waveforms (ARR=8) . . . . . | 834 |
| Figure 219. Center-aligned PWM waveforms (ARR=8) . . . . . | 836 |
| Figure 220. Generation of 2 phase-shifted PWM signals with 50% duty cycle . . . . . | 837 |
| Figure 221. Combined PWM mode on channels 1 and 3 . . . . . | 838 |
| Figure 222. Clearing TIMx_OCxREF . . . . . | 839 |
| Figure 223. Example of one-pulse mode. . . . . | 840 |
| Figure 224. Retriggerable one-pulse mode . . . . . | 842 |
| Figure 225. Example of counter operation in encoder interface mode . . . . . | 843 |
| Figure 226. Example of encoder interface mode with TI1FP1 polarity inverted . . . . . | 844 |
| Figure 227. Control circuit in reset mode . . . . . | 845 |
| Figure 228. Control circuit in gated mode . . . . . | 846 |
| Figure 229. Control circuit in trigger mode . . . . . | 847 |
| Figure 230. Control circuit in external clock mode 2 + trigger mode . . . . . | 848 |
| Figure 231. Master/Slave timer example . . . . . | 849 |
| Figure 232. Master/slave connection example with 1 channel only timers . . . . . | 849 |
| Figure 233. Gating TIM2 with OC1REF of TIM1 . . . . . | 850 |
| Figure 234. Gating TIM2 with Enable of TIM1 . . . . . | 851 |
| Figure 235. Triggering TIM2 with update of TIM1 . . . . . | 852 |
| Figure 236. Triggering TIM2 with Enable of TIM1 . . . . . | 852 |
| Figure 237. TIM16/TIM17 block diagram . . . . . | 883 |
| Figure 238. Counter timing diagram with prescaler division change from 1 to 2 . . . . . | 885 |
| Figure 239. Counter timing diagram with prescaler division change from 1 to 4 . . . . . | 885 |
| Figure 240. Counter timing diagram, internal clock divided by 1 . . . . . | 887 |
| Figure 241. Counter timing diagram, internal clock divided by 2 . . . . . | 887 |
| Figure 242. Counter timing diagram, internal clock divided by 4 . . . . . | 888 |
| Figure 243. Counter timing diagram, internal clock divided by N . . . . . | 888 |
| Figure 244. Counter timing diagram, update event when ARPE=0 (TIMx_ARR not preloaded) . . . . . | 889 |
| Figure 245. Counter timing diagram, update event when ARPE=1 (TIMx_ARR preloaded) . . . . . | 889 |
| Figure 246. Update rate examples depending on mode and TIMx_RCR register settings . . . . . | 891 |
| Figure 247. Control circuit in normal mode, internal clock divided by 1 . . . . . | 892 |
| Figure 248. TI2 external clock connection example. . . . . | 892 |
| Figure 249. Control circuit in external clock mode 1 . . . . . | 893 |
| Figure 250. Capture/compare channel (example: channel 1 input stage) . . . . . | 894 |
| Figure 251. Capture/compare channel 1 main circuit . . . . . | 894 |
| Figure 252. Output stage of capture/compare channel (channel 1) . . . . . | 895 |
| Figure 253. Output compare mode, toggle on OC1 . . . . . | 898 |
| Figure 254. Edge-aligned PWM waveforms (ARR=8) . . . . . | 899 |
| Figure 255. | Complementary output with dead-time insertion. . . . . | 900 |
| Figure 256. | Dead-time waveforms with delay greater than the negative pulse. . . . . | 900 |
| Figure 257. | Dead-time waveforms with delay greater than the positive pulse. . . . . | 901 |
| Figure 258. | Output behavior in response to a break . . . . . | 903 |
| Figure 259. | Output redirection . . . . . | 905 |
| Figure 260. | 6-step generation, COM example (OSSR=1) . . . . . | 906 |
| Figure 261. | Example of one pulse mode . . . . . | 907 |
| Figure 262. | Low-power timer block diagram . . . . . | 935 |
| Figure 263. | Glitch filter timing diagram . . . . . | 939 |
| Figure 264. | LPTIM output waveform, single-counting mode configuration when repetition register content is different than zero (with PRELOAD = 1) . . . . . | 940 |
| Figure 265. | LPTIM output waveform, single-counting mode configuration and Set-once mode activated (WAVE bit is set). . . . . | 941 |
| Figure 266. | LPTIM output waveform, Continuous counting mode configuration . . . . . | 941 |
| Figure 267. | Waveform generation . . . . . | 943 |
| Figure 268. | Encoder mode counting sequence . . . . . | 947 |
| Figure 269. | Continuous counting mode when repetition register LPTIM_RCR different from zero (with PRELOAD = 1). . . . . | 948 |
| Figure 270. | IRTIM internal hardware connections with TIM16 and TIM17 . . . . . | 962 |
| Figure 271. | Independent watchdog block diagram . . . . . | 963 |
| Figure 272. | Watchdog block diagram . . . . . | 973 |
| Figure 273. | Window watchdog timing diagram . . . . . | 974 |
| Figure 274. | RTC block diagram . . . . . | 979 |
| Figure 275. | TAMP block diagram . . . . . | 1022 |
| Figure 276. | Block diagram . . . . . | 1040 |
| Figure 277. | I 2 C-bus protocol . . . . . | 1042 |
| Figure 278. | Setup and hold timings . . . . . | 1044 |
| Figure 279. | I2C initialization flow . . . . . | 1046 |
| Figure 280. | Data reception . . . . . | 1047 |
| Figure 281. | Data transmission . . . . . | 1048 |
| Figure 282. | Slave initialization flow . . . . . | 1051 |
| Figure 283. | Transfer sequence flow for I2C slave transmitter, NOSTRETCH = 0. . . . . | 1053 |
| Figure 284. | Transfer sequence flow for I2C slave transmitter, NOSTRETCH = 1. . . . . | 1054 |
| Figure 285. | Transfer bus diagrams for I2C slave transmitter (mandatory events only). . . . . | 1055 |
| Figure 286. | Transfer sequence flow for I2C slave receiver, NOSTRETCH = 0 . . . . . | 1056 |
| Figure 287. | Transfer sequence flow for I2C slave receiver, NOSTRETCH = 1 . . . . . | 1057 |
| Figure 288. | Transfer bus diagrams for I2C slave receiver (mandatory events only) . . . . . | 1057 |
| Figure 289. | Master clock generation . . . . . | 1059 |
| Figure 290. | Master initialization flow . . . . . | 1061 |
| Figure 291. | 10-bit address read access with HEAD10R = 0 . . . . . | 1061 |
| Figure 292. | 10-bit address read access with HEAD10R = 1 . . . . . | 1062 |
| Figure 293. | Transfer sequence flow for I2C master transmitter, N ≤ 255 bytes. . . . . | 1063 |
| Figure 294. | Transfer sequence flow for I2C master transmitter, N > 255 bytes . . . . . | 1064 |
| Figure 295. | Transfer bus diagrams for I2C master transmitter (mandatory events only) . . . . . | 1065 |
| Figure 296. | Transfer sequence flow for I2C master receiver, N ≤ 255 bytes . . . . . | 1067 |
| Figure 297. | Transfer sequence flow for I2C master receiver, N > 255 bytes. . . . . | 1068 |
| Figure 298. | Transfer bus diagrams for I2C master receiver (mandatory events only) . . . . . | 1069 |
| Figure 299. | Timeout intervals for \( t_{LOW:SEXT} \) , \( t_{LOW:MEXT} \) . . . . . | 1073 |
| Figure 300. | Transfer sequence flow for SMBus slave transmitter N bytes + PEC. . . . . | 1076 |
| Figure 301. | Transfer bus diagram for SMBus slave transmitter (SBC = 1) . . . . . | 1077 |
| Figure 302. | Transfer sequence flow for SMBus slave receiver N bytes + PEC . . . . . | 1078 |
| Figure 303. | Bus transfer diagrams for SMBus slave receiver (SBC = 1) . . . . . | 1079 |
| Figure 304. | Bus transfer diagrams for SMBus master transmitter . . . . . | 1080 |
| Figure 305. | Bus transfer diagrams for SMBus master receiver . . . . . | 1082 |
| Figure 306. | USART block diagram . . . . . | 1105 |
| Figure 307. | Word length programming . . . . . | 1108 |
| Figure 308. | Configurable stop bits . . . . . | 1110 |
| Figure 309. | TC/TXE behavior when transmitting . . . . . | 1113 |
| Figure 310. | Start bit detection when oversampling by 16 or 8 . . . . . | 1114 |
| Figure 311. | usart_ker_ck clock divider block diagram . . . . . | 1117 |
| Figure 312. | Data sampling when oversampling by 16 . . . . . | 1118 |
| Figure 313. | Data sampling when oversampling by 8 . . . . . | 1119 |
| Figure 314. | Mute mode using Idle line detection . . . . . | 1126 |
| Figure 315. | Mute mode using address mark detection . . . . . | 1127 |
| Figure 316. | Break detection in LIN mode (11-bit break length - LBDL bit is set) . . . . . | 1130 |
| Figure 317. | Break detection in LIN mode vs. Framing error detection. . . . . | 1131 |
| Figure 318. | USART example of synchronous master transmission. . . . . | 1132 |
| Figure 319. | USART data clock timing diagram in synchronous master mode (M bits = 00) . . . . . | 1132 |
| Figure 320. | USART data clock timing diagram in synchronous master mode (M bits = 01) . . . . . | 1133 |
| Figure 321. | USART data clock timing diagram in synchronous slave mode (M bits = 00) . . . . . | 1134 |
| Figure 322. | ISO 7816-3 asynchronous protocol . . . . . | 1136 |
| Figure 323. | Parity error detection using the 1.5 stop bits . . . . . | 1138 |
| Figure 324. | IrDA SIR ENDEC block diagram. . . . . | 1142 |
| Figure 325. | IrDA data modulation (3/16) - normal mode . . . . . | 1142 |
| Figure 326. | Transmission using DMA . . . . . | 1144 |
| Figure 327. | Reception using DMA . . . . . | 1145 |
| Figure 328. | Hardware flow control between 2 USARTs . . . . . | 1145 |
| Figure 329. | RS232 RTS flow control . . . . . | 1146 |
| Figure 330. | RS232 CTS flow control . . . . . | 1147 |
| Figure 331. | Wake-up event verified (wake-up event = address match, FIFO disabled) . . . . . | 1150 |
| Figure 332. | Wake-up event not verified (wake-up event = address match, FIFO disabled) . . . . . | 1150 |
| Figure 333. | LPUART block diagram . . . . . | 1191 |
| Figure 334. | LPUART word length programming . . . . . | 1194 |
| Figure 335. | Configurable stop bits . . . . . | 1196 |
| Figure 336. | TC/TXE behavior when transmitting . . . . . | 1198 |
| Figure 337. | lpuart_ker_ck clock divider block diagram . . . . . | 1201 |
| Figure 338. | Mute mode using Idle line detection . . . . . | 1205 |
| Figure 339. | Mute mode using address mark detection . . . . . | 1206 |
| Figure 340. | Transmission using DMA . . . . . | 1208 |
| Figure 341. | Reception using DMA . . . . . | 1209 |
| Figure 342. | Hardware flow control between 2 LPUARTs . . . . . | 1210 |
| Figure 343. | RS232 RTS flow control . . . . . | 1210 |
| Figure 344. | RS232 CTS flow control . . . . . | 1211 |
| Figure 345. | Wake-up event verified (wake-up event = address match, FIFO disabled) . . . . . | 1214 |
| Figure 346. | Wake-up event not verified (wake-up event = address match, FIFO disabled) . . . . . | 1214 |
| Figure 347. SPI block diagram. . . . . | 1243 |
| Figure 348. Full-duplex single master/ single slave application. . . . . | 1244 |
| Figure 349. Half-duplex single master/ single slave application . . . . . | 1245 |
| Figure 350. Simplex single master/single slave application (master in transmit-only/ slave in receive-only mode) . . . . . | 1246 |
| Figure 351. Master and three independent slaves. . . . . | 1247 |
| Figure 352. Multimaster application. . . . . | 1248 |
| Figure 353. Hardware/software slave select management . . . . . | 1249 |
| Figure 354. Data clock timing diagram . . . . . | 1250 |
| Figure 355. Data alignment when data length is not equal to 8-bit or 16-bit . . . . . | 1251 |
| Figure 356. Packing data in FIFO for transmission and reception. . . . . | 1255 |
| Figure 357. Master full-duplex communication . . . . . | 1258 |
| Figure 358. Slave full-duplex communication . . . . . | 1259 |
| Figure 359. Master full-duplex communication with CRC . . . . . | 1260 |
| Figure 360. Master full-duplex communication in packed mode . . . . . | 1261 |
| Figure 361. NSSP pulse generation in Motorola SPI master mode. . . . . | 1264 |
| Figure 362. TI mode transfer . . . . . | 1265 |
| Figure 363. I2S block diagram . . . . . | 1268 |
| Figure 364. I 2 S Philips protocol waveforms (16/32-bit full accuracy). . . . . | 1270 |
| Figure 365. I 2 S Philips standard waveforms (24-bit frame) . . . . . | 1270 |
| Figure 366. Transmitting 0x8EAA33 . . . . . | 1271 |
| Figure 367. Receiving 0x8EAA33 . . . . . | 1271 |
| Figure 368. I 2 S Philips standard (16-bit extended to 32-bit packet frame) . . . . . | 1271 |
| Figure 369. Example of 16-bit data frame extended to 32-bit channel frame . . . . . | 1271 |
| Figure 370. MSB Justified 16-bit or 32-bit full-accuracy length . . . . . | 1272 |
| Figure 371. MSB justified 24-bit frame length . . . . . | 1272 |
| Figure 372. MSB justified 16-bit extended to 32-bit packet frame . . . . . | 1273 |
| Figure 373. LSB justified 16-bit or 32-bit full-accuracy . . . . . | 1273 |
| Figure 374. LSB justified 24-bit frame length. . . . . | 1273 |
| Figure 375. Operations required to transmit 0x3478AE. . . . . | 1274 |
| Figure 376. Operations required to receive 0x3478AE . . . . . | 1274 |
| Figure 377. LSB justified 16-bit extended to 32-bit packet frame . . . . . | 1274 |
| Figure 378. Example of 16-bit data frame extended to 32-bit channel frame . . . . . | 1275 |
| Figure 379. PCM standard waveforms (16-bit) . . . . . | 1275 |
| Figure 380. PCM standard waveforms (16-bit extended to 32-bit packet frame). . . . . | 1276 |
| Figure 381. Start sequence in master mode . . . . . | 1277 |
| Figure 382. Audio sampling frequency definition . . . . . | 1278 |
| Figure 383. I 2 S clock generator architecture . . . . . | 1278 |
| Figure 384. Block diagram of debug support infrastructure . . . . . | 1300 |
| Figure 385. JTAG TAP state machine . . . . . | 1304 |
| Figure 386. Debug and access port connections . . . . . | 1317 |
| Figure 387. Debugger connection to debug components . . . . . | 1320 |
| Figure 388. Embedded cross trigger . . . . . | 1338 |
| Figure 389. Mapping trigger inputs to outputs . . . . . | 1340 |
| Figure 390. Cross trigger configuration example. . . . . | 1341 |
| Figure 391. CPU1 CoreSight topology . . . . . | 1360 |
| Figure 392. TPIU architecture . . . . . | 1382 |
| Figure 393. CPU2 CoreSight topology. . . . . | 1403 |
Chapters
- 1. Documentation conventions
- 2. Memory and bus architecture
- 3. Global security controller (GTZC)
- 4. Embedded flash memory (FLASH)
- 5. Sub-GHz radio (SUBGHZ)
- 6. Power control (PWR)
- 7. Reset and clock control (RCC)
- 8. Hardware semaphore (HSEM)
- 9. Inter-processor communication controller (IPCC)
- 10. General-purpose I/Os (GPIO)
- 11. System configuration controller (SYSCFG)
- 12. Peripherals interconnect matrix
- 13. Direct memory access controller (DMA)
- 14. DMA request multiplexer (DMAMUX)
- 15. Nested vectored interrupt controller (NVIC)
- 16. Extended interrupts and event controller (EXTI)
- 17. Cyclic redundancy check calculation unit (CRC)
- 18. Analog-to-digital converter (ADC)
- 19. Digital-to-analog converter (DAC)
- 20. Voltage reference buffer (VREFBUF)
- 21. Comparator (COMP)
- 22. True random number generator (RNG)
- 23. AES hardware accelerator (AES)
- 24. Public key accelerator (PKA)
- 25. Advanced-control timer (TIM1)
- 26. General-purpose timer (TIM2)
- 27. General-purpose timers (TIM16/TIM17)
- 28. Low-power timer (LPTIM)
- 29. Infrared interface (IRTIM)
- 30. Independent watchdog (IWDG)
- 31. System window watchdog (WWDG)
- 32. Real-time clock (RTC)
- 33. Tamper and backup registers (TAMP)
- 34. Inter-integrated circuit interface (I2C)
- 35. Universal synchronous/asynchronous receiver transmitter (USART/UART)
- 36. Low-power universal asynchronous receiver transmitter (LPUART)
- 37. Serial peripheral interface / integrated interchip sound (SPI/I2S)
- 38. Debug support (DBG)
- 39. Device electronic signature
- 40. Important security notice
- 41. Revision history
- Index