The CC32xx MCU includes a micro-direct memory access (μDMA) controller. The µDMA controller provides a way to offload data-transfer tasks from the Cortex®-M4 processor, allowing 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. The µDMA controller 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 configurable channels
- 80MHz operation
- Support for memory-to-memory, memory-to-peripheral, and peripheral-to-memory in multiple transfer modes
- Basic and simple transfer scenarios
- Ping-pong for continuous data flow
- Scatter-gather for a programmable list of 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 the receive and transmit path for bidirectional modules
- Dedicated channel for software-initiated transfers
- Per-channel configurable bus arbitration scheme
- Software-initiated requests for any channel
- Two levels of priority
- Design optimizations for improved bus access performance between the µDMA controller and the processor core
- µDMA controller access subordinate to core access
- Simultaneous concurrent 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
- Maskable peripheral requests
- Interrupt on transfer completion, with a separate interrupt per channel