Manual completo ARM

1315
September 2011 Doc ID 018909 Rev 1 1/1316 RM0090 Reference manual STM32F405xx, STM32F407xx, STM32F415xx and STM32F417xx advanced ARM-based 32-bit MCUs Introduction This reference manual targets application developers. It provides complete information on how to use the STM32F405xx, STM32F407xx, STM32F415xx and STM32F417xx microcontroller memory and peripherals. The STM32F405xx, STM32F407xx, STM32F415xx and STM32F417xx will be referred to as STM32F40x and STM32F41x throughout the document, unless otherwise specified. The STM32F40x and STM32F41x constitute a family of microcontrollers with different memory sizes, packages and peripherals. For ordering information, mechanical and electrical device characteristics please refer to the STM32F40x and STM32F41x datasheets. For information on programming, erasing and protection of the internal Flash memory please refer to the STM32F40x and STM32F41x Flash programming manual. For information on the ARM Cortex™-M4F core, please refer to the Cortex™-M4F Technical Reference Manual. Related documents Available from www.arm.com: Cortex™-M4F Technical Reference Manual, available from: http://infocenter.arm.com/help/topic/com.arm.doc.ddi0439c/DDI0439C_cortex_m4_r0p1_trm.pdf Available from STMicroelectronics web site (http://www/st.com): STM32F40x and STM32F41x datasheets STM32F40x and STM32F41x Flash programming manual (PM0081) www.st.com

Transcript of Manual completo ARM

  • 1. RM0090 Reference manual STM32F405xx, STM32F407xx, STM32F415xx and STM32F417xx advanced ARM-based 32-bit MCUs Introduction This reference manual targets application developers. It provides complete information on how to use the STM32F405xx, STM32F407xx, STM32F415xx and STM32F417xx microcontroller memory and peripherals. The STM32F405xx, STM32F407xx, STM32F415xx and STM32F417xx will be referred to as STM32F40x and STM32F41x throughout the document, unless otherwise specified. The STM32F40x and STM32F41x constitute a family of microcontrollers with different memory sizes, packages and peripherals. For ordering information, mechanical and electrical device characteristics please refer to the STM32F40x and STM32F41x datasheets. For information on programming, erasing and protection of the internal Flash memory please refer to the STM32F40x and STM32F41x Flash programming manual. For information on the ARM Cortex-M4F core, please refer to the Cortex-M4F Technical Reference Manual.Related documents Available from www.arm.com: Cortex-M4F Technical Reference Manual, available from:http://infocenter.arm.com/help/topic/com.arm.doc.ddi0439c/DDI0439C_cortex_m4_r0p1_trm.pdf Available from STMicroelectronics web site (http://www/st.com): STM32F40x and STM32F41x datasheets STM32F40x and STM32F41x Flash programming manual (PM0081)September 2011Doc ID 018909 Rev 11/1316 www.st.com

