CAD | USD

STM32F765xx,767xx, 768Ax, 769xx Datasheet

STMicroelectronics

View All Related Products | Download PDF Datasheet

Datasheet

March 2018 RM0410 Rev 4 1/1954
1
RM0410
Reference manual
STM32F76xxx and STM32F77xxx advanced Arm®-based
32-bit MCUs
Introduction
This reference manual targets application developers. It provides complete information on
how to use the STM32F76xxx and STM32F77xxx microcontroller memory and peripherals.
The STM32F76xxx and STM32F77xxx is a family of microcontrollers with different memory
sizes, packages and peripherals.
For ordering information, mechanical and electrical device characteristics refer to the
datasheets.
For information on the Arm® Cortex®-M7 with FPU core, refer to the Cortex®-M7 with FPU
Technical Reference Manual.
Related documents
Available from STMicroelectronics web site www.st.com:
STM32F76xxx and STM32F77xxx datasheets
STM32F7 Series Cortex®-M7 processor programming manual (PM0253)
www.st.com
RM0410 Rev 4 2/1954
RM0410 Contents
49
Contents
1 Documentation conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
1.1 General information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
1.2 List of abbreviations for registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
1.3 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
1.4 Peripheral availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2 System and memory overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
2.1 System architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
2.1.1 Multi AHB BusMatrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.1.2 AHB/APB bridges (APB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.1.3 CPU AXIM bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.1.4 ITCM bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.1.5 DTCM bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.1.6 CPU AHBS bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.1.7 AHB peripheral bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.1.8 DMA memory bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.1.9 DMA peripheral bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.1.10 Ethernet DMA bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.1.11 USB OTG HS DMA bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.1.12 LCD-TFT controller DMA bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.1.13 DMA2D bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.2 Memory organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
2.2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
2.2.2 Memory map and register boundary addresses . . . . . . . . . . . . . . . . . . 76
2.3 Embedded SRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
2.4 Flash memory overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
2.5 Boot configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3 Embedded Flash memory (FLASH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.2 Flash main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.3 Flash functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.3.1 Flash memory organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Contents RM0410
3/1954 RM0410 Rev 4
3.3.2 Read access latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.3.3 Flash program and erase operations . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3.3.4 Unlocking the Flash control register . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3.3.5 Program/erase parallelism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3.3.6 Switching from single bank to dual bank configuration . . . . . . . . . . . . . 94
3.3.7 Flash erase sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
3.3.8 Flash programming sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.3.9 Flash Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
3.4 FLASH Option bytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.4.1 Option bytes description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.4.2 Option bytes programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
3.5 FLASH memory protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.5.1 Read protection (RDP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.5.2 Write protections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
3.6 One-time programmable bytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
3.7 FLASH registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
3.7.1 Flash access control register (FLASH_ACR) . . . . . . . . . . . . . . . . . . . 108
3.7.2 Flash key register (FLASH_KEYR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
3.7.3 Flash option key register (FLASH_OPTKEYR) . . . . . . . . . . . . . . . . . . 109
3.7.4 Flash status register (FLASH_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
3.7.5 Flash control register (FLASH_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.7.6 Flash option control register (FLASH_OPTCR) . . . . . . . . . . . . . . . . . . 113
3.7.7 Flash option control register (FLASH_OPTCR1) . . . . . . . . . . . . . . . . . 115
3.7.8 Flash interface register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4 Power controller (PWR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4.1 Power supplies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117
4.1.1 Independent A/D converter supply and reference voltage . . . . . . . . . . 119
4.1.2 Independent USB transceivers supply . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.1.3 Independent SDMMC2 supply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
4.1.4 Independent DSI supply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
4.1.5 Battery backup domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
4.1.6 Voltage regulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
4.2 Power supply supervisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
4.2.1 Power-on reset (POR)/power-down reset (PDR) . . . . . . . . . . . . . . . . . 126
4.2.2 Brownout reset (BOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
RM0410 Rev 4 4/1954
RM0410 Contents
49
4.2.3 Programmable voltage detector (PVD) . . . . . . . . . . . . . . . . . . . . . . . . 127
4.3 Low-power modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
4.3.1 Debug mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
4.3.2 Run mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
4.3.3 Low-power mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
4.3.4 Sleep mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
4.3.5 Stop mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
4.3.6 Standby mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
4.3.7 Programming the RTC alternate functions to wake up the device from
the Stop and Standby modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
4.4 Power control registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
4.4.1 PWR power control register (PWR_CR1) . . . . . . . . . . . . . . . . . . . . . . 142
4.4.2 PWR power control/status register (PWR_CSR1) . . . . . . . . . . . . . . . . 145
4.4.3 PWR power control/status register 2 (PWR_CR2) . . . . . . . . . . . . . . . 146
4.4.4 PWR power control register 2 (PWR_CSR2) . . . . . . . . . . . . . . . . . . . 148
4.5 PWR register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
5 Reset and clock control (RCC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
5.1 Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
5.1.1 System reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
5.1.2 Power reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
5.1.3 Backup domain reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
5.2 Clocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
5.2.1 HSE clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
5.2.2 HSI clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
5.2.3 PLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
5.2.4 LSE clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
5.2.5 LSI clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
5.2.6 System clock (SYSCLK) selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
5.2.7 Clock security system (CSS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
5.2.8 RTC/AWU clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
5.2.9 Watchdog clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
5.2.10 Clock-out capability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
5.2.11 Internal/external clock measurement using TIM5/TIM11 . . . . . . . . . . . 160
5.2.12 Peripheral clock enable register (RCC_AHBxENR,
RCC_APBxENRy) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
5.3 RCC registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Contents RM0410
5/1954 RM0410 Rev 4
5.3.1 RCC clock control register (RCC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . 163
5.3.2 RCC PLL configuration register (RCC_PLLCFGR) . . . . . . . . . . . . . . . 165
5.3.3 RCC clock configuration register (RCC_CFGR) . . . . . . . . . . . . . . . . . 168
5.3.4 RCC clock interrupt register (RCC_CIR) . . . . . . . . . . . . . . . . . . . . . . . 170
5.3.5 RCC AHB1 peripheral reset register (RCC_AHB1RSTR) . . . . . . . . . . 173
5.3.6 RCC AHB2 peripheral reset register (RCC_AHB2RSTR) . . . . . . . . . . 176
5.3.7 RCC AHB3 peripheral reset register (RCC_AHB3RSTR) . . . . . . . . . . 177
5.3.8 RCC APB1 peripheral reset register (RCC_APB1RSTR) . . . . . . . . . . 177
5.3.9 RCC APB2 peripheral reset register (RCC_APB2RSTR) . . . . . . . . . . 181
5.3.10 RCC AHB1 peripheral clock register (RCC_AHB1ENR) . . . . . . . . . . . 184
5.3.11 RCC AHB2 peripheral clock enable register (RCC_AHB2ENR) . . . . . 186
5.3.12 RCC AHB3 peripheral clock enable register (RCC_AHB3ENR) . . . . . 187
5.3.13 RCC APB1 peripheral clock enable register (RCC_APB1ENR) . . . . . 187
5.3.14 RCC APB2 peripheral clock enable register (RCC_APB2ENR) . . . . . 191
5.3.15 RCC AHB1 peripheral clock enable in low-power mode register
(RCC_AHB1LPENR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
5.3.16 RCC AHB2 peripheral clock enable in low-power mode register
(RCC_AHB2LPENR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
5.3.17 RCC AHB3 peripheral clock enable in low-power mode register
(RCC_AHB3LPENR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
5.3.18 RCC APB1 peripheral clock enable in low-power mode register
(RCC_APB1LPENR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
5.3.19 RCC APB2 peripheral clock enabled in low-power mode register
(RCC_APB2LPENR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
5.3.20 RCC backup domain control register (RCC_BDCR) . . . . . . . . . . . . . . 204
5.3.21 RCC clock control & status register (RCC_CSR) . . . . . . . . . . . . . . . . 205
5.3.22 RCC spread spectrum clock generation register (RCC_SSCGR) . . . . 207
5.3.23 RCC PLLI2S configuration register (RCC_PLLI2SCFGR) . . . . . . . . . 208
5.3.24 RCC PLLSAI configuration register (RCC_PLLSAICFGR) . . . . . . . . . 211
5.3.25 RCC dedicated clocks configuration register (RCC_DCKCFGR1) . . . 212
5.3.26 RCC dedicated clocks configuration register (RCC_DCKCFGR2) . . . 214
5.3.27 RCC register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
6 General-purpose I/Os (GPIO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
6.2 GPIO main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
6.3 GPIO functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
6.3.1 General-purpose I/O (GPIO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
RM0410 Rev 4 6/1954
RM0410 Contents
49
6.3.2 I/O pin alternate function multiplexer and mapping . . . . . . . . . . . . . . . 223
6.3.3 I/O port control registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
6.3.4 I/O port data registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
6.3.5 I/O data bitwise handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
6.3.6 GPIO locking mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
6.3.7 I/O alternate function input/output . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
6.3.8 External interrupt/wakeup lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
6.3.9 Input configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
6.3.10 Output configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
6.3.11 Alternate function configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
6.3.12 Analog configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
6.3.13 Using the HSE or LSE oscillator pins as GPIOs . . . . . . . . . . . . . . . . . 228
6.3.14 Using the GPIO pins in the backup supply domain . . . . . . . . . . . . . . . 228
6.4 GPIO registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
6.4.1 GPIO port mode register (GPIOx_MODER) (x =A..K) . . . . . . . . . . . . . 229
6.4.2 GPIO port output type register (GPIOx_OTYPER) (x = A..K) . . . . . . . 229
6.4.3 GPIO port output speed register (GPIOx_OSPEEDR)
(x = A..K) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
6.4.4 GPIO port pull-up/pull-down register (GPIOx_PUPDR)
(x = A..K) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
6.4.5 GPIO port input data register (GPIOx_IDR) (x = A..K) . . . . . . . . . . . . . 231
6.4.6 GPIO port output data register (GPIOx_ODR) (x = A..K) . . . . . . . . . . . 231
6.4.7 GPIO port bit set/reset register (GPIOx_BSRR) (x = A..K) . . . . . . . . . 231
6.4.8 GPIO port configuration lock register (GPIOx_LCKR)
(x = A..K) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
6.4.9 GPIO alternate function low register (GPIOx_AFRL)
(x = A..K) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
6.4.10 GPIO alternate function high register (GPIOx_AFRH)
(x = A..J) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
6.4.11 GPIO register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
7 System configuration controller (SYSCFG) . . . . . . . . . . . . . . . . . . . . 237
7.1 I/O compensation cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
7.2 SYSCFG registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
7.2.1 SYSCFG memory remap register (SYSCFG_MEMRMP) . . . . . . . . . . 237
7.2.2 SYSCFG peripheral mode configuration register (SYSCFG_PMC) . . 238
7.2.3 SYSCFG external interrupt configuration register 1
(SYSCFG_EXTICR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Contents RM0410
7/1954 RM0410 Rev 4
7.2.4 SYSCFG external interrupt configuration register 2
(SYSCFG_EXTICR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
7.2.5 SYSCFG external interrupt configuration register 3
(SYSCFG_EXTICR3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
7.2.6 SYSCFG external interrupt configuration register 4
(SYSCFG_EXTICR4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
7.2.7 Class B register (SYSCFG_CBR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
7.2.8 Compensation cell control register (SYSCFG_CMPCR) . . . . . . . . . . . 243
7.2.9 SYSCFG register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
8 Direct memory access controller (DMA) . . . . . . . . . . . . . . . . . . . . . . . 245
8.1 DMA introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
8.2 DMA main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
8.3 DMA functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
8.3.1 DMA block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
8.3.2 DMA overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
8.3.3 DMA transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
8.3.4 Channel selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
8.3.5 Arbiter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
8.3.6 DMA streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
8.3.7 Source, destination and transfer modes . . . . . . . . . . . . . . . . . . . . . . . 250
8.3.8 Pointer incrementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
8.3.9 Circular mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
8.3.10 Double-buffer mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
8.3.11 Programmable data width, packing/unpacking, endianness . . . . . . . . 255
8.3.12 Single and burst transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
8.3.13 FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
8.3.14 DMA transfer completion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
8.3.15 DMA transfer suspension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
8.3.16 Flow controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
8.3.17 Summary of the possible DMA configurations . . . . . . . . . . . . . . . . . . . 262
8.3.18 Stream configuration procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
8.3.19 Error management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
8.4 DMA interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
8.5 DMA registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
8.5.1 DMA low interrupt status register (DMA_LISR) . . . . . . . . . . . . . . . . . . 266
8.5.2 DMA high interrupt status register (DMA_HISR) . . . . . . . . . . . . . . . . . 267
RM0410 Rev 4 8/1954
RM0410 Contents
49
8.5.3 DMA low interrupt flag clear register (DMA_LIFCR) . . . . . . . . . . . . . . 268
8.5.4 DMA high interrupt flag clear register (DMA_HIFCR) . . . . . . . . . . . . . 268
8.5.5 DMA stream x configuration register (DMA_SxCR) . . . . . . . . . . . . . . . 269
8.5.6 DMA stream x number of data register (DMA_SxNDTR) . . . . . . . . . . 272
8.5.7 DMA stream x peripheral address register (DMA_SxPAR) . . . . . . . . . 273
8.5.8 DMA stream x memory 0 address register (DMA_SxM0AR) . . . . . . . . 273
8.5.9 DMA stream x memory 1 address register (DMA_SxM1AR) . . . . . . . . 273
8.5.10 DMA stream x FIFO control register (DMA_SxFCR) . . . . . . . . . . . . . . 274
8.5.11 DMA register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
9 Chrom-ART Accelerator™ controller (DMA2D) . . . . . . . . . . . . . . . . . 280
9.1 DMA2D introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
9.2 DMA2D main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
9.3 DMA2D functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
9.3.1 General description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
9.3.2 DMA2D control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
9.3.3 DMA2D foreground and background FIFOs . . . . . . . . . . . . . . . . . . . . 282
9.3.4 DMA2D foreground and background pixel format converter (PFC) . . . 283
9.3.5 DMA2D foreground and background CLUT interface . . . . . . . . . . . . . 285
9.3.6 DMA2D blender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
9.3.7 DMA2D output PFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
9.3.8 DMA2D output FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
9.3.9 DMA2D AHB master port timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
9.3.10 DMA2D transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
9.3.11 DMA2D configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
9.3.12 DMA2D transfer control (start, suspend, abort and completion) . . . . . 291
9.3.13 Watermark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
9.3.14 Error management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
9.3.15 AHB dead time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
9.4 DMA2D interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
9.5 DMA2D registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
9.5.1 DMA2D control register (DMA2D_CR) . . . . . . . . . . . . . . . . . . . . . . . . 293
9.5.2 DMA2D Interrupt Status Register (DMA2D_ISR) . . . . . . . . . . . . . . . . 295
9.5.3 DMA2D interrupt flag clear register (DMA2D_IFCR) . . . . . . . . . . . . . . 296
9.5.4 DMA2D foreground memory address register (DMA2D_FGMAR) . . . 297
9.5.5 DMA2D foreground offset register (DMA2D_FGOR) . . . . . . . . . . . . . . 297
9.5.6 DMA2D background memory address register (DMA2D_BGMAR) . . 297
Contents RM0410
9/1954 RM0410 Rev 4
9.5.7 DMA2D background offset register (DMA2D_BGOR) . . . . . . . . . . . . . 298
9.5.8 DMA2D foreground PFC control register (DMA2D_FGPFCCR) . . . . . 299
9.5.9 DMA2D foreground color register (DMA2D_FGCOLR) . . . . . . . . . . . . 301
9.5.10 DMA2D background PFC control register (DMA2D_BGPFCCR) . . . . 302
9.5.11 DMA2D background color register (DMA2D_BGCOLR) . . . . . . . . . . . 304
9.5.12 DMA2D foreground CLUT memory address register
(DMA2D_FGCMAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
9.5.13 DMA2D background CLUT memory address register
(DMA2D_BGCMAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
9.5.14 DMA2D output PFC control register (DMA2D_OPFCCR) . . . . . . . . . . 305
9.5.15 DMA2D output color register (DMA2D_OCOLR) . . . . . . . . . . . . . . . . . 306
9.5.16 DMA2D output memory address register (DMA2D_OMAR) . . . . . . . . 308
9.5.17 DMA2D output offset register (DMA2D_OOR) . . . . . . . . . . . . . . . . . . 309
9.5.18 DMA2D number of line register (DMA2D_NLR) . . . . . . . . . . . . . . . . . 309
9.5.19 DMA2D line watermark register (DMA2D_LWR) . . . . . . . . . . . . . . . . . 310
9.5.20 DMA2D AHB master timer configuration register (DMA2D_AMTCR) . 310
9.5.21 DMA2D register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
10 Nested vectored interrupt controller (NVIC) . . . . . . . . . . . . . . . . . . . . 313
10.1 NVIC features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
10.1.1 SysTick calibration value register . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
10.1.2 Interrupt and exception vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
11 Extended interrupts and events controller (EXTI) . . . . . . . . . . . . . . . 319
11.1 EXTI main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
11.2 EXTI block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
11.3 Wakeup event management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
11.4 Functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
11.5 Hardware interrupt selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
11.6 Hardware event selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
11.7 Software interrupt/event selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
11.8 External interrupt/event line mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
11.9 EXTI registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
11.9.1 Interrupt mask register (EXTI_IMR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
11.9.2 Event mask register (EXTI_EMR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
11.9.3 Rising trigger selection register (EXTI_RTSR) . . . . . . . . . . . . . . . . . . 323
11.9.4 Falling trigger selection register (EXTI_FTSR) . . . . . . . . . . . . . . . . . . 323
RM0410 Rev 4 10/1954
RM0410 Contents
49
11.9.5 Software interrupt event register (EXTI_SWIER) . . . . . . . . . . . . . . . . 324
11.9.6 Pending register (EXTI_PR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
11.9.7 EXTI register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
12 Cyclic redundancy check calculation unit (CRC) . . . . . . . . . . . . . . . . 326
12.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
12.2 CRC main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
12.3 CRC functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
12.3.1 CRC block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
12.3.2 CRC internal signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
12.3.3 CRC operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
12.4 CRC registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
12.4.1 Data register (CRC_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
12.4.2 Independent data register (CRC_IDR) . . . . . . . . . . . . . . . . . . . . . . . . 329
12.4.3 Control register (CRC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
12.4.4 Initial CRC value (CRC_INIT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
12.4.5 CRC polynomial (CRC_POL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
12.4.6 CRC register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
13 Flexible memory controller (FMC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
13.1 FMC main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
13.2 FMC block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
13.3 AHB interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
13.3.1 Supported memories and transactions . . . . . . . . . . . . . . . . . . . . . . . . 334
13.4 External device address mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
13.4.1 NOR/PSRAM address mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
13.4.2 NAND Flash memory address mapping . . . . . . . . . . . . . . . . . . . . . . . 337
13.4.3 SDRAM address mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
13.5 NOR Flash/PSRAM controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
13.5.1 External memory interface signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
13.5.2 Supported memories and transactions . . . . . . . . . . . . . . . . . . . . . . . . 344
13.5.3 General timing rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
13.5.4 NOR Flash/PSRAM controller asynchronous transactions . . . . . . . . . 346
13.5.5 Synchronous transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
13.5.6 NOR/PSRAM controller registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
13.6 NAND Flash controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
Contents RM0410
11/1954 RM0410 Rev 4
13.6.1 External memory interface signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
13.6.2 NAND Flash supported memories and transactions . . . . . . . . . . . . . . 379
13.6.3 Timing diagrams for NAND Flash memory . . . . . . . . . . . . . . . . . . . . . 379
13.6.4 NAND Flash operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
13.6.5 NAND Flash prewait functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
13.6.6 Computation of the error correction code (ECC)
in NAND Flash memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
13.6.7 NAND Flash controller registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
13.7 SDRAM controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
13.7.1 SDRAM controller main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
13.7.2 SDRAM External memory interface signals . . . . . . . . . . . . . . . . . . . . . 389
13.7.3 SDRAM controller functional description . . . . . . . . . . . . . . . . . . . . . . . 390
13.7.4 Low-power modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
13.7.5 SDRAM controller registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
13.8 FMC register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
14 Quad-SPI interface (QUADSPI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
14.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
14.2 QUADSPI main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
14.3 QUADSPI functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
14.3.1 QUADSPI block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
14.3.2 QUADSPI pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
14.3.3 QUADSPI command sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
14.3.4 QUADSPI signal interface protocol modes . . . . . . . . . . . . . . . . . . . . . 413
14.3.5 QUADSPI indirect mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
14.3.6 QUADSPI status flag polling mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
14.3.7 QUADSPI memory-mapped mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
14.3.8 QUADSPI Flash memory configuration . . . . . . . . . . . . . . . . . . . . . . . . 418
14.3.9 QUADSPI delayed data sampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
14.3.10 QUADSPI configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
14.3.11 QUADSPI usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
14.3.12 Sending the instruction only once . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
14.3.13 QUADSPI error management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
14.3.14 QUADSPI busy bit and abort functionality . . . . . . . . . . . . . . . . . . . . . . 422
14.3.15 nCS behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
14.4 QUADSPI interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
14.5 QUADSPI registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
RM0410 Rev 4 12/1954
RM0410 Contents
49
14.5.1 QUADSPI control register (QUADSPI_CR) . . . . . . . . . . . . . . . . . . . . . 425
14.5.2 QUADSPI device configuration register (QUADSPI_DCR) . . . . . . . . . 428
14.5.3 QUADSPI status register (QUADSPI_SR) . . . . . . . . . . . . . . . . . . . . . 429
14.5.4 QUADSPI flag clear register (QUADSPI_FCR) . . . . . . . . . . . . . . . . . . 430
14.5.5 QUADSPI data length register (QUADSPI_DLR) . . . . . . . . . . . . . . . . 430
14.5.6 QUADSPI communication configuration register (QUADSPI_CCR) . . 431
14.5.7 QUADSPI address register (QUADSPI_AR) . . . . . . . . . . . . . . . . . . . . 433
14.5.8 QUADSPI alternate bytes registers (QUADSPI_ABR) . . . . . . . . . . . . 434
14.5.9 QUADSPI data register (QUADSPI_DR) . . . . . . . . . . . . . . . . . . . . . . . 434
14.5.10 QUADSPI polling status mask register (QUADSPI _PSMKR) . . . . . . . 435
14.5.11 QUADSPI polling status match register (QUADSPI _PSMAR) . . . . . . 435
14.5.12 QUADSPI polling interval register (QUADSPI _PIR) . . . . . . . . . . . . . . 436
14.5.13 QUADSPI low-power timeout register (QUADSPI_LPTR) . . . . . . . . . . 436
14.5.14 QUADSPI register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
15 Analog-to-digital converter (ADC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
15.1 ADC introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
15.2 ADC main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
15.3 ADC functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
15.3.1 ADC on-off control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
15.3.2 ADC1/2 and ADC3 connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
15.3.3 ADC clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
15.3.4 Channel selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
15.3.5 Single conversion mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
15.3.6 Continuous conversion mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
15.3.7 Timing diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
15.3.8 Analog watchdog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
15.3.9 Scan mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
15.3.10 Injected channel management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
15.3.11 Discontinuous mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
15.4 Data alignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
15.5 Channel-wise programmable sampling time . . . . . . . . . . . . . . . . . . . . . 450
15.6 Conversion on external trigger and trigger polarity . . . . . . . . . . . . . . . . 451
15.7 Fast conversion mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
15.8 Data management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
15.8.1 Using the DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
Contents RM0410
13/1954 RM0410 Rev 4
15.8.2 Managing a sequence of conversions without using the DMA . . . . . . 453
15.8.3 Conversions without DMA and without overrun detection . . . . . . . . . . 454
15.9 Multi ADC mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
15.9.1 Injected simultaneous mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
15.9.2 Regular simultaneous mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
15.9.3 Interleaved mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
15.9.4 Alternate trigger mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
15.9.5 Combined regular/injected simultaneous mode . . . . . . . . . . . . . . . . . . 463
15.9.6 Combined regular simultaneous + alternate trigger mode . . . . . . . . . . 463
15.10 Temperature sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
15.11 Battery charge monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
15.12 ADC interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
15.13 ADC registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
15.13.1 ADC status register (ADC_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
15.13.2 ADC control register 1 (ADC_CR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
15.13.3 ADC control register 2 (ADC_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
15.13.4 ADC sample time register 1 (ADC_SMPR1) . . . . . . . . . . . . . . . . . . . . 473
15.13.5 ADC sample time register 2 (ADC_SMPR2) . . . . . . . . . . . . . . . . . . . . 474
15.13.6 ADC injected channel data offset register x (ADC_JOFRx) (x=1..4) . . 474
15.13.7 ADC watchdog higher threshold register (ADC_HTR) . . . . . . . . . . . . . 474
15.13.8 ADC watchdog lower threshold register (ADC_LTR) . . . . . . . . . . . . . . 475
15.13.9 ADC regular sequence register 1 (ADC_SQR1) . . . . . . . . . . . . . . . . . 475
15.13.10 ADC regular sequence register 2 (ADC_SQR2) . . . . . . . . . . . . . . . . . 476
15.13.11 ADC regular sequence register 3 (ADC_SQR3) . . . . . . . . . . . . . . . . . 477
15.13.12 ADC injected sequence register (ADC_JSQR) . . . . . . . . . . . . . . . . . . 478
15.13.13 ADC injected data register x (ADC_JDRx) (x= 1..4) . . . . . . . . . . . . . . 478
15.13.14 ADC regular data register (ADC_DR) . . . . . . . . . . . . . . . . . . . . . . . . . 479
15.13.15 ADC Common status register (ADC_CSR) . . . . . . . . . . . . . . . . . . . . . 479
15.13.16 ADC common control register (ADC_CCR) . . . . . . . . . . . . . . . . . . . . . 480
15.13.17 ADC common regular data register for dual and triple modes
(ADC_CDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
15.13.18 ADC register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
16 Digital-to-analog converter (DAC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
16.1 DAC introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
16.2 DAC main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
RM0410 Rev 4 14/1954
RM0410 Contents
49
16.3 DAC functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
16.3.1 DAC channel enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
16.3.2 DAC output buffer enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
16.3.3 DAC data format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
16.3.4 DAC conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
16.3.5 DAC output voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
16.3.6 DAC trigger selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
16.3.7 DMA request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
16.3.8 Noise generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
16.3.9 Triangle-wave generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
16.4 Dual DAC channel conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
16.4.1 Independent trigger without wave generation . . . . . . . . . . . . . . . . . . . 494
16.4.2 Independent trigger with single LFSR generation . . . . . . . . . . . . . . . . 494
16.4.3 Independent trigger with different LFSR generation . . . . . . . . . . . . . . 494
16.4.4 Independent trigger with single triangle generation . . . . . . . . . . . . . . . 495
16.4.5 Independent trigger with different triangle generation . . . . . . . . . . . . . 495
16.4.6 Simultaneous software start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
16.4.7 Simultaneous trigger without wave generation . . . . . . . . . . . . . . . . . . 496
16.4.8 Simultaneous trigger with single LFSR generation . . . . . . . . . . . . . . . 496
16.4.9 Simultaneous trigger with different LFSR generation . . . . . . . . . . . . . 496
16.4.10 Simultaneous trigger with single triangle generation . . . . . . . . . . . . . . 497
16.4.11 Simultaneous trigger with different triangle generation . . . . . . . . . . . . 497
16.5 DAC registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
16.5.1 DAC control register (DAC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
16.5.2 DAC software trigger register (DAC_SWTRIGR) . . . . . . . . . . . . . . . . 501
16.5.3 DAC channel1 12-bit right-aligned data holding register
(DAC_DHR12R1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
16.5.4 DAC channel1 12-bit left aligned data holding register
(DAC_DHR12L1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
16.5.5 DAC channel1 8-bit right aligned data holding register
(DAC_DHR8R1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
16.5.6 DAC channel2 12-bit right aligned data holding register
(DAC_DHR12R2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
16.5.7 DAC channel2 12-bit left aligned data holding register
(DAC_DHR12L2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
16.5.8 DAC channel2 8-bit right-aligned data holding register
(DAC_DHR8R2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
16.5.9 Dual DAC 12-bit right-aligned data holding register
(DAC_DHR12RD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
Contents RM0410
15/1954 RM0410 Rev 4
16.5.10 DUAL DAC 12-bit left aligned data holding register
(DAC_DHR12LD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
16.5.11 DUAL DAC 8-bit right aligned data holding register
(DAC_DHR8RD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
16.5.12 DAC channel1 data output register (DAC_DOR1) . . . . . . . . . . . . . . . . 505
16.5.13 DAC channel2 data output register (DAC_DOR2) . . . . . . . . . . . . . . . . 505
16.5.14 DAC status register (DAC_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
16.5.15 DAC register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
17 Digital filter for sigma delta modulators (DFSDM) . . . . . . . . . . . . . . . 508
17.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
17.2 DFSDM main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
17.3 DFSDM implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
17.4 DFSDM functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .511
17.4.1 DFSDM block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
17.4.2 DFSDM pins and internal signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
17.4.3 DFSDM reset and clocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
17.4.4 Serial channel transceivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
17.4.5 Configuring the input serial interface . . . . . . . . . . . . . . . . . . . . . . . . . . 523
17.4.6 Parallel data inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
17.4.7 Channel selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
17.4.8 Digital filter configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526
17.4.9 Integrator unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527
17.4.10 Analog watchdog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527
17.4.11 Short-circuit detector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530
17.4.12 Extreme detector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530
17.4.13 Data unit block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
17.4.14 Signed data format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532
17.4.15 Launching conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532
17.4.16 Continuous and fast continuous modes . . . . . . . . . . . . . . . . . . . . . . . . 533
17.4.17 Request precedence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
17.4.18 Power optimization in run mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534
17.5 DFSDM interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534
17.6 DFSDM DMA transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536
17.7 DFSDM channel y registers (y=0..7) . . . . . . . . . . . . . . . . . . . . . . . . . . . 536
17.7.1 DFSDM channel y configuration register (DFSDM_CHyCFGR1) . . . . 536
17.7.2 DFSDM channel y configuration register (DFSDM_CHyCFGR2) . . . . 539
RM0410 Rev 4 16/1954
RM0410 Contents
49
17.7.3 DFSDM channel y analog watchdog and short-circuit detector register
(DFSDM_CHyAWSCDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
17.7.4 DFSDM channel y watchdog filter data register
(DFSDM_CHyWDATR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
17.7.5 DFSDM channel y data input register (DFSDM_CHyDATINR) . . . . . . 541
17.8 DFSDM filter x module registers (x=0..3) . . . . . . . . . . . . . . . . . . . . . . . . 542
17.8.1 DFSDM filter x control register 1 (DFSDM_FLTxCR1) . . . . . . . . . . . . 542
17.8.2 DFSDM filter x control register 2 (DFSDM_FLTxCR2) . . . . . . . . . . . . 544
17.8.3 DFSDM filter x interrupt and status register (DFSDM_FLTxISR) . . . . . 546
17.8.4 DFSDM filter x interrupt flag clear register (DFSDM_FLTxICR) . . . . . 547
17.8.5 DFSDM filter x injected channel group selection register
(DFSDM_FLTxJCHGR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
17.8.6 DFSDM filter x control register (DFSDM_FLTxFCR) . . . . . . . . . . . . . . 549
17.8.7 DFSDM filter x data register for injected group
(DFSDM_FLTxJDATAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
17.8.8 DFSDM filter x data register for the regular channel
(DFSDM_FLTxRDATAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
17.8.9 DFSDM filter x analog watchdog high threshold register
(DFSDM_FLTxAWHTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
17.8.10 DFSDM filter x analog watchdog low threshold register
(DFSDM_FLTxAWLTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552
17.8.11 DFSDM filter x analog watchdog status register
(DFSDM_FLTxAWSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552
17.8.12 DFSDM filter x analog watchdog clear flag register
(DFSDM_FLTxAWCFR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
17.8.13 DFSDM filter x extremes detector maximum register
(DFSDM_FLTxEXMAX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
17.8.14 DFSDM filter x extremes detector minimum register
(DFSDM_FLTxEXMIN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
17.8.15 DFSDM filter x conversion timer register (DFSDM_FLTxCNVTIMR) . . 554
17.8.16 DFSDM register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
18 Digital camera interface (DCMI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
18.1 DCMI introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
18.2 DCMI main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
18.3 DCMI clocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
18.4 DCMI functional overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
18.4.1 DCMI block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
18.4.2 DMA interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
18.4.3 DCMI physical interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
Contents RM0410
17/1954 RM0410 Rev 4
18.4.4 Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
18.4.5 Capture modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571
18.4.6 Crop feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
18.4.7 JPEG format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
18.4.8 FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
18.5 Data format description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
18.5.1 Data formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
18.5.2 Monochrome format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
18.5.3 RGB format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
18.5.4 YCbCr format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
18.5.5 YCbCr format - Y only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
18.5.6 Half resolution image extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
18.6 DCMI interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
18.7 DCMI register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
18.7.1 DCMI control register (DCMI_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
18.7.2 DCMI status register (DCMI_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
18.7.3 DCMI raw interrupt status register (DCMI_RIS) . . . . . . . . . . . . . . . . . 581
18.7.4 DCMI interrupt enable register (DCMI_IER) . . . . . . . . . . . . . . . . . . . . 582
18.7.5 DCMI masked interrupt status register (DCMI_MIS) . . . . . . . . . . . . . . 583
18.7.6 DCMI interrupt clear register (DCMI_ICR) . . . . . . . . . . . . . . . . . . . . . . 584
18.7.7 DCMI embedded synchronization code register (DCMI_ESCR) . . . . . 585
18.7.8 DCMI embedded synchronization unmask register (DCMI_ESUR) . . 586
18.7.9 DCMI crop window start (DCMI_CWSTRT) . . . . . . . . . . . . . . . . . . . . . 587
18.7.10 DCMI crop window size (DCMI_CWSIZE) . . . . . . . . . . . . . . . . . . . . . . 587
18.7.11 DCMI data register (DCMI_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588
18.7.12 DCMI register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589
19 LCD-TFT display controller (LTDC) . . . . . . . . . . . . . . . . . . . . . . . . . . 590
19.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590
19.2 LTDC main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590
19.3 LTDC functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591
19.3.1 LTDC block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591
19.3.2 LTDC pins and external signal interface . . . . . . . . . . . . . . . . . . . . . . . 591
19.3.3 LTDC reset and clocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592
19.4 LTDC programmable parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
19.4.1 LTDC global configuration parameters . . . . . . . . . . . . . . . . . . . . . . . . 593
RM0410 Rev 4 18/1954
RM0410 Contents
49
19.4.2 Layer programmable parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596
19.5 LTDC interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600
19.6 LTDC programming procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601
19.7 LTDC registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
19.7.1 LTDC synchronization size configuration register (LTDC_SSCR) . . . . 603
19.7.2 LTDC back porch configuration register (LTDC_BPCR) . . . . . . . . . . . 603
19.7.3 LTDC active width configuration register (LTDC_AWCR) . . . . . . . . . . 604
19.7.4 LTDC total width configuration register (LTDC_TWCR) . . . . . . . . . . . . 605
19.7.5 LTDC global control register (LTDC_GCR) . . . . . . . . . . . . . . . . . . . . . 605
19.7.6 LTDC shadow reload configuration register (LTDC_SRCR) . . . . . . . . 607
19.7.7 LTDC background color configuration register (LTDC_BCCR) . . . . . . 607
19.7.8 LTDC interrupt enable register (LTDC_IER) . . . . . . . . . . . . . . . . . . . . 608
19.7.9 LTDC interrupt status register (LTDC_ISR) . . . . . . . . . . . . . . . . . . . . . 609
19.7.10 LTDC Interrupt Clear Register (LTDC_ICR) . . . . . . . . . . . . . . . . . . . . . 609
19.7.11 LTDC line interrupt position configuration register (LTDC_LIPCR) . . . 610
19.7.12 LTDC current position status register (LTDC_CPSR) . . . . . . . . . . . . . 610
19.7.13 LTDC current display status register (LTDC_CDSR) . . . . . . . . . . . . . . 611
19.7.14 LTDC layer x control register (LTDC_LxCR) . . . . . . . . . . . . . . . . . . . . 612
19.7.15 LTDC layer x window horizontal position configuration register
(LTDC_LxWHPCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
19.7.16 LTDC layer x window vertical position configuration register
(LTDC_LxWVPCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614
19.7.17 LTDC layer x color keying configuration register
(LTDC_LxCKCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615
19.7.18 LTDC layer x pixel format configuration register
(LTDC_LxPFCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615
19.7.19 LTDC layer x constant alpha configuration register
(LTDC_LxCACR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616
19.7.20 LTDC layer x default color configuration register
(LTDC_LxDCCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617
19.7.21 LTDC layer x blending factors configuration register
(LTDC_LxBFCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618
19.7.22 LTDC layer x color frame buffer address register
(LTDC_LxCFBAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
19.7.23 LTDC layer x color frame buffer length register
(LTDC_LxCFBLR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
19.7.24 LTDC layer x color frame buffer line number register
(LTDC_LxCFBLNR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 620
19.7.25 LTDC layer x CLUT write register (LTDC_LxCLUTWR) . . . . . . . . . . . 621
19.7.26 LTDC register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622
Contents RM0410
19/1954 RM0410 Rev 4
20 DSI Host (DSI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625
20.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625
20.2 Standard and references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625
20.3 DSI Host main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626
20.4 DSI Host functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627
20.4.1 General description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627
20.4.2 Supported resolutions and frame rates . . . . . . . . . . . . . . . . . . . . . . . . 627
20.4.3 System level architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628
20.5 Functional description: video mode on LTDC interface . . . . . . . . . . . . . 630
20.5.1 Video transmission mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631
20.5.2 Updating the LTDC interface configuration in video mode . . . . . . . . . . 633
20.6 Functional description – adapted command mode on LTDC interface . . 635
20.7 Functional description: APB slave generic interface . . . . . . . . . . . . . . . 639
20.7.1 Packet transmission using the generic interface . . . . . . . . . . . . . . . . . 640
20.8 Functional description: timeout counters . . . . . . . . . . . . . . . . . . . . . . . . 643
20.8.1 Contention error detection timeout counters . . . . . . . . . . . . . . . . . . . . 643
20.8.2 Peripheral response timeout counters . . . . . . . . . . . . . . . . . . . . . . . . . 644
20.9 Functional description: transmission of commands . . . . . . . . . . . . . . . . 649
20.9.1 Transmission of commands in video mode . . . . . . . . . . . . . . . . . . . . . 649
20.9.2 Transmission of commands in low-power mode . . . . . . . . . . . . . . . . . 651
20.9.3 Transmission of commands in high-speed . . . . . . . . . . . . . . . . . . . . . 655
20.9.4 Read command transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655
20.9.5 Clock lane in low-power mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656
20.10 Functional description: virtual channels . . . . . . . . . . . . . . . . . . . . . . . . . 658
20.11 Functional description: video mode pattern generator . . . . . . . . . . . . . . 659
20.11.1 Color bar pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659
20.11.2 Color coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660
20.11.3 BER testing pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661
20.11.4 Video mode pattern generator resolution . . . . . . . . . . . . . . . . . . . . . . 662
20.12 Functional description: D-PHY management . . . . . . . . . . . . . . . . . . . . . 663
20.12.1 D-PHY configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
20.12.2 Special D-PHY operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665
20.12.3 Special low-power D-PHY functions . . . . . . . . . . . . . . . . . . . . . . . . . . 665
20.12.4 DSI PLL control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665
20.12.5 Regulator control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667
RM0410 Rev 4 20/1954
RM0410 Contents
49
20.13 Functional description: interrupts and errors . . . . . . . . . . . . . . . . . . . . . 668
20.13.1 DSI wrapper interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668
20.13.2 DSI Host interrupts and errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668
20.14 Programing procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
20.14.1 Programing procedure overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
20.14.2 Configuring the D-PHY parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
20.14.3 Configuring the DSI Host timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676
20.14.4 Configuring flow control and DBI interface . . . . . . . . . . . . . . . . . . . . . 677
20.14.5 Configuring the DSI Host LTDC interface . . . . . . . . . . . . . . . . . . . . . . 677
20.14.6 Configuring the video mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678
20.14.7 Configuring the adapted command mode . . . . . . . . . . . . . . . . . . . . . . 681
20.14.8 Configuring the video mode pattern generator . . . . . . . . . . . . . . . . . . 682
20.14.9 Managing ULPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684
20.15 DSI Host registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686
20.15.1 DSI Host version register (DSI_VR) . . . . . . . . . . . . . . . . . . . . . . . . . . 686
20.15.2 DSI Host control register (DSI_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 686
20.15.3 DSI Host clock control register (DSI_CCR) . . . . . . . . . . . . . . . . . . . . . 686
20.15.4 DSI Host LTDC VCID register (DSI_LVCIDR) . . . . . . . . . . . . . . . . . . . 687
20.15.5 DSI Host LTDC color coding register (DSI_LCOLCR) . . . . . . . . . . . . . 687
20.15.6 DSI Host LTDC polarity configuration register (DSI_LPCR) . . . . . . . . 688
20.15.7 DSI Host low-power mode configuration register (DSI_LPMCR) . . . . 689
20.15.8 DSI Host protocol configuration register (DSI_PCR) . . . . . . . . . . . . . . 689
20.15.9 DSI Host generic VCID register (DSI_GVCIDR) . . . . . . . . . . . . . . . . . 690
20.15.10 DSI Host mode configuration register (DSI_MCR) . . . . . . . . . . . . . . . 690
20.15.11 DSI Host video mode configuration register (DSI_VMCR) . . . . . . . . . 691
20.15.12 DSI Host video packet configuration register (DSI_VPCR) . . . . . . . . . 692
20.15.13 DSI Host video chunks configuration register (DSI_VCCR) . . . . . . . . 693
20.15.14 DSI Host video null packet configuration register (DSI_VNPCR) . . . . 693
20.15.15 DSI Host video HSA configuration register (DSI_VHSACR) . . . . . . . . 693
20.15.16 DSI Host video HBP configuration register (DSI_VHBPCR) . . . . . . . . 694
20.15.17 DSI Host video line configuration register (DSI_VLCR) . . . . . . . . . . . . 694
20.15.18 DSI Host video VSA configuration register (DSI_VVSACR) . . . . . . . . 695
20.15.19 DSI Host video VBP configuration register (DSI_VVBPCR) . . . . . . . . 695
20.15.20 DSI Host video VFP configuration register (DSI_VVFPCR) . . . . . . . . 695
20.15.21 DSI Host video VA configuration register (DSI_VVACR) . . . . . . . . . . . 696
20.15.22 DSI Host LTDC command configuration register (DSI_LCCR) . . . . . . 696
20.15.23 DSI Host command mode configuration register (DSI_CMCR) . . . . . . 696
Contents RM0410
21/1954 RM0410 Rev 4
20.15.24 DSI Host generic header configuration register (DSI_GHCR) . . . . . . . 699
20.15.25 DSI Host generic payload data register (DSI_GPDR) . . . . . . . . . . . . . 699
20.15.26 DSI Host generic packet status register (DSI_GPSR) . . . . . . . . . . . . . 699
20.15.27 DSI Host timeout counter configuration register 0 (DSI_TCCR0) . . . . 701
20.15.28 DSI Host timeout counter configuration register 1 (DSI_TCCR1) . . . . 701
20.15.29 DSI Host timeout counter configuration register 2 (DSI_TCCR2) . . . . 702
20.15.30 DSI Host timeout counter configuration register 3 (DSI_TCCR3) . . . . 702
20.15.31 DSI Host timeout counter configuration register 4 (DSI_TCCR4) . . . . 703
20.15.32 DSI Host timeout counter configuration register 5 (DSI_TCCR5) . . . . 703
20.15.33 DSI Host clock lane configuration register (DSI_CLCR) . . . . . . . . . . . 703
20.15.34 DSI Host clock lane timer configuration register (DSI_CLTCR) . . . . . . 704
20.15.35 DSI Host data lane timer configuration register (DSI_DLTCR) . . . . . . 704
20.15.36 DSI Host PHY control register (DSI_PCTLR) . . . . . . . . . . . . . . . . . . . 705
20.15.37 DSI Host PHY configuration register (DSI_PCONFR) . . . . . . . . . . . . . 705
20.15.38 DSI Host PHY ULPS control register (DSI_PUCR) . . . . . . . . . . . . . . . 706
20.15.39 DSI Host PHY TX triggers configuration register (DSI_PTTCR) . . . . . 707
20.15.40 DSI Host PHY status register (DSI_PSR) . . . . . . . . . . . . . . . . . . . . . . 707
20.15.41 DSI Host interrupt and status register 0 (DSI_ISR0) . . . . . . . . . . . . . . 708
20.15.42 DSI Host interrupt and status register 1 (DSI_ISR1) . . . . . . . . . . . . . . 709
20.15.43 DSI Host interrupt enable register 0 (DSI_IER0) . . . . . . . . . . . . . . . . . 711
20.15.44 DSI Host interrupt enable register 1 (DSI_IER1) . . . . . . . . . . . . . . . . . 713
20.15.45 DSI Host force interrupt register 0 (DSI_FIR0) . . . . . . . . . . . . . . . . . . 715
20.15.46 DSI Host force interrupt register 1 (DSI_FIR1) . . . . . . . . . . . . . . . . . . 716
20.15.47 DSI Host video shadow control register (DSI_VSCR) . . . . . . . . . . . . . 717
20.15.48 DSI Host LTDC current VCID register (DSI_LCVCIDR) . . . . . . . . . . . 718
20.15.49 DSI Host LTDC current color coding register (DSI_LCCCR) . . . . . . . . 718
20.15.50 DSI Host low-power mode current configuration register
(DSI_LPMCCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
20.15.51 DSI Host video mode current configuration register
(DSI_VMCCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
20.15.52 DSI Host video packet current configuration register
(DSI_VPCCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720
20.15.53 DSI Host video chunks current configuration register
(DSI_VCCCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721
20.15.54 DSI Host video null packet current configuration register
(DSI_VNPCCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721
20.15.55 DSI Host video HSA current configuration register
(DSI_VHSACCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
RM0410 Rev 4 22/1954
RM0410 Contents
49
20.15.56 DSI Host video HBP current configuration register
(DSI_VHBPCCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
20.15.57 DSI Host video line current configuration register (DSI_VLCCR) . . . . 722
20.15.58 DSI Host video VSA current configuration register
(DSI_VVSACCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723
20.15.59 DSI Host video VBP current configuration register
(DSI_VVBPCCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723
20.15.60 DSI Host video VFP current configuration register
(DSI_VVFPCCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724
20.15.61 DSI Host video VA current configuration register
(DSI_VVACCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724
20.16 DSI wrapper registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725
20.16.1 DSI wrapper configuration register (DSI_WCFGR) . . . . . . . . . . . . . . . 725
20.16.2 DSI wrapper control register (DSI_WCR) . . . . . . . . . . . . . . . . . . . . . . 726
20.16.3 DSI wrapper interrupt enable register (DSI_WIER) . . . . . . . . . . . . . . . 727
20.16.4 DSI wrapper interrupt and status register (DSI_WISR) . . . . . . . . . . . . 728
20.16.5 DSI wrapper interrupt flag clear register (DSI_WIFCR) . . . . . . . . . . . . 729
20.16.6 DSI wrapper PHY configuration register 0 (DSI_WPCR0) . . . . . . . . . . 730
20.16.7 DSI wrapper PHY configuration register 1 (DSI_WPCR1) . . . . . . . . . . 732
20.16.8 DSI wrapper PHY configuration register 2 (DSI_WPCR2) . . . . . . . . . . 734
20.16.9 DSI wrapper PHY configuration register 3 (DSI_WPCR3) . . . . . . . . . . 734
20.16.10 DSI wrapper PHY configuration register 4 (DSI_WPCR4) . . . . . . . . . . 735
20.16.11 DSI wrapper regulator and PLL control register (DSI_WRPCR) . . . . . 736
20.17 DSI Host register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737
21 JPEG codec (JPEG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743
21.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743
21.2 JPEG codec main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743
21.3 JPEG codec block functional description . . . . . . . . . . . . . . . . . . . . . . . . 744
21.3.1 General description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 744
21.3.2 JPEG decoding procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 744
21.3.3 JPEG encoding procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747
21.4 JPEG codec interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749
21.5 JPEG codec registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749
21.5.1 JPEG codec control register (JPEG_CONFR0) . . . . . . . . . . . . . . . . . 749
21.5.2 JPEG codec configuration register 1 (JPEG_CONFR1) . . . . . . . . . . . 750
21.5.3 JPEG codec configuration register 2 (JPEG_CONFR2) . . . . . . . . . . . 751
21.5.4 JPEG codec configuration register 3 (JPEG_CONFR3) . . . . . . . . . . . 751
Contents RM0410
23/1954 RM0410 Rev 4
21.5.5 JPEG codec configuration register 4-7 (JPEG_CONFR4-7) . . . . . . . . 751
21.5.6 JPEG control register (JPEG_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 752
21.5.7 JPEG status register (JPEG_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754
21.5.8 JPEG clear flag register (JPEG_CFR) . . . . . . . . . . . . . . . . . . . . . . . . . 755
21.5.9 JPEG data input register (JPEG_DIR) . . . . . . . . . . . . . . . . . . . . . . . . . 756
21.5.10 JPEG data output register (JPEG_DOR) . . . . . . . . . . . . . . . . . . . . . . . 756
21.5.11 JPEG codec register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757
22 True random number generator (RNG) . . . . . . . . . . . . . . . . . . . . . . . . 759
22.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
22.2 RNG main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
22.3 RNG functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760
22.3.1 RNG block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760
22.3.2 RNG internal signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760
22.3.3 Random number generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
22.3.4 RNG initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763
22.3.5 RNG operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763
22.3.6 RNG clocking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
22.3.7 Error management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
22.4 RNG low-power usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765
22.5 RNG interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765
22.6 RNG processing time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765
22.7 Entropy source validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766
22.7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766
22.7.2 Validation conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766
22.7.3 Data collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766
22.8 RNG registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
22.8.1 RNG control register (RNG_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
22.8.2 RNG status register (RNG_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768
22.8.3 RNG data register (RNG_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
22.8.4 RNG register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 770
23 Cryptographic processor (CRYP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771
23.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771
23.2 CRYP main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771
23.3 CRYP functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773
RM0410 Rev 4 24/1954
RM0410 Contents
49
23.3.1 CRYP block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773
23.3.2 CRYP internal signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773
23.3.3 CRYP DES/TDES cryptographic core . . . . . . . . . . . . . . . . . . . . . . . . . 774
23.3.4 CRYP AES cryptographic core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775
23.3.5 CRYP procedure to perform a cipher operation . . . . . . . . . . . . . . . . . . 781
23.3.6 CRYP busy state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784
23.3.7 Preparing the CRYP AES key for decryption . . . . . . . . . . . . . . . . . . . . 785
23.3.8 CRYP stealing and data padding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785
23.3.9 CRYP suspend/resume operations . . . . . . . . . . . . . . . . . . . . . . . . . . . 787
23.3.10 CRYP DES/TDES basic chaining modes (ECB, CBC) . . . . . . . . . . . . 788
23.3.11 CRYP AES basic chaining modes (ECB, CBC) . . . . . . . . . . . . . . . . . . 793
23.3.12 CRYP AES counter mode (AES-CTR) . . . . . . . . . . . . . . . . . . . . . . . . . 798
23.3.13 CRYP AES Galois/counter mode (GCM) . . . . . . . . . . . . . . . . . . . . . . . 802
23.3.14 CRYP AES Galois message authentication code (GMAC) . . . . . . . . . 807
23.3.15 CRYP AES Counter with CBC-MAC (CCM) . . . . . . . . . . . . . . . . . . . . 808
23.3.16 CRYP data registers and data swapping . . . . . . . . . . . . . . . . . . . . . . . 814
23.3.17 CRYP key registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 818
23.3.18 CRYP initialization vector registers . . . . . . . . . . . . . . . . . . . . . . . . . . . 819
23.3.19 CRYP DMA interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 820
23.3.20 CRYP error management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822
23.4 CRYP interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822
23.5 CRYP processing time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 824
23.6 CRYP registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825
23.6.1 CRYP control register (CRYP_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 825
23.6.2 CRYP status register (CRYP_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827
23.6.3 CRYP data input register (CRYP_DIN) . . . . . . . . . . . . . . . . . . . . . . . . 827
23.6.4 CRYP data output register (CRYP_DOUT) . . . . . . . . . . . . . . . . . . . . . 828
23.6.5 CRYP DMA control register (CRYP_DMACR) . . . . . . . . . . . . . . . . . . . 829
23.6.6 CRYP interrupt mask set/clear register (CRYP_IMSCR) . . . . . . . . . . . 829
23.6.7 CRYP raw interrupt status register (CRYP_RISR) . . . . . . . . . . . . . . . 830
23.6.8 CRYP masked interrupt status register (CRYP_MISR) . . . . . . . . . . . . 830
23.6.9 CRYP key register 0L (CRYP_K0LR) . . . . . . . . . . . . . . . . . . . . . . . . . 831
23.6.10 CRYP key register 0R (CRYP_K0RR) . . . . . . . . . . . . . . . . . . . . . . . . . 832
23.6.11 CRYP key register 1L (CRYP_K1LR) . . . . . . . . . . . . . . . . . . . . . . . . . 832
23.6.12 CRYP key register 1R (CRYP_K1RR) . . . . . . . . . . . . . . . . . . . . . . . . . 832
23.6.13 CRYP key register 2L (CRYP_K2LR) . . . . . . . . . . . . . . . . . . . . . . . . . 833
23.6.14 CRYP key register 2R (CRYP_K2RR) . . . . . . . . . . . . . . . . . . . . . . . . . 833
Contents RM0410
25/1954 RM0410 Rev 4
23.6.15 CRYP key register 3L (CRYP_K3LR) . . . . . . . . . . . . . . . . . . . . . . . . . 834
23.6.16 CRYP key register 3R (CRYP_K3RR) . . . . . . . . . . . . . . . . . . . . . . . . . 834
23.6.17 CRYP initialization vector register 0L (CRYP_IV0LR) . . . . . . . . . . . . . 834
23.6.18 CRYP initialization vector register 0R (CRYP_IV0RR) . . . . . . . . . . . . 835
23.6.19 CRYP initialization vector register 1L (CRYP_IV1LR) . . . . . . . . . . . . . 835
23.6.20 CRYP initialization vector register 1R (CRYP_IV1RR) . . . . . . . . . . . . 835
23.6.21 CRYP register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 837
24 Hash processor (HASH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839
24.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839
24.2 HASH main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839
24.3 HASH functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 840
24.3.1 HASH block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 840
24.3.2 HASH internal signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 840
24.3.3 About secure hash algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 841
24.3.4 Message data feeding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 841
24.3.5 Message digest computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843
24.3.6 Message padding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 844
24.3.7 HMAC operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 845
24.3.8 Context swapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 847
24.3.9 HASH DMA interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 849
24.3.10 HASH error management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 849
24.4 HASH interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 849
24.5 HASH processing time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 850
24.6 HASH registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851
24.6.1 HASH control register (HASH_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 851
24.6.2 HASH data input register (HASH_DIN) . . . . . . . . . . . . . . . . . . . . . . . . 854
24.6.3 HASH start register (HASH_STR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855
24.6.4 HASH digest registers (HASH_HR0..7) . . . . . . . . . . . . . . . . . . . . . . . . 856
24.6.5 HASH interrupt enable register (HASH_IMR) . . . . . . . . . . . . . . . . . . . 858
24.6.6 HASH status register (HASH_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859
24.6.7 HASH context swap registers (HASH_CSRx) . . . . . . . . . . . . . . . . . . . 860
24.6.8 HASH register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 861
25 Advanced-control timers (TIM1/TIM8) . . . . . . . . . . . . . . . . . . . . . . . . . 862
25.1 TIM1/TIM8 introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 862
RM0410 Rev 4 26/1954
RM0410 Contents
49
25.2 TIM1/TIM8 main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 862
25.3 TIM1/TIM8 functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 864
25.3.1 Time-base unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 864
25.3.2 Counter modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 866
25.3.3 Repetition counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 877
25.3.4 External trigger input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 879
25.3.5 Clock selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 880
25.3.6 Capture/compare channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884
25.3.7 Input capture mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 886
25.3.8 PWM input mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 887
25.3.9 Forced output mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 888
25.3.10 Output compare mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 889
25.3.11 PWM mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 890
25.3.12 Asymmetric PWM mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 893
25.3.13 Combined PWM mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 894
25.3.14 Combined 3-phase PWM mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895
25.3.15 Complementary outputs and dead-time insertion . . . . . . . . . . . . . . . . 896
25.3.16 Using the break function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898
25.3.17 Clearing the OCxREF signal on an external event . . . . . . . . . . . . . . . 904
25.3.18 6-step PWM generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 906
25.3.19 One-pulse mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 907
25.3.20 Retriggerable one pulse mode (OPM) . . . . . . . . . . . . . . . . . . . . . . . . . 908
25.3.21 Encoder interface mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 909
25.3.22 UIF bit remapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 911
25.3.23 Timer input XOR function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 912
25.3.24 Interfacing with Hall sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 912
25.3.25 Timer synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915
25.3.26 ADC synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 919
25.3.27 DMA burst mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 919
25.3.28 Debug mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 920
25.4 TIM1/TIM8 registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921
25.4.1 TIM1/TIM8 control register 1 (TIMx_CR1) . . . . . . . . . . . . . . . . . . . . . . 921
25.4.2 TIM1/TIM8 control register 2 (TIMx_CR2) . . . . . . . . . . . . . . . . . . . . . . 922
25.4.3 TIM1/TIM8 slave mode control register (TIMx_SMCR) . . . . . . . . . . . . 925
25.4.4 TIM1/TIM8 DMA/interrupt enable register (TIMx_DIER) . . . . . . . . . . . 927
25.4.5 TIM1/TIM8 status register (TIMx_SR) . . . . . . . . . . . . . . . . . . . . . . . . . 929
25.4.6 TIM1/TIM8 event generation register (TIMx_EGR) . . . . . . . . . . . . . . . 931
Contents RM0410
27/1954 RM0410 Rev 4
25.4.7 TIM1/TIM8 capture/compare mode register 1 (TIMx_CCMR1) . . . . . . 932
25.4.8 TIM1/TIM8 capture/compare mode register 2 (TIMx_CCMR2) . . . . . . 936
25.4.9 TIM1/TIM8 capture/compare enable register (TIMx_CCER) . . . . . . . . 938
25.4.10 TIM1/TIM8 counter (TIMx_CNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942
25.4.11 TIM1/TIM8 prescaler (TIMx_PSC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942
25.4.12 TIM1/TIM8 auto-reload register (TIMx_ARR) . . . . . . . . . . . . . . . . . . . 942
25.4.13 TIM1/TIM8 repetition counter register (TIMx_RCR) . . . . . . . . . . . . . . 943
25.4.14 TIM1/TIM8 capture/compare register 1 (TIMx_CCR1) . . . . . . . . . . . . 943
25.4.15 TIM1/TIM8 capture/compare register 2 (TIMx_CCR2) . . . . . . . . . . . . 944
25.4.16 TIM1/TIM8 capture/compare register 3 (TIMx_CCR3) . . . . . . . . . . . . 944
25.4.17 TIM1/TIM8 capture/compare register 4 (TIMx_CCR4) . . . . . . . . . . . . 945
25.4.18 TIM1/TIM8 break and dead-time register (TIMx_BDTR) . . . . . . . . . . . 945
25.4.19 TIM1/TIM8 DMA control register (TIMx_DCR) . . . . . . . . . . . . . . . . . . . 948
25.4.20 TIM1/TIM8 DMA address for full transfer (TIMx_DMAR) . . . . . . . . . . . 949
25.4.21 TIM1/TIM8 capture/compare mode register 3 (TIMx_CCMR3) . . . . . . 950
25.4.22 TIM1/TIM8 capture/compare register 5 (TIMx_CCR5) . . . . . . . . . . . . 951
25.4.23 TIM1/TIM8 capture/compare register 6 (TIMx_CCR6) . . . . . . . . . . . . 952
25.4.24 TIM1/TIM8 alternate function option register 1 (TIMx_AF1) . . . . . . . . 952
25.4.25 TIM1/TIM8 alternate function option register 2 (TIMx_AF2) . . . . . . . . 953
25.4.26 TIM1 register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 955
25.4.27 TIM8 register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 958
26 General-purpose timers (TIM2/TIM3/TIM4/TIM5) . . . . . . . . . . . . . . . . . 961
26.1 TIM2/TIM3/TIM4/TIM5 introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 961
26.2 TIM2/TIM3/TIM4/TIM5 main features . . . . . . . . . . . . . . . . . . . . . . . . . . . 961
26.3 TIM2/TIM3/TIM4/TIM5 functional description . . . . . . . . . . . . . . . . . . . . . 963
26.3.1 Time-base unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 963
26.3.2 Counter modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 965
26.3.3 Clock selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 975
26.3.4 Capture/compare channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 979
26.3.5 Input capture mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 981
26.3.6 PWM input mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 982
26.3.7 Forced output mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 983
26.3.8 Output compare mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 984
26.3.9 PWM mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 985
26.3.10 Asymmetric PWM mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 988
26.3.11 Combined PWM mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 989
RM0410 Rev 4 28/1954
RM0410 Contents
49
26.3.12 Clearing the OCxREF signal on an external event . . . . . . . . . . . . . . . 990
26.3.13 One-pulse mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 992
26.3.14 Retriggerable one pulse mode (OPM) . . . . . . . . . . . . . . . . . . . . . . . . . 993
26.3.15 Encoder interface mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994
26.3.16 UIF bit remapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 996
26.3.17 Timer input XOR function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 996
26.3.18 Timers and external trigger synchronization . . . . . . . . . . . . . . . . . . . . 997
26.3.19 Timer synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1000
26.3.20 DMA burst mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004
26.3.21 Debug mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1005
26.4 TIM2/TIM3/TIM4/TIM5 registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1006
26.4.1 TIMx control register 1 (TIMx_CR1) . . . . . . . . . . . . . . . . . . . . . . . . . 1006
26.4.2 TIMx control register 2 (TIMx_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . 1007
26.4.3 TIMx slave mode control register (TIMx_SMCR) . . . . . . . . . . . . . . . . 1009
26.4.4 TIMx DMA/Interrupt enable register (TIMx_DIER) . . . . . . . . . . . . . . . 1012
26.4.5 TIMx status register (TIMx_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013
26.4.6 TIMx event generation register (TIMx_EGR) . . . . . . . . . . . . . . . . . . . 1014
26.4.7 TIMx capture/compare mode register 1 (TIMx_CCMR1) . . . . . . . . . . 1015
26.4.8 TIMx capture/compare mode register 2 (TIMx_CCMR2) . . . . . . . . . . 1019
26.4.9 TIMx capture/compare enable register (TIMx_CCER) . . . . . . . . . . . 1021
26.4.10 TIMx counter (TIMx_CNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1022
26.4.11 TIMx prescaler (TIMx_PSC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1023
26.4.12 TIMx auto-reload register (TIMx_ARR) . . . . . . . . . . . . . . . . . . . . . . . 1023
26.4.13 TIMx capture/compare register 1 (TIMx_CCR1) . . . . . . . . . . . . . . . . 1023
26.4.14 TIMx capture/compare register 2 (TIMx_CCR2) . . . . . . . . . . . . . . . . 1024
26.4.15 TIMx capture/compare register 3 (TIMx_CCR3) . . . . . . . . . . . . . . . . 1024
26.4.16 TIMx capture/compare register 4 (TIMx_CCR4) . . . . . . . . . . . . . . . . 1025
26.4.17 TIMx DMA control register (TIMx_DCR) . . . . . . . . . . . . . . . . . . . . . . 1026
26.4.18 TIMx DMA address for full transfer (TIMx_DMAR) . . . . . . . . . . . . . . 1026
26.4.19 TIM2 option register (TIM2_OR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027
26.4.20 TIM5 option register (TIM5_OR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027
26.4.21 TIMx register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1028
27 General-purpose timers (TIM9/TIM10/TIM11/TIM12/TIM13/TIM14) . 1031
27.1 TIM9/TIM10/TIM11/TIM12/TIM13/TIM14 introduction . . . . . . . . . . . . . 1031
27.2 TIM9/TIM10/TIM11/TIM12/TIM13/TIM14 main features . . . . . . . . . . . . 1031
27.2.1 TIM9/TIM12 main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1031
Contents RM0410
29/1954 RM0410 Rev 4
27.2.2 TIM10/TIM11/TIM13/TIM14 main features . . . . . . . . . . . . . . . . . . . . . 1032
27.3 TIM9/TIM10/TIM11/TIM12/TIM13/TIM14 functional description . . . . . . 1034
27.3.1 Time-base unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1034
27.3.2 Counter modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1036
27.3.3 Clock selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039
27.3.4 Capture/compare channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1041
27.3.5 Input capture mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1043
27.3.6 PWM input mode (only for TIM9/TIM12) . . . . . . . . . . . . . . . . . . . . . . 1044
27.3.7 Forced output mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1045
27.3.8 Output compare mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1045
27.3.9 PWM mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1046
27.3.10 Combined PWM mode (TIM9/TIM12 only) . . . . . . . . . . . . . . . . . . . . 1047
27.3.11 One-pulse mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049
27.3.12 Retriggerable one pulse mode (OPM) (TIM12 only) . . . . . . . . . . . . . 1050
27.3.13 UIF bit remapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1051
27.3.14 Timer input XOR function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1051
27.3.15 TIM9/TIM12 external trigger synchronization . . . . . . . . . . . . . . . . . . 1052
27.3.16 Slave mode – combined reset + trigger mode . . . . . . . . . . . . . . . . . . 1054
27.3.17 Timer synchronization (TIM9/TIM12) . . . . . . . . . . . . . . . . . . . . . . . . . 1055
27.3.18 Debug mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1055
27.4 TIM9/TIM12 registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1055
27.4.1 TIM9/TIM12 control register 1 (TIMx_CR1) . . . . . . . . . . . . . . . . . . . . 1055
27.4.2 TIM9/TIM12 slave mode control register (TIMx_SMCR) . . . . . . . . . . 1056
27.4.3 TIM9/TIM12 Interrupt enable register (TIMx_DIER) . . . . . . . . . . . . . 1058
27.4.4 TIM9/TIM12 status register (TIMx_SR) . . . . . . . . . . . . . . . . . . . . . . . 1058
27.4.5 TIM9/TIM12 event generation register (TIMx_EGR) . . . . . . . . . . . . . 1059
27.4.6 TIM9/TIM12 capture/compare mode register 1 (TIMx_CCMR1) . . . . 1060
27.4.7 TIM9/TIM12 capture/compare enable register (TIMx_CCER) . . . . . . 1064
27.4.8 TIM9/TIM12 counter (TIMx_CNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1065
27.4.9 TIM9/TIM12 prescaler (TIMx_PSC) . . . . . . . . . . . . . . . . . . . . . . . . . . 1065
27.4.10 TIM9/TIM12 auto-reload register (TIMx_ARR) . . . . . . . . . . . . . . . . . 1066
27.4.11 TIM9/TIM12 capture/compare register 1 (TIMx_CCR1) . . . . . . . . . . 1066
27.4.12 TIM9/TIM12 capture/compare register 2 (TIMx_CCR2) . . . . . . . . . . 1066
27.4.13 TIM9/TIM12 register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1068
27.5 TIM10/TIM11/TIM13/TIM14 registers . . . . . . . . . . . . . . . . . . . . . . . . . . 1070
27.5.1 TIM10/TIM11/TIM13/TIM14 control register 1 (TIMx_CR1) . . . . . . . . 1070
27.5.2 TIM10/TIM11/TIM13/TIM14 Interrupt enable register (TIMx_DIER) . 1071
RM0410 Rev 4 30/1954
RM0410 Contents
49
27.5.3 TIM10/TIM11/TIM13/TIM14 status register (TIMx_SR) . . . . . . . . . . . 1071
27.5.4 TIM10/TIM11/TIM13/TIM14 event generation register (TIMx_EGR) . 1072
27.5.5 TIM10/TIM11/TIM13/TIM14 capture/compare mode register 1
(TIMx_CCMR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1073
27.5.6 TIM10/TIM11/TIM13/TIM14 capture/compare enable register
(TIMx_CCER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1075
27.5.7 TIM10/TIM11/TIM13/TIM14 counter (TIMx_CNT) . . . . . . . . . . . . . . . 1076
27.5.8 TIM10/TIM11/TIM13/TIM14 prescaler (TIMx_PSC) . . . . . . . . . . . . . . 1077
27.5.9 TIM10/TIM11/TIM13/TIM14 auto-reload register (TIMx_ARR) . . . . . 1077
27.5.10 TIM10/TIM11/TIM13/TIM14 capture/compare register 1
(TIMx_CCR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1077
27.5.11 TIM11 option register 1 (TIM11_OR) . . . . . . . . . . . . . . . . . . . . . . . . . 1078
27.5.12 TIM10/TIM11/TIM13/TIM14 register map . . . . . . . . . . . . . . . . . . . . . 1078
28 Basic timers (TIM6/TIM7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1080
28.1 TIM6/TIM7 introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1080
28.2 TIM6/TIM7 main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1080
28.3 TIM6/TIM7 functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1081
28.3.1 Time-base unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1081
28.3.2 Counting mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1083
28.3.3 UIF bit remapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1086
28.3.4 Clock source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1086
28.3.5 Debug mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1087
28.4 TIM6/TIM7 registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1087
28.4.1 TIM6/TIM7 control register 1 (TIMx_CR1) . . . . . . . . . . . . . . . . . . . . . 1087
28.4.2 TIM6/TIM7 control register 2 (TIMx_CR2) . . . . . . . . . . . . . . . . . . . . . 1089
28.4.3 TIM6/TIM7 DMA/Interrupt enable register (TIMx_DIER) . . . . . . . . . . 1089
28.4.4 TIM6/TIM7 status register (TIMx_SR) . . . . . . . . . . . . . . . . . . . . . . . . 1090
28.4.5 TIM6/TIM7 event generation register (TIMx_EGR) . . . . . . . . . . . . . . 1090
28.4.6 TIM6/TIM7 counter (TIMx_CNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090
28.4.7 TIM6/TIM7 prescaler (TIMx_PSC) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1091
28.4.8 TIM6/TIM7 auto-reload register (TIMx_ARR) . . . . . . . . . . . . . . . . . . 1091
28.4.9 TIM6/TIM7 register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1092
29 Low-power timer (LPTIM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1093
29.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1093
29.2 LPTIM main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1093
Contents RM0410
31/1954 RM0410 Rev 4
29.3 LPTIM implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1093
29.4 LPTIM functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1094
29.4.1 LPTIM block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1094
29.4.2 LPTIM trigger mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1094
29.4.3 LPTIM reset and clocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1095
29.4.4 Glitch filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1095
29.4.5 Prescaler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1096
29.4.6 Trigger multiplexer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1096
29.4.7 Operating mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1097
29.4.8 Timeout function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1099
29.4.9 Waveform generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1099
29.4.10 Register update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1100
29.4.11 Counter mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1101
29.4.12 Timer enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1101
29.4.13 Encoder mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1102
29.5 LPTIM interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1103
29.6 LPTIM registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1104
29.6.1 LPTIM interrupt and status register (LPTIM_ISR) . . . . . . . . . . . . . . . 1104
29.6.2 LPTIM interrupt clear register (LPTIM_ICR) . . . . . . . . . . . . . . . . . . . 1105
29.6.3 LPTIM interrupt enable register (LPTIM_IER) . . . . . . . . . . . . . . . . . . 1106
29.6.4 LPTIM configuration register (LPTIM_CFGR) . . . . . . . . . . . . . . . . . . 1107
29.6.5 LPTIM control register (LPTIM_CR) . . . . . . . . . . . . . . . . . . . . . . . . . 1109
29.6.6 LPTIM compare register (LPTIM_CMP) . . . . . . . . . . . . . . . . . . . . . . 1110
29.6.7 LPTIM autoreload register (LPTIM_ARR) . . . . . . . . . . . . . . . . . . . . . 1111
29.6.8 LPTIM counter register (LPTIM_CNT) . . . . . . . . . . . . . . . . . . . . . . . . 1111
29.6.9 LPTIM register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1112
30 Independent watchdog (IWDG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1113
30.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1113
30.2 IWDG main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1113
30.3 IWDG functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1113
30.3.1 IWDG block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1113
30.3.2 Window option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1114
30.3.3 Hardware watchdog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1115
30.3.4 Low-power freeze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1115
30.3.5 Behavior in Stop and Standby modes . . . . . . . . . . . . . . . . . . . . . . . . 1115
RM0410 Rev 4 32/1954
RM0410 Contents
49
30.3.6 Register access protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1115
30.3.7 Debug mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1115
30.4 IWDG registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1116
30.4.1 Key register (IWDG_KR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1116
30.4.2 Prescaler register (IWDG_PR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1117
30.4.3 Reload register (IWDG_RLR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1118
30.4.4 Status register (IWDG_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1119
30.4.5 Window register (IWDG_WINR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1120
30.4.6 IWDG register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1121
31 System window watchdog (WWDG) . . . . . . . . . . . . . . . . . . . . . . . . . 1122
31.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1122
31.2 WWDG main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1122
31.3 WWDG functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1122
31.3.1 Enabling the watchdog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1123
31.3.2 Controlling the downcounter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1123
31.3.3 Advanced watchdog interrupt feature . . . . . . . . . . . . . . . . . . . . . . . . 1123
31.3.4 How to program the watchdog timeout . . . . . . . . . . . . . . . . . . . . . . . 1124
31.3.5 Debug mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1125
31.4 WWDG registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1126
31.4.1 Control register (WWDG_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1126
31.4.2 Configuration register (WWDG_CFR) . . . . . . . . . . . . . . . . . . . . . . . . 1126
31.4.3 Status register (WWDG_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1127
31.4.4 WWDG register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1128
32 Real-time clock (RTC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1129
32.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1129
32.2 RTC main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1130
32.3 RTC functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1131
32.3.1 RTC block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1131
32.3.2 GPIOs controlled by the RTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1132
32.3.3 Clock and prescalers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1134
32.3.4 Real-time clock and calendar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1135
32.3.5 Programmable alarms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1135
32.3.6 Periodic auto-wakeup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1136
32.3.7 RTC initialization and configuration . . . . . . . . . . . . . . . . . . . . . . . . . . 1137
Contents RM0410
33/1954 RM0410 Rev 4
32.3.8 Reading the calendar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1138
32.3.9 Resetting the RTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1139
32.3.10 RTC synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1140
32.3.11 RTC reference clock detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1140
32.3.12 RTC smooth digital calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1141
32.3.13 Time-stamp function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1143
32.3.14 Tamper detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1144
32.3.15 Calibration clock output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1146
32.3.16 Alarm output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1146
32.4 RTC low-power modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1147
32.5 RTC interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1147
32.6 RTC registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1148
32.6.1 RTC time register (RTC_TR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1148
32.6.2 RTC date register (RTC_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1149
32.6.3 RTC control register (RTC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1150
32.6.4 RTC initialization and status register (RTC_ISR) . . . . . . . . . . . . . . . . 1153
32.6.5 RTC prescaler register (RTC_PRER) . . . . . . . . . . . . . . . . . . . . . . . . 1156
32.6.6 RTC wakeup timer register (RTC_WUTR) . . . . . . . . . . . . . . . . . . . . . 1157
32.6.7 RTC alarm A register (RTC_ALRMAR) . . . . . . . . . . . . . . . . . . . . . . . 1158
32.6.8 RTC alarm B register (RTC_ALRMBR) . . . . . . . . . . . . . . . . . . . . . . . 1159
32.6.9 RTC write protection register (RTC_WPR) . . . . . . . . . . . . . . . . . . . . 1160
32.6.10 RTC sub second register (RTC_SSR) . . . . . . . . . . . . . . . . . . . . . . . . 1160
32.6.11 RTC shift control register (RTC_SHIFTR) . . . . . . . . . . . . . . . . . . . . . 1161
32.6.12 RTC timestamp time register (RTC_TSTR) . . . . . . . . . . . . . . . . . . . . 1162
32.6.13 RTC timestamp date register (RTC_TSDR) . . . . . . . . . . . . . . . . . . . 1163
32.6.14 RTC time-stamp sub second register (RTC_TSSSR) . . . . . . . . . . . . 1164
32.6.15 RTC calibration register (RTC_CALR) . . . . . . . . . . . . . . . . . . . . . . . . 1165
32.6.16 RTC tamper configuration register (RTC_TAMPCR) . . . . . . . . . . . . . 1166
32.6.17 RTC alarm A sub second register (RTC_ALRMASSR) . . . . . . . . . . . 1169
32.6.18 RTC alarm B sub second register (RTC_ALRMBSSR) . . . . . . . . . . . 1170
32.6.19 RTC option register (RTC_OR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1171
32.6.20 RTC backup registers (RTC_BKPxR) . . . . . . . . . . . . . . . . . . . . . . . . 1171
32.6.21 RTC register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1172
33 Inter-integrated circuit (I2C) interface . . . . . . . . . . . . . . . . . . . . . . . . 1174
33.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1174
33.2 I2C main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1174
RM0410 Rev 4 34/1954
RM0410 Contents
49
33.3 I2C implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1175
33.4 I2C functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1175
33.4.1 I2C block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1176
33.4.2 I2C clock requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1177
33.4.3 Mode selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1177
33.4.4 I2C initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178
33.4.5 Software reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1182
33.4.6 Data transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1183
33.4.7 I2C slave mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1185
33.4.8 I2C master mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1194
33.4.9 I2C_TIMINGR register configuration examples . . . . . . . . . . . . . . . . . 1206
33.4.10 SMBus specific features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1207
33.4.11 SMBus initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1210
33.4.12 SMBus: I2C_TIMEOUTR register configuration examples . . . . . . . . 1212
33.4.13 SMBus slave mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1212
33.4.14 Error conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1219
33.4.15 DMA requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1221
33.4.16 Debug mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1222
33.5 I2C low-power modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1222
33.6 I2C interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223
33.7 I2C registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1224
33.7.1 Control register 1 (I2C_CR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1224
33.7.2 Control register 2 (I2C_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1227
33.7.3 Own address 1 register (I2C_OAR1) . . . . . . . . . . . . . . . . . . . . . . . . . 1230
33.7.4 Own address 2 register (I2C_OAR2) . . . . . . . . . . . . . . . . . . . . . . . . . 1231
33.7.5 Timing register (I2C_TIMINGR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1232
33.7.6 Timeout register (I2C_TIMEOUTR) . . . . . . . . . . . . . . . . . . . . . . . . . . 1233
33.7.7 Interrupt and status register (I2C_ISR) . . . . . . . . . . . . . . . . . . . . . . . 1234
33.7.8 Interrupt clear register (I2C_ICR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1236
33.7.9 PEC register (I2C_PECR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1237
33.7.10 Receive data register (I2C_RXDR) . . . . . . . . . . . . . . . . . . . . . . . . . . 1238
33.7.11 Transmit data register (I2C_TXDR) . . . . . . . . . . . . . . . . . . . . . . . . . . 1238
33.7.12 I2C register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1239
34 Universal synchronous asynchronous receiver
transmitter (USART) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1241
34.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1241
Contents RM0410
35/1954 RM0410 Rev 4
34.2 USART main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1241
34.3 USART extended features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1242
34.4 USART implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1243
34.5 USART functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1243
34.5.1 USART character description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1246
34.5.2 USART transmitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1248
34.5.3 USART receiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1250
34.5.4 USART baud rate generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1256
34.5.5 Tolerance of the USART receiver to clock deviation . . . . . . . . . . . . . 1259
34.5.6 USART auto baud rate detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1260
34.5.7 Multiprocessor communication using USART . . . . . . . . . . . . . . . . . . 1261
34.5.8 Modbus communication using USART . . . . . . . . . . . . . . . . . . . . . . . 1263
34.5.9 USART parity control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1264
34.5.10 USART LIN (local interconnection network) mode . . . . . . . . . . . . . . 1265
34.5.11 USART synchronous mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1267
34.5.12 USART Single-wire Half-duplex communication . . . . . . . . . . . . . . . . 1270
34.5.13 USART Smartcard mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1270
34.5.14 USART IrDA SIR ENDEC block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1275
34.5.15 USART continuous communication in DMA mode . . . . . . . . . . . . . . . 1277
34.5.16 RS232 hardware flow control and RS485 driver enable
using USART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1279
34.5.17 Wakeup from Stop mode using USART . . . . . . . . . . . . . . . . . . . . . . . 1281
34.6 USART low-power modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1283
34.7 USART interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1283
34.8 USART registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1285
34.8.1 Control register 1 (USART_CR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1285
34.8.2 Control register 2 (USART_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1288
34.8.3 Control register 3 (USART_CR3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1292
34.8.4 Baud rate register (USART_BRR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1296
34.8.5 Guard time and prescaler register (USART_GTPR) . . . . . . . . . . . . . 1296
34.8.6 Receiver timeout register (USART_RTOR) . . . . . . . . . . . . . . . . . . . . 1298
34.8.7 Request register (USART_RQR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1299
34.8.8 Interrupt and status register (USART_ISR) . . . . . . . . . . . . . . . . . . . . 1300
34.8.9 Interrupt flag clear register (USART_ICR) . . . . . . . . . . . . . . . . . . . . . 1304
34.8.10 Receive data register (USART_RDR) . . . . . . . . . . . . . . . . . . . . . . . . 1306
34.8.11 Transmit data register (USART_TDR) . . . . . . . . . . . . . . . . . . . . . . . . 1306
34.8.12 USART register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1307
RM0410 Rev 4 36/1954
RM0410 Contents
49
35 Serial peripheral interface / inter-IC sound (SPI/I2S) . . . . . . . . . . . . 1309
35.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1309
35.2 SPI main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1309
35.3 I2S main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1310
35.4 SPI/I2S implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1310
35.5 SPI functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1311
35.5.1 General description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1311
35.5.2 Communications between one master and one slave . . . . . . . . . . . . 1312
35.5.3 Standard multi-slave communication . . . . . . . . . . . . . . . . . . . . . . . . . 1314
35.5.4 Multi-master communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1315
35.5.5 Slave select (NSS) pin management . . . . . . . . . . . . . . . . . . . . . . . . . 1316
35.5.6 Communication formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1317
35.5.7 Configuration of SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1319
35.5.8 Procedure for enabling SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1320
35.5.9 Data transmission and reception procedures . . . . . . . . . . . . . . . . . . 1320
35.5.10 SPI status flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1330
35.5.11 SPI error flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1331
35.5.12 NSS pulse mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1332
35.5.13 TI mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1332
35.5.14 CRC calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1333
35.6 SPI interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1335
35.7 I2S functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1336
35.7.1 I2S general description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1336
35.7.2 I2S full duplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1337
35.7.3 Supported audio protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1338
35.7.4 Start-up description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1345
35.7.5 Clock generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1347
35.7.6 I2S master mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1350
35.7.7 I2S slave mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1352
35.7.8 I2S status flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1353
35.7.9 I2S error flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1354
35.7.10 DMA features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1355
35.8 I2S interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1355
35.9 SPI and I2S registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1356
35.9.1 SPI control register 1 (SPIx_CR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1356
35.9.2 SPI control register 2 (SPIx_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1358
Contents RM0410
37/1954 RM0410 Rev 4
35.9.3 SPI status register (SPIx_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1361
35.9.4 SPI data register (SPIx_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1362
35.9.5 SPI CRC polynomial register (SPIx_CRCPR) . . . . . . . . . . . . . . . . . . 1362
35.9.6 SPI Rx CRC register (SPIx_RXCRCR) . . . . . . . . . . . . . . . . . . . . . . . 1364
35.9.7 SPI Tx CRC register (SPIx_TXCRCR) . . . . . . . . . . . . . . . . . . . . . . . 1364
35.9.8 SPIx_I2S configuration register (SPIx_I2SCFGR) . . . . . . . . . . . . . . . 1365
35.9.9 SPIx_I2S prescaler register (SPIx_I2SPR) . . . . . . . . . . . . . . . . . . . . 1367
35.9.10 SPI/I2S register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1368
36 Serial audio interface (SAI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1369
36.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1369
36.2 SAI main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1370
36.3 SAI functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1371
36.3.1 SAI block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1371
36.3.2 SAI pins and internal signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1372
36.3.3 Main SAI modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1372
36.3.4 SAI synchronization mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1373
36.3.5 Audio data size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1374
36.3.6 Frame synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1375
36.3.7 Slot configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1378
36.3.8 SAI clock generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1380
36.3.9 Internal FIFOs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1382
36.3.10 AC’97 link controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1384
36.3.11 SPDIF output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1386
36.3.12 Specific features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1389
36.3.13 Error flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1393
36.3.14 Disabling the SAI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1396
36.3.15 SAI DMA interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1396
36.4 SAI interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1397
36.5 SAI registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1398
36.5.1 Global configuration register (SAI_GCR) . . . . . . . . . . . . . . . . . . . . . . 1398
36.5.2 Configuration register 1 (SAI_ACR1) . . . . . . . . . . . . . . . . . . . . . . . . . 1398
36.5.3 Configuration register 1 (SAI_BCR1) . . . . . . . . . . . . . . . . . . . . . . . . . 1401
36.5.4 Configuration register 2 (SAI_ACR2) . . . . . . . . . . . . . . . . . . . . . . . . . 1403
36.5.5 Configuration register 2 (SAI_BCR2) . . . . . . . . . . . . . . . . . . . . . . . . . 1405
36.5.6 Frame configuration register (SAI_AFRCR) . . . . . . . . . . . . . . . . . . . 1407
36.5.7 Frame configuration register (SAI_BFRCR) . . . . . . . . . . . . . . . . . . . 1408
RM0410 Rev 4 38/1954
RM0410 Contents
49
36.5.8 Slot register (SAI_ASLOTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1410
36.5.9 Slot register (SAI_BSLOTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1411
36.5.10 Interrupt mask register 2 (SAI_AIM) . . . . . . . . . . . . . . . . . . . . . . . . . 1412
36.5.11 Interrupt mask register 2 (SAI_BIM) . . . . . . . . . . . . . . . . . . . . . . . . . 1413
36.5.12 Status register (SAI_ASR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1414
36.5.13 Status register (SAI_BSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1416
36.5.14 Clear flag register (SAI_ACLRFR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1418
36.5.15 Clear flag register (SAI_BCLRFR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1419
36.5.16 Data register (SAI_ADR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1420
36.5.17 Data register (SAI_BDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1421
36.5.18 SAI register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1422
37 SPDIF receiver interface (SPDIFRX) . . . . . . . . . . . . . . . . . . . . . . . . . 1423
37.1 SPDIFRX interface introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1423
37.2 SPDIFRX main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1423
37.3 SPDIFRX functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1423
37.3.1 S/PDIF protocol (IEC-60958) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1424
37.3.2 SPDIFRX decoder (SPDIFRX_DC) . . . . . . . . . . . . . . . . . . . . . . . . . . 1427
37.3.3 SPDIFRX tolerance to clock deviation . . . . . . . . . . . . . . . . . . . . . . . . 1431
37.3.4 SPDIFRX synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1431
37.3.5 SPDIFRX handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1433
37.3.6 Data reception management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1435
37.3.7 Dedicated control flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1437
37.3.8 Reception errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1438
37.3.9 Clocking strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1440
37.3.10 DMA Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1440
37.3.11 Interrupt Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1441
37.3.12 Register protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1442
37.4 Programming procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1442
37.4.1 Initialization phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1443
37.4.2 Handling of interrupts coming from SPDIFRX . . . . . . . . . . . . . . . . . . 1444
37.4.3 Handling of interrupts coming from DMA . . . . . . . . . . . . . . . . . . . . . . 1444
37.5 SPDIFRX interface registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1445
37.5.1 Control register (SPDIFRX_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1445
37.5.2 Interrupt mask register (SPDIFRX_IMR) . . . . . . . . . . . . . . . . . . . . . . 1447
37.5.3 Status register (SPDIFRX_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1448
37.5.4 Interrupt flag clear register (SPDIFRX_IFCR) . . . . . . . . . . . . . . . . . . 1450
Contents RM0410
39/1954 RM0410 Rev 4
37.5.5 Data input register (SPDIFRX_FMT0_DR) . . . . . . . . . . . . . . . . . . . . 1451
37.5.6 Data input register (SPDIFRX_FMT1_DR) . . . . . . . . . . . . . . . . . . . . 1452
37.5.7 Data input register (SPDIFRX_FMT2_DR) . . . . . . . . . . . . . . . . . . . . 1453
37.5.8 Channel status register (SPDIFRX_CSR) . . . . . . . . . . . . . . . . . . . . . 1454
37.5.9 Debug information register (SPDIFRX_DIR) . . . . . . . . . . . . . . . . . . . 1454
37.5.10 SPDIFRX interface register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1456
38 Management data input/output (MDIOS) . . . . . . . . . . . . . . . . . . . . . . 1457
38.1 MDIOS introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1457
38.2 MDIOS main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1457
38.3 MDIOS functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1458
38.3.1 MDIOS block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1458
38.3.2 MDIOS protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1458
38.3.3 MDIOS enabling and disabling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1459
38.3.4 MDIOS data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1459
38.3.5 MDIOS APB frequency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1461
38.3.6 Write/read flags and interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1461
38.3.7 MDIOS error management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1461
38.3.8 MDIOS in Stop mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1462
38.3.9 MDIOS interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1463
38.4 MDIOS registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1464
38.4.1 MDIOS configuration register (MDIOS_CR) . . . . . . . . . . . . . . . . . . . 1464
38.4.2 MDIOS write flag register (MDIOS_WRFR) . . . . . . . . . . . . . . . . . . . . 1465
38.4.3 MDIOS clear write flag register (MDIOS_CWRFR) . . . . . . . . . . . . . . 1465
38.4.4 MDIOS read flag register (MDIOS_RDFR) . . . . . . . . . . . . . . . . . . . . 1466
38.4.5 MDIOS clear read flag register (MDIOS_CRDFR) . . . . . . . . . . . . . . 1466
38.4.6 MDIOS status register (MDIOS_SR) . . . . . . . . . . . . . . . . . . . . . . . . . 1467
38.4.7 MDIOS clear flag register (MDIOS_CLRFR) . . . . . . . . . . . . . . . . . . . 1468
38.4.8 MDIOS input data register (MDIOS_DINR0-MDIOS_DINR31) . . . . . 1469
38.4.9 MDIOS output data register (MDIOS_DOUTR0-MDIOS_DOUTR31) 1469
38.4.10 MDIOS register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1470
39 SD/SDIO/MMC card host interface (SDMMC) . . . . . . . . . . . . . . . . . . 1472
39.1 SDMMC main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1472
39.2 SDMMC bus topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1472
39.3 SDMMC functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1474
RM0410 Rev 4 40/1954
RM0410 Contents
49
39.3.1 SDMMC adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1476
39.3.2 SDMMC APB2 interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1487
39.4 Card functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1488
39.4.1 Card identification mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1488
39.4.2 Card reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1489
39.4.3 Operating voltage range validation . . . . . . . . . . . . . . . . . . . . . . . . . . 1489
39.4.4 Card identification process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1489
39.4.5 Block write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1490
39.4.6 Block read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1491
39.4.7 Stream access, stream write and stream read
(MultiMediaCard only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1491
39.4.8 Erase: group erase and sector erase . . . . . . . . . . . . . . . . . . . . . . . . 1493
39.4.9 Wide bus selection or deselection . . . . . . . . . . . . . . . . . . . . . . . . . . . 1493
39.4.10 Protection management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1493
39.4.11 Card status register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1497
39.4.12 SD status register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1500
39.4.13 SD I/O mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1504
39.4.14 Commands and responses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1505
39.5 Response formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1508
39.5.1 R1 (normal response command) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1509
39.5.2 R1b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1509
39.5.3 R2 (CID, CSD register) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1509
39.5.4 R3 (OCR register) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1510
39.5.5 R4 (Fast I/O) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1510
39.5.6 R4b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1510
39.5.7 R5 (interrupt request) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1511
39.5.8 R6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1511
39.6 SDIO I/O card-specific operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1512
39.6.1 SDIO I/O read wait operation by SDMMC_D2 signalling . . . . . . . . . . 1512
39.6.2 SDIO read wait operation by stopping SDMMC_CK . . . . . . . . . . . . . 1513
39.6.3 SDIO suspend/resume operation . . . . . . . . . . . . . . . . . . . . . . . . . . . 1513
39.6.4 SDIO interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1513
39.7 HW flow control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1513
39.8 SDMMC registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1514
39.8.1 SDMMC power control register (SDMMC_POWER) . . . . . . . . . . . . . 1514
39.8.2 SDMMC clock control register (SDMMC_CLKCR) . . . . . . . . . . . . . . 1514
39.8.3 SDMMC argument register (SDMMC_ARG) . . . . . . . . . . . . . . . . . . . 1516
Contents RM0410
41/1954 RM0410 Rev 4
39.8.4 SDMMC command register (SDMMC_CMD) . . . . . . . . . . . . . . . . . . 1516
39.8.5 SDMMC command response register (SDMMC_RESPCMD) . . . . . . 1517
39.8.6 SDMMC response 1..4 register (SDMMC_RESPx) . . . . . . . . . . . . . . 1517
39.8.7 SDMMC data timer register (SDMMC_DTIMER) . . . . . . . . . . . . . . . 1518
39.8.8 SDMMC data length register (SDMMC_DLEN) . . . . . . . . . . . . . . . . . 1519
39.8.9 SDMMC data control register (SDMMC_DCTRL) . . . . . . . . . . . . . . . 1519
39.8.10 SDMMC data counter register (SDMMC_DCOUNT) . . . . . . . . . . . . . 1522
39.8.11 SDMMC status register (SDMMC_STA) . . . . . . . . . . . . . . . . . . . . . . 1522
39.8.12 SDMMC interrupt clear register (SDMMC_ICR) . . . . . . . . . . . . . . . . 1523
39.8.13 SDMMC mask register (SDMMC_MASK) . . . . . . . . . . . . . . . . . . . . . 1525
39.8.14 SDMMC FIFO counter register (SDMMC_FIFOCNT) . . . . . . . . . . . . 1527
39.8.15 SDMMC data FIFO register (SDMMC_FIFO) . . . . . . . . . . . . . . . . . . 1528
39.8.16 SDMMC register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1529
40 Controller area network (bxCAN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1531
40.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1531
40.2 bxCAN main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1531
40.3 bxCAN general description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1532
40.3.1 CAN 2.0B active core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1532
40.3.2 Control, status and configuration registers . . . . . . . . . . . . . . . . . . . . 1533
40.3.3 Tx mailboxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1533
40.3.4 Acceptance filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1533
40.4 bxCAN operating modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1535
40.4.1 Initialization mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1535
40.4.2 Normal mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1536
40.4.3 Sleep mode (low-power) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1536
40.5 Test mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1537
40.5.1 Silent mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1537
40.5.2 Loop back mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1538
40.5.3 Loop back combined with silent mode . . . . . . . . . . . . . . . . . . . . . . . . 1538
40.6 Behavior in debug mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1539
40.7 bxCAN functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1539
40.7.1 Transmission handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1539
40.7.2 Time triggered communication mode . . . . . . . . . . . . . . . . . . . . . . . . . 1541
40.7.3 Reception handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1541
40.7.4 Identifier filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1542
RM0410 Rev 4 42/1954
RM0410 Contents
49
40.7.5 Message storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1546
40.7.6 Error management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1548
40.7.7 Bit timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1548
40.8 bxCAN interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1551
40.9 CAN registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1552
40.9.1 Register access protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1552
40.9.2 CAN control and status registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1552
40.9.3 CAN mailbox registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1562
40.9.4 CAN filter registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1569
40.9.5 bxCAN register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1573
41 USB on-the-go full-speed/high-speed (OTG_FS/OTG_HS) . . . . . . . 1577
41.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1577
41.2 OTG main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1578
41.2.1 General features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1579
41.2.2 Host-mode features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1580
41.2.3 Peripheral-mode features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1580
41.3 OTG implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1581
41.4 OTG functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1582
41.4.1 OTG block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1582
41.4.2 USB OTG pin and internal signals . . . . . . . . . . . . . . . . . . . . . . . . . . . 1583
41.4.3 OTG core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1584
41.4.4 Full-speed OTG PHY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1584
41.4.5 Embedded full speed OTG PHY . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1585
41.4.6 High-speed OTG PHY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1586
41.5 OTG dual role device (DRD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1586
41.5.1 ID line detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1586
41.5.2 HNP dual role device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1587
41.5.3 SRP dual role device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1587
41.6 USB peripheral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1587
41.6.1 SRP-capable peripheral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1588
41.6.2 Peripheral states . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1588
41.6.3 Peripheral endpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1589
41.7 USB host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1591
41.7.1 SRP-capable host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1592
41.7.2 USB host states . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1592