
iiBusModuLes:inteLLigentdMa(idMa)
s1C33L17teChniCaLManuaL
ePson
ii-2-13
II
IDMA
ii.2.4.3BlocktransferMode
The channels for which DMOD in control information is set to 10 operate in block transfer mode. In this mode,
a transfer operation invoked by one trigger is completed after transferring one block of data of the size set by
BLKLEN. If a block transfer needs to be performed a number of times as set by the transfer counter, an equal
number of triggers are required.
The operation of IDMA in block transfer mode is shown by the flow chart in Figure II.2.4.3.1.
START
END
Calculatesaddressof
controlinformation
Loadschannel
controlinformation
Transfersoneunitofdata
Blocksize-1
Restoresinitialvaluesto
blocksizeandaddress
IDMAinterruptprocessing
(ifinterruptisenabled)
Block
size=0
A
Baseaddress+(Channelnumber
×16)
Bn(4words)
:n=1–4
C(Datareadfromsourceoftransfer)
D(Datawritetodestinationoftransfer)
E
1-blocktransfer
F
G
N
Trigger
Y
A
B1 B2
B4
B3
C1 D1 E1
Cn Dn En
F
G
H1 H2
H4
H3
Transfercounter-1
Saveschannel
controlinformation
Transfer
counter=0
Hn(4words)
:n=1–4
N
Y
: accordingtoSRINC/DSINC
settings
FigureII.2.4.3.1OperationFlowinBlockTransferMode
(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 BLKLEN is decremented.
(6) Steps (3) to (5) are repeated until BLKLEN reaches 0.
(7) If SRINC and/or DSINC are 010 or 100, the address is recycled to the initial value.
(8) The transfer counter is decremented.
(9) The modified control information is written to RAM.
(10) 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)