
iiBusModuLes:inteLLigentdMa(idMa)
ii-2-12
ePson
s1C33L17teChniCaLManuaL
ii.2.4.2successivetransferMode
The channels for which DMOD in control information is set to 01 operate in successive transfer mode. In this
mode, a data transfer is performed by one trigger a number of times as set by the transfer counter. The transfer
counter is decremented to 0 by one transfer executed. The operation of IDMA in successive transfer mode is shown
by the flow chart in Figure II.2.4.2.1.
START
END
Calculatesaddressof
controlinformation
Loadschannel
controlinformation
Transfersoneunitofdata
Transfercounter-1
Saveschannel
controlinformation
IDMAinterruptprocessing
(ifinterruptisenabled)
Transfer
counter=0
A
Baseaddress+(Channelnumber
×16)
Bn(4words)
:n=1–4
C(Datareadfromsourceoftransfer)
D(Datawritetodestinationoftransfer)
E
Gn(4words) :n=1–4
N
Trigger
Y
A
B1 B2 B3 B4 C1 D1 E1
Cn Dn En F G1 G2 G3 G4
Restoresinitialvalues
toaddress
F
: accordingtoSRINC/DSINC
settings
FigureII.2.4.2.1OperationFlowinSuccessiveTransferMode
(1) When a trigger is accepted, the address for control information is calculated from the base address and channel
number.
(2) Control information is read from the calculated address into the internal temporary register.
(3) Data of the size set in the control information is read from the source address.
(4) The read data is written to the destination address.
(5) The address is incremented or decremented and the transfer counter is decremented.
(6) Steps (3) to (5) are repeated until the transfer counter reaches 0.
(7) If SRINC and/or DSINC are 010 or 100, the address is recycled to the initial value.
(8) The modified control information is written to RAM.
(9) In the case of a hardware trigger, the interrupt control bits are processed before completing IDMA.
Condition
Cause-of-interruptflag
IDMArequestbit
IDMAenablebit
________________________________________________________________________________________
Transfercounter
≠0:
Reset(0)
Notchanged(1)
Transfercounter=0,DINTEN=1:
Notchanged(1)
Reset(0)
Notchanged(1)
Transfercounter=0,DINTEN=0:
Reset(0)
Notchanged(1)
Reset(0)