RM0401 Rev 3 7/771
RM0401 Contents
23
8.3.4 Channel selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
8.3.5 Arbiter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
8.3.6 DMA streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
8.3.7 Source, destination and transfer modes . . . . . . . . . . . . . . . . . . . . . . . 168
8.3.8 Pointer incrementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
8.3.9 Circular mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
8.3.10 Double-buffer mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
8.3.11 Programmable data width, packing/unpacking, endianness . . . . . . . . 173
8.3.12 Single and burst transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
8.3.13 FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
8.3.14 DMA transfer completion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
8.3.15 DMA transfer suspension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
8.3.16 Flow controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
8.3.17 Summary of the possible DMA configurations . . . . . . . . . . . . . . . . . . . 180
8.3.18 Stream configuration procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
8.3.19 Error management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
8.4 DMA interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
8.5 DMA registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
8.5.1 DMA low interrupt status register (DMA_LISR) . . . . . . . . . . . . . . . . . . 184
8.5.2 DMA high interrupt status register (DMA_HISR) . . . . . . . . . . . . . . . . . 185
8.5.3 DMA low interrupt flag clear register (DMA_LIFCR) . . . . . . . . . . . . . . 186
8.5.4 DMA high interrupt flag clear register (DMA_HIFCR) . . . . . . . . . . . . . 186
8.5.5 DMA stream x configuration register (DMA_SxCR) . . . . . . . . . . . . . . . 187
8.5.6 DMA stream x number of data register (DMA_SxNDTR) . . . . . . . . . . 190
8.5.7 DMA stream x peripheral address register (DMA_SxPAR) . . . . . . . . . 191
8.5.8 DMA stream x memory 0 address register (DMA_SxM0AR) . . . . . . . . 191
8.5.9 DMA stream x memory 1 address register (DMA_SxM1AR) . . . . . . . . 191
8.5.10 DMA stream x FIFO control register (DMA_SxFCR) . . . . . . . . . . . . . . 192
8.5.11 DMA register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
9 Interrupts and events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
9.1 Nested vectored interrupt controller (NVIC) . . . . . . . . . . . . . . . . . . . . . . 198
9.1.1 NVIC features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
9.1.2 SysTick calibration value register . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
9.1.3 Interrupt and exception vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
9.2 External interrupt/event controller (EXTI) . . . . . . . . . . . . . . . . . . . . . . . . 198
9.2.1 EXTI main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202