13 DMA CONTROLLER (DMAC)
S1C33L26 TECHNICAL MANUAL
Seiko Epson Corporation
13-11
To check the channel that has completed a data transfer, read ENDF
x
in the interrupt handler routine.
For more information on interrupt processing, see the “Interrupt Controller (ITC)” chapter.
Notes: • To prevent interrupt recurrences, the DMAC module interrupt flag ENDF
x
must be reset in the
interrupt handler routine after a DMAC interrupt has occurred.
• To prevent unwanted interrupts, ENDF
x
should be reset before enabling DMAC interrupts with
DMAIE
x
. ENDF
x
can be reset to 0 by writing 1.
Control Register Details
13.7
7.1 List of DMAC Registers
Table 13.
Address
Register name
Function
0x302100 DMAC_CH_EN
DMAC Channel Enable Register
Enable DMAC channels
0x302104 DMAC_TBL_BASE
DMAC Control Table Base Address Register
Set control table base address
0x302108 DMAC_IE
DMAC Interrupt Enable Register
Enable/disable DMAC interrupts
0x30210c DMAC_TRG_SEL
DMAC Trigger Select Register
Select trigger sources
0x302110 DMAC_TRG_FLG
DMAC Trigger Flag Register
Control software trigger and indicate trigger status
0x302114 DMAC_END_FLG
DMAC End-of-Transfer Flag Register
Indicate DMA completed channels
0x302118 DMAC_RUN_STAT
DMAC Running Status Register
Indicates running channel
0x30211c DMAC_PAUSE_STAT DMAC Pause Status Register
Indicate DMA suspended channels
The DMAC module registers are described in detail below. These are 32-bit registers.
Note: When data is written to the registers, the “Reserved” bits must always be written as 0 and not 1.
DMAC Channel Enable Register (DMAC_CH_EN)
Register name Address
Bit
Name
Function
Setting
Init. R/W
Remarks
DMAC Channel
Enable Register
(DMAC_CH_EN)
0x302100
(32 bits)
D31–8 –
reserved
–
–
–
0 when being read.
D7
DMAON7
DMAC Ch.7 enable
1 Enable
0 Disable
0
R/W
D6
DMAON6
DMAC Ch.6 enable
1 Enable
0 Disable
0
R/W
D5
DMAON5
DMAC Ch.5 enable
1 Enable
0 Disable
0
R/W
D4
DMAON4
DMAC Ch.4 enable
1 Enable
0 Disable
0
R/W
D3
DMAON3
DMAC Ch.3 enable
1 Enable
0 Disable
0
R/W
D2
DMAON2
DMAC Ch.2 enable
1 Enable
0 Disable
0
R/W
D1
DMAON1
DMAC Ch.1 enable
1 Enable
0 Disable
0
R/W
D0
DMAON0
DMAC Ch.0 enable
1 Enable
0 Disable
0
R/W
D[31:8] Reserved
D[7:0]
DMAON
x
: DMAC Ch.
x
Enable Bit
Enables DMAC Ch.
x
to accept DMA triggers.
1 (R/W): Enabled
0 (R/W): Disabled/Forced termination (default)
To perform DMA transfer using DMAC Ch.
x
, write 1 to DMAON
x
. When DMAON
x
is 0, DMAC Ch.
x
does not accept triggers and data transfer cannot be started.
DMAC Control Table Base Address Register (DMAC_TBL_BASE)
Register name Address
Bit
Name
Function
Setting
Init. R/W
Remarks
DMAC Control
Table Base
Address
Register
(DMAC_TBL_
BASE)
0x302104
(32 bits)
D31–10 TBL_BASE
[31:10]
DMAC control table base address
0x0 to 0xfffffc00
(1,024-byte boundary address
within a RAM)
0x80
000
R/W
D9–0 TBL_BASE
[9:0]
Fixed at 0x0
(Cannot be altered.)
R
D[31:0] TBL_BASE[31:0]: DMAC Control Table Base Address Bits
Sets a base address for the control table for writing control information and auto reload information.
The size of control information is 4 words (16 bytes) per channel. The area for auto-reloading also re-
quires 4 words (16 bytes) per channel. Therefore, a consecutive 256-byte space is needed for the con-
trol table in order to support eight channels.