
iiBusModuLes:high-sPeeddMa(hsdMa)
s1C33L17teChniCaLManuaL
ePson
ii-1-19
II
HSDMA
Blocktransfermode(dual-addressmode)
The channel for which DxMOD[1:0] (D[15:14]/0x30112A + 0x10x) in control information is set to 10 operates
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 BLKLENx[7:0] (D[7:0]/0x301120 + 0x10x). 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 HSDMA in block transfer mode is shown by the flow chart in Figure II.1.6.1.3.
BLKLenx[7:0]:Ch.xBlockLengthBitsintheHSDMACh.xTransferCounterRegister(D[7:0]/0x301120+0x10x)
START
END
Blocksize-1
Restoresinitialvaluesto
blocksizeandaddress
Block
size=0
1-blocktransfer
N
Y
Transfercounter-1
Transfer
counter=0
N
Y
: accordingtoSxIN/DxINor
SxID/DxIDsettings
Datareadfromsource
(1byte,1halfwordor1word)
Datawritetodestination
(1byte,1halfwordor1word)
Increments/decrements
address
: accordingtoSxIN/DxINor
SxID/DxIDsettings
CleartriggerflagHSx_TF
toacceptnexttrigger
ClearHSDMAenablebit
HSx_EN
Setcause-of-interruptflag
FHDMx
FigureII.1.6.1.3OperationFlowinBlockTransferMode
(1) When a trigger is accepted, the trigger flag HSx_TF (D0/0x30112E + 0x10x) is cleared and then data of
the size set in the control information is read from the source address.
(2) The read data is written to the destination address.
(3) The address is incremented or decremented and BLKLENx[7:0] (D[7:0]/0x301120 + 0x10x) is decremented.
(4) Steps (1) to (3) are repeated until BLKLENx[7:0] (D[7:0]/0x301120 + 0x10x) reaches 0.
(5) The address returns to the initial value if SxIN[1:0] (D[13:12]/0x301126 + 0x10x)/DxIN[1:0] (D[13:12]/
0x30112A + 0x10x) is 10 or SxID (D4/0x301162 + 0x10x)/DxID (D5/0x301162 + 0x10x) is 1.
1
(6) The transfer counter is decremented.
(7) Steps (1) to (6) are repeated until the transfer counter reaches 0.
(8) The HSDMA enable bit HSx_EN (D0/0x30112C + 0x10x) is cleared and HSDMA cause-of-interrupt flag
in ITC is set when the transfer counter reaches 0.
1: In standard mode, SxID (D4/0x301162 + 0x10x) and DxID (D5/0x301162 + 0x10x) are both fixed at 0.