2. ContentsRM0090Contents 1Documentation conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 1.1 1.22List of abbreviations for registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Peripheral availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46Memory and bus architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 2.1System architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 2.1.1S0: I-bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.1.2S1: D-bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.1.3S2: S-bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.1.4S3, S4: DMA memory bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.1.5S5: DMA peripheral bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492.1.6S6: Ethernet DMA bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492.1.7S7: USB OTG HS DMA bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492.1.8BusMatrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492.1.9AHB/APB bridges (APB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492.2Memory organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492.3Memory map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 2.3.1 2.3.2Embedded Flash memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542.3.4Flash memory read interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542.3.53Bit banding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532.3.32.4Embedded SRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Adaptive real-time memory accelerator (ART Accelerator) . . . . . . . . 57Boot configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57CRC calculation unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.1CRC introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603.2CRC main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603.3CRC functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603.4CRC registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.4.1 3.4.2Independent data register (CRC_IDR) . . . . . . . . . . . . . . . . . . . . . . . . . 613.4.3Control register (CRC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623.4.42/1316Data register (CRC_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61CRC register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62Doc ID 018909 Rev 1 3. RM00904ContentsPower control (PWR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 4.1Power supplies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 4.1.1 4.1.2Battery backup domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654.1.34.2Independent A/D converter supply and reference voltage . . . . . . . . . . . 64 Voltage regulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67Power supply supervisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 4.2.1 4.2.2Brownout reset (BOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684.2.34.3Power-on reset (POR)/power-down reset (PDR) . . . . . . . . . . . . . . . . . . 68 Programmable voltage detector (PVD) . . . . . . . . . . . . . . . . . . . . . . . . . 69Low-power modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 4.3.1 4.3.2Peripheral clock gating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714.3.3Sleep mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714.3.4Stop mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724.3.5Standby mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734.3.64.4Slowing down system clocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70Programming the RTC alternate functions to wake up the device from the Stop and Standby modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75Power control registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 4.4.1 4.4.2PWR power control/status register (PWR_CSR) . . . . . . . . . . . . . . . . . . 794.4.35PWR power control register (PWR_CR) . . . . . . . . . . . . . . . . . . . . . . . . 78 PWR register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81Reset and clock control (RCC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 5.1Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 5.1.1 5.1.2Power reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835.1.35.2System reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Backup domain reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84Clocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.2.1HSE clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865.2.2HSI clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 875.2.3PLL configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885.2.4LSE clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885.2.5LSI clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895.2.6System clock (SYSCLK) selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895.2.7Clock security system (CSS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895.2.8RTC/AWU clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 905.2.9Watchdog clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Doc ID 018909 Rev 13/1316 4. ContentsRM0090 5.2.10 5.2.115.3Clock-out capability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Internal/external clock measurement using TIM5/TIM11 . . . . . . . . . . . . 91RCC registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 5.3.1 5.3.2RCC PLL configuration register (RCC_PLLCFGR) . . . . . . . . . . . . . . . . 955.3.3RCC clock configuration register (RCC_CFGR) . . . . . . . . . . . . . . . . . . 975.3.4RCC clock interrupt register (RCC_CIR) . . . . . . . . . . . . . . . . . . . . . . . . 995.3.5RCC AHB1 peripheral reset register (RCC_AHB1RSTR) . . . . . . . . . . 1025.3.6RCC AHB2 peripheral reset register (RCC_AHB2RSTR) . . . . . . . . . . 1045.3.7RCC AHB3 peripheral reset register (RCC_AHB3RSTR) . . . . . . . . . . 1055.3.8RCC APB1 peripheral reset register (RCC_APB1RSTR) . . . . . . . . . . 1055.3.9RCC APB2 peripheral reset register (RCC_APB2RSTR) . . . . . . . . . . 1085.3.10RCC AHB1 peripheral clock register (RCC_AHB1ENR) . . . . . . . . . . . 1105.3.11RCC AHB2 peripheral clock enable register (RCC_AHB2ENR) . . . . . 1125.3.12RCC AHB3 peripheral clock enable register (RCC_AHB3ENR) . . . . . 1135.3.13RCC APB1 peripheral clock enable register (RCC_APB1ENR) . . . . . 1135.3.14RCC APB2 peripheral clock enable register (RCC_APB2ENR) . . . . . 1175.3.15RCC AHB1 peripheral clock enable in low power mode register (RCC_AHB1LPENR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1195.3.16RCC AHB2 peripheral clock enable in low power mode register (RCC_AHB2LPENR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1215.3.17RCC AHB3 peripheral clock enable in low power mode register (RCC_AHB3LPENR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1225.3.18RCC APB1 peripheral clock enable in low power mode register (RCC_APB1LPENR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1235.3.19RCC APB2 peripheral clock enabled in low power mode register (RCC_APB2LPENR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1265.3.20RCC Backup domain control register (RCC_BDCR) . . . . . . . . . . . . . . 1285.3.21RCC clock control & status register (RCC_CSR) . . . . . . . . . . . . . . . . 1295.3.22RCC spread spectrum clock generation register (RCC_SSCGR) . . . . 1315.3.23RCC PLLI2S configuration register (RCC_PLLI2SCFGR) . . . . . . . . . 1325.3.246RCC clock control register (RCC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . 93RCC register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134General-purpose I/Os (GPIO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 6.1GPIO introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1366.2GPIO main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1366.3GPIO functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 6.3.14/1316General-purpose I/O (GPIO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138Doc ID 018909 Rev 1 5. RM0090Contents 6.3.2 6.3.3I/O port control registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1416.3.4I/O port data registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1416.3.5I/O data bitwise handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1426.3.6GPIO locking mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1426.3.7I/O alternate function input/output . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1426.3.8External interrupt/wakeup lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1436.3.9Input configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1436.3.10Output configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1446.3.11Alternate function configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1446.3.12Analog configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1456.3.13Using the OSC32_IN/OSC32_OUT pins as GPIO PC14/PC15 port pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1466.3.14Using the OSC_IN/OSC_OUT pins as GPIO PH0/PH1 port pins . . . . 1466.3.156.4I/O pin multiplexer and mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139Selection of RTC_AF1 and RTC_AF2 alternate functions . . . . . . . . . . 146GPIO registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 6.4.1 6.4.2GPIO port output type register (GPIOx_OTYPER) (x = A..I) . . . . . . . . 1486.4.3GPIO port output speed register (GPIOx_OSPEEDR) (x = A..I) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1496.4.4GPIO port pull-up/pull-down register (GPIOx_PUPDR) (x = A..I) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1496.4.5GPIO port input data register (GPIOx_IDR) (x = A..I) . . . . . . . . . . . . . 1506.4.6GPIO port output data register (GPIOx_ODR) (x = A..I) . . . . . . . . . . . 1506.4.7GPIO port bit set/reset register (GPIOx_BSRR) (x = A..I) . . . . . . . . . . 1506.4.8GPIO port configuration lock register (GPIOx_LCKR) (x = A..I) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1516.4.9GPIO alternate function low register (GPIOx_AFRL) (x = A..I) . . . . . . 1526.4.10GPIO alternate function high register (GPIOx_AFRH) (x = A..I) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1536.4.117GPIO port mode register (GPIOx_MODER) (x = A..I) . . . . . . . . . . . . . 148GPIO register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153System configuration controller (SYSCFG) . . . . . . . . . . . . . . . . . . . . 155 7.1I/O compensation cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1557.2SYSCFG registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 7.2.1SYSCFG memory remap register (SYSCFG_MEMRMP) . . . . . . . . . . 1557.2.2SYSCFG peripheral mode configuration register (SYSCFG_PMC) . . 1567.2.3SYSCFG external interrupt configuration register 1 (SYSCFG_EXTICR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 Doc ID 018909 Rev 15/1316 6. ContentsRM0090 7.2.4 7.2.5SYSCFG external interrupt configuration register 3 (SYSCFG_EXTICR3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1577.2.6SYSCFG external interrupt configuration register 4 (SYSCFG_EXTICR4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1587.2.7Compensation cell control register (SYSCFG_CMPCR) . . . . . . . . . . . 1587.2.88SYSCFG external interrupt configuration register 2 (SYSCFG_EXTICR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157SYSCFG register maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159DMA controller (DMA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 8.1DMA introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1608.2DMA main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1618.3DMA functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 8.3.1General description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1628.3.2DMA transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1638.3.3Channel selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1648.3.4Arbiter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1658.3.5DMA streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1658.3.6Source, destination and transfer modes . . . . . . . . . . . . . . . . . . . . . . . 1668.3.7Pointer incrementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1698.3.8Circular mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1708.3.9Double buffer mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1708.3.10Programmable data width, packing/unpacking, endianess . . . . . . . . . 1718.3.11Single and burst transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1738.3.12FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1738.3.13DMA transfer completion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1768.3.14DMA transfer suspension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1778.3.15Flow controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1778.3.16Summary of the possible DMA configurations . . . . . . . . . . . . . . . . . . . 1788.3.17Stream configuration procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1798.3.18Error management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1808.4DMA interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1818.5DMA registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 8.5.1 8.5.2DMA high interrupt status register (DMA_HISR) . . . . . . . . . . . . . . . . . 1828.5.3DMA low interrupt flag clear register (DMA_LIFCR) . . . . . . . . . . . . . . 1838.5.46/1316DMA low interrupt status register (DMA_LISR) . . . . . . . . . . . . . . . . . . 181DMA high interrupt flag clear register (DMA_HIFCR) . . . . . . . . . . . . . 184Doc ID 018909 Rev 1 7. RM0090Contents 8.5.5 8.5.6DMA stream x number of data register (DMA_SxNDTR) (x = 0..7) . . . 1888.5.7DMA stream x peripheral address register (DMA_SxPAR) (x = 0..7) . 1888.5.8DMA stream x memory 0 address register (DMA_SxM0AR) (x = 0..7) 1888.5.9DMA stream x memory 1 address register (DMA_SxM1AR) (x = 0..7) 1898.5.10DMA stream x FIFO control register (DMA_SxFCR) (x = 0..7) . . . . . . 1908.5.119DMA stream x configuration register (DMA_SxCR) (x = 0..7) . . . . . . . 185DMA register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191Interrupts and events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 9.1Nested vectored interrupt controller (NVIC) . . . . . . . . . . . . . . . . . . . . . . 195 9.1.1 9.1.2SysTick calibration value register . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1959.1.39.2NVIC features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Interrupt and exception vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195External interrupt/event controller (EXTI) . . . . . . . . . . . . . . . . . . . . . . . . 199 9.2.1 9.2.2EXTI block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1999.2.3Wakeup event management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2009.2.4Functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2009.2.59.3EXTI main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199External interrupt/event line mapping . . . . . . . . . . . . . . . . . . . . . . . . . 201EXTI registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 9.3.1 9.3.2Event mask register (EXTI_EMR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2039.3.3Rising trigger selection register (EXTI_RTSR) . . . . . . . . . . . . . . . . . . 2049.3.4Falling trigger selection register (EXTI_FTSR) . . . . . . . . . . . . . . . . . . 2049.3.5Software interrupt event register (EXTI_SWIER) . . . . . . . . . . . . . . . . . 2059.3.6Pending register (EXTI_PR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2059.3.710Interrupt mask register (EXTI_IMR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 203EXTI register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206Analog-to-digital converter (ADC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 10.1ADC introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20710.2ADC main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20710.3ADC functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 10.3.1ADC on-off control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20910.3.2ADC clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20910.3.3Channel selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20910.3.4Single conversion mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21010.3.5Continuous conversion mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 Doc ID 018909 Rev 17/1316 8. ContentsRM0090 10.3.6Timing diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21110.3.7Analog watchdog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21110.3.8Scan mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21210.3.9Injected channel management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21210.3.10 Discontinuous mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21310.4Data alignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21410.5Channel-wise programmable sampling time . . . . . . . . . . . . . . . . . . . . . 21510.6Conversion on external trigger and trigger polarity . . . . . . . . . . . . . . . . 21610.7Fast conversion mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21710.8Data management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 10.8.1 10.8.2Managing a sequence of conversions without using the DMA . . . . . . 21810.8.310.9Using the DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 Conversions without DMA and without overrun detection . . . . . . . . . . 218Multi ADC mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 10.9.1Injected simultaneous mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22210.9.2Regular simultaneous mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22310.9.3Interleaved mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22510.9.4Alternate trigger mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22610.9.5Combined regular/injected simultaneous mode . . . . . . . . . . . . . . . . . . 22810.9.6Combined regular simultaneous + alternate trigger mode . . . . . . . . . . 22810.10 Temperature sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 10.11 Battery charge monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 10.12 ADC interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 10.13 ADC registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 10.13.1 ADC status register (ADC_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 10.13.2 ADC control register 1 (ADC_CR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 10.13.3 ADC control register 2 (ADC_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 10.13.4 ADC sample time register 1 (ADC_SMPR1) . . . . . . . . . . . . . . . . . . . . 238 10.13.5 ADC sample time register 2 (ADC_SMPR2) . . . . . . . . . . . . . . . . . . . . 238 10.13.6 ADC injected channel data offset register x (ADC_JOFRx)(x=1..4) . . 239 10.13.7 ADC watchdog higher threshold register (ADC_HTR) . . . . . . . . . . . . . 239 10.13.8 ADC watchdog lower threshold register (ADC_LTR) . . . . . . . . . . . . . . 239 10.13.9 ADC regular sequence register 1 (ADC_SQR1) . . . . . . . . . . . . . . . . . 240 10.13.10 ADC regular sequence register 2 (ADC_SQR2) . . . . . . . . . . . . . . . . . 240 10.13.11 ADC regular sequence register 3 (ADC_SQR3) . . . . . . . . . . . . . . . . . 241 10.13.12 ADC injected sequence register (ADC_JSQR) . . . . . . . . . . . . . . . . . . 2418/1316Doc ID 018909 Rev 1 9. RM0090Contents 10.13.13 ADC injected data register x (ADC_JDRx) (x= 1..4) . . . . . . . . . . . . . . 242 10.13.14 ADC regular data register (ADC_DR) . . . . . . . . . . . . . . . . . . . . . . . . . 242 10.13.15 ADC Common status register (ADC_CSR) . . . . . . . . . . . . . . . . . . . . . 244 10.13.16 ADC common control register (ADC_CCR) . . . . . . . . . . . . . . . . . . . . . 245 10.13.17 ADC common regular data register for dual and triple modes (ADC_CDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 10.13.18 ADC register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24711Digital-to-analog converter (DAC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 11.1DAC introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25011.2DAC main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25011.3DAC functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 11.3.1 11.3.2DAC output buffer enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25211.3.3DAC data format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25211.3.4DAC conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25311.3.5DAC output voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25411.3.6DAC trigger selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25411.3.7DMA request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25411.3.8Noise generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25511.3.911.4DAC channel enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252Triangle-wave generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256Dual DAC channel conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 11.4.1Independent trigger without wave generation . . . . . . . . . . . . . . . . . . . 25711.4.2Independent trigger with single LFSR generation . . . . . . . . . . . . . . . . 25811.4.3Independent trigger with different LFSR generation . . . . . . . . . . . . . . 25811.4.4Independent trigger with single triangle generation . . . . . . . . . . . . . . . 25811.4.5Independent trigger with different triangle generation . . . . . . . . . . . . . 25911.4.6Simultaneous software start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25911.4.7Simultaneous trigger without wave generation . . . . . . . . . . . . . . . . . . 25911.4.8Simultaneous trigger with single LFSR generation . . . . . . . . . . . . . . . 26011.4.9Simultaneous trigger with different LFSR generation . . . . . . . . . . . . . 26011.4.10 Simultaneous trigger with single triangle generation . . . . . . . . . . . . . . 260 11.4.11 Simultaneous trigger with different triangle generation . . . . . . . . . . . . 26111.5DAC registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 11.5.1DAC control register (DAC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26111.5.2DAC software trigger register (DAC_SWTRIGR) . . . . . . . . . . . . . . . . . 264Doc ID 018909 Rev 19/1316 10. ContentsRM0090 11.5.3DAC channel1 12-bit right-aligned data holding register (DAC_DHR12R1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26411.5.4DAC channel1 12-bit left aligned data holding register (DAC_DHR12L1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26511.5.5DAC channel1 8-bit right aligned data holding register (DAC_DHR8R1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26511.5.6DAC channel2 12-bit right aligned data holding register (DAC_DHR12R2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26511.5.7DAC channel2 12-bit left aligned data holding register (DAC_DHR12L2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26611.5.8DAC channel2 8-bit right-aligned data holding register (DAC_DHR8R2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26611.5.9Dual DAC 12-bit right-aligned data holding register (DAC_DHR12RD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26611.5.10 DUAL DAC 12-bit left aligned data holding register (DAC_DHR12LD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 11.5.11 DUAL DAC 8-bit right aligned data holding register (DAC_DHR8RD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 11.5.12 DAC channel1 data output register (DAC_DOR1) . . . . . . . . . . . . . . . . 268 11.5.13 DAC channel2 data output register (DAC_DOR2) . . . . . . . . . . . . . . . . 268 11.5.14 DAC status register (DAC_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 11.5.15 DAC register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26912Digital camera interface (DCMI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 12.1DCMI introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27012.2DCMI main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27012.3DCMI pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27012.4DCMI clocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27012.5DCMI functional overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 12.5.1 12.5.2DCMI physical interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27212.5.3Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27412.5.4Capture modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27612.5.5Crop feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27712.5.6JPEG format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27812.5.712.6DMA interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278Data format description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 12.6.1 12.6.210/1316Data formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 Monochrome format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279Doc ID 018909 Rev 1 11. RM0090Contents 12.6.3RGB format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27912.6.4YCbCr format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28012.7DCMI interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28012.8DCMI register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 12.8.1DCMI control register 1 (DCMI_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . 28112.8.2DCMI status register (DCMI_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28312.8.3DCMI raw interrupt status register (DCMI_RIS) . . . . . . . . . . . . . . . . . . 28412.8.4DCMI interrupt enable register (DCMI_IER) . . . . . . . . . . . . . . . . . . . . 28512.8.5DCMI masked interrupt status register (DCMI_MIS) . . . . . . . . . . . . . . 28612.8.6DCMI interrupt clear register (DCMI_ICR) . . . . . . . . . . . . . . . . . . . . . . 28712.8.7DCMI embedded synchronization code register (DCMI_ESCR) . . . . . 28712.8.8DCMI embedded synchronization unmask register (DCMI_ESUR) . . 28812.8.9DCMI crop window start (DCMI_CWSTRT) . . . . . . . . . . . . . . . . . . . . . 29012.8.10 DCMI crop window size (DCMI_CWSIZE) . . . . . . . . . . . . . . . . . . . . . . 290 12.8.11 DCMI data register (DCMI_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 12.8.12 DCMI register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29113Advanced-control timers (TIM1&TIM8) . . . . . . . . . . . . . . . . . . . . . . . . 293 13.1TIM1&TIM8 introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29313.2TIM1&TIM8 main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29313.3TIM1&TIM8 functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 13.3.1Time-base unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29513.3.2Counter modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29613.3.3Repetition counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30413.3.4Clock selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30613.3.5Capture/compare channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30913.3.6Input capture mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31013.3.7PWM input mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31113.3.8Forced output mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31213.3.9Output compare mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31313.3.10 PWM mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 13.3.11 Complementary outputs and dead-time insertion . . . . . . . . . . . . . . . . 317 13.3.12 Using the break function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 13.3.13 Clearing the OCxREF signal on an external event . . . . . . . . . . . . . . . 321 13.3.14 6-step PWM generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 13.3.15 One-pulse mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 13.3.16 Encoder interface mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 Doc ID 018909 Rev 111/1316 12. ContentsRM0090 13.3.17 Timer input XOR function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 13.3.18 Interfacing with Hall sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 13.3.19 TIMx and external trigger synchronization . . . . . . . . . . . . . . . . . . . . . . 329 13.3.20 Timer synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 13.3.21 Debug mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33213.4TIM1&TIM8 registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 13.4.1TIM1&TIM8 control register 1 (TIMx_CR1) . . . . . . . . . . . . . . . . . . . . . 33313.4.2TIM1&TIM8 control register 2 (TIMx_CR2) . . . . . . . . . . . . . . . . . . . . . 33413.4.3TIM1&TIM8 slave mode control register (TIMx_SMCR) . . . . . . . . . . . 33713.4.4TIM1&TIM8 DMA/interrupt enable register (TIMx_DIER) . . . . . . . . . . 33913.4.5TIM1&TIM8 status register (TIMx_SR) . . . . . . . . . . . . . . . . . . . . . . . . 34113.4.6TIM1&TIM8 event generation register (TIMx_EGR) . . . . . . . . . . . . . . 34213.4.7TIM1&TIM8 capture/compare mode register 1 (TIMx_CCMR1) . . . . . 34413.4.8TIM1&TIM8 capture/compare mode register 2 (TIMx_CCMR2) . . . . . 34713.4.9TIM1&TIM8 capture/compare enable register (TIMx_CCER) . . . . . . . 34813.4.10 TIM1&TIM8 counter (TIMx_CNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 13.4.11 TIM1&TIM8 prescaler (TIMx_PSC) . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 13.4.12 TIM1&TIM8 auto-reload register (TIMx_ARR) . . . . . . . . . . . . . . . . . . . 352 13.4.13 TIM1&TIM8 repetition counter register (TIMx_RCR) . . . . . . . . . . . . . . 353 13.4.14 TIM1&TIM8 capture/compare register 1 (TIMx_CCR1) . . . . . . . . . . . . 353 13.4.15 TIM1&TIM8 capture/compare register 2 (TIMx_CCR2) . . . . . . . . . . . . 354 13.4.16 TIM1&TIM8 capture/compare register 3 (TIMx_CCR3) . . . . . . . . . . . . 354 13.4.17 TIM1&TIM8 capture/compare register 4 (TIMx_CCR4) . . . . . . . . . . . . 355 13.4.18 TIM1&TIM8 break and dead-time register (TIMx_BDTR) . . . . . . . . . . 355 13.4.19 TIM1&TIM8 DMA control register (TIMx_DCR) . . . . . . . . . . . . . . . . . . 357 13.4.20 TIM1&TIM8 DMA address for full transfer (TIMx_DMAR) . . . . . . . . . . 358 13.4.21 TIM1&TIM8 register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35914General-purpose timers (TIM2 to TIM5) . . . . . . . . . . . . . . . . . . . . . . . . 361 14.1TIM2 to TIM5 introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36114.2TIM2 to TIM5 main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36114.3TIM2 to TIM5 functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 14.3.1 14.3.2Counter modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36314.3.3Clock selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37214.3.4Capture/compare channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37514.3.512/1316Time-base unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362Input capture mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376Doc ID 018909 Rev 1 13. RM0090Contents 14.3.6PWM input mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37714.3.7Forced output mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37814.3.8Output compare mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37914.3.9PWM mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38014.3.10 One-pulse mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 14.3.11 Clearing the OCxREF signal on an external event . . . . . . . . . . . . . . . 384 14.3.12 Encoder interface mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 14.3.13 Timer input XOR function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 14.3.14 Timers and external trigger synchronization . . . . . . . . . . . . . . . . . . . . 387 14.3.15 Timer synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 14.3.16 Debug mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39114.4TIM2 to TIM5 registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392 14.4.1TIMx control register 1 (TIMx_CR1) . . . . . . . . . . . . . . . . . . . . . . . . . . 39214.4.2TIMx control register 2 (TIMx_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . 39414.4.3TIMx slave mode control register (TIMx_SMCR) . . . . . . . . . . . . . . . . . 39514.4.4TIMx DMA/Interrupt enable register (TIMx_DIER) . . . . . . . . . . . . . . . . 39614.4.5TIMx status register (TIMx_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39714.4.6TIMx event generation register (TIMx_EGR) . . . . . . . . . . . . . . . . . . . . 39914.4.7TIMx capture/compare mode register 1 (TIMx_CCMR1) . . . . . . . . . . . 40014.4.8TIMx capture/compare mode register 2 (TIMx_CCMR2) . . . . . . . . . . . 40314.4.9TIMx capture/compare enable register (TIMx_CCER) . . . . . . . . . . . . . 40414.4.10 TIMx counter (TIMx_CNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 14.4.11 TIMx prescaler (TIMx_PSC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 14.4.12 TIMx auto-reload register (TIMx_ARR) . . . . . . . . . . . . . . . . . . . . . . . . 406 14.4.13 TIMx capture/compare register 1 (TIMx_CCR1) . . . . . . . . . . . . . . . . . 407 14.4.14 TIMx capture/compare register 2 (TIMx_CCR2) . . . . . . . . . . . . . . . . . 407 14.4.15 TIMx capture/compare register 3 (TIMx_CCR3) . . . . . . . . . . . . . . . . . 408 14.4.16 TIMx capture/compare register 4 (TIMx_CCR4) . . . . . . . . . . . . . . . . . 408 14.4.17 TIMx DMA control register (TIMx_DCR) . . . . . . . . . . . . . . . . . . . . . . . 409 14.4.18 TIMx DMA address for full transfer (TIMx_DMAR) . . . . . . . . . . . . . . . 409 14.4.19 TIM2 option register (TIM2_OR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411 14.4.20 TIM5 option register (TIM5_OR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412 14.4.21 TIMx register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41215General-purpose timers (TIM9 to TIM14) . . . . . . . . . . . . . . . . . . . . . . . 414 15.1TIM9 to TIM14 introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41415.2TIM9 to TIM14 main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414Doc ID 018909 Rev 113/1316 14. ContentsRM0090 15.2.1TIM9/TIM12 main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41415.3TIM10/TIM11 and TIM13/TIM14 main features . . . . . . . . . . . . . . . . . . . 41515.4TIM9 to TIM14 functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 15.4.1Time-base unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41715.4.2Counter modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41815.4.3Clock selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42115.4.4Capture/compare channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42315.4.5Input capture mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42415.4.6PWM input mode (only for TIM9/12) . . . . . . . . . . . . . . . . . . . . . . . . . . 42515.4.7Forced output mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42615.4.8Output compare mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42715.4.9PWM mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42815.4.10 One-pulse mode (only for TIM9/12) . . . . . . . . . . . . . . . . . . . . . . . . . . . 429 15.4.11 TIM9/12 external trigger synchronization . . . . . . . . . . . . . . . . . . . . . . . 430 15.4.12 Timer synchronization (TIM9/12) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433 15.4.13 Debug mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43315.5TIM9 and TIM12 registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434 15.5.1TIM9/12 control register 1 (TIMx_CR1) . . . . . . . . . . . . . . . . . . . . . . . . 43415.5.2TIM9/12 control register 2 (TIMx_CR2) . . . . . . . . . . . . . . . . . . . . . . . . 43515.5.3TIM9/12 slave mode control register (TIMx_SMCR) . . . . . . . . . . . . . . 43615.5.4TIM9/12 Interrupt enable register (TIMx_DIER) . . . . . . . . . . . . . . . . . 43715.5.5TIM9/12 status register (TIMx_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 43815.5.6TIM9/12 event generation register (TIMx_EGR) . . . . . . . . . . . . . . . . . 43915.5.7TIM9/12 capture/compare mode register 1 (TIMx_CCMR1) . . . . . . . . 44015.5.8TIM9/12 capture/compare enable register (TIMx_CCER) . . . . . . . . . . 44315.5.9TIM9/12 counter (TIMx_CNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44415.5.10 TIM9/12 prescaler (TIMx_PSC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 15.5.11 TIM9/12 auto-reload register (TIMx_ARR) . . . . . . . . . . . . . . . . . . . . . 444 15.5.12 TIM9/12 capture/compare register 1 (TIMx_CCR1) . . . . . . . . . . . . . . 445 15.5.13 TIM9/12 capture/compare register 2 (TIMx_CCR2) . . . . . . . . . . . . . . 445 15.5.14 TIM9/12 register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44515.6TIM10/11/13/14 registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 15.6.1 15.6.2TIM10/11/13/14 Interrupt enable register (TIMx_DIER) . . . . . . . . . . . 44815.6.3TIM10/11/13/14 status register (TIMx_SR) . . . . . . . . . . . . . . . . . . . . . 44815.6.414/1316TIM10/11/13/14 control register 1 (TIMx_CR1) . . . . . . . . . . . . . . . . . . 447TIM10/11/13/14 event generation register (TIMx_EGR) . . . . . . . . . . . 449Doc ID 018909 Rev 1 15. RM0090Contents 15.6.5TIM10/11/13/14 capture/compare mode register 1 (TIMx_CCMR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45015.6.6TIM10/11/13/14 capture/compare enable register (TIMx_CCER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45215.6.7TIM10/11/13/14 counter (TIMx_CNT) . . . . . . . . . . . . . . . . . . . . . . . . . 45315.6.8TIM10/11/13/14 prescaler (TIMx_PSC) . . . . . . . . . . . . . . . . . . . . . . . . 45315.6.9TIM10/11/13/14 auto-reload register (TIMx_ARR) . . . . . . . . . . . . . . . 45315.6.10 TIM10/11/13/14 capture/compare register 1 (TIMx_CCR1) . . . . . . . . 454 15.6.11 TIM11 option register 1 (TIM11_OR) . . . . . . . . . . . . . . . . . . . . . . . . . . 454 15.6.12 TIM10/11/13/14 register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45516Basic timers (TIM6&TIM7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456 16.1TIM6&TIM7 introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45616.2TIM6&TIM7 main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45616.3TIM6&TIM7 functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457 16.3.1 16.3.2Counting mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45816.3.3Clock source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46116.3.416.4Time-base unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457Debug mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461TIM6&TIM7 registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462 16.4.1 16.4.2TIM6&TIM7 control register 2 (TIMx_CR2) . . . . . . . . . . . . . . . . . . . . . 46316.4.3TIM6&TIM7 DMA/Interrupt enable register (TIMx_DIER) . . . . . . . . . . 46316.4.4TIM6&TIM7 status register (TIMx_SR) . . . . . . . . . . . . . . . . . . . . . . . . 46416.4.5TIM6&TIM7 event generation register (TIMx_EGR) . . . . . . . . . . . . . . 46416.4.6TIM6&TIM7 counter (TIMx_CNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46416.4.7TIM6&TIM7 prescaler (TIMx_PSC) . . . . . . . . . . . . . . . . . . . . . . . . . . . 46516.4.8TIM6&TIM7 auto-reload register (TIMx_ARR) . . . . . . . . . . . . . . . . . . . 46516.4.917TIM6&TIM7 control register 1 (TIMx_CR1) . . . . . . . . . . . . . . . . . . . . . 462TIM6&TIM7 register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466Independent watchdog (IWDG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 17.1IWDG introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46717.2IWDG main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46717.3IWDG functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 17.3.1Hardware watchdog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46717.3.2Register access protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46717.3.3Debug mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468Doc ID 018909 Rev 115/1316 16. ContentsRM009017.4IWDG registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468 17.4.1 17.4.2Prescaler register (IWDG_PR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47017.4.3Reload register (IWDG_RLR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47017.4.4Status register (IWDG_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47117.4.518Key register (IWDG_KR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469IWDG register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471Window watchdog (WWDG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472 18.1WWDG introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47218.2WWDG main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47218.3WWDG functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47218.4How to program the watchdog timeout . . . . . . . . . . . . . . . . . . . . . . . . . . 47418.5Debug mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47518.6WWDG registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 18.6.1 18.6.2Configuration register (WWDG_CFR) . . . . . . . . . . . . . . . . . . . . . . . . . 47718.6.3Status register (WWDG_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47718.6.419Control register (WWDG_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476WWDG register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478Cryptographic processor (CRYP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 19.1CRYP introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47919.2CRYP main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47919.3CRYP functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 19.3.1DES/TDES cryptographic core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48019.3.2AES cryptographic core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48519.3.3Data type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49219.3.4Initialization vectors - CRYP_IV0...1(L/R) . . . . . . . . . . . . . . . . . . . . . . 49419.3.5CRYP busy state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49619.3.6Procedure to perform an encryption or a decryption . . . . . . . . . . . . . . 49719.3.7Context swapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49819.4CRYP interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49919.5CRYP DMA interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50019.6CRYP registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501 19.6.1 19.6.2CRYP status register (CRYP_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50319.6.316/1316CRYP control register (CRYP_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 501 CRYP data input register (CRYP_DIN) . . . . . . . . . . . . . . . . . . . . . . . . 504Doc ID 018909 Rev 1 17. RM0090Contents 19.6.4CRYP data output register (CRYP_DOUT) . . . . . . . . . . . . . . . . . . . . . 50519.6.5CRYP DMA control register (CRYP_DMACR) . . . . . . . . . . . . . . . . . . . 50619.6.6CRYP interrupt mask set/clear register (CRYP_IMSCR) . . . . . . . . . . . 50619.6.7CRYP raw interrupt status register (CRYP_RISR) . . . . . . . . . . . . . . . . 50719.6.8CRYP masked interrupt status register (CRYP_MISR) . . . . . . . . . . . . 50719.6.9CRYP key registers (CRYP_K0...3(L/R)R) . . . . . . . . . . . . . . . . . . . . . . 50819.6.10 CRYP initialization vector registers (CRYP_IV0...1(L/R)R) . . . . . . . . . 510 19.6.11 CRYP register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51120Random number generator (RNG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513 20.1RNG introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51320.2RNG main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51320.3RNG functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513 20.3.1 20.3.220.4Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 Error management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514RNG registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 20.4.1 20.4.2RNG status register (RNG_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51520.4.3RNG data register (RNG_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51620.4.421RNG control register (RNG_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515RNG register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517Hash processor (HASH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518 21.1HASH introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51821.2HASH main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51821.3HASH functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 21.3.1 21.3.2Data type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52021.3.3Message digest computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52121.3.4Message padding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52221.3.5Hash operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52321.3.6HMAC operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52421.3.7Context swapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52421.3.821.4Duration of the processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520HASH interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526HASH registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526 21.4.1HASH control register (HASH_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 52721.4.2HASH data input register (HASH_DIN) . . . . . . . . . . . . . . . . . . . . . . . . 529Doc ID 018909 Rev 117/1316 18. ContentsRM0090 21.4.3 21.4.4HASH digest registers (HASH_HR0...4) . . . . . . . . . . . . . . . . . . . . . . . 53121.4.5HASH interrupt enable register (HASH_IMR) . . . . . . . . . . . . . . . . . . . 53221.4.6HASH status register (HASH_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53321.4.7HASH context swap registers (HASH_CSR0...50) . . . . . . . . . . . . . . . 53421.4.822HASH start register (HASH_STR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530HASH register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535Real-time clock (RTC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 22.1Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53622.2RTC main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53722.3RTC functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 22.3.1Clock and prescalers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53822.3.2Real-time clock and calendar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53922.3.3Programmable alarms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53922.3.4Periodic auto-wakeup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54022.3.5RTC initialization and configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . 54122.3.6Reading the calendar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54222.3.7Resetting the RTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54322.3.8RTC synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54422.3.9RTC reference clock detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54422.3.10 RTC coarse digital calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 22.3.11 RTC smooth digital calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 22.3.12 Timestamp function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547 22.3.13 Tamper detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548 22.3.14 Calibration clock output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550 22.3.15 Alarm output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55022.4RTC and low power modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55122.5RTC interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55122.6RTC registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553 22.6.1 22.6.2RTC date register (RTC_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55422.6.3RTC control register (RTC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55522.6.4RTC initialization and status register (RTC_ISR) . . . . . . . . . . . . . . . . . 55722.6.5RTC prescaler register (RTC_PRER) . . . . . . . . . . . . . . . . . . . . . . . . . 55922.6.6RTC wakeup timer register (RTC_WUTR) . . . . . . . . . . . . . . . . . . . . . . 56022.6.718/1316RTC time register (RTC_TR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553RTC calibration register (RTC_CALIBR) . . . . . . . . . . . . . . . . . . . . . . . 561Doc ID 018909 Rev 1 19. RM0090Contents 22.6.8RTC alarm A register (RTC_ALRMAR) . . . . . . . . . . . . . . . . . . . . . . . . 56122.6.9RTC alarm B register (RTC_ALRMBR) . . . . . . . . . . . . . . . . . . . . . . . . 56222.6.10 RTC sub second register (RTC_SSR) . . . . . . . . . . . . . . . . . . . . . . . . . 563 22.6.11 RTC shift control register (RTC_SHIFTR) . . . . . . . . . . . . . . . . . . . . . . 565 22.6.12 RTC write protection register (RTC_WPR) . . . . . . . . . . . . . . . . . . . . . 566 22.6.13 RTC time stamp time register (RTC_TSTR) . . . . . . . . . . . . . . . . . . . . 566 22.6.14 RTC time stamp date register (RTC_TSDR) . . . . . . . . . . . . . . . . . . . . 567 22.6.15 RTC timestamp sub second register (RTC_TSSSR) . . . . . . . . . . . . . . 567 22.6.16 RTC calibration register (RTC_CALR) . . . . . . . . . . . . . . . . . . . . . . . . . 568 22.6.17 RTC tamper and alternate function configuration register (RTC_TAFCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569 22.6.18 RTC alarm A sub second register (RTC_ALRMASSR) . . . . . . . . . . . . 571 22.6.19 RTC alarm B sub second register (RTC_ALRMBSSR) . . . . . . . . . . . . 572 22.6.20 RTC backup registers (RTC_BKPxR) . . . . . . . . . . . . . . . . . . . . . . . . . 573 22.6.21 RTC register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57323Inter-integrated circuit (I2C) interface . . . . . . . . . . . . . . . . . . . . . . . . . 575 23.1I2C introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57523.2I2C main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57523.3I2C functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576 23.3.1Mode selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57623.3.2I2C slave mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57823.3.3I2C master mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58023.3.4Error conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58523.3.5SDA/SCL line control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58623.3.6SMBus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58623.3.7DMA requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58923.3.8Packet error checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591223.4I C interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59123.5I2C debug mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59323.6I2C registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 23.6.1I2C Control register 1 (I2C_CR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59323.6.2I2C Control register 2 (I2C_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59523.6.3I2C Own address register 1 (I2C_OAR1) . . . . . . . . . . . . . . . . . . . . . . . 59723.6.4I2C Own address register 2 (I2C_OAR2) . . . . . . . . . . . . . . . . . . . . . . . 59723.6.5I2C Data register (I2C_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59823.6.6I2C Status register 1 (I2C_SR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598Doc ID 018909 Rev 119/1316 20. ContentsRM0090 23.6.7I2C Status register 2 (I2C_SR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60223.6.8I2C Clock control register (I2C_CCR) . . . . . . . . . . . . . . . . . . . . . . . . . 60323.6.9I2C TRISE register (I2C_TRISE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60423.6.10 I2C register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60524Universal synchronous asynchronous receiver transmitter (USART) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606 24.1USART introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60624.2USART main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60624.3USART functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607 24.3.1USART character description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61024.3.2Transmitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61124.3.3Receiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61424.3.4Fractional baud rate generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61924.3.5USART receiver tolerance to clock deviation . . . . . . . . . . . . . . . . . . . . 62824.3.6Multiprocessor communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62924.3.7Parity control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63124.3.8LIN (local interconnection network) mode . . . . . . . . . . . . . . . . . . . . . . 63224.3.9USART synchronous mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63424.3.10 Single-wire half-duplex communication . . . . . . . . . . . . . . . . . . . . . . . . 636 24.3.11 Smartcard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637 24.3.12 IrDA SIR ENDEC block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639 24.3.13 Continuous communication using DMA . . . . . . . . . . . . . . . . . . . . . . . . 641 24.3.14 Hardware flow control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64324.4USART interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64524.5USART mode configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64624.6USART registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646 24.6.1 24.6.2Baud rate register (USART_BRR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64924.6.4Control register 1 (USART_CR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64924.6.5Control register 2 (USART_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65224.6.6Control register 3 (USART_CR3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65324.6.7Guard time and prescaler register (USART_GTPR) . . . . . . . . . . . . . . 65624.6.820/1316Data register (USART_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64824.6.325Status register (USART_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646USART register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657Serial peripheral interface (SPI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658 Doc ID 018909 Rev 1 21. RM0090Contents25.1SPI introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65825.2SPI and I2S main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659 25.2.1 25.2.225.3SPI features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659 I2S features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660SPI functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661 25.3.1General description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66125.3.2Configuring the SPI in slave mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66425.3.3Configuring the SPI in master mode . . . . . . . . . . . . . . . . . . . . . . . . . . 66725.3.4Configuring the SPI for simplex communication . . . . . . . . . . . . . . . . . 66925.3.5Data transmission and reception procedures . . . . . . . . . . . . . . . . . . . 66925.3.6CRC calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67625.3.7Status flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67825.3.8Disabling the SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67925.3.9SPI communication using DMA (direct memory addressing) . . . . . . . 68025.3.10 Error flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682 25.3.11 SPI interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68325.4I2S functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684 25.4.1I2S general description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68425.4.2I2S full duplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68525.4.3Supported audio protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68625.4.4Clock generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69225.4.5I2S master mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69425.4.6I2S slave mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69625.4.7Status flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69825.4.8Error flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69925.4.9I2S interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70025.4.10 DMA features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70025.5SPI and I2S registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701 25.5.1SPI control register 1 (SPI_CR1) (not used in I2S mode) . . . . . . . . . . 70125.5.2SPI control register 2 (SPI_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70325.5.3SPI status register (SPI_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70425.5.4SPI data register (SPI_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70525.5.5SPI CRC polynomial register (SPI_CRCPR) (not used in I2S mode) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70525.5.6SPI RX CRC register (SPI_RXCRCR) (not used in I2S mode) . . . . . . 70625.5.7SPI TX CRC register (SPI_TXCRCR) (not used in I2S mode) . . . . . . 70625.5.8SPI_I2S configuration register (SPI_I2SCFGR) . . . . . . . . . . . . . . . . . . 707Doc ID 018909 Rev 121/1316 22. ContentsRM0090 25.5.9SPI_I2S prescaler register (SPI_I2SPR) . . . . . . . . . . . . . . . . . . . . . . . 70825.5.10 SPI register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70926Secure digital input/output interface (SDIO) . . . . . . . . . . . . . . . . . . . . 710 26.1SDIO main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71026.2SDIO bus topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71026.3SDIO functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712 26.3.1 26.3.226.4SDIO adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714 SDIO APB2 interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724Card functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725 26.4.1Card identification mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72526.4.2Card reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72526.4.3Operating voltage range validation . . . . . . . . . . . . . . . . . . . . . . . . . . . 72526.4.4Card identification process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72626.4.5Block write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72726.4.6Block read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72726.4.7Stream access, stream write and stream read (MultiMediaCard only) 72826.4.8Erase: group erase and sector erase . . . . . . . . . . . . . . . . . . . . . . . . . . 72926.4.9Wide bus selection or deselection . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73026.4.10 Protection management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730 26.4.11 Card status register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733 26.4.12 SD status register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736 26.4.13 SD I/O mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740 26.4.14 Commands and responses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74126.5Response formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 744 26.5.1 26.5.2R1b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74526.5.3R2 (CID, CSD register) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74526.5.4R3 (OCR register) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74626.5.5R4 (Fast I/O) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74626.5.6R4b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74626.5.7R5 (interrupt request) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74726.5.826.6R1 (normal response command) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745R6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 748SDIO I/O card-specific operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 748 26.6.1 26.6.222/1316SDIO I/O read wait operation by SDIO_D2 signalling . . . . . . . . . . . . . 748 SDIO read wait operation by stopping SDIO_CK . . . . . . . . . . . . . . . . 749Doc ID 018909 Rev 1 23. RM0090Contents 26.6.3 26.6.426.7SDIO suspend/resume operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749 SDIO interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749CE-ATA specific operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749 26.7.1Command completion signal disable . . . . . . . . . . . . . . . . . . . . . . . . . . 74926.7.2Command completion signal enable . . . . . . . . . . . . . . . . . . . . . . . . . . 75026.7.3CE-ATA interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75026.7.4Aborting CMD61 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75026.8HW flow control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75026.9SDIO registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751 26.9.1SDIO power control register (SDIO_POWER) . . . . . . . . . . . . . . . . . . . 75126.9.2SDI clock control register (SDIO_CLKCR) . . . . . . . . . . . . . . . . . . . . . . 75126.9.3SDIO argument register (SDIO_ARG) . . . . . . . . . . . . . . . . . . . . . . . . . 75226.9.4SDIO command register (SDIO_CMD) . . . . . . . . . . . . . . . . . . . . . . . . 75326.9.5SDIO command response register (SDIO_RESPCMD) . . . . . . . . . . . 75426.9.6SDIO response 1..4 register (SDIO_RESPx) . . . . . . . . . . . . . . . . . . . 75426.9.7SDIO data timer register (SDIO_DTIMER) . . . . . . . . . . . . . . . . . . . . . 75526.9.8SDIO data length register (SDIO_DLEN) . . . . . . . . . . . . . . . . . . . . . . 75526.9.9SDIO data control register (SDIO_DCTRL) . . . . . . . . . . . . . . . . . . . . . 75626.9.10 SDIO data counter register (SDIO_DCOUNT) . . . . . . . . . . . . . . . . . . 757 26.9.11 SDIO status register (SDIO_STA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758 26.9.12 SDIO interrupt clear register (SDIO_ICR) . . . . . . . . . . . . . . . . . . . . . . 759 26.9.13 SDIO mask register (SDIO_MASK) . . . . . . . . . . . . . . . . . . . . . . . . . . . 761 26.9.14 SDIO FIFO counter register (SDIO_FIFOCNT) . . . . . . . . . . . . . . . . . . 763 26.9.15 SDIO data FIFO register (SDIO_FIFO) . . . . . . . . . . . . . . . . . . . . . . . . 764 26.9.16 SDIO register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76427Controller area network (bxCAN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766 27.1bxCAN introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76627.2bxCAN main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76627.3bxCAN general description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767 27.3.1 27.3.2Control, status and configuration registers . . . . . . . . . . . . . . . . . . . . . 76727.3.3Tx mailboxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76727.3.427.4CAN 2.0B active core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767Acceptance filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768bxCAN operating modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769 27.4.1Initialization mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 770Doc ID 018909 Rev 123/1316 24. ContentsRM0090 27.4.2 27.4.327.5Normal mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 770 Sleep mode (low power) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 770Test mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771 27.5.1Silent mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77127.5.2Loop back mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77227.5.3Loop back combined with silent mode . . . . . . . . . . . . . . . . . . . . . . . . . 77227.6STM32F40x and STM32F41x in Debug mode . . . . . . . . . . . . . . . . . . . . 77327.7bxCAN functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773 27.7.1Transmission handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77327.7.2Time triggered communication mode . . . . . . . . . . . . . . . . . . . . . . . . . 77527.7.3Reception handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77527.7.4Identifier filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77627.7.5Message storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78027.7.6Error management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78227.7.7Bit timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78227.8bxCAN interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78527.9CAN registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786 27.9.1 27.9.2CAN control and status registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78627.9.3CAN mailbox registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79727.9.4CAN filter registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80427.9.528Register access protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786bxCAN register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 808Ethernet (ETH): media access control (MAC) with DMA controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811 28.1Ethernet introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81128.2Ethernet main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811 28.2.1MAC core features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81228.2.2DMA features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81328.2.3PTP features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81328.3Ethernet pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81428.4Ethernet functional description: SMI, MII and RMII . . . . . . . . . . . . . . . . 815 28.4.1 28.4.2Media-independent interface: MII . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81828.4.3Reduced media-independent interface: RMII . . . . . . . . . . . . . . . . . . . 82028.4.424/1316Station management interface: SMI . . . . . . . . . . . . . . . . . . . . . . . . . . . 815MII/RMII selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 821Doc ID 018909 Rev 1 25. RM0090Contents28.5Ethernet functional description: MAC 802.3 . . . . . . . . . . . . . . . . . . . . . . 822 28.5.1 28.5.2MAC frame transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82628.5.3MAC frame reception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83328.5.4MAC interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83828.5.5MAC filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83928.5.6MAC loopback mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84228.5.7MAC management counters: MMC . . . . . . . . . . . . . . . . . . . . . . . . . . . 84228.5.8Power management: PMT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84328.5.928.6MAC 802.3 frame format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823Precision time protocol (IEEE1588 PTP) . . . . . . . . . . . . . . . . . . . . . . . 846Ethernet functional description: DMA controller operation . . . . . . . . . . . 852 28.6.1Initialization of a transfer using DMA . . . . . . . . . . . . . . . . . . . . . . . . . . 85328.6.2Host bus burst access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85328.6.3Host data buffer alignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85428.6.4Buffer size calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85428.6.5DMA arbiter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85528.6.6Error response to DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85528.6.7Tx DMA configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85528.6.8Rx DMA configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86628.6.9DMA interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87828.7Ethernet interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87928.8Ethernet register descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 880 28.8.1 28.8.2MMC register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89928.8.3IEEE 1588 time stamp registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90428.8.4DMA register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91128.8.529MAC register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 880Ethernet register maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925USB on-the-go full-speed (OTG_FS) . . . . . . . . . . . . . . . . . . . . . . . . . . 929 29.1OTG_FS introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92929.2OTG_FS main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 930 29.2.1 29.2.2Host-mode features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93129.2.329.3General features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 930 Peripheral-mode features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931OTG_FS functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 932 29.3.1OTG full-speed core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 932Doc ID 018909 Rev 125/1316 26. ContentsRM0090 29.3.229.4Full-speed OTG PHY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 933OTG dual role device (DRD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934 29.4.1 29.4.2HNP dual role device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93429.4.329.5ID line detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934 SRP dual role device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935USB peripheral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935 29.5.1 29.5.2Peripheral states . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93629.5.329.6SRP-capable peripheral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936 Peripheral endpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 937USB host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 939 29.6.1 29.6.2USB host states . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94029.6.3Host channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94229.6.429.7SRP-capable host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 940Host scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943SOF trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 944 29.7.1Host SOFs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94429.7.2Peripheral SOFs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94429.8Power options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94529.9Dynamic update of the OTG_FS_HFIR register . . . . . . . . . . . . . . . . . . . 94629.10 USB data FIFOs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 946 29.11 Peripheral FIFO architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947 29.11.1 Peripheral Rx FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947 29.11.2 Peripheral Tx FIFOs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94829.12 Host FIFO architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948 29.12.1 Host Rx FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948 29.12.2 Host Tx FIFOs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94929.13 FIFO RAM allocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 949 29.13.1 Device mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 949 29.13.2 Host mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95029.14 USB system performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 950 29.15 OTG_FS interrupts . . . . . . . . . . . . . . . . . . . . . . . . .