
iiBusModuLes:inteLLigentdMa(idMa)
s1C33L17teChniCaLManuaL
ePson
ii-2-15
II
IDMA
ii.2.5Linking
If the IDMA channel number to be executed next is set in the IDMA link field LNKCHN of control information
and LNKEN is set to 1 (link enabled), DMA successive transfer in that IDMA channel can be performed.
An example of link setting is shown in Figure II.2.5.1.
Ch.3
Trigger
Aftertransfer
TC=0
LNKEN=1
LNKCHN=5
DMOD=01
DINTEN=1
TC=1024
Ch.5
TC=7
LNKEN=1
LNKCHN=7
DMOD=00
DINTEN=1
TC=8
Ch.7
TC=0
LNKEN=0
LNKCHN=9
DMOD=10
DINTEN=1
TC=1
FigureII.2.5.1ExampleofLinkSetting
For the above example, IDMA operates as described below.
Fortriggerinhardware
(1) The IDMA channel 3 is invoked by a cause of interrupt and the DMA transfer that is set is performed.
Since the IDMA is operating in successive transfer mode and the transfer counter is decremented to 0, the
IDMA enable bit is cleared. Even if DINTEN is set to 1, the cause-of-interrupt flag by which the channel 3 has
been invoked is always cleared to 0.
(2) Next, a DMA transfer is performed via the linked IDMA channel 5. Channel 5 is set for single transfer mode
and the transfer counter in this transfer is decremented by 1.
(3) Finally, a DMA transfer in IDMA channel 7 is performed. Although the channel 7 is set for block transfer
mode, the transfer counter is decremented to 0 when the transfer is completed because the number of transfers
to be performed is 1. The IDMA cause-of-interrupt flag FIDMA (D4/0x300281) is set, since the DINTEN for
channel 7 is 1. If the other interrupt conditions are met, the end of IDMA interrupt is generated.
(4) Since the cause-of-interrupt flag that has invoked IDMA channel 3 in (1) is cleared, the cause of interrupt
invoking the IDMA for channel 3 is never generated in Link mode.
Fortriggerinthesoftwareapplication
(1) The IDMA channel 3 is invoked by a software trigger DSTART (D7/0x301104) and the DMA transfer that is
set is performed.
Since the IDMA is operating in successive transfer mode and the transfer counter is decremented to 0, the
IDMA enable bit is cleared. Even if DINTEN is set to 1, the IDMA cause-of-interrupt flag FIDMA (D4/
0x300281) is not set at this time.
dstaRt:IDMAStartControlBitintheIDMAStartRegister(D7/0x301104)
FidMa:IDMACause-of-InterruptFlagintheDMAInterruptCauseFlagRegister(D4/0x300281)
(2) Next, a DMA transfer is performed in the linked IDMA channel 5. The channel 5 is set for the single transfer
mode and the transfer counter in this transfer is decremented by 1.
(3) Finally, a DMA transfer in IDMA channel 7 is performed. Although channel 7 is set for the block transfer
mode, the transfer counter is decremented to 0 when the transfer is completed because the number of transfers
to be performed is 1. The completion of this transfer also causes FIDMA (D4/0x300281) to be set to 1. Since
the DINTEN for channel 7 is 1, completing this transfer sets FIDMA (D4/0x300281) to 1.
(4) Since FIDMA (D4/0x300281) is set, an interrupt request is generated here. Transfer operations in each channel
are performed as described previously.
note: MorethanoneIDMAlinkedchainmaynotexistconcurrentlyonasinglesystem.MultipleIDMA
chainswillresultinmalfunction.