
II BUS MODULES: HIGH-SPEED DMA (HSDMA)
II-1-24
EPSON
S1C33E07 TECHNICAL MANUAL
II.1.7 Interrupt Function of HSDMA
The DMA controller can generate an interrupt when the transfer counter in each HSDMA channel reaches 0.
Furthermore, channels 0 and 1 can invoke IDMA using their cause of interrupt.
Control registers of the interrupt controller
Table II.1.7.1 shows the control registers of the interrupt controller that are provided for each channel.
Table II.1.7.1 Control Registers of Interrupt Controller
Channel
Ch. 0
Ch. 1
Ch. 2
Ch. 3
Cause-of-interrupt flag
FHDM0(D0/0x300281)
FHDM1(D1/0x300281)
FHDM2(D2/0x300281)
FHDM3(D3/0x300281)
Interrupt priority register
PHSD0L[2:0](D[2:0]/0x300263)
PHSD1L[2:0](D[6:4]/0x300263)
PHSD2L[2:0](D[2:0]/0x300264)
PHSD3L[2:0](D[6:4]/0x300264)
Interrupt enable register
EHDM0(D0/0x300271)
EHDM1(D1/0x300271)
EHDM2(D2/0x300271)
EHDM3(D3/0x300271)
The HSDMA controller sets the HSDMA cause-of-interrupt flag to 1 when the transfer counter reaches 0 after
completing a series of HSDMA transfers. If the corresponding bit of the interrupt enable register is set to 1 at
this time, an interrupt request is generated. Interrupts can be disabled by leaving the interrupt enable register bit
set to 0. The HSDMA cause-of-interrupt flag is always set to 1 when the data transfer in each channel is com-
pleted no matter what value the interrupt enable register bit is set to. (This is true even when it is set to 0.)
The interrupt priority register sets an interrupt priority level (0 to 7). An interrupt request to the CPU is accepted
only when there is no other interrupt request of higher priority. Furthermore, it is only when the PSR's IE bit =
1 (interrupt enable) and the set value of IL is smaller than the HSDMA interrupt level which is set in the inter-
rupt priority register that the CPU actually accepts a HSDMA interrupt. For details about the interrupt control
register and for the device operation when an interrupt occurs, refer to Section III.2, “Interrupt Controller (ITC).”
Intelligent DMA
Intelligent DMA (IDMA) can be invoked by the end-of-transfer interrupt source of channels 0 and 1 of HS-
DMA. The following shows the IDMA channels set in HSDMA:
IDMA channel
Channel 0 end-of-transfer interrupt: 0x05
Channel 1 end-of-transfer interrupt: 0x06
Before IDMA can be invoked, the corresponding bits of the IDMA request and IDMA enable registers must be
set to 1. Settings of transfer conditions on the IDMA side are also required.
Table II.1.7.2 Control Bits for IDMA Transfer
Channel
Ch. 0
Ch. 1
IDMA request bit
RHDM0(D4/0x300290)
RHDM1(D5/0x300290)
IDMA enable bit
DEHDM0(D4/0x300294)
DEHDM1(D5/0x300294)
If the IDMA request and enable bits are set to 1, IDMA is invoked through generation of a cause of interrupt.
No interrupt request is generated at that point. An interrupt request is generated after the DMA transfer is com-
pleted. The registers can also be set so as not to generate an interrupt, with only a DMA transfer performed.
For details on IDMA transfers and interrupt control upon completion of IDMA transfer, refer to Section II.2,
“Intelligent DMA (IDMA).”
Trap vector
The trap vector addresses for causes of interrupt in each channel are set by default as follows:
Channel 0 end-of-transfer interrupt: 0xC00058
Channel 1 end-of-transfer interrupt: 0xC0005C
Channel 2 end-of-transfer interrupt: 0xC00060
Channel 3 end-of-transfer interrupt: 0xC00064
Note that the trap table base address can be modified using the TTBR register.