The CC32xx microcontroller includes a Direct Memory Access (DMA) controller, known as micro-DMA (µDMA). The µDMA controller provides a way to offload data transfer tasks from the Cortex-M4 processor, allowing for more efficient use of the processor and the available bus bandwidth. The µDMA controller can perform transfers between memory and peripherals. It has dedicated channels for each supported on-chip module and can be programmed to automatically perform transfers between peripherals and memory, as the peripheral is ready to transfer more data.
The µDMA controller provides the following features:
- 32-channel configurable µDMA controller
- Support for memory-to-memory, memory-to-peripheral, and peripheral-to-memory in multiple transfer modes
- Basic for simple transfer scenarios
- Ping-pong for continuous data flow
- Scatter-gather for a programmable list of up to 256 arbitrary transfers initiated from a single request
- Highly flexible and configurable channel operation
- Independently configured and operated channels
- Dedicated channels for supported on-chip modules
- One channel each for receive and transmit path for bidirectional modules
- Dedicated channel for software-initiated transfers
- Optional software-initiated requests for any channel
- Two levels of priority
- Design optimizations for improved bus access performance between µDMA controller and the processor core
- µDMA controller access is subordinate to core access.
- Data sizes of 8, 16, and 32 bits
- Transfer size is programmable in binary steps from 1 to 1024.
- Source and destination address increment size of byte, halfword, word, or no increment
- Interrupt on transfer completion, with a separate interrupt per channel