- 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 . . .
. . . . . . . . . . . . . . . . . . . . . .