Please note as of Wednesday, August 15th, 2018 this wiki has been set to read only. If you are a TI Employee and require Edit ability please contact x0211426 from the company directory.

CC3200 uDMA Application

From Texas Instruments Wiki
Jump to: navigation, search


The µDMA controller is a flexible and highly configurable DMA controller designed to work efficiently with the microcontroller's Cortex-M4 processor core. It supports multiple data sizes and address increment schemes, multiple levels of priority among DMA channels, and several transfer modes to allow for sophisticated programmed data transfers.

Different transfer modes supported are:

  1. Basic mode: In Basic mode, the µDMA controller performs transfers as long as there are more items to transfer,and a transfer request is present. This mode is used with peripherals that assert a µDMA request signal whenever the peripheral is ready for a data transfer.
  2. Auto Mode: Auto mode is similar to Basic mode, except that once a transfer request is received, the transfer runs to completion, even if the µDMA request is removed. This mode is suitable for software-triggered transfers. Generally, Auto mode is not used with a peripheral.
  3. Ping-pong Mode: Ping-Pong mode is used to support a continuous data flow to or from a peripheral. To use Ping-Pong mode, both the primary and alternate data structures must be implemented. Both structures are set up by the processor for data transfer between memory and a peripheral. The transfer is started using the primary control structure. When the transfer using the primary control structure is complete,the µDMA controller reads the alternate control structure for that channel to continue the transfer.Each time this happens, an interrupt is generated, and the processor can reload the control structure for the just-completed transfer.
  4. Scatter-gather Mode: Memory Scatter-Gather mode is a complex mode used when data must be transferred to or from varied locations in memory instead of a set of contiguous locations in a memory buffer.

Application details

The objective of this application is to showcase different DMA modes of transfer. Demonstrates the use of the uDMA controller to transfer data between memory buffers using Auto Mode and Scatter Gather Mode, and to transfer data to and from UART using Ping Pong Mode.In Auto and Scatter Gather mode correctness of Data transfer is verified once the transfer is complete. In Ping Pong mode transfer rate is calculated and displayed.

Source Files briefly explained

  1. pinmux - Pinmux configurations as required by the application.
  2. main - Main file that showcases different DMA modes of Transfer
  3. uart_if - To display status information over the UART
  4. udma_if - Initialize and Setup the uDMA controller


  1. Setup a serial communication application (HyperTerminal/TeraTerm)on the host PC. The settings are
Port: Enumerated COM port
Baud rate rate: 115200
Data: 8 bit
Parity: None
Stop: 1 bit
Flow control: None

     2. Run the reference application (Flashing the bin/IAR/CCS).
     3. Observe the status messages on the host over serial port to understand the sequence of operations performed by the application.

CC3200 udma terminal runScreen.png

Limitations/Known Issues