Direct memory access controller (DMA)
11
Direct memory access controller (DMA)
11.1
Introduction
The direct memory access (DMA) controller is a bus master and system peripheral.
The DMA is used to perform programmable data transfers between memory-mapped
peripherals and/or memories, upon the control of an off-loaded CPU.
The DMA controller features a single AHB master architecture.
There are two instances of DMA, DMA1 and DMA2 (See
implementation
Each channel is dedicated to managing memory access requests from one or more
peripherals. Each DMA includes an arbiter for handling the priority between DMA requests.
11.2
DMA main features
•
Single AHB master
•
Peripheral-to-memory, memory-to-peripheral, memory-to-memory and peripheral-to-
peripheral data transfers
•
Access, as source and destination, to on-chip memory-mapped devices such as Flash
memory, SRAM, and AHB and APB peripherals
•
All DMA channels independently configurable:
–
–
–
–
–
•
Generation of a single interrupt request for the DMA1 controller, OR-ing any of the all
interrupt requests at channel level. An interrupt request is caused from any of the three
DMA events: transfer complete, half transfer, or transfer error.
•
Generation of an interrupt request per channel for the DMA2 controller. Each interrupt
request is caused from any of the three DMA events: transfer complete, half transfer, or
transfer error.
360/2083
for number of supported channels).
Each channel is associated either with a DMA request signal coming from a
peripheral, or with a software trigger in memory-to-memory transfers. This
configuration is done by software.
Priority between the requests is programmable by software (4 levels per channel:
very high, high, medium, low) and by hardware in case of equality (such as
request to channel 1 has priority over request to channel 2).
Transfer size of source and destination are independent (byte, half-word, word),
emulating packing and unpacking. Source and destination addresses must be
aligned on the data size.
Support of transfers from/to peripherals to/from memory with circular buffer
management
Programmable number of data to be transferred: 0 to 2
RM0440 Rev 1
Table 74: DMA1 and DMA2
16
- 1
RM0440
Need help?
Do you have a question about the STM32G4 Series and is the answer not in the manual?
Questions and answers