Upload
camila-medina-casas
View
266
Download
0
Tags:
Embed Size (px)
Citation preview
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 . . . . . . . . . . . . . . . . . . . . . . . . .