Introduction to SAM E51 DMAC Bus Architecture

Last modified by Microchip on 2026/07/08 14:16

Introduction

To use the Direct Memory Access Controller (DMAC) effectively on the SAM E51 microcontroller, it is important to understand not only what the DMAC does, but how it physically moves data inside the device. Behind the scenes, the DMAC relies on several dedicated internal buses, each optimized for a specific role such as transferring data, accessing registers, or managing descriptors. This lesson explains these buses in a clear, conceptual manner so that you can learn how data flows through the DMAC, why transfers are efficient, and how the architecture supports low-latency and low-power operation.

The Role of Buses in DMA Operation

In a microcontroller, a bus is a shared communication pathway that allows different hardware blocks to exchange data. The SAM E51 uses multiple internal buses so that configuration, control and data movement can occur in parallel without unnecessary contention. The DMAC is designed to take advantage of this architecture by separating control traffic from high-bandwidth data traffic.

Rather than relying on a single bus for all operations, the SAM E51 DMAC uses four distinct bus paths. Each bus serves a specific purpose, ensuring that large data transfers do not interfere with register access or descriptor management.

The Data Transfer Bus

SAME51 Direct Memory Access Controller (DMAC) Data Transfer Bus

The data transfer bus is the primary pathway used for performing the actual Direct Memory Access (DMA) transfers. When the DMAC moves data from memory to a peripheral, from a peripheral to memory, or between two memory locations, it uses this bus.

This bus connects the DMAC to the system’s main memory and memory-mapped peripherals through the High Speed Bus Matrix. Because the DMAC is a bus master, it can read from and write to these locations without CPU involvement. Once a transfer is underway, the CPU does not need to participate, which is one of the key reasons DMA improves performance and reduces power consumption.

The AHB/APB Bridge Bus

SAME51 Direct Memory Access Controller (DMAC) AHB/APB Bridge Bus

Advanced High-performance Bus (AHB) and Advanced Peripheral Bus (APB) are industry-standard bus protocols commonly used in microcontroller architectures. In the SAM E51, the AHB/APB bridge bus is used when the CPU needs to read from or write to the DMAC’s Input/Output (I/O) registers.

This bus is not involved in moving application data. Instead, it is used for configuration and status access. When firmware enables a DMA channel, sets priorities, configures trigger sources, or checks interrupt flags, those register accesses occur over the AHB/APB bridge bus. Separating register access from data movement ensures that control operations do not slow down active DMA transfers.

Back to Top

The Descriptor Fetch Bus

SAME51 Direct Memory Access Controller (DMAC) Descriptor Fetch Bus

DMA transfers on the SAM E51 are defined by descriptors stored in Static Random Access Memory (SRAM). A descriptor contains all the information needed to perform a transfer, including source address, destination address, transfer length and control settings.

The descriptor fetch bus is used by the DMAC’s internal fetch engine to read these descriptors from SRAM before a transfer starts or when a transfer continues to the next linked descriptor. This happens automatically and transparently to the CPU. Because descriptor fetching uses its own bus, the DMAC can prepare upcoming transfers while current data transfers are still in progress.

This architecture enables advanced features such as descriptor chaining, where multiple transfers occur back-to-back without software intervention.

Back to Top

The Write-Back Bus

SAME51 Direct Memory Access Controller (DMAC) Write-Back Bus

As a DMA transfer progresses, certain fields in the descriptor may need to be updated. For example, the remaining transfer count or the current source and destination addresses may change as data is moved.

The write-back bus is used to write the updated descriptor information back into SRAM. This allows the CPU or debugging tools to inspect the state of a DMA channel after or during a transfer. It also supports suspend-and-resume functionality because the DMAC can later resume a transfer using the updated descriptor state.

By separating write-back traffic from both descriptor fetching and data movement, the SAM E51 ensures that bookkeeping operations do not interfere with high-throughput transfers.

Back to Top

Why This Multi-Bus Design Matters

Using multiple specialized buses allows the SAM E51 DMAC to operate efficiently and predictably. Data transfers can proceed at high speed on the data transfer bus while descriptors are fetched and updated in parallel, and while the CPU configures or monitors the DMAC through the AHB/APB bridge. This design minimizes contention, reduces latency, and supports the deterministic behavior required in real-time embedded systems.

Back to Top

Microchip Tools and Solutions

Microchip Technology provides tools that abstract much of this complexity while still benefiting from the underlying bus architecture. MPLAB® Harmony v3 includes DMAC drivers that manage descriptors and channel configuration automatically. MPLAB Code Configurator (MCC) and Atmel START can generate initialization code that correctly sets up DMAC registers and memory structures without requiring the developer to manually manage low-level bus interactions.

For hands-on learning, Microchip evaluation boards such as the SAM E51 Curiosity and Xplained platforms allow developers to observe DMAC behavior in real applications, including descriptor chaining and high-throughput data movement.

Back to Top

Summary

The SAM E51 DMAC achieves high efficiency by using multiple internal buses, each dedicated to a specific function. The data transfer bus handles the movement of application data, the AHB/APB bridge bus supports configuration and status access, the descriptor fetch bus retrieves transfer definitions from SRAM, and the write-back bus updates descriptor state as transfers progress. Together, these buses allow the DMAC to operate independently of the CPU, enabling fast, low-power and deterministic data transfers. Understanding this architecture provides valuable insight into how and why DMA is such a powerful feature in SAM E51-based designs.

Back to Top

Learn More

Back to Top