Direct Memory Access Controller
Data transactions can be triggered either by hardware or software. Hardware initialization is achieved via the Peripheral Request Interface, while software initialization is done by the CPU via registers. The Peripheral Request Interface is used by external controllers (peripherals) to set data transaction requests on specific DDMA channel. Each of the DDMA channels has a set of Peripheral Request Interface signals associated with it. Peripherals can request the transmission or reception of data. When multiple channels await data transfer the arbitration process utilizes a round-robin algorithm.
There are four DDMA channels. Each has its configuration registers and enable bit.
The DDMA offers three transfer modes:
* SINGLE – single data transfer on request,
* NORMAL – one data block transfer on request,
* BLOCK – all data blocks transfer on request.
They are distinguished by the amount of data transferred on a single request. Data transaction is divided into blocks. It is possible to configure the number of block bytes and blocks in a transaction. Data transfer is performed between the data source and the data destination. The DDMA channel can perform reads and writes on 32-bit, 16-bit, and 8-bit data which is separately configurable for both source and destination. Source and destination addresses can be freely configured.
The DDMA offers three addressing modes:
* INC – increment address after each data access,
* DEC – decrement address after each data access,
* FIXED – the address is fixed.
Apart from the above, the IP Core has three sources and destination address reload options:
* TRANSACTION – address is reloaded after the full transaction,
* BLOCK – the address is reloaded with each block transferred,
* NEVER – the address is never reloaded.
Address, block, and byte registers are double-buffered so that if they are changed while the channel is busy, the change does not take effect until the current data transfer is over.
Each channel has status and transfers status flags. Channel status is defined as BUSY, PENDING, or IDLE. Transfer status flags inform about the amount of data that has been sent by the channel. Proper flags are set after transmitting a single data, block, or transaction. Each transfer status flag is masked which allows for generating an interrupt request when a specific data transfer situation occurs.
View Direct Memory Access Controller full description to...
- see the entire Direct Memory Access Controller datasheet
- get in contact with Direct Memory Access Controller Supplier
Block Diagram of the Direct Memory Access Controller IP Core
Direct Memory Access Controller IP
- Peripheral Direct Memory Access Controller
- Peripheral Direct Memory Access Controller
- Direct Memory Access Controller IP Core
- Direct memory access controller with AHB interface
- Direct memory access (DMA) controller
- Ethernet MAC IP, 10/100/1G Ethernet MAC, DMA (Direct Memory Access) function embedded, Soft IP