
RM0008
DMA controller (DMA)
Doc ID 13902 Rev 12
263/1096
13
DMA controller (DMA)
Low-density
devices
are STM32F101xx, STM32F102xx and STM32F103xx
microcontrollers where the Flash memory density ranges between 16 and 32 Kbytes.
Medium-density
devices
are STM32F101xx, STM32F102xx and STM32F103xx
microcontrollers where the Flash memory density ranges between 64 and 128 Kbytes.
High-density devices
are STM32F101xx and STM32F103xx microcontrollers where the
Flash memory density ranges between 256 and 512 Kbytes.
XL-density devices
are STM32F101xx and STM32F103xx microcontrollers where the
Flash memory density ranges between 768 Kbytes and 1 Mbyte.
Connectivity line devices
are STM32F105xx and STM32F107xx microcontrollers.
This section applies to the whole STM32F10xxx family, unless otherwise specified.
13.1 DMA
introduction
Direct memory access (DMA) is used in order to provide high-speed data transfer between
peripherals and memory as well as memory to memory. Data can be quickly moved by DMA
without any CPU actions. This keeps CPU resources free for other operations.
The two DMA controllers have 12 channels in total (7 for DMA1 and 5 for DMA2), each
dedicated to managing memory access requests from one or more peripherals. It has an
arbiter for handling the priority between DMA requests.
13.2
DMA main features
●
12 independently configurable channels (requests): 7 for DMA1 and 5 for DMA2
●
Each of the 12 channels is connected to dedicated hardware DMA requests, software
trigger is also supported on each channel. This configuration is done by software.
●
Priorities between requests from channels of one DMA are software programmable (4
levels consisting of
very high
,
high
,
medium
,
low
) or hardware in case of equality
(request 1 has priority over request 2, etc.)
●
Independent source and destination transfer size (byte, half word, word), emulating
packing and unpacking. Source/destination addresses must be aligned on the data
size.
●
Support for circular buffer management
●
3 event flags (DMA Half Transfer, DMA Transfer complete and DMA Transfer Error)
logically ORed together in a single interrupt request for each channel
●
Memory-to-memory transfer
●
Peripheral-to-memory and memory-to-peripheral, and peripheral-to-peripheral
transfers
●
Access to Flash, SRAM, APB1, APB2 and AHB peripherals as source and destination
●
Programmable number of data to be transferred: up to 65536