11 Direct Memory Access (DMA) Controller

Note: This data sheet summarizes the features of the dsPIC33CK512MPT608 family of devices. It is not intended to be a comprehensive reference source. For more information, refer to “Direct Memory Access Controller (DMA)” (www.microchip.com/DS30009742) in the “dsPIC33/PIC24 Family Reference Manual”.

The Direct Memory Access (DMA) Controller is designed to service high data throughput peripherals operating on the SFR bus, allowing them to access data memory directly and alleviating the need for CPU-intensive management. By allowing these data-intensive peripherals to share their own data path, the main data bus is also deloaded, resulting in additional power savings.

The DMA Controller functions both as a peripheral and a direct extension of the CPU. It is located on the microcontroller data bus, between the CPU and DMA-enabled peripherals, with direct access to SRAM. This partitions the SFR bus into two buses, allowing the DMA Controller access to the DMA-capable peripherals located on the new DMA SFR bus. The controller serves as an Initiator device on the DMA SFR bus, controlling data flow from DMA-capable peripherals.

The controller also monitors CPU instruction processing directly, allowing it to be aware of when the CPU requires access to peripherals on the DMA bus and automatically relinquishing control to the CPU as needed. This increases the effective bandwidth for handling data without DMA operations, causing a processor Stall. This makes the controller essentially transparent to the user.

The DMA Controller has these features:

  • A Total of Eight 
Independently Programmable Channels
  • Concurrent Operation with the CPU (no DMA caused Wait states)
  • DMA Bus Arbitration
  • Five Programmable Address modes
  • Four Programmable Transfer modes
  • Four Flexible Internal Data Transfer modes
  • Byte or Word Support for Data Transfer
  • 16-Bit Source and Destination Address Register for each Channel, Dynamically Updated and 
Reloadable
  • 16-Bit Transaction Count Register, Dynamically Updated and Reloadable
  • Upper and Lower Address Limit Registers
  • Counter Half-Full Level Interrupt
  • Software Triggered Transfer
  • Null Write mode for Symmetric Buffer Operations

A simplified block diagram of the DMA Controller is shown in Figure 11-1.

Figure 11-1. DMA Functional Block Diagram