
17 DMA CONTROLLER
S1C38000 TECHNICAL MANUAL
EPSON
161
17 DMA Controller
17.1 Overview
The DMA Controller (DMAC) acts as a bus master on the AHB bus to facilitate memory / I/O to
memory / I/O transfers among internal and external devices. There are 4 DMA channels, Ch0, Ch1,
Ch2, and Ch3, with Ch0 having the highest priority and Ch3 the lowest. While Ch0, Ch1, Ch2, and
Ch3 can be for internal S1C38000 components, only Ch0 and Ch1 can be configured for external
devices.
The DMAC uses a dual-address transfer method in which a source address and a destination address
for the DMA transfer is specified and the transfer is then performed in two phases. The first phase
reads data at the source address into a temporary register. The second phase writes the temporary
register data to the destination address. Each transfer cycle can be 8-bit, 16-bit, or 32-bit. The
number of transfers for a given DMA operation is programmable. At the end of the last DMA
transfer, an interrupt can be generated.
17.2 Register Descriptions
The default base address for the DMAC registers is F8000180h. All non-reserved register bits
default to 0 unless specified otherwise.
bits 31–0
Source Address for DMA Channel 0
This is a 32-bit address register for both read and write operations. This register should
be programmed so that the address boundary corresponds correctly with the data
transfer size. For example, for 32-bit transfer, bits 1 and 0 of this register should be
programmed to be 0’s. This register is updated during each transfer cycle by the
specified data transfer size and source address mode.
bits 31–0
Destination Address for DMA Channel 0
This is a 32-bit address register for both read and write operations. This register should
be programmed so that the address boundary corresponds correctly with the data
transfer size. For example, for 32-bit transfer, bits 1 and 0 of this register should be
programmed to be 0’s. This register is updated during each transfer cycle by the
specified data transfer size and destination address mode.
Channel 0 Source Address Register
DMA[00h]
Default = xxxx xxxxh
Read/Write
Ch0 Source Address
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
Ch0 Source Address
15
14
13
12
11
10
9876543210
Channel 0 Destination Address Register
DMA[04h]
Default = xxxx xxxxh
Read/Write
Ch0 Destination Address
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
Ch0 Destination Address
15
14
13
12
11
10
9876543210