
V DMA BLOCK: HSDMA (High-Speed DMA)
S1C33L01 FUNCTION PART
EPSON
B-V-2-15
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 interrupt factor.
Control registers of the interrupt controller
Table 2.3 shows the control registers of the interrupt controller that are provided for each channel.
Table 2.3
Control Registers of Interrupt Controller
Channel
Interrupt factor flag
Interrupt enable register
Interrupt priority register
Ch. 0
FHDM0(D0/0x40281)
EHDM0(D0/0x40271)
PHSD0L[2:0](D[2:0]/0x40263)
Ch. 1
FHDM1(D1/0x40281)
EHDM1(D1/0x40271)
PHSD1L[2:0](D[6:4]/0x40263)
Ch. 2
FHDM2(D2/0x40281)
EHDM2(D2/0x40271)
PHSD2L[2:0](D[2:0]/0x40264)
Ch. 3
FHDM3(D3/0x40281)
EHDM3(D3/0x40271)
PHSD3L[2:0](D[6:4]/0x40264)
The HSDMA controller sets the HSDMA interrupt factor 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 interrupt factor flag is always set to "1" when the data transfer in each channel is
completed 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 interrupt 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 "ITC (Interrupt Controller)".
Intelligent DMA
Intelligent DMA (IDMA) can be invoked by the end-of-transfer interrupt factor of channels 0 and 1 of HSDMA.
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 2.4
Control Bits for IDMA Transfer
Channel
IDMA request bit
IDMA enable bit
Ch. 0
RHDM0(D4/0x40290)
DEHDM0(D4/0x40294)
Ch. 1
RHDM1(D5/0x40290)
DEHDM1(D5/0x40294)
If the IDMA request and enable bits are set to "1", IDMA is invoked through generation of an interrupt factor.
No interrupt request is generated at that point. An interrupt request is generated after the DMA transfer is
completed. 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 "IDMA
(Intelligent DMA)".
Trap vector
The trap vector addresses for interrupt factors in each channel are set by default as follows:
Channel 0 end-of-transfer interrupt: 0x0C00058
Channel 1 end-of-transfer interrupt: 0x0C0005C
Channel 2 end-of-transfer interrupt: 0x0C00060
Channel 3 end-of-transfer interrupt: 0x0C00064
Note that the trap table base address can be modified using the TTBR registers (0x48134 to 0x48137).